1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 02:45:07 +00:00
Commit graph

2434 commits

Author SHA1 Message Date
Vrins
39a5076f40 Browser+LibWeb: Add an Element size preview widget to inspector
This Adds an element size preview widget to the inspector widget
in a new tab. This functions similar to chrome and firefox and
shows the margin, border, padding, and content size of the selected
element in the inspector.

The colors for the size preview widget are taken from the chrome
browser.
2022-03-08 22:09:52 +01:00
Lady Gegga
2a898a7e4a LibWeb: Add explicit color to mark element 2022-03-08 18:52:16 +01:00
Lady Gegga
2c1f5cd310 LibWeb: Add default styling to abbr, acronym, mark, strike and tt 2022-03-08 18:52:16 +01:00
networkException
3e7869d57d LibWeb: Remove outdated FIXME comment in Namespaces validate_and_extract
As step "2. Validate qualifiedName" got implemented in
bfa7aad0f6, parts is known to have a
length of 2.
2022-03-08 16:23:35 +01:00
Linus Groh
0706f0d487 LibWeb: Move Timer from DOM directory & namespace to HTML
Timers are part of the HTML spec. :^)
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
2022-03-08 00:30:30 +01:00
Linus Groh
1422bd45eb LibWeb: Move Window from DOM directory & namespace to HTML
The Window object is part of the HTML spec. :^)
https://html.spec.whatwg.org/multipage/window-object.html
2022-03-08 00:30:30 +01:00
Andreas Kling
2dfb617c5b LibWeb: Make InlineLevelIterator emit absolutely positioned items
Note that we don't put absolutely positioned items on a line! This is
just so that IFC can discover boxes and pass them along to BFC.

This fixes an issue where only direct children of the IFC containing
block were considered for absolute positioning. Now we pick up
absolutely positioned children of nested inline nodes as well.
2022-03-08 00:19:49 +01:00
Maciej
86c0961240 LibWeb: Make TextNode::ChunkIterator::try_commit_chunk() const 2022-03-07 21:49:36 +01:00
Sam Atkins
deea129b8c LibWeb: Add Ratio type to MediaFeatureValue
As noted, the Parser can't handle the `<number>` syntax for this - it
gets parsed instead by the `<number>` branch. We can't actually resolve
the ambiguity without making the Parser aware of what type each
media-feature is, but I will get to that soon. :^)
2022-03-07 13:42:25 +01:00
Sam Atkins
5f93f1c161 LibWeb: Introduce and parse CSS Ratio type
This is only used by media-queries, so for now we can skip
adding/parsing a StyleValue for these.
2022-03-07 13:42:25 +01:00
Sam Atkins
e30bfabbca LibWeb: Correct "color" media-feature value
This is bits per color channel, not bits per pixel, so 32 was a little
over-optimistic. :^)
2022-03-07 13:42:25 +01:00
Andreas Kling
6d1a9672a4 LibWeb: Support more CSS image-rendering values
This patch adds support for "crisp-edges", "high-quality" and "smooth"
for the CSS image-rendering property.

