Sam Atkins
333b705f25
LibWeb: Parse flex-flow property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
bf3576667a
LibWeb: Parse flex property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
4f3136c230
LibWeb: Parse shadow values using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
3a36b2eea9
LibWeb: Parse border properties using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
0e00d9a67d
LibWeb: Parse background property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
64a44b719e
LibWeb: Parse FilterValueListStyleValue using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
2efaadd63c
LibWeb: Parse aspect-ratio property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
647d52ff9a
LibWeb: Parse quotes property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
ebad94658a
LibWeb: Parse display property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
3d6eb36664
LibWeb: Parse content property using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
4d6e8d8f37
LibWeb: Parse border-radius properties using TokenStream
2023-12-08 10:47:23 +00:00
Sam Atkins
28c719fff5
LibWeb: Extract contains_single_none_ident()
helper function
...
Several CSS properties can be `none` instead of their usual value.
2023-12-08 10:47:23 +00:00
Sam Atkins
1cc88dc4bc
LibWeb: Make parse_comma_separated_value_list() take a TokenStream
...
This lets us use it from inside places that use TokenStreams.
2023-12-08 10:47:23 +00:00
Sam Atkins
cd9344d4c1
LibWeb: Clarify naming of TokenStreams in parse_css_value()
...
Originally, the input was named `tokens`, and we later created a
`tokens_without_whitespace` from the filtered contents of `tokens`.
Since `tokens_without_whitespace` is what we actually want to use while
parsing, let's rename `tokens` -> `unprocessed_tokens` and use the
`tokens` name for the processed ones.
2023-12-08 10:47:23 +00:00
Bastiaan van der Plaat
4966c083df
LibWeb: Remove progress element custom paintable use shadow dom instead
2023-12-07 11:37:01 +01:00
Sam Atkins
ef48d967d4
LibWeb: Correct parsing of background-position 3-value syntax
...
There were two bugs here, one of which hid the other:
- Only one offset would have a value, but we dereferenced both.
- We consumed a token whether it was a valid offset or not.
2023-12-05 09:55:16 +01:00
Bastiaan van der Plaat
2107ab823d
LibWeb: Add basic HTML meter element support
2023-12-04 19:54:43 +00:00
Bastiaan van der Plaat
3175557cb8
LibWeb: Update progressbar colors to be more pleasant
2023-12-04 19:54:43 +00:00
Bastiaan van der Plaat
fb7b03d162
LibWeb: Add support for the input size attribute
2023-12-03 20:29:14 +01:00
Shannon Booth
89bbf53745
LibWeb: Port CSS Parser from DeprecatedString
...
These are the last instances of DeprecatedString in the CSS folder.
2023-12-02 22:54:53 +01:00
Shannon Booth
6813dcaff8
LibWeb: Return FlyString const& from CSS::Parser::Token
...
This allows us to not need to convert back to a FlyString when we need
one.
2023-12-02 22:54:53 +01:00
Sam Atkins
d344c50663
LibWeb: Return String from CSSStyleRule::selector_text()
2023-12-01 20:48:13 +01:00
Sam Atkins
374b6cdffd
LibWeb: Return String from CSSImportRule::href()
2023-12-01 20:48:13 +01:00
Sam Atkins
ef1e942f3e
LibWeb: Use String for getting/setting MediaQueryList media
2023-12-01 20:48:13 +01:00
Sam Atkins
6dbc3044bd
LibWeb: Remove some to_deprecated_string()
calls in the CSS code
2023-12-01 20:48:13 +01:00
Sam Atkins
9c1c7720c5
LibWeb: Use serialize_a_url() to serialize @import url(...)
2023-12-01 20:48:13 +01:00
Andreas Kling
189d1e8291
LibWeb: Port CSSNamespaceRule to FlyString
...
This removes a performance problem where we'd convert the style sheet's
default namespace from DeprecatedFlyString to FlyString once per rule
during selector matching.
The conversion now happens once, during CSS parse. It should eventually
be removed from there as well, but one step at a time. :^)
2023-12-01 16:03:58 +01:00
Aliaksandr Kalenik
961b067df8
LibWeb/CSS: Add support for translateZ() transform property
2023-11-30 22:54:02 +01:00
Shannon Booth
96af80acd1
LibWeb: Port Intrinsics from DeprecatedString
2023-11-28 17:15:27 -05:00
Shannon Booth
af7df1dbbf
LibWeb: Port CSSStyleDeclaration from DeprecatedString to String
2023-11-28 17:15:27 -05:00
Shannon Booth
d400291ad9
LibWeb: Port CSSRule::serialized from DeprecatedString to String
2023-11-28 17:15:27 -05:00
Aliaksandr Kalenik
1b3223dd9e
LibWeb: Rename painter() to recording_painter() in PaintContext
...
Using recording_painter() as a name is less misleading, indicating
the painter in stacking context traversal doesn't perform actual
painting commands.
2023-11-27 21:53:38 +01:00
Aliaksandr Kalenik
f4a5c136c3
LibGfx+LibWeb: Add ImmutableBitmap for images bitmap caching in painter
...
Before this change, we used Gfx::Bitmap to represent both decoded
images that are not going to be mutated and bitmaps corresponding
to canvases that could be mutated.
This change introduces a wrapper for bitmaps that are not going to be
mutated, so the painter could do caching: texture caching in the case
of GPU painter and potentially scaled bitmap caching in the case of CPU
painter.
2023-11-26 12:55:43 +01:00
Shannon Booth
b7bcdf7c53
LibWeb: Fix UAF in CSSStyleSheet
...
CSSNamespaceRule returns a copy of a DeprecatedString, meaning that the
view returned by the namespace in CSSStyleSheet is into a temporary
string.
2023-11-24 10:57:17 +01:00
Sam Atkins
f69d38a346
LibWeb: Use ComponentValue::is_ident("..."sv) helper
2023-11-22 09:45:51 +01:00
Sam Atkins
6cd6186399
LibWeb: Don't assume grid size is always Function or Token
...
This stops `grid-template-columns: minmax({},{})` from crashing.
2023-11-22 09:45:51 +01:00
Sam Atkins
1a17b8a304
LibWeb: Don't assume grid-area parts are Tokens
...
This stops `grid-area: {}` from crashing.
2023-11-22 09:45:51 +01:00
Sam Atkins
ab9d39bf4a
LibWeb: Don't assume grid-row/grid-column parts are Tokens
...
This stops `grid-column: {}` from crashing.
2023-11-22 09:45:51 +01:00
Sam Atkins
314a30b12e
LibWeb: Don't assume grid-line parts are Tokens
...
This stops `grid-row-start: {}` from crashing.
Also tidy up the parsing code a little.
2023-11-22 09:45:51 +01:00
Sam Atkins
1f6e13d8fe
LibWeb: Don't assume repeat() contents are Tokens
...
This stops `grid-template-rows: repeat({})` from crashing.
2023-11-22 09:45:51 +01:00
Sam Atkins
5e54ff1858
LibWeb: Don't assume rect() contents are Tokens
...
This stops `clip: rect({});` from crashing.
2023-11-22 09:45:51 +01:00
Sam Atkins
aba2946b1e
LibWeb: Use ComponentValue::is_function("..."sv) helper
2023-11-22 09:45:51 +01:00
Aliaksandr Kalenik
d9990c6ea9
LibWeb: Remove opacity parameter for DrawScaledBitmap painting command
...
Every usage of this command specifies opacity equal to 1.
2023-11-21 17:00:56 +01:00
implicitfield
7a766bdb83
LibWeb: Respect the document's link_color for Linktext identifiers
2023-11-21 16:54:02 +01:00
Sam Atkins
148f873321
LibWeb: Merge background-position parsing into position code
...
Implemented by adding the extra 3-value syntax as its own case and only
running it when parsing background-position. I'm sure it could be
implemented in a smarter way but this is still a bunch less code than
before. :^)
2023-11-21 01:29:26 +01:00
Sam Atkins
26d6ba6f58
LibWeb: Parse the CSS position type automatically
...
This means `object-position` will no longer incorrectly accept the
3-value background-position syntax.
Remove the now-ambiguous and unused `position` enum while we're at it.
(This enum only existed as a hack.)
2023-11-21 01:29:26 +01:00
Sam Atkins
19da17f07e
LibWeb: Allow calc() in CSS position values
2023-11-21 01:29:26 +01:00
Andreas Kling
bfd354492e
LibWeb: Put most LibWeb GC objects in type-specific heap blocks
...
With this change, we now have ~1200 CellAllocators across both LibJS and
LibWeb in a normal WebContent instance.
This gives us a minimum heap size of 4.7 MiB in the scenario where we
only have one cell allocated per type. Of course, in practice there will
be many more of each type, so the effective overhead is quite a bit
smaller than that in practice.
I left a few types unconverted to this mechanism because I got tired of
doing this. :^)
2023-11-19 22:00:48 +01:00
Shannon Booth
6a2a7cad61
LibWeb/LibJS: Avoid GC visit of raw pointers where possible
...
This is mostly motivated for aesthetics, but also helps avoid some null
checks when we have a NonnullGCPtr<T> or in some cases a T&.
2023-11-19 08:05:45 +00:00
Matthew Olsson
1a94241f58
IDL: Add missing #imports
2023-11-11 08:51:51 +01:00