summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/css/selectors
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/meta/css/selectors
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/css/selectors')
-rw-r--r--testing/web-platform/meta/css/selectors/__dir__.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/attribute-selectors/attribute-case/syntax.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/attribute-selectors/style-attribute-selector.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/first-child.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/first-letter-flag-001.html.ini6
-rw-r--r--testing/web-platform/meta/css/selectors/first-line-bidi-001.html.ini4
-rw-r--r--testing/web-platform/meta/css/selectors/first-line-bidi-002.html.ini4
-rw-r--r--testing/web-platform/meta/css/selectors/first-of-type.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-display-none-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-002.html.ini18
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-003.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-004.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-005.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-006.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-007.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-008.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-009.html.ini11
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-010.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-011.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-012.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-013.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-014.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-015.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-016.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-017-2.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-017.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-018-2.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-018.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-020.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-021.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-022.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-023.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-024.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-025.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-026.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-027.html.ini7
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-002.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-003.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-004.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-005.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-006.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-007.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-008-b.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-008.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-009.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-010.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-011.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-012.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-013.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-014.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-015.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-016.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-017.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-018.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-019.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-visible-script-focus-020.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-within-004.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-within-005.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-within-009.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-within-display-none-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/focus-within-shadow-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/has-argument-with-explicit-scope.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/has-basic.html.ini17
-rw-r--r--testing/web-platform/meta/css/selectors/has-matches-to-uninserted-elements.html.ini17
-rw-r--r--testing/web-platform/meta/css/selectors/has-relative-argument.html.ini83
-rw-r--r--testing/web-platform/meta/css/selectors/has-specificity.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/hover-002.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-006.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-007.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-008.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-009.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-010.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-011.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-012.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-014.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-015.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-016.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-021.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-022.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-024.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-025.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-026.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-027.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-028.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-029.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-030.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-031.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-032.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-034.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-035.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-036.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-041.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-042.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-044.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-045.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-046.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-047.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-048.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-049.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-050.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-051.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-052.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-054.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-055.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-056.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini39
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini81
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/defined.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/empty-pseudo-in-has.html.ini8
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/enabled-disabled.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/first-child-last-child.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html.ini7
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-complexity.html.ini20
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-in-adjacent-position.html.ini314
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-in-ancestor-position.html.ini383
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-in-parent-position.html.ini179
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-in-sibling-position.html.ini353
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini6
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-sibling.html.ini107
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-with-not.html.ini32
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/has-with-pseudo-class.html.ini44
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/host-pseudo-class-in-has.html.ini14
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini29
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/insert-sibling-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/insert-sibling-002.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/insert-sibling-003.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/insert-sibling-004.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini404
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/is.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/link-pseudo-in-has.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/location-pseudo-classes-in-has.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/media-pseudo-classes-in-has.html.ini10
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/modal-pseudo-class-in-has.html.ini15
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/not-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/not-002.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini449
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/selectorText-dynamic-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/sheet-going-away-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/sibling.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/subject-has-invalidation-with-display-none-anchor-element.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/target-pseudo-in-has.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini146
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/user-action-pseudo-classes-in-has.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/invalidation/where.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-default-ns-003.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-nested.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-specificity-shadow.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-specificity.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-basic.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-error-recovery.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-not.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-parsing.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-pseudo-classes.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-shadow.html.ini5
-rw-r--r--testing/web-platform/meta/css/selectors/is-where-visited.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/last-child.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/last-of-type.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/media/media-loading-state.html.ini10
-rw-r--r--testing/web-platform/meta/css/selectors/media/media-playback-state.html.ini13
-rw-r--r--testing/web-platform/meta/css/selectors/media/sound-state.html.ini8
-rw-r--r--testing/web-platform/meta/css/selectors/missing-right-token.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/modal-pseudo-class.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/not-complex.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/not-default-ns-003.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/not-specificity.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-and-nth-last-child.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-attribute.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-classname-002.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-classname.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-complex-selector.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-compound-selector.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-has.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-no-space-after-of.html.ini4
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-not.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-nth-child.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-tagname.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-of-universal-selector.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-specificity-1.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-specificity-2.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-specificity-3.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-child-specificity-4.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-classname.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-complex-selector.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-compound-selector.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-no-space-after-of.html.ini4
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-1.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-2.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-of-tagname.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-specificity-1.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-specificity-2.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-specificity-3.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/nth-last-child-specificity-4.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/only-child.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-focus-visible.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini11
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-has.html.ini20
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-id.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-not.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-sibling.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-universal.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/parsing/parse-where.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/pseudo-enabled-disabled.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/remove-hovered-element.html.ini2
-rw-r--r--testing/web-platform/meta/css/selectors/scope-selector.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/selector-placeholder-shown-emptify-placeholder.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/selectors-case-sensitive-001.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/user-invalid.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/user-valid.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/webkit-pseudo-element.html.ini3
-rw-r--r--testing/web-platform/meta/css/selectors/x-pseudo-element.html.ini3
214 files changed, 3401 insertions, 0 deletions
diff --git a/testing/web-platform/meta/css/selectors/__dir__.ini b/testing/web-platform/meta/css/selectors/__dir__.ini
new file mode 100644
index 0000000000..481f0281ab
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/__dir__.ini
@@ -0,0 +1,3 @@
+lsan-disabled: true
+prefs: [gfx.font_rendering.fallback.async:false, layout.css.has-selector.enabled:true, dom.focus.fixup:true]
+leak-threshold: [default:3276800, tab:460800]
diff --git a/testing/web-platform/meta/css/selectors/attribute-selectors/attribute-case/syntax.html.ini b/testing/web-platform/meta/css/selectors/attribute-selectors/attribute-case/syntax.html.ini
new file mode 100644
index 0000000000..f6a7d109e4
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/attribute-selectors/attribute-case/syntax.html.ini
@@ -0,0 +1,3 @@
+[syntax.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/attribute-selectors/style-attribute-selector.html.ini b/testing/web-platform/meta/css/selectors/attribute-selectors/style-attribute-selector.html.ini
new file mode 100644
index 0000000000..59f78209e1
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/attribute-selectors/style-attribute-selector.html.ini
@@ -0,0 +1,3 @@
+[style-attribute-selector.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/first-child.html.ini b/testing/web-platform/meta/css/selectors/first-child.html.ini
new file mode 100644
index 0000000000..884d75c879
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/first-child.html.ini
@@ -0,0 +1,3 @@
+[first-child.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/first-letter-flag-001.html.ini b/testing/web-platform/meta/css/selectors/first-letter-flag-001.html.ini
new file mode 100644
index 0000000000..1f011bcd66
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/first-letter-flag-001.html.ini
@@ -0,0 +1,6 @@
+[first-letter-flag-001.html]
+ expected:
+ if (os == "win") and not fission and not swgl and debug and (processor == "x86"): [PASS, FAIL]
+ if (os == "win") and not fission and not swgl and not debug and (processor == "x86_64"): [PASS, FAIL]
+ if (os == "linux") and not debug: [PASS, FAIL]
+ if (os == "mac") and not debug: [PASS, FAIL]
diff --git a/testing/web-platform/meta/css/selectors/first-line-bidi-001.html.ini b/testing/web-platform/meta/css/selectors/first-line-bidi-001.html.ini
new file mode 100644
index 0000000000..13211144a7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/first-line-bidi-001.html.ini
@@ -0,0 +1,4 @@
+[first-line-bidi-001.html]
+ fuzzy:
+ if (os == "linux"): maxDifference=63;totalPixels=0-26
+ if (os == "win"): maxDifference=63;totalPixels=0-44
diff --git a/testing/web-platform/meta/css/selectors/first-line-bidi-002.html.ini b/testing/web-platform/meta/css/selectors/first-line-bidi-002.html.ini
new file mode 100644
index 0000000000..aa281457d4
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/first-line-bidi-002.html.ini
@@ -0,0 +1,4 @@
+[first-line-bidi-002.html]
+ fuzzy:
+ if (os == "mac"): maxDifference=99-120;totalPixels=0-18
+ if (os == "win"): maxDifference=13-29;totalPixels=0-18
diff --git a/testing/web-platform/meta/css/selectors/first-of-type.html.ini b/testing/web-platform/meta/css/selectors/first-of-type.html.ini
new file mode 100644
index 0000000000..47e7d5fcdc
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/first-of-type.html.ini
@@ -0,0 +1,3 @@
+[first-of-type.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-display-none-001.html.ini b/testing/web-platform/meta/css/selectors/focus-display-none-001.html.ini
new file mode 100644
index 0000000000..480730b5ed
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-display-none-001.html.ini
@@ -0,0 +1,3 @@
+[focus-display-none-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-001.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-001.html.ini
new file mode 100644
index 0000000000..93ee415fba
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-001.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-002.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-002.html.ini
new file mode 100644
index 0000000000..07d0f21ce7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-002.html.ini
@@ -0,0 +1,18 @@
+[focus-visible-002.html]
+ expected:
+ if (os == "linux") and not fission and not debug: [OK, ERROR]
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Focus element INPUT#input9 via mouse should match :focus-visible as it supports keyboard input]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ if (os == "android") and not debug: [PASS, FAIL]
+
+ [Focus element INPUT#input10 via mouse should match :focus-visible as it supports keyboard input]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ if (os == "android") and not debug: [PASS, FAIL]
+
+ [Focus element INPUT#input12 via mouse should match :focus-visible as it supports keyboard input]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ if (os == "android") and not debug: [PASS, FAIL]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-003.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-003.html.ini
new file mode 100644
index 0000000000..357d017e67
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-003.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-003.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-004.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-004.html.ini
new file mode 100644
index 0000000000..7710252928
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-004.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-004.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-005.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-005.html.ini
new file mode 100644
index 0000000000..025a5e3542
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-005.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-005.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-006.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-006.html.ini
new file mode 100644
index 0000000000..cc2e692065
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-006.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-006.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-007.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-007.html.ini
new file mode 100644
index 0000000000..da94911bff
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-007.html.ini
@@ -0,0 +1,5 @@
+[focus-visible-007.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Using keyboard while element is focused should trigger :focus-visible; using mouse without moving focus should not cancel it; moving focus using mouse should cancel it.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-008.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-008.html.ini
new file mode 100644
index 0000000000..4b38185bf4
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-008.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-008.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-009.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-009.html.ini
new file mode 100644
index 0000000000..d076812454
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-009.html.ini
@@ -0,0 +1,11 @@
+[focus-visible-009.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Autofocus should match :focus-visible]
+ expected:
+ if debug and (os == "win") and (processor == "x86_64") and not swgl: [PASS, FAIL]
+ if debug and (os == "linux") and not fission and not swgl: [PASS, FAIL]
+ if not debug and (os == "linux") and not fission: [PASS, FAIL]
+ if not debug and (os == "android"): [PASS, FAIL]
+ if not debug and (os == "mac"): [PASS, FAIL]
+ if not debug and (os == "win"): [PASS, FAIL]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-010.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-010.html.ini
new file mode 100644
index 0000000000..e28e87c1d7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-010.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-010.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-011.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-011.html.ini
new file mode 100644
index 0000000000..6b67554202
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-011.html.ini
@@ -0,0 +1,5 @@
+[focus-visible-011.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [:focus-visible matches even if preventDefault() is called]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-012.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-012.html.ini
new file mode 100644
index 0000000000..4661071ffd
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-012.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-012.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-013.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-013.html.ini
new file mode 100644
index 0000000000..e03836c60f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-013.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-013.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-014.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-014.html.ini
new file mode 100644
index 0000000000..2820e61d1b
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-014.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-014.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-015.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-015.html.ini
new file mode 100644
index 0000000000..e0377cafe4
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-015.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-015.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-016.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-016.html.ini
new file mode 100644
index 0000000000..d1d48a65da
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-016.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-016.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-017-2.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-017-2.html.ini
new file mode 100644
index 0000000000..94316878c1
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-017-2.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-017-2.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-017.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-017.html.ini
new file mode 100644
index 0000000000..c8a881827e
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-017.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-017.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-018-2.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-018-2.html.ini
new file mode 100644
index 0000000000..cf4c47458a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-018-2.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-018-2.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-018.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-018.html.ini
new file mode 100644
index 0000000000..e11c68bbf8
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-018.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-018.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-020.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-020.html.ini
new file mode 100644
index 0000000000..50548834c6
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-020.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-020.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-021.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-021.html.ini
new file mode 100644
index 0000000000..a827365495
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-021.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-021.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-022.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-022.tentative.html.ini
new file mode 100644
index 0000000000..041e0bc4e9
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-022.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-022.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-023.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-023.html.ini
new file mode 100644
index 0000000000..aa49a10ae6
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-023.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-023.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-024.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-024.html.ini
new file mode 100644
index 0000000000..11e0ca8b57
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-024.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-024.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-025.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-025.html.ini
new file mode 100644
index 0000000000..f06cf068c7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-025.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-025.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-026.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-026.html.ini
new file mode 100644
index 0000000000..3d137cc533
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-026.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-026.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-027.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-027.html.ini
new file mode 100644
index 0000000000..6942231549
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-027.html.ini
@@ -0,0 +1,7 @@
+[focus-visible-027.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [CSS Test (Selectors): :focus-visible after click and input type change]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ if (os == "android") and not debug: [PASS, FAIL]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-001.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-001.html.ini
new file mode 100644
index 0000000000..7283871be9
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-001.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-002.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-002.tentative.html.ini
new file mode 100644
index 0000000000..14f5441f4d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-002.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-002.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-003.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-003.tentative.html.ini
new file mode 100644
index 0000000000..3d2144dbeb
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-003.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-003.tentative.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-004.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-004.html.ini
new file mode 100644
index 0000000000..7f3c86f17d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-004.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-004.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-005.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-005.html.ini
new file mode 100644
index 0000000000..f2d3fe4961
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-005.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-005.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-006.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-006.tentative.html.ini
new file mode 100644
index 0000000000..c119858cc2
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-006.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-006.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-007.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-007.tentative.html.ini
new file mode 100644
index 0000000000..f71ffb84a2
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-007.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-007.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-008-b.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-008-b.html.ini
new file mode 100644
index 0000000000..9e713b032b
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-008-b.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-008-b.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-008.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-008.html.ini
new file mode 100644
index 0000000000..997578b21b
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-008.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-008.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-009.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-009.html.ini
new file mode 100644
index 0000000000..012a4aa66e
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-009.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-009.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-010.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-010.html.ini
new file mode 100644
index 0000000000..dc528dac8e
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-010.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-010.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-011.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-011.html.ini
new file mode 100644
index 0000000000..5d54abbafe
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-011.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-011.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-012.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-012.html.ini
new file mode 100644
index 0000000000..ddf07d7e3a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-012.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-012.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-013.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-013.html.ini
new file mode 100644
index 0000000000..991e5f0404
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-013.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-013.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-014.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-014.html.ini
new file mode 100644
index 0000000000..fafd3d1d13
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-014.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-014.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-015.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-015.html.ini
new file mode 100644
index 0000000000..5bfe83458c
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-015.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-015.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-016.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-016.tentative.html.ini
new file mode 100644
index 0000000000..c0ed23d15f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-016.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-016.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-017.tentative.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-017.tentative.html.ini
new file mode 100644
index 0000000000..e551ea7715
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-017.tentative.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-017.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-018.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-018.html.ini
new file mode 100644
index 0000000000..8f06d1a897
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-018.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-018.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-019.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-019.html.ini
new file mode 100644
index 0000000000..d090e6528a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-019.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-019.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-visible-script-focus-020.html.ini b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-020.html.ini
new file mode 100644
index 0000000000..d4360c612a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-visible-script-focus-020.html.ini
@@ -0,0 +1,3 @@
+[focus-visible-script-focus-020.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-within-004.html.ini b/testing/web-platform/meta/css/selectors/focus-within-004.html.ini
new file mode 100644
index 0000000000..3ffe6ae964
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-within-004.html.ini
@@ -0,0 +1,3 @@
+[focus-within-004.html]
+ expected:
+ if (processor == "x86") and not debug: ["PASS", "FAIL"]
diff --git a/testing/web-platform/meta/css/selectors/focus-within-005.html.ini b/testing/web-platform/meta/css/selectors/focus-within-005.html.ini
new file mode 100644
index 0000000000..9845306fcc
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-within-005.html.ini
@@ -0,0 +1,3 @@
+[focus-within-005.html]
+ expected:
+ if (processor == "x86") and not debug: ["PASS", "FAIL"]
diff --git a/testing/web-platform/meta/css/selectors/focus-within-009.html.ini b/testing/web-platform/meta/css/selectors/focus-within-009.html.ini
new file mode 100644
index 0000000000..e150fa0b91
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-within-009.html.ini
@@ -0,0 +1,3 @@
+[focus-within-009.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-within-display-none-001.html.ini b/testing/web-platform/meta/css/selectors/focus-within-display-none-001.html.ini
new file mode 100644
index 0000000000..31dd5d6d93
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-within-display-none-001.html.ini
@@ -0,0 +1,3 @@
+[focus-within-display-none-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/focus-within-shadow-001.html.ini b/testing/web-platform/meta/css/selectors/focus-within-shadow-001.html.ini
new file mode 100644
index 0000000000..8735b93b74
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/focus-within-shadow-001.html.ini
@@ -0,0 +1,3 @@
+[focus-within-shadow-001.html]
+ expected:
+ if (processor == "x86") and debug: ["PASS", "FAIL"]
diff --git a/testing/web-platform/meta/css/selectors/has-argument-with-explicit-scope.html.ini b/testing/web-platform/meta/css/selectors/has-argument-with-explicit-scope.html.ini
new file mode 100644
index 0000000000..b9a02fdf23
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/has-argument-with-explicit-scope.html.ini
@@ -0,0 +1,5 @@
+[has-argument-with-explicit-scope.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [:has(:scope .c) matches expected elements on scope1]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/has-basic.html.ini b/testing/web-platform/meta/css/selectors/has-basic.html.ini
new file mode 100644
index 0000000000..97498c04cb
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/has-basic.html.ini
@@ -0,0 +1,17 @@
+[has-basic.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [:has(> .target) matches expected elements]
+ expected: FAIL
+
+ [.parent:has(~ #h) matches expected elements]
+ expected: FAIL
+
+ [:has(+ #h) matches expected elements]
+ expected: FAIL
+
+ [:has(> .parent) matches expected elements]
+ expected: FAIL
+
+ [:has(> .parent, > .target) matches expected elements]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/has-matches-to-uninserted-elements.html.ini b/testing/web-platform/meta/css/selectors/has-matches-to-uninserted-elements.html.ini
new file mode 100644
index 0000000000..d02e80c3ee
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/has-matches-to-uninserted-elements.html.ini
@@ -0,0 +1,17 @@
+[has-matches-to-uninserted-elements.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [:has(> child) matches expectedly]
+ expected: FAIL
+
+ [:has(~ direct_sibling) matches expectedly]
+ expected: FAIL
+
+ [:has(+ direct_sibling) matches expectedly]
+ expected: FAIL
+
+ [:has(~ indirect_sibling) matches expectedly]
+ expected: FAIL
+
+ [:has(> *) matches expectedly]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/has-relative-argument.html.ini b/testing/web-platform/meta/css/selectors/has-relative-argument.html.ini
new file mode 100644
index 0000000000..fcc1826cc7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/has-relative-argument.html.ini
@@ -0,0 +1,83 @@
+[has-relative-argument.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [.x:has(.d .e) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .a) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .a > .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .a .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .a + .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .a ~ .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .a) matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .a > .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .a .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .a + .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .a ~ .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .a) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .a > .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .a .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .a + .b) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .a + .b > .c) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .a + .b .c) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .d) matches expected elements]
+ expected: FAIL
+
+ [.x:has(> .d) .f matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .d ~ .e) matches expected elements]
+ expected: FAIL
+
+ [.x:has(~ .d ~ .e) ~ .f matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .d ~ .e) matches expected elements]
+ expected: FAIL
+
+ [.x:has(+ .d ~ .e) ~ .f matches expected elements]
+ expected: FAIL
+
+ [.y:has(> .g .h) matches expected elements]
+ expected: FAIL
+
+ [.y:has(.g .h) matches expected elements]
+ expected: FAIL
+
+ [.y:has(> .g .h) .i matches expected elements]
+ expected: FAIL
+
+ [.d ~ .x:has(~ .e) matches expected elements]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/has-specificity.html.ini b/testing/web-platform/meta/css/selectors/has-specificity.html.ini
new file mode 100644
index 0000000000..43e8787f7d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/has-specificity.html.ini
@@ -0,0 +1,3 @@
+[has-specificity.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/hover-002.html.ini b/testing/web-platform/meta/css/selectors/hover-002.html.ini
new file mode 100644
index 0000000000..d85475e731
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/hover-002.html.ini
@@ -0,0 +1,3 @@
+[hover-002.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-006.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-006.html.ini
new file mode 100644
index 0000000000..f919976609
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-006.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-006.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-007.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-007.html.ini
new file mode 100644
index 0000000000..037a0451d5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-007.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-007.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-008.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-008.html.ini
new file mode 100644
index 0000000000..71aa39a5ce
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-008.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-008.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-009.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-009.html.ini
new file mode 100644
index 0000000000..a92443f3f5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-009.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-009.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-010.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-010.html.ini
new file mode 100644
index 0000000000..e50ad30768
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-010.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-010.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-011.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-011.html.ini
new file mode 100644
index 0000000000..8ff3c4e368
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-011.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-011.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-012.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-012.html.ini
new file mode 100644
index 0000000000..40bbd128f4
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-012.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-012.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-014.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-014.html.ini
new file mode 100644
index 0000000000..8b46da92cd
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-014.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-014.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-015.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-015.html.ini
new file mode 100644
index 0000000000..6ebb289e8b
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-015.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-015.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-016.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-016.html.ini
new file mode 100644
index 0000000000..a63d4b0c6a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-016.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-016.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-021.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-021.html.ini
new file mode 100644
index 0000000000..c9e6c75232
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-021.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-021.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-022.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-022.html.ini
new file mode 100644
index 0000000000..5a54396989
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-022.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-022.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-024.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-024.html.ini
new file mode 100644
index 0000000000..99c901e97f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-024.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-024.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-025.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-025.html.ini
new file mode 100644
index 0000000000..69391fc797
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-025.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-025.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-026.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-026.html.ini
new file mode 100644
index 0000000000..6c17c51947
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-026.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-026.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-027.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-027.html.ini
new file mode 100644
index 0000000000..e2d9b4cb78
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-027.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-027.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-028.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-028.html.ini
new file mode 100644
index 0000000000..212cc8291c
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-028.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-028.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-029.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-029.html.ini
new file mode 100644
index 0000000000..b12592c97a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-029.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-029.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-030.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-030.html.ini
new file mode 100644
index 0000000000..8308675ed1
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-030.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-030.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-031.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-031.html.ini
new file mode 100644
index 0000000000..8750a08894
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-031.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-031.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-032.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-032.html.ini
new file mode 100644
index 0000000000..796085524e
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-032.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-032.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-034.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-034.html.ini
new file mode 100644
index 0000000000..f6dfd3ec62
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-034.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-034.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-035.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-035.html.ini
new file mode 100644
index 0000000000..5b46c31852
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-035.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-035.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-036.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-036.html.ini
new file mode 100644
index 0000000000..0e8380a567
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-036.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-036.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-041.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-041.html.ini
new file mode 100644
index 0000000000..9e012c321a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-041.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-041.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-042.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-042.html.ini
new file mode 100644
index 0000000000..a1bc104da5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-042.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-042.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-044.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-044.html.ini
new file mode 100644
index 0000000000..2240163c55
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-044.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-044.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-045.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-045.html.ini
new file mode 100644
index 0000000000..e4006e9231
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-045.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-045.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-046.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-046.html.ini
new file mode 100644
index 0000000000..8c1e7921e5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-046.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-046.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-047.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-047.html.ini
new file mode 100644
index 0000000000..53402b119f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-047.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-047.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-048.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-048.html.ini
new file mode 100644
index 0000000000..1a9eb3fc63
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-048.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-048.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-049.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-049.html.ini
new file mode 100644
index 0000000000..bff0c09519
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-049.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-049.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-050.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-050.html.ini
new file mode 100644
index 0000000000..f2e4703d7d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-050.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-050.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-051.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-051.html.ini
new file mode 100644
index 0000000000..2f5c3484a5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-051.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-051.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-052.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-052.html.ini
new file mode 100644
index 0000000000..050aeaa274
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-052.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-052.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-054.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-054.html.ini
new file mode 100644
index 0000000000..47714c5c91
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-054.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-054.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-055.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-055.html.ini
new file mode 100644
index 0000000000..43a32b9ae0
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-055.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-055.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-056.html.ini b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-056.html.ini
new file mode 100644
index 0000000000..d9711a7c41
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/i18n/css3-selectors-lang-056.html.ini
@@ -0,0 +1,3 @@
+[css3-selectors-lang-056.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini
new file mode 100644
index 0000000000..a192998bc8
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html.ini
@@ -0,0 +1,39 @@
+[attribute-or-elemental-selectors-in-has.html]
+ [add .child to #div_child: div#div_subject.color]
+ expected: FAIL
+
+ [add .descendant to #div_child: div#div_subject.color]
+ expected: FAIL
+
+ [add .descendant to #div_grandchild: div#div_subject.color]
+ expected: FAIL
+
+ [set descendant to #div_grandchild[attrname\]: div#div_subject.color]
+ expected: FAIL
+
+ [change #div_grandchild to #div_descendant: div#div_subject.color]
+ expected: FAIL
+
+ [add descendant to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add "div > descendant" to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add div.child to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add "div > div.descendant" to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add div#div_descendant to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add "div#div_descendant" to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add div[attrname\] to #div_subject: div#div_subject.color]
+ expected: FAIL
+
+ [add "div > div[attrname\]" to #div_subject: div#div_subject.color]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini
new file mode 100644
index 0000000000..4ff336cd40
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html.ini
@@ -0,0 +1,81 @@
+[child-indexed-pseudo-classes-in-has.html]
+ [Prepend #div1.green: #only_child]
+ expected: FAIL
+
+ [Prepend #div1.green: #first_child]
+ expected: FAIL
+
+ [Prepend #div1.green: #last_child]
+ expected: FAIL
+
+ [Prepend #div1.green: #nth_child_3n_1]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #first_child]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #last_child]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #nth_child_3n_1]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #nth_child_3n_2]
+ expected: FAIL
+
+ [Prepend #div3.orange: #first_child]
+ expected: FAIL
+
+ [Prepend #div3.orange: #last_child]
+ expected: FAIL
+
+ [Prepend #div3.orange: #nth_child_3n_1]
+ expected: FAIL
+
+ [Prepend #div3.orange: #nth_child_3n_2]
+ expected: FAIL
+
+ [Prepend #div3.orange: #nth_child_3n]
+ expected: FAIL
+
+ [Prepend #div4: #last_child]
+ expected: FAIL
+
+ [Prepend #div4: #nth_child_3n_1]
+ expected: FAIL
+
+ [Prepend #div4: #nth_child_3n_2]
+ expected: FAIL
+
+ [Prepend #div4: #nth_child_3n]
+ expected: FAIL
+
+ [Prepend #div5: #last_child]
+ expected: FAIL
+
+ [Prepend #div5: #nth_child_3n_1]
+ expected: FAIL
+
+ [Prepend #div5: #nth_child_3n_2]
+ expected: FAIL
+
+ [Prepend #div5: #nth_child_3n]
+ expected: FAIL
+
+ [Remove #div1: #last_child]
+ expected: FAIL
+
+ [Remove #div1: #nth_child_3n_1]
+ expected: FAIL
+
+ [Remove #div1: #nth_child_3n]
+ expected: FAIL
+
+ [Remove #div2: #last_child]
+ expected: FAIL
+
+ [Remove #div2: #nth_child_3n]
+ expected: FAIL
+
+ [Remove #div4: #only_child]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/defined.html.ini b/testing/web-platform/meta/css/selectors/invalidation/defined.html.ini
new file mode 100644
index 0000000000..710b7702b5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/defined.html.ini
@@ -0,0 +1,3 @@
+[defined.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/empty-pseudo-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/empty-pseudo-in-has.html.ini
new file mode 100644
index 0000000000..dd67b0e45f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/empty-pseudo-in-has.html.ini
@@ -0,0 +1,8 @@
+[empty-pseudo-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Insert div#child to #subject]
+ expected: FAIL
+
+ [Insert div to div.#child]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/enabled-disabled.html.ini b/testing/web-platform/meta/css/selectors/invalidation/enabled-disabled.html.ini
new file mode 100644
index 0000000000..b0d268d36f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/enabled-disabled.html.ini
@@ -0,0 +1,3 @@
+[enabled-disabled.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/first-child-last-child.html.ini b/testing/web-platform/meta/css/selectors/invalidation/first-child-last-child.html.ini
new file mode 100644
index 0000000000..761439c092
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/first-child-last-child.html.ini
@@ -0,0 +1,3 @@
+[first-child-last-child.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html.ini
new file mode 100644
index 0000000000..94d29a6f79
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html.ini
@@ -0,0 +1,7 @@
+[fullscreen-pseudo-class-in-has.html]
+ expected: ERROR
+ [:fullscreen pseudo-class invalidation with requestFullscreen + exitFullscreen]
+ expected: FAIL
+
+ [:fullscreen pseudo-class invalidation with requestFullscreen + remove]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-complexity.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-complexity.html.ini
new file mode 100644
index 0000000000..a2d1372257
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-complexity.html.ini
@@ -0,0 +1,20 @@
+[has-complexity.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [After appending 25000 elements. This should not time out.]
+ expected: FAIL
+
+ [After appending another 25000 elements. This should not time out.]
+ expected: FAIL
+
+ [After appending div with 25000 elements. This should not time out.]
+ expected: FAIL
+
+ [After removing div with 25000 elements. This should not time out.]
+ expected: FAIL
+
+ [After removing 25000 elements one-by-one. This should not time out.]
+ expected: FAIL
+
+ [After removing the remaining elements. This should not time out.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-in-adjacent-position.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-in-adjacent-position.html.ini
new file mode 100644
index 0000000000..7268b38d02
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-in-adjacent-position.html.ini
@@ -0,0 +1,314 @@
+[has-in-adjacent-position.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [add .test to previous_sibling_child]
+ expected: FAIL
+
+ [add .test to previous_sibling_descendant]
+ expected: FAIL
+
+ [add .test to subject]
+ expected: FAIL
+
+ [add .test to next_sibling]
+ expected: FAIL
+
+ [add .test to next_sibling_child]
+ expected: FAIL
+
+ [add .test to next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before previous_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before next_sibling]
+ expected: FAIL
+
+ [insert element div.test before next_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after previous_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after subject]
+ expected: FAIL
+
+ [insert element div.test after next_sibling]
+ expected: FAIL
+
+ [insert element div.test after next_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after next_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before previous_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before subject]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after previous_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after previous_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after subject]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before previous_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after previous_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before previous_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after previous_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after previous_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling_descendant]
+ expected: FAIL
+
+ [remove the class 'test' from the element in the tree inserted before subject]
+ expected: FAIL
+
+ [remove the class 'test' from the element in the tree inserted after previous_sibling]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-in-ancestor-position.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-in-ancestor-position.html.ini
new file mode 100644
index 0000000000..4b5179f883
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-in-ancestor-position.html.ini
@@ -0,0 +1,383 @@
+[has-in-ancestor-position.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [add .test to subject_parent]
+ expected: FAIL
+
+ [add .test to subject]
+ expected: FAIL
+
+ [add .test to subject_child]
+ expected: FAIL
+
+ [add .test to subject_descendant]
+ expected: FAIL
+
+ [add .test to next_sibling]
+ expected: FAIL
+
+ [add .test to next_sibling_child]
+ expected: FAIL
+
+ [add .test to next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before subject_parent]
+ expected: FAIL
+
+ [insert element div.test before subject]
+ expected: FAIL
+
+ [insert element div.test before subject_child]
+ expected: FAIL
+
+ [insert element div.test before subject_descendant]
+ expected: FAIL
+
+ [insert element div.test before next_sibling]
+ expected: FAIL
+
+ [insert element div.test before next_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after subject_ancestor]
+ expected: FAIL
+
+ [insert element div.test after subject_parent]
+ expected: FAIL
+
+ [insert element div.test after subject]
+ expected: FAIL
+
+ [insert element div.test after subject_child]
+ expected: FAIL
+
+ [insert element div.test after subject_descendant]
+ expected: FAIL
+
+ [insert element div.test after next_sibling]
+ expected: FAIL
+
+ [insert element div.test after next_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after next_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before subject_parent]
+ expected: FAIL
+
+ [insert tree div>div.test before subject]
+ expected: FAIL
+
+ [insert tree div>div.test before subject_child]
+ expected: FAIL
+
+ [insert tree div>div.test before subject_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_ancestor]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_parent]
+ expected: FAIL
+
+ [insert tree div>div.test after subject]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_child]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject_parent]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject_parent]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject_parent]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_ancestor]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_ancestor]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_ancestor]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_parent]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject_parent]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject_parent]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject_parent]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_ancestor]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_ancestor]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_ancestor]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_parent]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling_descendant]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-in-parent-position.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-in-parent-position.html.ini
new file mode 100644
index 0000000000..964a5aff89
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-in-parent-position.html.ini
@@ -0,0 +1,179 @@
+[has-in-parent-position.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [add .test to subject]
+ expected: FAIL
+
+ [add .test to subject_child]
+ expected: FAIL
+
+ [add .test to subject_descendant]
+ expected: FAIL
+
+ [insert element div.test before subject]
+ expected: FAIL
+
+ [insert element div.test before subject_child]
+ expected: FAIL
+
+ [insert element div.test before subject_descendant]
+ expected: FAIL
+
+ [insert element div.test after subject_parent]
+ expected: FAIL
+
+ [insert element div.test after subject]
+ expected: FAIL
+
+ [insert element div.test after subject_child]
+ expected: FAIL
+
+ [insert element div.test after subject_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before subject]
+ expected: FAIL
+
+ [insert tree div>div.test before subject_child]
+ expected: FAIL
+
+ [insert tree div>div.test before subject_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_parent]
+ expected: FAIL
+
+ [insert tree div>div.test after subject]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_child]
+ expected: FAIL
+
+ [insert tree div>div.test after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_parent]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_parent]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_parent]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject_descendant]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-in-sibling-position.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-in-sibling-position.html.ini
new file mode 100644
index 0000000000..840f1848a7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-in-sibling-position.html.ini
@@ -0,0 +1,353 @@
+[has-in-sibling-position.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [add .test to previous_sibling_child]
+ expected: FAIL
+
+ [add .test to previous_sibling_descendant]
+ expected: FAIL
+
+ [add .test to subject]
+ expected: FAIL
+
+ [add .test to next_sibling]
+ expected: FAIL
+
+ [add .test to next_sibling_child]
+ expected: FAIL
+
+ [add .test to next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before previous_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before subject]
+ expected: FAIL
+
+ [insert element div.test before next_sibling]
+ expected: FAIL
+
+ [insert element div.test before next_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after previous_sibling]
+ expected: FAIL
+
+ [insert element div.test after previous_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after subject]
+ expected: FAIL
+
+ [insert element div.test after next_sibling]
+ expected: FAIL
+
+ [insert element div.test after next_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after next_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before previous_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before previous_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before subject]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before next_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after previous_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after previous_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after subject]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before previous_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after previous_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] after previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after previous_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after subject]
+ expected: FAIL
+
+ [insert element div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling_child]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element inserted after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element inserted again after next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div[test_attr\] after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before previous_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before previous_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again before next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] before next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after previous_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after previous_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after previous_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after previous_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after previous_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after previous_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after subject]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after subject]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after subject]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling_child]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling_child]
+ expected: FAIL
+
+ [add the class 'test' again to the element in the tree inserted after next_sibling_descendant]
+ expected: FAIL
+
+ [add the class 'test' to the element in the tree inserted again after next_sibling_descendant]
+ expected: FAIL
+
+ [insert element div>div[test_attr\] after next_sibling_descendant]
+ expected: FAIL
+
+ [remove the class 'test' from the element in the tree inserted before previous_sibling]
+ expected: FAIL
+
+ [remove the class 'test' from the element in the tree inserted before subject]
+ expected: FAIL
+
+ [remove the class 'test' from the element in the tree inserted after previous_sibling]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini
new file mode 100644
index 0000000000..f758a44ad4
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html.ini
@@ -0,0 +1,5 @@
+[has-invalidation-after-removing-non-first-element.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [remove descendant: div#subject.color]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini
new file mode 100644
index 0000000000..45884afd2a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html.ini
@@ -0,0 +1,6 @@
+[has-invalidation-for-wiping-an-element.html]
+ [color after inserting text and div > .descendant: div#subject.color]
+ expected: FAIL
+
+ [color after inserting text and #child > .descendant: div#subject.color]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-sibling.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-sibling.html.ini
new file mode 100644
index 0000000000..b3e3445300
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-sibling.html.ini
@@ -0,0 +1,107 @@
+[has-sibling.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [add .test to first_sibling]
+ expected: FAIL
+
+ [add .test to second_sibling]
+ expected: FAIL
+
+ [add .test to third_sibling]
+ expected: FAIL
+
+ [add .test to first_sibling_child]
+ expected: FAIL
+
+ [add .test to first_sibling_descendant]
+ expected: FAIL
+
+ [add .test to third_sibling_child]
+ expected: FAIL
+
+ [add .test to third_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before first_sibling]
+ expected: FAIL
+
+ [insert element div.test before second_sibling]
+ expected: FAIL
+
+ [insert element div.test before third_sibling]
+ expected: FAIL
+
+ [insert element div.test before first_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before first_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test before third_sibling_child]
+ expected: FAIL
+
+ [insert element div.test before third_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after first_sibling]
+ expected: FAIL
+
+ [insert element div.test after second_sibling]
+ expected: FAIL
+
+ [insert element div.test after third_sibling]
+ expected: FAIL
+
+ [insert element div.test after first_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after first_sibling_descendant]
+ expected: FAIL
+
+ [insert element div.test after third_sibling_child]
+ expected: FAIL
+
+ [insert element div.test after third_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before first_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before second_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before third_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test before first_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before first_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test before third_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test before third_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after first_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after second_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after third_sibling]
+ expected: FAIL
+
+ [insert tree div>div.test after first_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after first_sibling_descendant]
+ expected: FAIL
+
+ [insert tree div>div.test after third_sibling_child]
+ expected: FAIL
+
+ [insert tree div>div.test after third_sibling_descendant]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-with-not.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-with-not.html.ini
new file mode 100644
index 0000000000..b7d643a644
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-with-not.html.ini
@@ -0,0 +1,32 @@
+[has-with-not.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [remove .test to subject_child]
+ expected: FAIL
+
+ [remove .test to subject_descendant]
+ expected: FAIL
+
+ [insert element div before subject_child]
+ expected: FAIL
+
+ [insert element div before subject_descendant]
+ expected: FAIL
+
+ [insert element div after subject_child]
+ expected: FAIL
+
+ [insert element div after subject_descendant]
+ expected: FAIL
+
+ [insert tree div>div before subject_child]
+ expected: FAIL
+
+ [insert tree div>div before subject_descendant]
+ expected: FAIL
+
+ [insert tree div.test after subject_child]
+ expected: FAIL
+
+ [insert tree div.test after subject_descendant]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/has-with-pseudo-class.html.ini b/testing/web-platform/meta/css/selectors/invalidation/has-with-pseudo-class.html.ini
new file mode 100644
index 0000000000..df9c3f5c5c
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/has-with-pseudo-class.html.ini
@@ -0,0 +1,44 @@
+[has-with-pseudo-class.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Set checked on checkbox, testing subject]
+ expected: FAIL
+
+ [Set select on option]
+ expected: FAIL
+
+ [Set disabled on checkbox, testing subject]
+ expected: FAIL
+
+ [Set disabled on checkbox, testing subject3]
+ expected: FAIL
+
+ [Set disabled on option, testing subject]
+ expected: FAIL
+
+ [Set disabled on option, testing subject3]
+ expected: FAIL
+
+ [Set disabled on optgroup, testing subject]
+ expected: FAIL
+
+ [Set disabled on optgroup, testing subject2]
+ expected: FAIL
+
+ [Set disabled on optgroup, testing subject3]
+ expected: FAIL
+
+ [Set disabled on optgroup, testing subject4]
+ expected: FAIL
+
+ [Set value of text_input, testing subject]
+ expected: FAIL
+
+ [Set value of text_input, testing subject2]
+ expected: FAIL
+
+ [Set value of text_input, testing subject3]
+ expected: FAIL
+
+ [Set value of text_input, testing subject4]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/host-pseudo-class-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/host-pseudo-class-in-has.html.ini
new file mode 100644
index 0000000000..c0c220c4f9
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/host-pseudo-class-in-has.html.ini
@@ -0,0 +1,14 @@
+[host-pseudo-class-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [After adding 'a' to #host_parent: Check #subject1 color]
+ expected: FAIL
+
+ [After adding 'a' to #host_parent: Check #subject2 color]
+ expected: FAIL
+
+ [After adding 'a' to #host: Check #subject1 color]
+ expected: FAIL
+
+ [After adding 'a' to #host: Check #subject2 color]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini
new file mode 100644
index 0000000000..cd3b9fbf4f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/input-pseudo-classes-in-has.html.ini
@@ -0,0 +1,29 @@
+[input-pseudo-classes-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [:checked & :indeterminate invalidation on <input>]
+ expected: FAIL
+
+ [:indeterminate invalidation on <progress>]
+ expected: FAIL
+
+ [:disabled invalidation]
+ expected: FAIL
+
+ [:read-only invalidation]
+ expected: FAIL
+
+ [:valid invalidation]
+ expected: FAIL
+
+ [:default invalidation with input[type=radio\]]
+ expected: FAIL
+
+ [:required invalidation]
+ expected: FAIL
+
+ [:out-of-range invalidation]
+ expected: FAIL
+
+ [:placeholder-shown invalidation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-001.html.ini b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-001.html.ini
new file mode 100644
index 0000000000..21c4dc9672
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-001.html.ini
@@ -0,0 +1,3 @@
+[insert-sibling-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-002.html.ini b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-002.html.ini
new file mode 100644
index 0000000000..9c5c2fd229
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-002.html.ini
@@ -0,0 +1,3 @@
+[insert-sibling-002.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-003.html.ini b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-003.html.ini
new file mode 100644
index 0000000000..a030ae1e5f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-003.html.ini
@@ -0,0 +1,3 @@
+[insert-sibling-003.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-004.html.ini b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-004.html.ini
new file mode 100644
index 0000000000..666a26b7a8
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/insert-sibling-004.html.ini
@@ -0,0 +1,3 @@
+[insert-sibling-004.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini
new file mode 100644
index 0000000000..f8d3210199
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html.ini
@@ -0,0 +1,404 @@
+[is-pseudo-containing-complex-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('m') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #parent.classList.add('n') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('m') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #has_scope.classList.add('n') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('m') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:is(:is(.m, .n) .o)) \] #child.classList.add('n') : check #has_scope color]
+ expected: FAIL
+
+ [[ .red:has(#descendant:is(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .red:has(#descendant:is(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .red:has(#descendant:is(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .orangered:has(#descendant:is(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkred:has(#descendant:is(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .pink:has(#descendant:is(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #parent_previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #parent_previous) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #previous.classList.add('f_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('f_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] #direct_next.classList.add('f_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .invalid before #direct_next) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:is(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.add('f_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #previous) : (removal) check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (insertion) check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('f_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.add('f_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .invalid before #direct_next) : (removal) check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:is(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (insertion) check #descendant color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.add('f_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('f_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.add('f_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:is(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('f_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('f_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.add('f_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:is(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .yellow:has(~ #indirect_next:is(.h_has_scope .i)) \] #parent.classList.add('h_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .ivory:has(~ #indirect_next:is(.h_descendant .i)) #descendant \] #parent.classList.add('h_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .greenyellow:has(~ #indirect_next:is(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.add('h_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .khaki:has(~ #indirect_next:is(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('h_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.add('j_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:is(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.add('j_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (removal) check #descendant color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:is(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (insertion) check #descendant color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.add('j_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:is(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('j_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:is(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:is(.p + .c_has_scope ~ .d .e)) \] #previous.classList.remove('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.remove('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.remove('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:is(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.remove('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.remove('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:is(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.remove('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:is(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/is.html.ini b/testing/web-platform/meta/css/selectors/invalidation/is.html.ini
new file mode 100644
index 0000000000..8d2dfa6362
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/is.html.ini
@@ -0,0 +1,3 @@
+[is.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/link-pseudo-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/link-pseudo-in-has.html.ini
new file mode 100644
index 0000000000..7903844f10
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/link-pseudo-in-has.html.ini
@@ -0,0 +1,5 @@
+[link-pseudo-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [CSS Selectors Invalidation: :link, :visited :any-link, pseudo-class in :has() argument]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/location-pseudo-classes-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/location-pseudo-classes-in-has.html.ini
new file mode 100644
index 0000000000..fde2638b5d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/location-pseudo-classes-in-has.html.ini
@@ -0,0 +1,3 @@
+[location-pseudo-classes-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/media-pseudo-classes-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/media-pseudo-classes-in-has.html.ini
new file mode 100644
index 0000000000..54159bc4bc
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/media-pseudo-classes-in-has.html.ini
@@ -0,0 +1,10 @@
+[media-pseudo-classes-in-has.html]
+ expected: TIMEOUT
+ [Test :playing pseudo-classes]
+ expected: FAIL
+
+ [Test :seeking pseudo-class]
+ expected: FAIL
+
+ [Test :muted pseudo-class]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/css/selectors/invalidation/modal-pseudo-class-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/modal-pseudo-class-in-has.html.ini
new file mode 100644
index 0000000000..b46fda5685
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/modal-pseudo-class-in-has.html.ini
@@ -0,0 +1,15 @@
+[modal-pseudo-class-in-has.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT, OK]
+ ERROR
+ [:modal pseudo-class invalidation with showModal + close]
+ expected: FAIL
+
+ [:modal pseudo-class invalidation with showModal + remove]
+ expected: FAIL
+
+ [:modal pseudo-class invalidation with requestFullscreen + exitFullscreen]
+ expected: TIMEOUT
+
+ [:modal pseudo-class invalidation with requestFullscreen + remove]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/css/selectors/invalidation/not-001.html.ini b/testing/web-platform/meta/css/selectors/invalidation/not-001.html.ini
new file mode 100644
index 0000000000..fc932d99ae
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/not-001.html.ini
@@ -0,0 +1,3 @@
+[not-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/not-002.html.ini b/testing/web-platform/meta/css/selectors/invalidation/not-002.html.ini
new file mode 100644
index 0000000000..ca0e613641
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/not-002.html.ini
@@ -0,0 +1,3 @@
+[not-002.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini
new file mode 100644
index 0000000000..ac86c7d22f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html.ini
@@ -0,0 +1,449 @@
+[not-pseudo-containing-complex-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.remove('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #previous.classList.remove('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.remove('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.remove('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.remove('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.remove('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.remove('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('blue') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.add('blue') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #previous.classList.remove('f_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #previous.classList.remove('f_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('f_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #has_scope.classList.remove('f_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #direct_next.classList.remove('f_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] #direct_next.classList.remove('f_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .blue:has(~ #indirect_next:not(.p + .f_has_scope ~ .g)) \] insert/remove .f_has_scope before #direct_next) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('skyblue') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.add('skyblue') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.remove('f_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #previous.classList.remove('f_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #previous) : (removal) check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('f_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #has_scope.classList.remove('f_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.remove('f_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] #direct_next.classList.remove('f_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .skyblue:has(~ #indirect_next:not(.p + .f_descendant ~ .g)) #descendant \] insert/remove .f_descendant before #direct_next) : (removal) check #descendant color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('lightblue') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.add('lightblue') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #previous) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.remove('f_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #previous.classList.remove('f_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #previous) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('f_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #has_scope.classList.remove('f_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .invalid before #direct_next) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.remove('f_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] #direct_next.classList.remove('f_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .lightblue:has(~ #indirect_next:not(.p + .f_indirect_next ~ .g)) ~ #indirect_next \] insert/remove .f_indirect_next before #direct_next) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('darkblue') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('darkblue') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #previous) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('f_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #previous.classList.remove('f_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #previous) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('f_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.remove('f_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #direct_next) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.remove('f_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] #direct_next.classList.remove('f_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .darkblue:has(~ #indirect_next:not(.p + .f_indirect_next_child ~ .g)) ~ #indirect_next #indirect_next_child \] insert/remove .f_indirect_next_child before #direct_next) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #has_scope.classList.add('yellow') : check matches (true)]
+ expected: FAIL
+
+ [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #has_scope.classList.add('yellow') : check #has_scope color]
+ expected: FAIL
+
+ [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #parent.classList.remove('h_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .yellow:has(~ #indirect_next:not(.h_has_scope .i)) \] #parent.classList.remove('h_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #has_scope.classList.add('ivory') : check matches (true)]
+ expected: FAIL
+
+ [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #has_scope.classList.add('ivory') : check #descendant color]
+ expected: FAIL
+
+ [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #parent.classList.remove('h_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .ivory:has(~ #indirect_next:not(.h_descendant .i)) #descendant \] #parent.classList.remove('h_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.add('greenyellow') : check matches (true)]
+ expected: FAIL
+
+ [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #has_scope.classList.add('greenyellow') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.remove('h_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .greenyellow:has(~ #indirect_next:not(.h_indirect_next .i)) ~ #indirect_next \] #parent.classList.remove('h_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('khaki') : check matches (true)]
+ expected: FAIL
+
+ [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('khaki') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('h_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .khaki:has(~ #indirect_next:not(.h_indirect_next_child .i)) ~ #indirect_next #indirect_next_child \] #parent.classList.remove('h_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.add('purple') : check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #has_scope.classList.add('purple') : check #has_scope color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .invalid before #parent_previous) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.remove('j_has_scope') : check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] #parent_previous.classList.remove('j_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .purple:has(~ #indirect_next:not(.p + .j_has_scope ~ .k .l)) \] insert/remove .j_has_scope before #parent_previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.add('violet') : check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #has_scope.classList.add('violet') : check #descendant color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .invalid before #parent_previous) : (insertion) check #descendant color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.remove('j_descendant') : check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] #parent_previous.classList.remove('j_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .violet:has(~ #indirect_next:not(.p + .j_descendant ~ .k .l)) #descendant \] insert/remove .j_descendant before #parent_previous) : (removal) check #descendant color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.add('orchid') : check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #has_scope.classList.add('orchid') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.remove('j_indirect_next') : check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] #parent_previous.classList.remove('j_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .orchid:has(~ #indirect_next:not(.p + .j_indirect_next ~ .k .l)) ~ #indirect_next \] insert/remove .j_indirect_next before #parent_previous) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('plum') : check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('plum') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #parent_previous) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('j_indirect_next_child') : check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.remove('j_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check matches (true)]
+ expected: FAIL
+
+ [[ .plum:has(~ #indirect_next:not(.p + .j_indirect_next_child ~ .k .l)) ~ #indirect_next #indirect_next_child \] insert/remove .j_indirect_next_child before #parent_previous) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .red:has(#descendant:not(.a_has_scope .b)) \] #parent.classList.add('a_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .red:has(#descendant:not(.a_has_scope .b)) \] #has_scope.classList.add('a_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .red:has(#descendant:not(.a_has_scope .b)) \] #child.classList.add('a_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #parent.classList.add('a_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #has_scope.classList.add('a_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .orangered:has(#descendant:not(.a_descendant .b)) #descendant \] #child.classList.add('a_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #parent.classList.add('a_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #has_scope.classList.add('a_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkred:has(#descendant:not(.a_indirect_next .b)) ~ #indirect_next \] #child.classList.add('a_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #parent.classList.add('a_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #has_scope.classList.add('a_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .pink:has(#descendant:not(.a_indirect_next_child .b)) ~ #indirect_next #indirect_next_child \] #child.classList.add('a_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #parent_previous.classList.add('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #previous.classList.add('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] #child_previous.classList.add('c_has_scope') : check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .invalid before #child_previous) : (removal) check #has_scope color]
+ expected: FAIL
+
+ [[ .green:has(#descendant:not(.p + .c_has_scope ~ .d .e)) \] insert/remove .c_has_scope before #child_previous) : (insertion) check #has_scope color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #parent_previous.classList.add('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #previous.classList.add('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .lightgreen:has(#descendant:not(.p + .c_descendant ~ .d .e)) #descendant \] #child_previous.classList.add('c_descendant') : check #descendant color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #parent_previous.classList.add('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #previous.classList.add('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] #child_previous.classList.add('c_indirect_next') : check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next color]
+ expected: FAIL
+
+ [[ .darkgreen:has(#descendant:not(.p + .c_indirect_next ~ .d .e)) ~ #indirect_next \] insert/remove .c_indirect_next before #child_previous) : (insertion) check #indirect_next color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #parent_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] #child_previous.classList.add('c_indirect_next_child') : check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .invalid before #child_previous) : (removal) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .yellowgreen:has(#descendant:not(.p + .c_indirect_next_child ~ .d .e)) ~ #indirect_next #indirect_next_child \] insert/remove .c_indirect_next_child before #child_previous) : (insertion) check #indirect_next_child color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.add('m') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #parent.classList.remove('n') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.add('m') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #has_scope.classList.remove('n') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.add('m') : check #has_scope color]
+ expected: FAIL
+
+ [[ .orange:has(#descendant:not(.m:not(.n) .o)) \] #child.classList.remove('n') : check #has_scope color]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html.ini b/testing/web-platform/meta/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html.ini
new file mode 100644
index 0000000000..10344da254
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/quirks-mode-stylesheet-dynamic-add-001.html.ini
@@ -0,0 +1,3 @@
+[quirks-mode-stylesheet-dynamic-add-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/selectorText-dynamic-001.html.ini b/testing/web-platform/meta/css/selectors/invalidation/selectorText-dynamic-001.html.ini
new file mode 100644
index 0000000000..e77dabe940
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/selectorText-dynamic-001.html.ini
@@ -0,0 +1,3 @@
+[selectorText-dynamic-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/sheet-going-away-001.html.ini b/testing/web-platform/meta/css/selectors/invalidation/sheet-going-away-001.html.ini
new file mode 100644
index 0000000000..be648b42fa
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/sheet-going-away-001.html.ini
@@ -0,0 +1,3 @@
+[sheet-going-away-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/sibling.html.ini b/testing/web-platform/meta/css/selectors/invalidation/sibling.html.ini
new file mode 100644
index 0000000000..8956fdaf4e
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/sibling.html.ini
@@ -0,0 +1,3 @@
+[sibling.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/invalidation/subject-has-invalidation-with-display-none-anchor-element.html.ini b/testing/web-platform/meta/css/selectors/invalidation/subject-has-invalidation-with-display-none-anchor-element.html.ini
new file mode 100644
index 0000000000..f47f72f03b
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/subject-has-invalidation-with-display-none-anchor-element.html.ini
@@ -0,0 +1,5 @@
+[subject-has-invalidation-with-display-none-anchor-element.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [CSS Selectors Invalidation: subject :has() invalidation with display: none anchor element]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/target-pseudo-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/target-pseudo-in-has.html.ini
new file mode 100644
index 0000000000..627ee91278
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/target-pseudo-in-has.html.ini
@@ -0,0 +1,5 @@
+[target-pseudo-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [CSS Selectors Invalidation: :target pseudo-class in :has() argument]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini
new file mode 100644
index 0000000000..dd11bba71d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html.ini
@@ -0,0 +1,146 @@
+[typed-child-indexed-pseudo-classes-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Prepend #div1.green: #only_of_type]
+ expected: FAIL
+
+ [Prepend #div1.green: #first_of_type]
+ expected: FAIL
+
+ [Prepend #div1.green: #last_of_type]
+ expected: FAIL
+
+ [Prepend #div1.green: #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend span (2): #only_of_type]
+ expected: FAIL
+
+ [Prepend span (2): #first_of_type]
+ expected: FAIL
+
+ [Prepend span (2): #last_of_type]
+ expected: FAIL
+
+ [Prepend span (2): #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #first_of_type]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #last_of_type]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend #div2.yellow: #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend span (3): #first_of_type]
+ expected: FAIL
+
+ [Prepend span (3): #last_of_type]
+ expected: FAIL
+
+ [Prepend span (3): #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend span (3): #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend #div3.orange: #first_of_type]
+ expected: FAIL
+
+ [Prepend #div3.orange: #last_of_type]
+ expected: FAIL
+
+ [Prepend #div3.orange: #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend #div3.orange: #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend #div3.orange: #nth_of_type_3n]
+ expected: FAIL
+
+ [Prepend span (4): #first_of_type]
+ expected: FAIL
+
+ [Prepend span (4): #last_of_type]
+ expected: FAIL
+
+ [Prepend span (4): #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend span (4): #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend span (4): #nth_of_type_3n]
+ expected: FAIL
+
+ [Prepend #div4: #last_of_type]
+ expected: FAIL
+
+ [Prepend #div4: #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend #div4: #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend #div4: #nth_of_type_3n]
+ expected: FAIL
+
+ [Prepend span (5): #last_of_type]
+ expected: FAIL
+
+ [Prepend span (5): #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend span (5): #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend span (5): #nth_of_type_3n]
+ expected: FAIL
+
+ [Prepend #div5: #last_of_type]
+ expected: FAIL
+
+ [Prepend #div5: #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend #div5: #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend #div5: #nth_of_type_3n]
+ expected: FAIL
+
+ [Prepend span (6): #last_of_type]
+ expected: FAIL
+
+ [Prepend span (6): #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Prepend span (6): #nth_of_type_3n_2]
+ expected: FAIL
+
+ [Prepend span (6): #nth_of_type_3n]
+ expected: FAIL
+
+ [Remove #div1: #last_of_type]
+ expected: FAIL
+
+ [Remove #div1: #nth_of_type_3n_1]
+ expected: FAIL
+
+ [Remove #div1: #nth_of_type_3n]
+ expected: FAIL
+
+ [Remove #div2: #last_of_type]
+ expected: FAIL
+
+ [Remove #div2: #nth_of_type_3n]
+ expected: FAIL
+
+ [Remove #div4: #only_of_type]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/user-action-pseudo-classes-in-has.html.ini b/testing/web-platform/meta/css/selectors/invalidation/user-action-pseudo-classes-in-has.html.ini
new file mode 100644
index 0000000000..7620ef4646
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/user-action-pseudo-classes-in-has.html.ini
@@ -0,0 +1,5 @@
+[user-action-pseudo-classes-in-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Invalidation with :focus, :focus-within, :focus-visible in :has()]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/invalidation/where.html.ini b/testing/web-platform/meta/css/selectors/invalidation/where.html.ini
new file mode 100644
index 0000000000..232f9d15bd
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/invalidation/where.html.ini
@@ -0,0 +1,3 @@
+[where.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-default-ns-003.html.ini b/testing/web-platform/meta/css/selectors/is-default-ns-003.html.ini
new file mode 100644
index 0000000000..e294352ef1
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-default-ns-003.html.ini
@@ -0,0 +1,3 @@
+[is-default-ns-003.html]
+ expected: FAIL
+ issue: https://github.com/w3c/csswg-drafts/issues/5684
diff --git a/testing/web-platform/meta/css/selectors/is-nested.html.ini b/testing/web-platform/meta/css/selectors/is-nested.html.ini
new file mode 100644
index 0000000000..333bbb79db
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-nested.html.ini
@@ -0,0 +1,3 @@
+[is-nested.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-specificity-shadow.html.ini b/testing/web-platform/meta/css/selectors/is-specificity-shadow.html.ini
new file mode 100644
index 0000000000..bb7577e0b3
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-specificity-shadow.html.ini
@@ -0,0 +1,3 @@
+[is-specificity-shadow.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-specificity.html.ini b/testing/web-platform/meta/css/selectors/is-specificity.html.ini
new file mode 100644
index 0000000000..75f1fe9f4a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-specificity.html.ini
@@ -0,0 +1,3 @@
+[is-specificity.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-where-basic.html.ini b/testing/web-platform/meta/css/selectors/is-where-basic.html.ini
new file mode 100644
index 0000000000..09dd763bb8
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-basic.html.ini
@@ -0,0 +1,3 @@
+[is-where-basic.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-where-error-recovery.html.ini b/testing/web-platform/meta/css/selectors/is-where-error-recovery.html.ini
new file mode 100644
index 0000000000..bfc955cf03
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-error-recovery.html.ini
@@ -0,0 +1,3 @@
+[is-where-error-recovery.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-where-not.html.ini b/testing/web-platform/meta/css/selectors/is-where-not.html.ini
new file mode 100644
index 0000000000..071bf7acd2
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-not.html.ini
@@ -0,0 +1,3 @@
+[is-where-not.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-where-parsing.html.ini b/testing/web-platform/meta/css/selectors/is-where-parsing.html.ini
new file mode 100644
index 0000000000..fd8965ad38
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-parsing.html.ini
@@ -0,0 +1,3 @@
+[is-where-parsing.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-where-pseudo-classes.html.ini b/testing/web-platform/meta/css/selectors/is-where-pseudo-classes.html.ini
new file mode 100644
index 0000000000..deffa76608
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-pseudo-classes.html.ini
@@ -0,0 +1,3 @@
+[is-where-pseudo-classes.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/is-where-shadow.html.ini b/testing/web-platform/meta/css/selectors/is-where-shadow.html.ini
new file mode 100644
index 0000000000..cbcea64fe1
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-shadow.html.ini
@@ -0,0 +1,5 @@
+[is-where-shadow.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [:is() inside :host-context()]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/is-where-visited.html.ini b/testing/web-platform/meta/css/selectors/is-where-visited.html.ini
new file mode 100644
index 0000000000..c93af375fa
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/is-where-visited.html.ini
@@ -0,0 +1,2 @@
+[is-where-visited.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/last-child.html.ini b/testing/web-platform/meta/css/selectors/last-child.html.ini
new file mode 100644
index 0000000000..1029182e3a
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/last-child.html.ini
@@ -0,0 +1,3 @@
+[last-child.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/last-of-type.html.ini b/testing/web-platform/meta/css/selectors/last-of-type.html.ini
new file mode 100644
index 0000000000..1869ba5250
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/last-of-type.html.ini
@@ -0,0 +1,3 @@
+[last-of-type.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/media/media-loading-state.html.ini b/testing/web-platform/meta/css/selectors/media/media-loading-state.html.ini
new file mode 100644
index 0000000000..6a19b04ad2
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/media/media-loading-state.html.ini
@@ -0,0 +1,10 @@
+[media-loading-state.html]
+ expected: TIMEOUT
+ [Test :pseudo-class syntax is supported without throwing a SyntaxError]
+ expected: FAIL
+
+ [Test :stalled pseudo-class]
+ expected: TIMEOUT
+
+ [Test :buffering pseudo-class]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/css/selectors/media/media-playback-state.html.ini b/testing/web-platform/meta/css/selectors/media/media-playback-state.html.ini
new file mode 100644
index 0000000000..e5cedb528d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/media/media-playback-state.html.ini
@@ -0,0 +1,13 @@
+[media-playback-state.html]
+ expected: TIMEOUT
+ [Test :pseudo-class syntax is supported without throwing a SyntaxError]
+ expected: FAIL
+
+ [Test :playing pseudo-classes]
+ expected: TIMEOUT
+
+ [Test :paused pseudo-classes]
+ expected: NOTRUN
+
+ [Test :seeking pseudo-class]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/css/selectors/media/sound-state.html.ini b/testing/web-platform/meta/css/selectors/media/sound-state.html.ini
new file mode 100644
index 0000000000..7f5c5c1689
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/media/sound-state.html.ini
@@ -0,0 +1,8 @@
+[sound-state.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test :pseudo-class syntax is supported without throwing a SyntaxError]
+ expected: FAIL
+
+ [Test :muted pseudo-class]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/missing-right-token.html.ini b/testing/web-platform/meta/css/selectors/missing-right-token.html.ini
new file mode 100644
index 0000000000..5e70ae7e63
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/missing-right-token.html.ini
@@ -0,0 +1,3 @@
+[missing-right-token.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/modal-pseudo-class.html.ini b/testing/web-platform/meta/css/selectors/modal-pseudo-class.html.ini
new file mode 100644
index 0000000000..d2c9adec40
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/modal-pseudo-class.html.ini
@@ -0,0 +1,3 @@
+[modal-pseudo-class.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/not-complex.html.ini b/testing/web-platform/meta/css/selectors/not-complex.html.ini
new file mode 100644
index 0000000000..66aed2e778
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/not-complex.html.ini
@@ -0,0 +1,3 @@
+[not-complex.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/not-default-ns-003.html.ini b/testing/web-platform/meta/css/selectors/not-default-ns-003.html.ini
new file mode 100644
index 0000000000..0bfc9e69e2
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/not-default-ns-003.html.ini
@@ -0,0 +1,2 @@
+[not-default-ns-003.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/not-specificity.html.ini b/testing/web-platform/meta/css/selectors/not-specificity.html.ini
new file mode 100644
index 0000000000..2182f04d48
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/not-specificity.html.ini
@@ -0,0 +1,3 @@
+[not-specificity.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/nth-child-and-nth-last-child.html.ini b/testing/web-platform/meta/css/selectors/nth-child-and-nth-last-child.html.ini
new file mode 100644
index 0000000000..fb1a38c67c
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-and-nth-last-child.html.ini
@@ -0,0 +1,2 @@
+[nth-child-and-nth-last-child.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-attribute.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-attribute.html.ini
new file mode 100644
index 0000000000..c5e0224043
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-attribute.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-attribute.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-classname-002.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-classname-002.html.ini
new file mode 100644
index 0000000000..618d0d20ac
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-classname-002.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-classname-002.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-classname.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-classname.html.ini
new file mode 100644
index 0000000000..0c90c1838d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-classname.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-classname.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-complex-selector.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-complex-selector.html.ini
new file mode 100644
index 0000000000..05b55515c2
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-complex-selector.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-complex-selector.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-compound-selector.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-compound-selector.html.ini
new file mode 100644
index 0000000000..ad0be69748
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-compound-selector.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-compound-selector.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-has.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-has.html.ini
new file mode 100644
index 0000000000..f9ae9a26de
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-has.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-has.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-no-space-after-of.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-no-space-after-of.html.ini
new file mode 100644
index 0000000000..83554e9bac
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-no-space-after-of.html.ini
@@ -0,0 +1,4 @@
+[nth-child-of-no-space-after-of.html]
+ prefs: [layout.css.nth-child-of.enabled:true]
+ expected: FAIL
+ bug: 1808228 # Once bug 1808228 is complete, FAIL would no longer be expected
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-not.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-not.html.ini
new file mode 100644
index 0000000000..85379cd351
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-not.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-not.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-nth-child.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-nth-child.html.ini
new file mode 100644
index 0000000000..e98ea78c8d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-nth-child.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-nth-child.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-tagname.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-tagname.html.ini
new file mode 100644
index 0000000000..00f52e3f5f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-tagname.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-tagname.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-of-universal-selector.html.ini b/testing/web-platform/meta/css/selectors/nth-child-of-universal-selector.html.ini
new file mode 100644
index 0000000000..ab158554b1
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-of-universal-selector.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-universal-selector.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-specificity-1.html.ini b/testing/web-platform/meta/css/selectors/nth-child-specificity-1.html.ini
new file mode 100644
index 0000000000..c847a92114
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-specificity-1.html.ini
@@ -0,0 +1,2 @@
+[nth-child-specificity-1.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-specificity-2.html.ini b/testing/web-platform/meta/css/selectors/nth-child-specificity-2.html.ini
new file mode 100644
index 0000000000..25bffa75f7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-specificity-2.html.ini
@@ -0,0 +1,2 @@
+[nth-child-specificity-2.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-specificity-3.html.ini b/testing/web-platform/meta/css/selectors/nth-child-specificity-3.html.ini
new file mode 100644
index 0000000000..1dabfb82d0
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-specificity-3.html.ini
@@ -0,0 +1,2 @@
+[nth-child-specificity-3.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-child-specificity-4.html.ini b/testing/web-platform/meta/css/selectors/nth-child-specificity-4.html.ini
new file mode 100644
index 0000000000..6805b3f5e3
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-child-specificity-4.html.ini
@@ -0,0 +1,2 @@
+[nth-child-specificity-4.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-classname.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-classname.html.ini
new file mode 100644
index 0000000000..235b0d8ac7
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-classname.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-of-classname.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-complex-selector.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-complex-selector.html.ini
new file mode 100644
index 0000000000..5b36c3bc09
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-complex-selector.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-of-complex-selector.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-compound-selector.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-compound-selector.html.ini
new file mode 100644
index 0000000000..2b7ec8eeb5
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-compound-selector.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-of-compound-selector.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-no-space-after-of.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-no-space-after-of.html.ini
new file mode 100644
index 0000000000..4d34920f44
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-no-space-after-of.html.ini
@@ -0,0 +1,4 @@
+[nth-last-child-of-no-space-after-of.html]
+ prefs: [layout.css.nth-child-of.enabled:true]
+ expected: FAIL
+ bug: 1808228 # Once bug 1808228 is complete, FAIL would no longer be expected
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-1.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-1.html.ini
new file mode 100644
index 0000000000..cdd34c5c1d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-1.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-of-style-sharing-1.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-2.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-2.html.ini
new file mode 100644
index 0000000000..e8d72b1499
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-style-sharing-2.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-of-style-sharing-2.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-of-tagname.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-of-tagname.html.ini
new file mode 100644
index 0000000000..7f84685b8f
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-of-tagname.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-of-tagname.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-specificity-1.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-1.html.ini
new file mode 100644
index 0000000000..1748043553
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-1.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-specificity-1.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-specificity-2.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-2.html.ini
new file mode 100644
index 0000000000..cfb6403cee
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-2.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-specificity-2.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-specificity-3.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-3.html.ini
new file mode 100644
index 0000000000..8b9b597480
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-3.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-specificity-3.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/nth-last-child-specificity-4.html.ini b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-4.html.ini
new file mode 100644
index 0000000000..04c0c21ceb
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/nth-last-child-specificity-4.html.ini
@@ -0,0 +1,2 @@
+[nth-last-child-specificity-4.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/only-child.html.ini b/testing/web-platform/meta/css/selectors/only-child.html.ini
new file mode 100644
index 0000000000..7e7718dd45
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/only-child.html.ini
@@ -0,0 +1,3 @@
+[only-child.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-focus-visible.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-focus-visible.html.ini
new file mode 100644
index 0000000000..a55ce1bdcc
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-focus-visible.html.ini
@@ -0,0 +1,3 @@
+[parse-focus-visible.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini
new file mode 100644
index 0000000000..f29e60a001
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini
@@ -0,0 +1,11 @@
+[parse-has-disallow-nesting-has-inside-has.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
+ [".a:has(.b:has(.c))" should be an invalid selector]
+ expected: FAIL
+
+ [".a:has(:is(.b:has(.c)))" should be a valid selector]
+ expected: FAIL
+
+ [".a:has(:is(.b:has(.c), .d))" should be a valid selector]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-has.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-has.html.ini
new file mode 100644
index 0000000000..9edef2b3ec
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-has.html.ini
@@ -0,0 +1,20 @@
+[parse-has.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [".a:has(> .b)" should be a valid selector]
+ expected: FAIL
+
+ [".a:has(~ .b)" should be a valid selector]
+ expected: FAIL
+
+ [".a:has(+ .b)" should be a valid selector]
+ expected: FAIL
+
+ [":has()" should be an invalid selector]
+ expected: FAIL
+
+ [":has(123)" should be an invalid selector]
+ expected: FAIL
+
+ [":has(.a, 123)" should be an invalid selector]
+ expected: FAIL
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-id.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-id.html.ini
new file mode 100644
index 0000000000..7f78031142
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-id.html.ini
@@ -0,0 +1,3 @@
+[parse-id.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-not.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-not.html.ini
new file mode 100644
index 0000000000..86b66a2a82
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-not.html.ini
@@ -0,0 +1,3 @@
+[parse-not.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-sibling.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-sibling.html.ini
new file mode 100644
index 0000000000..cb36867ae9
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-sibling.html.ini
@@ -0,0 +1,3 @@
+[parse-sibling.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-universal.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-universal.html.ini
new file mode 100644
index 0000000000..b9065d5eca
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-universal.html.ini
@@ -0,0 +1,3 @@
+[parse-universal.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/css/selectors/parsing/parse-where.html.ini b/testing/web-platform/meta/css/selectors/parsing/parse-where.html.ini
new file mode 100644
index 0000000000..c702b46084
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/parsing/parse-where.html.ini
@@ -0,0 +1,3 @@
+[parse-where.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/pseudo-enabled-disabled.html.ini b/testing/web-platform/meta/css/selectors/pseudo-enabled-disabled.html.ini
new file mode 100644
index 0000000000..d003a38438
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/pseudo-enabled-disabled.html.ini
@@ -0,0 +1,3 @@
+[pseudo-enabled-disabled.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/remove-hovered-element.html.ini b/testing/web-platform/meta/css/selectors/remove-hovered-element.html.ini
new file mode 100644
index 0000000000..d01b449121
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/remove-hovered-element.html.ini
@@ -0,0 +1,2 @@
+[remove-hovered-element.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/css/selectors/scope-selector.html.ini b/testing/web-platform/meta/css/selectors/scope-selector.html.ini
new file mode 100644
index 0000000000..ff05295d99
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/scope-selector.html.ini
@@ -0,0 +1,3 @@
+[scope-selector.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/selector-placeholder-shown-emptify-placeholder.html.ini b/testing/web-platform/meta/css/selectors/selector-placeholder-shown-emptify-placeholder.html.ini
new file mode 100644
index 0000000000..12892fc8ad
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/selector-placeholder-shown-emptify-placeholder.html.ini
@@ -0,0 +1,3 @@
+[selector-placeholder-shown-emptify-placeholder.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/selectors-case-sensitive-001.html.ini b/testing/web-platform/meta/css/selectors/selectors-case-sensitive-001.html.ini
new file mode 100644
index 0000000000..b70d357032
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/selectors-case-sensitive-001.html.ini
@@ -0,0 +1,3 @@
+[selectors-case-sensitive-001.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/user-invalid.html.ini b/testing/web-platform/meta/css/selectors/user-invalid.html.ini
new file mode 100644
index 0000000000..8b9612a126
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/user-invalid.html.ini
@@ -0,0 +1,3 @@
+[user-invalid.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/user-valid.html.ini b/testing/web-platform/meta/css/selectors/user-valid.html.ini
new file mode 100644
index 0000000000..e4ca12932b
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/user-valid.html.ini
@@ -0,0 +1,3 @@
+[user-valid.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/webkit-pseudo-element.html.ini b/testing/web-platform/meta/css/selectors/webkit-pseudo-element.html.ini
new file mode 100644
index 0000000000..7afef08490
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/webkit-pseudo-element.html.ini
@@ -0,0 +1,3 @@
+[webkit-pseudo-element.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/css/selectors/x-pseudo-element.html.ini b/testing/web-platform/meta/css/selectors/x-pseudo-element.html.ini
new file mode 100644
index 0000000000..c128ab3b5d
--- /dev/null
+++ b/testing/web-platform/meta/css/selectors/x-pseudo-element.html.ini
@@ -0,0 +1,3 @@
+[x-pseudo-element.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]