[wpt-sync] Sync PR 41732 - Reland "Invalidation on stylesheet changes using selector matching"
Categories
(Core :: CSS Parsing and Computation, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox119 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 41732 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/41732
Details from upstream follow.
Steinar H. Gunderson <sesse@chromium.org> wrote:
Reland "Invalidation on stylesheet changes using selector matching"
This is a reland of commit 5d12010188b8fd648efd2279956e8a6cbe20654e.
The revert has been in for ~6 hours and the tests in question still
fail on the Mac builders, so it's unlikely to be the culprit.
It also passes locally on Mac.Original change's description:
Invalidation on stylesheet changes using selector matching
When inserting, deleting or modifying stylesheets, we need to invalidate
style for some elements, even though the elements themselves did not
change. Currently, we reuse the concept of InvalidationSets, which are
mostly designed for changes to elements, for that. This can sometimes
cause overbroad invalidations, especially if the style is written in
a “modern” (read: less-than-ideal) fashion.We replace this by a somewhat slower but more precise and probably
simpler system; for each candidate element in the DOM, we see if it
matches any selectors in the old or the new rulesets (by means of
the same bucketing logic we currently have during element rule
collection), and if so, we mark it for style recalc. This isn't perfect;
if we are e.g. adding a single rule to an existing stylesheet, we would
still invalidate based on all rules in the sheet. We hope to improve
this in a future patch, but even now, this shows significant
improvements over most of blink_perf.css, with only a few regressions.Note that this means the experimental style invalidation information in
devtools becomes somewhat less useful; it will no longer give reasons
for invalidations when style sheets change. Fixing this would probably
involve extending the protocol, although I haven't looked deeply into
this.Bug: 1444522
Change-Id: Ib95cf8d215bf4e7b58ab1955ebc1f3c7e31aead8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4783456
Commit-Queue: Steinar H Gunderson \<sesse@chromium.org>
Reviewed-by: Adithya Srinivasan \<adithyas@chromium.org>
Reviewed-by: Rune Lillesveen \<futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1190433}Bug: 1444522
Change-Id: I522f99ee0fcc59d52d396d92a9af682f6be67a60Reviewed-on: https://chromium-review.googlesource.com/4830242
WPT-Export-Revision: 1a7b325c7165aa6f0fe3c6303b5b78e95bbc43d1
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
Assignee | ||
Comment 2•2 years ago
|
||
Assignee | ||
Comment 3•2 years ago
|
||
Assignee | ||
Comment 4•2 years ago
|
||
Assignee | ||
Comment 5•2 years ago
|
||
Comment 7•2 years ago
|
||
bugherder |
Description
•