"crisp-edges" maps to nearest-neighbor scaling for <canvas> and <img>
elements, while "high-quality" and "smooth" both use bilinear blending.
2022-03-07 00:08:22 +01:00
Linus Groh
fe52ee2f8e LibWeb: Implement the remaining LocationObject internal methods 2022-03-06 23:27:39 +01:00
Linus Groh
5dabdcccf7 LibWeb: Implement the CrossOriginOwnPropertyKeys AO 2022-03-06 23:27:39 +01:00
Linus Groh
c8a2fc09b8 LibWeb: Implement the CrossOriginSet AO 2022-03-06 23:27:39 +01:00
Linus Groh
245ec99813 LibWeb: Implement the CrossOriginGet AO 2022-03-06 23:27:39 +01:00
Linus Groh
c7b977547d LibWeb: Implement the CrossOriginGetOwnPropertyHelper AO 2022-03-06 23:27:39 +01:00
Linus Groh
bccbad003f LibWeb: Implement the IsPlatformObjectSameOrigin AO 2022-03-06 23:27:39 +01:00
Linus Groh
34fed7bfcc LibWeb: Implement the CrossOriginPropertyFallback AO 2022-03-06 23:27:39 +01:00
Linus Groh
78938d933a LibWeb: Implement the CrossOriginProperties AO 2022-03-06 23:27:39 +01:00
Linus Groh
8b4e5220aa LibWeb: Implement the [[CrossOriginPropertyDescriptorMap]] internal slot 2022-03-06 23:27:39 +01:00
Linus Groh
11d0e37d8e LibWeb: Implement the 'Relevant realm/{settings,global} object' concepts 2022-03-06 23:27:39 +01:00
Linus Groh
db983b469d LibWeb: Implement the 'Current {settings,global} object' concepts 2022-03-06 23:27:39 +01:00
Linus Groh
bc1b33eb22 LibWeb: Add border style for iframe to default UA stylesheet
Wouldn't be the true <iframe> experience if you didn't have to get rid
of the default inset border :^)
2022-03-06 23:05:18 +01:00
Karol Kosek
7e599aa1e5 LibWeb: Implement missing text-decoration styles
This commit will draw appropriate line styles for the Double, Dashed
and Dotted values.
2022-03-06 22:04:41 +01:00
Karol Kosek
b6b116d5f2 LibWeb: Compute text-decoration-thickness values 2022-03-06 22:04:41 +01:00
Karol Kosek
0f7156ed81 LibWeb: Parse CSS text-decoration-thickness property 2022-03-06 22:04:41 +01:00
Karol Kosek
727e69fe11 LibWeb: Paint text decoration in front of the text
Previously, the decoration was painted behind the text. This probably
wasn't noticed before, as we didn't compute `text-decoration-color`
values yet and the decoration had the same color anyway.
2022-03-06 22:04:41 +01:00
Karol Kosek
f9d66bef5d LibWeb: Compute text-decoration-color values
Previosly, we used only the text color as a line decoration color.

The FIXME comment has been directly copy-pasted from the border color
note a few lines below.
2022-03-06 22:04:41 +01:00
Luke Wilde
8d05c4a675 LibWeb: Fire resize event at the Window instead of Document
The spec says "fire an event named resize at the Window object
associated with doc."

However, we were accidentally firing it at `doc` instead of the Window.
2022-03-06 15:35:10 +01:00
Andreas Kling
7d5d5b387e LibWeb: Respect CSS image-rendering mode when painting canvas elements
If the content wants to be pixelated, we should honor that and paint
with nearest-neighbor scaling. The fact that it's faster is a nice bonus
as well. :^)
2022-03-06 01:51:18 +01:00
Idan Horowitz
bc0fafade9 LibWeb: Add all overloads of CanvasRenderingContext2D::drawImage() 2022-03-05 23:40:08 +01:00
Idan Horowitz
24cf56896b LibWeb: Use image's intrinsic dimensions when checking their usability
Instead of the rendered dimensions.
2022-03-05 23:40:08 +01:00
Andreas Kling
bc82b3eaec LibWeb: Improve height:auto for position:absolute blocks
Previously we were not giving automatic height to position:absolute
blocks that had both top:auto and bottom:auto.
2022-03-05 21:26:19 +01:00
Andreas Kling
e61bf997db LibWeb: Don't break on *every character* in AllPossibleLineBreaks mode
This mode is used to find the min-content inline size, so we should
break between words, not characters.
2022-03-05 21:26:19 +01:00
Karol Kosek
32bd57bdc9 LibWeb: Use monospace font for <kbd> and <samp> elements 2022-03-05 21:25:14 +01:00
Karol Kosek
049abbc417 LibWeb: Strike-through <s> and <del> elements by default 2022-03-05 21:25:14 +01:00
Karol Kosek
ed70a67a49 LibWeb: Set default fantasy font to Comic Book
> Fantasy fonts are primarily decorative or expressive fonts that
> contain decorative or expressive representations of characters.
https://drafts.csswg.org/css-fonts/#valdef-font-family-fantasy

