LibWeb: Don't apply presentational hints to associated pseudo elements

CSS properties generated by presentational hints in content attributes
should not leak into pseudo elements.
This commit is contained in:
Andreas Kling 2023-04-02 08:48:29 +02:00
parent 620a34a463
commit 8bb0be7d4f
Notes: sideshowbarker 2024-07-16 23:57:20 +09:00
3 changed files with 26 additions and 1 deletions

View file

@ -0,0 +1,13 @@
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (1,1) content-size 798x47.835937 children: not-inline
BlockContainer <body> at (10,10) content-size 780x29.835937 children: not-inline
TableWrapper <(anonymous)> at (10,10) content-size 104x29.835937 children: not-inline
TableBox <table> at (11,11) content-size 104x27.835937 children: not-inline
TableRowGroupBox <tbody> at (11,11) content-size 104x27.835937 children: not-inline
TableRowBox <tr> at (11,11) content-size 104x27.835937 children: not-inline
TableCellBox <td> at (13,13) content-size 100x23.835937 children: not-inline
BlockContainer <(anonymous)> at (14,14) content-size 98x21.835937 children: inline
line 0 width: 0, height: 21.835937, bottom: 21.835937, baseline: 16.914062
frag 0 from TextNode start: 0, length: 0, rect: [14,14 0x21.835937]
""
TextNode <#text>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html><html><head><style>
* {
border: 1px solid black;
font: 20px SerenitySans;
}
td::before {
display: block;
content: "";
border: 1px solid red;
}
</style><head><body><table><tr><td width="100" height="100">

View file

@ -912,7 +912,8 @@ ErrorOr<void> StyleComputer::compute_cascaded_values(StyleProperties& style, DOM
// FIXME: Normal user declarations
// Author presentational hints (NOTE: The spec doesn't say exactly how to prioritize these.)
element.apply_presentational_hints(style);
if (!pseudo_element.has_value())
element.apply_presentational_hints(style);
// Normal author declarations
cascade_declarations(style, element, pseudo_element, matching_rule_set.author_rules, CascadeOrigin::Author, Important::No);