Andreas Kling
89ba7246dd
LibWeb: Don't resolve CSS property values for unconnected elements
...
While it's possible to getComputedStyle() on an unconnected element,
the resulting object is not supposed to have any values, since we can't
resolve style without a document root anyway.
This fixes a crash on https://bandcamp.com
2023-05-10 17:27:07 +02:00
Sam Atkins
294f5b109f
LibWeb: Propagate errors from ResolvedCSSStyleDeclaration
...
Though not from ResolvedCSSStyleDeclaration::property() just yet.
2023-05-06 08:07:28 +02:00
Sam Atkins
d16600a48b
LibWeb: Propagate errors from StyleValue construction
...
Turns out we create a lot of these, mostly from places that don't return
ErrorOr. The yak stack grows.
2023-05-06 08:07:28 +02:00
Andreas Kling
75d603c31b
LibWeb: Support getting the grid-template-areas from resolved style
...
Without this, we crash when opening the DOM inspector.
2023-05-01 11:23:40 +02:00
martinfalisse
22202715fc
LibWeb: Parse grid-template
property
2023-04-30 05:56:10 +02:00
martinfalisse
bebf4363db
LibWeb: Change name of GridTrackSizeListStyleValue
...
Change the name of GridTrackSizeStyleValue to
GridTrackSizeListStyleValue which is more accurate.
2023-04-30 05:56:10 +02:00
Sam Atkins
7add4f2d2f
LibWeb: Add some font-related properties to the resolved style
2023-04-29 16:23:50 +02:00
Sam Atkins
e3b557fa64
LibWeb: Stop creating auto
LengthStyleValue for resolved style
2023-04-19 18:25:18 +02:00
Karol Kosek
e8fe35b1e5
LibWeb: Resolve more background-related properties
...
This change adds rules for background-attachment, background-clip,
background-image, background-origin, and background-repeat.
As a result, Window.getComputedStyle() will no longer return empty
strings on these properties after a page is loaded, and the background
shorthand will show the resolved values instead of the default ones for
these values. :^)
2023-04-14 12:44:59 +01:00
MacDue
bed55ac669
LibWeb: Parse and plumb background-position-x/y
...
This parses the new background-position-x/y longhands and properly
hooks up them up. This requires converting PositionStyleValue to
just contain two EdgeStyleValues so that it can be easily expanded
into the longhands.
2023-04-03 07:10:33 +02:00
Sam Atkins
1280d70d74
LibWeb: Split CalculatedStyleValue out of StyleValue.{h,cpp}
2023-03-30 21:29:50 +02:00
Sam Atkins
62a8cf2bb8
LibWeb: Let CSS::Size contain a CalculatedStyleValue
...
Technically this was already true, but now we explicitly allow it
instead of that calc value being hidden inside a Length or Percentage.
2023-03-30 21:29:50 +02:00
Sam Atkins
ba30f298f9
LibWeb: Stop returning the left padding for resolved padding-bottom
...
I accidentally broke this 8 months ago and nobody noticed. 😅
2023-03-27 14:27:09 +01:00
Sam Atkins
4c54c5d3dd
LibWeb: Split StyleValueList out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
3a2de67c7b
LibWeb: Split RectStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
cd06b1341b
LibWeb: Split TransformationStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
08fa513887
LibWeb: Split ShadowStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
b1ccd30b02
LibWeb: Split PositionStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4b711932cc
LibWeb: Split PercentageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
7f6add1c6e
LibWeb: Split NumericStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9a84151169
LibWeb: Split LengthStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1591352531
LibWeb: Split InitialStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
76de017a51
LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
d39788556a
LibWeb: Split GridTrackSizeStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
486ef3df7f
LibWeb: Split GridTrackPlacementStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
402845fe00
LibWeb: Split GridTrackPlacementShorthandStyleValue out of StyleValue
2023-03-25 16:56:04 +00:00
Sam Atkins
675cb3b9da
LibWeb: Split GridAreaShorthandStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
77b2826402
LibWeb: Split ColorStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
66bc816284
LibWeb: Split BorderRadiusStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
25114c159d
LibWeb: Split BorderRadiusShorthandStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1c03bc7a6f
LibWeb: Split BorderStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
52cd0b2f47
LibWeb: Split BackgroundRepeatStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
92a0d4c0af
LibWeb: Split BackgroundStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Andreas Kling
7e76a51cb0
LibWeb: Rename Layout::InitialContainingBlock to Layout::Viewport
...
The name "initial containing block" was wrong for this, as it doesn't
correspond to the HTML element, and that's specifically what it's
supposed to do! :^)
2023-02-28 12:21:56 +01:00
Andreas Kling
f11899f885
LibWeb+LibIDL: Fix (or paper over) various const-correctness issues
...
There's definitely stuff to iterate on here, but this takes care of
making the libraries compile with stricter RP and NNRP.
2023-02-21 00:54:04 +01:00
MacDue
3676f5085e
LibWeb: Replace RefPtr
with ValueComparingRefPtr
in StyleValue
...
Like the name suggests this pointer type compares its pointees by value
rather than just by the pointer. This is needed for the defaulted
struct Properties equality operator.
This commit also contains a few changes to StyleValue such as replacing
the operator==()s with a .equals() again. This is done to avoid the new
reversed operator==()s ambiguity in C++20.
2023-02-20 10:50:20 +01:00
Kenneth Myhra
8fbd43cb27
LibWeb: Make factory method of CSS::ResolvedCSSStyleDeclaration fallible
2023-02-18 00:52:47 +01:00
Timothy Flynn
b75b7f0c0d
LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate
...
Callers that are already in a fallible context will now TRY to allocate
cells. Callers in infallible contexts get a FIXME.
2023-01-29 00:02:45 +00:00
martinfalisse
9bc001f410
LibWeb: Parse grid-area
CSS property
2023-01-21 14:35:00 +01:00
martinfalisse
64c353f11c
LibWeb: Parse border-collapse
property for HTML table
2023-01-03 20:02:47 +01:00
Thomas Queiroz
eacfcac932
LibWeb: Use HashMap::try_ensure_capacity in StyleComputer
2022-12-10 14:29:46 +01:00
Linus Groh
6e19ab2bbc
AK+Everywhere: Rename String to DeprecatedString
...
We have a new, improved string type coming up in AK (OOM aware, no null
state), and while it's going to use UTF-8, the name UTF8String is a
mouthful - so let's free up the String name by renaming the existing
class.
Making the old one have an annoying name will hopefully also help with
quick adoption :^)
2022-12-06 08:54:33 +01:00
Itamar
8d65df935e
LibWeb: Handle inset properties in style_value_for_property()
...
This adds support for the Top, Right, Bottom and Left CSS properties
in style_value_for_property().
2022-11-14 21:22:27 +00:00
Luke Wilde
c247fefee7
LibWeb: Implement CSSStyleDeclaration.cssText
2022-11-07 14:10:41 +01:00
martinfalisse
9e6612c49b
LibWeb: Parse CSS gap property
...
Including the legacy grid-gap, grid-column-gap and grid-row-gap
properties.
2022-11-07 10:06:07 +01:00
Luke Wilde
5e2b41175c
LibWeb: Return empty Optional<StyleProperty> for shorthand properties
...
This is a stopgap until we implement shorthand -> longhand conversion.
2022-10-28 16:17:08 +01:00
Andreas Kling
13834cfdff
LibWeb: Use Layout::Node::display() everywhere
2022-10-06 16:25:26 +02:00
Andrew Kaster
a2ccb00e1d
LibWeb: Remove unecessary dependence on Window from CSS classes
...
These classes only needed Window to get at its realm. Pass a realm
directly to construct CSS classes.
2022-10-01 21:05:32 +01:00
Luke Wilde
dbe12662b8
LibWeb: Implement matrix3d transform function from css-transforms-2
2022-10-01 14:07:47 +02:00
Linus Groh
bbaa05fcf9
LibWeb: Move DOMException from DOM/ to WebIDL/
2022-09-25 19:13:31 +01:00