Seems like this font fits this description. :)
2022-03-05 21:25:14 +01:00
Karol Kosek
d7c27ad11a LibWeb: Set default serif font to Roman
It's the only Serif font we have, so let's use it!
2022-03-05 21:25:14 +01:00
Linus Groh
26d29e9220 LibWeb: Implement LocationObject URL part getters closer to spec
- Perform a typed this check
- Use the 'associated URL' as the source of truth
- Don't append default port number in the host getter
- Don't return default port number in the port getter
- Add empty checks to the hash and search getters instead of returning
  '#' and '?' strings from the string builder
2022-03-05 10:24:53 +01:00
Linus Groh
7fb9f431ea LibWeb: Add LocationObject::url()
https://html.spec.whatwg.org/multipage/history.html#concept-location-url

> A Location object has an associated url, which is this Location
> object's relevant Document's URL, if this Location object's relevant
> Document is non-null, and about:blank otherwise.
2022-03-05 10:24:53 +01:00
Linus Groh
da8525279e LibWeb: Add LocationObject::relevant_document()
https://html.spec.whatwg.org/multipage/history.html#relevant-document

> A Location object has an associated relevant Document, which is this
> Location object's relevant global object's browsing context's active
> document, if this Location object's relevant global object's browsing
> context is non-null, and null otherwise.
2022-03-05 10:24:53 +01:00
Linus Groh
2f021e92a5 LibWeb: Add Window::browsing_context()
https://html.spec.whatwg.org/multipage/window-object.html#window-bc

> The Window object's browsing context is the Window object's associated
> Document's browsing context.
> NOTE: It is either null or a browsing context.
2022-03-05 10:24:53 +01:00
Linus Groh
986bd2e271 LibWeb: Add spec comments to LocationObject
This revealed a variety of issues, mostly missing origin checks,
conflating concepts like the 'associated URL', and serialization
(incorrect fallback values, string vs number, etc).

This commit fixes none of these issues, only adds FIXMEs.
2022-03-05 10:24:53 +01:00
Andreas Kling
7d052250f2 LibWeb: Don't create unwanted layout nodes when recomputing style
When recomputing the style for an element that previously didn't have
a corresponding layout node, it may become necessary to create a layout
node for it.

However, we should not do this if it's within a subtree that can't have
layout children. Nor should we do it for elements who have an ancestor
with display:none.
2022-03-04 23:40:21 +01:00
Linus Groh
e890cd5464 LibWeb: Implement CanvasRenderingContext2D.getImageData()
The actual copying of the pixel values into the created ImageData object
is a bit ugly, but Gfx::Painter doesn't like the underlying RGBA8888
bitmap.
2022-03-04 23:03:29 +01:00
Linus Groh
08608932cc LibWeb: Change CanvasRenderingContext2D.createImageData() args to long
Not sure why these are doubles in the IDL definition, both the IDL in
the spec and the implementation in the CanvasRenderingContext2D class
use integers.
2022-03-04 23:03:29 +01:00
Linus Groh
3f3326f1dc LibWeb: Implement CanvasRenderingContext2D.drawImage() closer to spec
Also add support for HTMLCanvasElement for the image parameter, leading
to replacing HTMLImageElement with the CanvasImageSource Variant type.

Also stub out the 'check the usability of the image argument' and 'is
not origin-clean' operations, while taking into consideration that these
can throw (and require DOM::ExceptionOr).
2022-03-04 23:03:29 +01:00
Linus Groh
ed03f37ae9 LibWeb: Add CanvasRenderingContext2D's origin-clean flag 2022-03-04 23:03:29 +01:00
Linus Groh
6521c04bf3 LibWeb: Remove dbgln() from ImageData::create_with_size()
This is not generally useful information, and can be noisy on websites
that heavily use ImageData, e.g. in combination with canvas.
2022-03-04 23:03:29 +01:00