servo/tests/wpt/meta/css/selectors/invalidation
Jonathan Schwender 97f544aa20
dom: Optimize IFrameCollection::validate (#38196)
The `IFrameCollection` was previously rebuilt too often. This PR tries
to address the todo, to only rebuild the IFrameCollection when
necessary.

Testing: `CSS Selector Invalidation: :has() invalidation should not be
O(n^2)` wpt-test changed status from timeout to failed.
Fixes: #38131 (IFrameCollection::validate accounts for 30% of script
time in DOM heavy scenarios)


Co-authored-by: sharpshooter_pt <ibluegalaxy_taoj@163.com>

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-07-22 03:54:16 +00:00
..
any-link-attribute-removal.html.ini Update web-platform-tests to revision b'a85f0dfe538b9cb894388a65dba7a2a21db050c7' (#30879) 2023-12-17 11:15:38 +00:00
any-link-pseudo.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
attribute-or-elemental-selectors-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
child-indexed-pseudo-classes-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
defined-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
dir-pseudo-class-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
empty-pseudo-in-has.html.ini Sync WPT with upstream (04-10-2023) (#30493) 2023-10-06 00:51:48 +00:00
has-append-first-node.html.ini Update web-platform-tests to revision b'a10b8c0164b4c4521040898ee9394738aca488b0' (#31144) 2024-01-21 06:53:06 +00:00
has-complexity.html.ini dom: Optimize IFrameCollection::validate (#38196) 2025-07-22 03:54:16 +00:00
has-css-nesting-shared.html.ini Sync WPT with upstream (12-11-2023) (#30724) 2023-11-15 05:55:31 +00:00
has-in-adjacent-position.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-in-ancestor-position.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-in-parent-position.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-in-sibling-position.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-invalidation-after-removing-non-first-element.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-invalidation-first-in-sibling-chain.html.ini Sync WPT with upstream (06-07-2025) (#37901) 2025-07-06 08:33:30 +00:00
has-invalidation-for-wiping-an-element.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-pseudo-element.html.ini Sync WPT with upstream (24-10-2023) (#30607) 2023-10-25 07:26:53 +00:00
has-pseudoclass-only.html.ini Update web-platform-tests to revision b'bf49dde84c5f05613115d6146d109f0ec3900694' (#34483) 2024-12-05 05:23:07 +00:00
has-sibling-insertion-removal.html.ini Update web-platform-tests to revision b'a10b8c0164b4c4521040898ee9394738aca488b0' (#31144) 2024-01-21 06:53:06 +00:00
has-sibling.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-side-effect.html.ini Sync WPT with upstream (04-10-2023) (#30493) 2023-10-06 00:51:48 +00:00
has-unstyled.html.ini Sync WPT with upstream (04-10-2023) (#30493) 2023-10-06 00:51:48 +00:00
has-with-not.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-with-nth-child-sibling-remove.html.ini Sync WPT with upstream (18-05-2025) (#37040) 2025-05-18 01:43:27 +00:00
has-with-nth-child.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
has-with-pseudo-class.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
host-context-pseudo-class-in-has.html.ini Implement ShadowRoot.innerHtml attribute (#34335) 2024-11-22 17:07:01 +00:00
host-has-shadow-tree-element-at-nonsubject-position.html.ini Implement declarative shadow dom (#34964) 2025-03-17 09:41:34 +00:00
host-has-shadow-tree-element-at-subject-position.html.ini Implement declarative shadow dom (#34964) 2025-03-17 09:41:34 +00:00
host-pseudo-class-in-has.html.ini Implement ShadowRoot.innerHtml attribute (#34335) 2024-11-22 17:07:01 +00:00
input-pseudo-classes-in-has.html.ini Sync WPT with upstream (04-10-2023) (#30493) 2023-10-06 00:51:48 +00:00
insert-sibling-002.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
insert-sibling-003.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
insert-sibling-004.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
is-pseudo-containing-complex-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
is-pseudo-containing-sibling-relationship-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
is-where-pseudo-containing-hard-pseudo-and-never-matching.html.ini Update web-platform-tests to revision b'1a5b13545ae58e468ed11e4c21912a3faf3355ea' (#35384) 2025-02-09 01:38:02 +00:00
lang-pseudo-class-in-has-document-element.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
lang-pseudo-class-in-has-multiple-document-elements.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
lang-pseudo-class-in-has-xhtml.xhtml.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
lang-pseudo-class-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
link-pseudo-in-has.html.ini
location-pseudo-classes-in-has.html.ini
media-loading-pseudo-classes-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
media-pseudo-classes-in-has.html.ini
modal-pseudo-class-in-has.html.ini
negated-nth-child-when-ancestor-changes.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
negated-nth-last-child-when-ancestor-changes.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
not-pseudo-containing-complex-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
not-pseudo-containing-sibling-relationship-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-child-containing-ancestor.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-child-in-shadow-root.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-child-of-attr-largedom.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-child-of-attr.html.ini
nth-child-of-class-prefix.html.ini
nth-child-of-class.html.ini
nth-child-of-has.html.ini
nth-child-of-id-prefix.html.ini
nth-child-of-ids.html.ini
nth-child-of-in-ancestor.html.ini
nth-child-of-in-is.html.ini
nth-child-of-in-shadow-root.html.ini
nth-child-of-is.html.ini
nth-child-of-pseudo-class.html.ini
nth-child-of-sibling.html.ini
nth-child-when-ancestor-changes.html.ini
nth-child-when-sibling-changes.html.ini
nth-child-whole-subtree.html.ini Sync WPT with upstream (30-06-2024) (#32649) 2024-06-30 11:14:33 +00:00
nth-last-child-containing-ancestor.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-in-shadow-root.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-of-attr.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-of-class-prefix.html.ini
nth-last-child-of-class.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-of-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-of-id-prefix.html.ini
nth-last-child-of-ids.html.ini
nth-last-child-of-in-ancestor.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-of-in-is.html.ini
nth-last-child-of-in-shadow-root.html.ini
nth-last-child-of-is.html.ini
nth-last-child-of-pseudo-class.html.ini
nth-last-child-of-sibling.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-when-ancestor-changes.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
nth-last-child-when-sibling-changes.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00
part-dir.html.ini Add check for valid custom element name in element::attach_shadow (#34749) 2024-12-24 03:36:57 +00:00
part-lang.html.ini Add check for valid custom element name in element::attach_shadow (#34749) 2024-12-24 03:36:57 +00:00
placeholder-shown.html.ini Sync WPT with upstream (04-10-2023) (#30493) 2023-10-06 00:51:48 +00:00
state-in-has.html.ini Implement form-associated custom elements and their ElementInternals (#31980) 2024-04-11 13:17:11 +00:00
subject-has-invalidation-with-display-none-anchor-element.html.ini
target-pseudo-in-has.html.ini
typed-child-indexed-pseudo-classes-in-has.html.ini Run same tests for layout-2020 and layout-2013 (#30092) 2023-08-15 00:28:32 +00:00