Invalidate on tree mutations
Created attachment 445124 [details] Patch
This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess
Created attachment 445126 [details] Patch
Created attachment 445127 [details] Patch
Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/31743
Created attachment 445134 [details] Patch
Committed r286169 (244552@main): <https://commits.webkit.org/244552@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 445134 [details].
<rdar://problem/85754298>
Reopen for a followup to fix perf regression.
Created attachment 445214 [details] Patch
Committed r286188 (244570@main): <https://commits.webkit.org/244570@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 445214 [details].
Unfortunately, Lea Verou's testcase with DOM modification in `setTimeout` (https://codepen.io/leaverou/pen/mdBMMrB) still does not work for me in TP 139 on MacBook Air M1/MacOS Monterey 12.2. Both `.has.empty` and `.has.nth` elements stay pink after `setTimeout` fires and modifies their subtree. Only after I either open the Inspector for the first time, modify the CSS in the CodePen panel, or modify `document.styleSheets` after modifying the subtree in the `setTimeout` callback (e.g. add a new valid `cssRule`), these elements become green. Could you please look into this issue again?
The test case appears to work fine in trunk, I think STP 139 just doesn't have the fix yet. It might have been fixed in bug 234842.
Generally it is a good idea to file a new bug for each issue as that ensures they don't get lost. No need to worry about duplicates, we can sort those out.