aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/wpt/include.ini22
-rw-r--r--tests/wpt/meta/MANIFEST.json1716
-rw-r--r--tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini8
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini2
-rw-r--r--tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini2
-rw-r--r--tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini18
-rw-r--r--tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini18
-rw-r--r--tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini12
-rw-r--r--tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini3
-rw-r--r--tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini3
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini2
-rw-r--r--tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini2
-rw-r--r--tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini9
-rw-r--r--tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini3
-rw-r--r--tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini2
-rw-r--r--tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini2
-rw-r--r--tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini3
-rw-r--r--tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini3
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini3
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini6
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini6
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini9
-rw-r--r--tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini168
-rw-r--r--tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini2
-rw-r--r--tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini2
-rw-r--r--tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini12
-rw-r--r--tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini240
-rw-r--r--tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini6
-rw-r--r--tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini2
-rw-r--r--tests/wpt/meta/custom-elements/adopted-callback.html.ini39
-rw-r--r--tests/wpt/meta/dom/nodes/adoption.window.js.ini9
-rw-r--r--tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini2
-rw-r--r--tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini3
-rw-r--r--tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini6
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini3
-rw-r--r--tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini3
-rw-r--r--tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini3
-rw-r--r--tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini3
-rw-r--r--tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini2
-rw-r--r--tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini3
-rw-r--r--tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini3
-rw-r--r--tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini3
-rw-r--r--tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini3
-rw-r--r--tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini6
-rw-r--r--tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini5
-rw-r--r--tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini2
-rw-r--r--tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini2
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini2
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini2
-rw-r--r--tests/wpt/meta/html/dom/idlharness.any.js.ini3
-rw-r--r--tests/wpt/meta/html/dom/idlharness.https.html.ini21
-rw-r--r--tests/wpt/meta/html/dom/reflection-tabular.html.ini36
-rw-r--r--tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini1
-rw-r--r--tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/document-metadata/the-style-element/mutations.window.js.ini3
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini3
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/code-cache-nonce.html.ini9
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-classic.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-module.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-classic.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-module.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html.ini15
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html.ini17
-rw-r--r--tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/v8-code-cache.html.ini30
-rw-r--r--tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini3
-rw-r--r--tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions.html.ini3
-rw-r--r--tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe.html.ini6
-rw-r--r--tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini6
-rw-r--r--tests/wpt/meta/navigation-timing/test-navigation-type-reload.html.ini6
-rw-r--r--tests/wpt/meta/shadow-dom/declarative/gethtml.html.ini4896
-rw-r--r--tests/wpt/meta/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html.ini6
-rw-r--r--tests/wpt/meta/trusted-types/trusted-types-reporting-for-ShadowRoot-setHTMLUnsafe.html.ini3
-rw-r--r--tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/accept_alert/accept.py.ini27
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/add_cookie/add.py.ini42
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/add_cookie/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/back/back.py.ini19
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/back/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/close_window/close.py.ini19
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/close_window/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/delete.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/delete_cookie/delete.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/delete_cookie/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/delete_session/delete.py.ini7
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/dismiss_alert/dismiss.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_clear/clear.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_clear/disabled.py.ini115
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_clear/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/bubbling.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/center_point.py.ini33
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/click.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/events.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/interactability.py.ini33
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/navigate.py.ini49
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/scroll_into_view.py.ini30
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/select.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/shadow_dom.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_click/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/content_editable.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/events.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/form_controls.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/interactability.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/scroll_into_view.py.ini27
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/send_keys.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/element_send_keys/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_async_script/arguments.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_async_script/collections.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_async_script/execute_async.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_async_script/node.py.ini33
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_async_script/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_async_script/window.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/arguments.py.ini88
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/collections.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/execute.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/node.py.ini33
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/promise.py.ini27
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/execute_script/window.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_element/find.py.ini34
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_element/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_element_from_element/find.py.ini52
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_element_from_element/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/find.py.ini157
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_elements/find.py.ini76
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_elements/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/find.py.ini82
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/find.py.ini157
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/forward/forward.py.ini34
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/forward/user_prompts.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/fullscreen_window/from_minimized_window.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/fullscreen_window/fullscreen.py.ini18
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/fullscreen_window/stress.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/fullscreen_window/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_active_element/get.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_active_element/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_alert_text/get.py.ini22
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_computed_label/get.py.ini42
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_computed_label/user_prompts.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_computed_role/get.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_computed_role/user_prompts.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_current_url/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_attribute/get.py.ini94
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_attribute/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_css_value/get.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_css_value/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_property/get.py.ini94
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_property/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_rect/get.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_rect/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/get.py.ini33
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/get.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_text/get.py.ini42
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_element_text/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_named_cookie/get.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_named_cookie/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_page_source/source.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_page_source/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_title/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_window_handle/get.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_window_handle/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_window_handles/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_window_rect/get.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/get_window_rect/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/idlharness.window.js.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/interface/interface.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/is_element_enabled/enabled.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/is_element_enabled/user_prompts.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/is_element_selected/selected.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/is_element_selected/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/maximize_window/from_minimized_window.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/maximize_window/maximize.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/maximize_window/stress.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/maximize_window/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/minimize_window/minimize.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/minimize_window/stress.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/minimize_window/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/navigate_to/navigate.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/navigate_to/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_session/create_alwaysMatch.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_session/create_firstMatch.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_session/response.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_session/unhandled_prompt_behavior.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_session/websocket_url.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_window/new.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_window/new_tab.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_window/new_window.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/new_window/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/invalid.py.ini91
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/key.py.ini24
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/key_events.py.ini273
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/key_modifiers.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/key_shortcuts.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/key_special_keys.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/key_tentative.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/none.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/perform.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_contextmenu.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_dblclick.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_modifier_click.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse.py.ini64
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse_drag.py.ini63
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_origin.py.ini27
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pause_dblclick.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pen.py.ini33
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_touch.py.ini42
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_tripleclick.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/sequence.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/user_prompts.py.ini58
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/perform_actions/wheel.py.ini39
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/permissions/set.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/print/background.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/print/orientation.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/print/printcmd.py.ini57
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/print/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/refresh/refresh.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/refresh/user_prompts.py.ini73
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/release_actions/release.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/release_actions/sequence.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/release_actions/sequence_tentative.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/send_alert_text/send.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/set_timeouts/set.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/set_timeouts/user_prompts.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/set_window_rect/from_minimized_window.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/set_window_rect/set.py.ini39
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/set_window_rect/user_prompts.py.ini2
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch.py.ini21
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_number.py.ini15
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_webelement.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/switch_to_parent_frame/switch.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/switch_to_window/alerts.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/switch_to_window/switch.py.ini12
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/iframe.py.ini9
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/screenshot.py.ini30
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/take_screenshot/iframe.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/take_screenshot/screenshot.py.ini6
-rw-r--r--tests/wpt/meta/webdriver/tests/classic/take_screenshot/user_prompts.py.ini55
-rw-r--r--tests/wpt/meta/webdriver/tests/interop/beforeunload_prompt.py.ini60
-rw-r--r--tests/wpt/meta/webdriver/tests/interop/frames.py.ini3
-rw-r--r--tests/wpt/meta/webdriver/tests/interop/shared_id_node.py.ini18
-rw-r--r--tests/wpt/meta/webdriver/tests/interop/shared_id_window.py.ini15
-rw-r--r--tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini3
-rw-r--r--tests/wpt/meta/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js.ini7
-rw-r--r--tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini19
-rw-r--r--tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini19
-rw-r--r--tests/wpt/meta/workers/WorkerGlobalScope-close.html.ini3
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json16
-rw-r--r--tests/wpt/mozilla/tests/mozilla/FocusEvent.html7
-rw-r--r--tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html207
-rw-r--r--tests/wpt/mozilla/tests/mozilla/form_reset-crash.html7
-rw-r--r--tests/wpt/tests/.github/workflows/docker.yml2
-rw-r--r--tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html13
-rw-r--r--tests/wpt/tests/ai/language_detection/detector-iframe.https.html3
-rw-r--r--tests/wpt/tests/ai/language_detection/detector-locale.https.window.js15
-rw-r--r--tests/wpt/tests/ai/language_detection/detector.https.window.js49
-rw-r--r--tests/wpt/tests/ai/language_detection/detector.optional.https.window.js7
-rw-r--r--tests/wpt/tests/ai/language_detection/resources/util.js4
-rw-r--r--tests/wpt/tests/audio-output/setSinkId.https.html6
-rw-r--r--tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py18
-rw-r--r--tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py18
-rw-r--r--tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js19
-rw-r--r--tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js15
-rw-r--r--tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js16
-rw-r--r--tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js43
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html30
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html39
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html32
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html41
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html59
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html110
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html67
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html118
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html21
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html29
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html48
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html64
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html48
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html71
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html103
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html110
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html30
-rw-r--r--tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html29
-rw-r--r--tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html30
-rw-r--r--tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html29
-rw-r--r--tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html17
-rw-r--r--tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html9
-rw-r--r--tests/wpt/tests/css/css-box/parsing/margin-trim.html14
-rw-r--r--tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html1
-rw-r--r--tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html1
-rw-r--r--tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html14
-rw-r--r--tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html1
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html49
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html45
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html96
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html59
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html59
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html35
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html78
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html46
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html64
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html64
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html52
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html39
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html133
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html44
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html115
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html63
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html116
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html63
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html135
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html63
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html115
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html63
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html104
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html60
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html41
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html28
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html62
-rw-r--r--tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html47
-rw-r--r--tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html13
-rw-r--r--tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html13
-rw-r--r--tests/wpt/tests/css/css-overflow/scroll-button-display-none.html54
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html53
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html68
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html44
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html46
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html44
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html65
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html49
-rw-r--r--tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html95
-rw-r--r--tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html4
-rw-r--r--tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html31
-rw-r--r--tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html14
-rw-r--r--tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html14
-rw-r--r--tests/wpt/tests/css/css-tables/colspan-zero-crash.html10
-rw-r--r--tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html128
-rw-r--r--tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html106
-rw-r--r--tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html187
-rw-r--r--tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html14
-rw-r--r--tests/wpt/tests/dom/nodes/Node-childNodes-cache-2.html16
-rw-r--r--tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html19
-rw-r--r--tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html36
-rw-r--r--tests/wpt/tests/editing/include/editor-test-utils.js3
-rw-r--r--tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html13
-rw-r--r--tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js281
-rw-r--r--tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js10
-rw-r--r--tests/wpt/tests/fledge/tentative/resources/record-click.py21
-rw-r--r--tests/wpt/tests/fledge/tentative/resources/record-view.py19
-rw-r--r--tests/wpt/tests/focus/focus-element-crash.html33
-rw-r--r--tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml4
-rw-r--r--tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml5
-rw-r--r--tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml4
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md9
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html19
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html62
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html71
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html19
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html65
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js144
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers2
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html94
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html91
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html90
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html91
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html57
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html37
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html37
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html37
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html37
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html44
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html44
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html44
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers1
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html62
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers2
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html55
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers2
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html55
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers2
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html43
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers2
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html43
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers2
-rw-r--r--tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml3
-rw-r--r--tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html4
-rw-r--r--tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html10
-rw-r--r--tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe-hit-test-during-load-event-crash.html9
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html49
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html55
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html192
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html129
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css14
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js13
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html16
-rw-r--r--tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html39
-rw-r--r--tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html10
-rw-r--r--tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html57
-rw-r--r--tests/wpt/tests/html/semantics/tabular-data/processing-model-1/col-span-limits.html55
-rw-r--r--tests/wpt/tests/html/semantics/tabular-data/processing-model-1/span-limits.html41
-rw-r--r--tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html12
-rw-r--r--tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml4
-rw-r--r--tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini3
-rw-r--r--tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html71
-rw-r--r--tests/wpt/tests/interfaces/fedcm.idl6
-rw-r--r--tests/wpt/tests/interfaces/image-capture.idl2
-rw-r--r--tests/wpt/tests/interfaces/mediastream-recording.idl2
-rw-r--r--tests/wpt/tests/interfaces/turtledove.idl7
-rw-r--r--tests/wpt/tests/interfaces/webcodecs.idl2
-rw-r--r--tests/wpt/tests/interfaces/webcrypto.idl (renamed from tests/wpt/tests/interfaces/WebCryptoAPI.idl)0
-rw-r--r--tests/wpt/tests/interfaces/webgpu.idl1
-rw-r--r--tests/wpt/tests/interfaces/webnn.idl6
-rw-r--r--tests/wpt/tests/interfaces/webxr-depth-sensing.idl7
-rw-r--r--tests/wpt/tests/interfaces/webxr.idl9
-rw-r--r--tests/wpt/tests/interfaces/writing-assistance-apis.idl193
-rw-r--r--tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html4
-rw-r--r--tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html105
-rw-r--r--tests/wpt/tests/resources/chromium/webxr-test.js56
-rw-r--r--tests/wpt/tests/resources/testdriver.js55
-rw-r--r--tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html2
-rw-r--r--tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html2
-rw-r--r--tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html2
-rw-r--r--tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html8
-rw-r--r--tests/wpt/tests/shadow-dom/reference-target/tentative/form.html112
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html35
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.tentative.https.html66
-rw-r--r--tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-different-origins.tentative.https.html (renamed from tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-different-origins.https.html)8
-rw-r--r--tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-same-origin.tentative.https.html (renamed from tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-same-origin.https.html)44
-rw-r--r--tests/wpt/tests/streams/readable-streams/crashtests/garbage-collection.any.js68
-rw-r--r--tests/wpt/tests/svg/embedded/attr-image-fetchpriority.html27
-rw-r--r--tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-01.html33
-rw-r--r--tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-02.html39
-rw-r--r--tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-03.html33
-rw-r--r--tests/wpt/tests/svg/scripted/attr-script-fetchpriority.html27
-rw-r--r--tests/wpt/tests/svg/styling/cx-sibling-index-crash.html5
-rw-r--r--tests/wpt/tests/tools/ci/requirements_tc.txt2
-rw-r--r--tests/wpt/tests/tools/requirements_tests.txt2
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/asyncactions.py29
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py15
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py12
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js11
-rw-r--r--tests/wpt/tests/viewport-segments/viewport-segments-segments-property.https.html16
-rw-r--r--tests/wpt/tests/viewport/viewport-segments.html5
-rw-r--r--tests/wpt/tests/web-animations/crashtests/sibling-index-offset-crash.html8
-rw-r--r--tests/wpt/tests/web-animations/resources/keyframe-tests.js5
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_closed/user_prompt_closed.py2
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py2
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/emulation/set_geolocation_override/invalid.py74
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py2
-rw-r--r--tests/wpt/tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js10
-rw-r--r--tests/wpt/tests/webmessaging/message-channels/close-event/resources/helper.js38
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/abs.https.any.js63
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/concat.https.any.js46
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/neg.https.any.js63
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js366
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/relu.https.any.js56
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/sub.https.any.js213
-rw-r--r--tests/wpt/tests/webnn/resources/utils.js22
-rw-r--r--tests/wpt/tests/webrtc-stats/supported-stats.https.html1
-rw-r--r--tests/wpt/tests/webrtc/RTCConfiguration-iceServers.html24
-rw-r--r--tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver.https.html37
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html61
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html61
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js31
-rw-r--r--tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini3
518 files changed, 15212 insertions, 7730 deletions
diff --git a/tests/wpt/include.ini b/tests/wpt/include.ini
index fdbd71b9ee6..ba81ab64b83 100644
--- a/tests/wpt/include.ini
+++ b/tests/wpt/include.ini
@@ -278,10 +278,26 @@ skip: true
skip: false
[WebCryptoAPI]
skip: false
+[webdriver]
+ skip: false
+ [tests]
+ skip: false
+ [bidi]
+ skip: true
+ [classic]
+ skip: true
+ [interop]
+ skip: true
[webgl]
skip: false
[webidl]
skip: false
+[webmessaging]
+ skip: false
+[websockets]
+ skip: false
+[webstorage]
+ skip: false
[webvr]
skip: false
[webvtt]
@@ -292,12 +308,6 @@ skip: true
skip: false
[dom-overlay]
skip: true
-[webmessaging]
- skip: false
-[websockets]
- skip: false
-[webstorage]
- skip: false
[workers]
skip: false
[modules]
diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json
index 3572a96833c..5385c0403b4 100644
--- a/tests/wpt/meta/MANIFEST.json
+++ b/tests/wpt/meta/MANIFEST.json
@@ -411,10 +411,12 @@
"ai": {
"language_detection": {
"availability-detached-crash.https.html": [
- "5f76d59eb3540048bc0586f2a1ac5b3b313a147e",
+ "ee5e27e35b60e89f17f8008d809f4d6040e4eb5b",
[
null,
- {}
+ {
+ "testdriver": true
+ }
]
]
}
@@ -790,6 +792,13 @@
{}
]
],
+ "chrome-bug-405795970.html": [
+ "5b45527fd9ccb2038fdd3f459bcf10a9514f199c",
+ [
+ null,
+ {}
+ ]
+ ],
"pseudo-element-animation-with-marker.html": [
"ba7fc2371abfdc463f8ed36e6f1bb39fb9ef6ef5",
[
@@ -4907,6 +4916,13 @@
{}
]
],
+ "colspan-zero-crash.html": [
+ "a50586a5bfa7551724b838a0438339a34b4930fb",
+ [
+ null,
+ {}
+ ]
+ ],
"crashtests": {
"caption-repaint-crash.html": [
"6a024d0c1d7ef58da06a489d80d187bcb2a3e350",
@@ -7459,6 +7475,15 @@
}
}
},
+ "focus": {
+ "focus-element-crash.html": [
+ "27df1c0b13081827685fa96e0cba2f7b9b03c89a",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"fullscreen": {
"crashtests": {
"backdrop-list-item.html": [
@@ -7815,6 +7840,13 @@
{}
]
],
+ "iframe-hit-test-during-load-event-crash.html": [
+ "f668fc51573647e633fc3ac6430735d6fb4dfea7",
+ [
+ null,
+ {}
+ ]
+ ],
"iframe-loading-lazy-simple-crash.html": [
"b0b251438f73811ce2ec4d82fe47ffb3a2445c93",
[
@@ -9884,6 +9916,13 @@
]
},
"styling": {
+ "cx-sibling-index-crash.html": [
+ "9fe97b12d774a547a2cb3bf65f9a9ad8f1af8a58",
+ [
+ null,
+ {}
+ ]
+ ],
"font-size-number-calc-crash.svg": [
"6b56d9df2b426e2376f87668a98f5e21ee56e37b",
[
@@ -10046,6 +10085,13 @@
null,
{}
]
+ ],
+ "sibling-index-offset-crash.html": [
+ "812a7952738231f4c1bc2bf22c0d87f9a39c86cd",
+ [
+ null,
+ {}
+ ]
]
},
"interfaces": {
@@ -124253,6 +124299,32 @@
},
"css-align": {
"abspos": {
+ "align-items-static-position-001.tentative.html": [
+ "06c11e6cdb61a519fdbc77d377fb0ace0e92f6b1",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-items-static-position-001-ref.tentative.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-items-static-position-002.tentative.html": [
+ "f90004b5672a1fef9f42cf32ae13b06fc085e0ec",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-items-static-position-002-ref.tentative.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"align-items-static-position.html": [
"0b653ca5d6c2bbaf29b3834aec7d806169c8de55",
[
@@ -124292,6 +124364,110 @@
{}
]
],
+ "align-self-static-position-003.html": [
+ "39f871f4c2b837dc67b30d615e9c8ad0e4392d24",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-self-static-position-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-static-position-004.html": [
+ "afba7215b116506138434da5fa3c13ec832fb393",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-self-static-position-004-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-static-position-005.html": [
+ "e148f0ebda37797d5573f4c3a2d4b7c52e5a2f2e",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-self-static-position-005-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-static-position-006.html": [
+ "253b2a52f618a82fcf13b82bd61075bc2dcee8be",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-self-static-position-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-static-position-007.html": [
+ "ebe872aaab909e29abf3eed33840a577a616b34b",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-self-static-position-007-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-static-position-008.html": [
+ "187974884b4aded9a031c0c2fdc9d2caafd9ef5b",
+ [
+ null,
+ [
+ [
+ "/css/css-align/abspos/align-self-static-position-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-stretch-auto-margins-aspect-ratio.html": [
+ "4eaa9d2f3a6dbab63d3d931d4c58a427bc11976f",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "align-self-stretch-auto-margins.html": [
+ "9d1b6454c848c02b7fef360fb447d4d6b46ee8c0",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"align-self-stretch-auto-size.tentative.html": [
"74091feacfe63813aa4a6bbc3ef1b4d3e4e8a59c",
[
@@ -124317,6 +124493,32 @@
],
{}
]
+ ],
+ "justify-self-stretch-auto-margins-aspect-ratio.html": [
+ "c50b32f089b1b0043ac5d9dbd0f79906d82827f3",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "justify-self-stretch-auto-margins.html": [
+ "7d7b4bfc8570d3dde59fc903de7cb173b0b5baf8",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
},
"baseline-of-scrollable-1a.html": [
@@ -186622,6 +186824,192 @@
{}
]
]
+ },
+ "tentative": {
+ "multicol": {
+ "multicol-gap-decorations-001.html": [
+ "c3752156c7d54f6620ade9715b4562582c6135f6",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-002.html": [
+ "0b632fa94ace20a253f5f56079d29adbb7997135",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-003.html": [
+ "2f2473fd04686283e120abd29b5f273da40c3ef3",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-004.html": [
+ "0dcbeef4df82f4d9dc6e2ed2215ee2fa39773052",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-005.html": [
+ "daa65e904e71ee62c83ba2a16933d13311328539",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-006.html": [
+ "64b3b007ab5f6282c95bb79a39a3bcf89d10de88",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-007.html": [
+ "1f23ed7f7ca34602f4310627edb5ae96885028b8",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-008.html": [
+ "ed299b5d9f68e8560d99cdd58fcc9b3830929117",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-009.html": [
+ "b00c6a70f8abf9894e548d9e40882e396ed5b1f0",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-010.html": [
+ "61bb4a9b93314bb7d96a90b98f67b175a4cf86c6",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-011.html": [
+ "cf588ded41ea3e811c241984ec8909e5fbcf14be",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-012.html": [
+ "078b810cf8e608b16dd2a898136f4ce757325ed9",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-013.html": [
+ "d4170084f066688fd136b2abeb40da03b1243816",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-decorations-014.html": [
+ "1dcd393d99aa19021684e42e9f835e17281fc6a4",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
+ }
}
},
"css-grid": {
@@ -192723,6 +193111,32 @@
{}
]
],
+ "replaced-element-016.tentative.html": [
+ "2d5b401b8d20ac682675b3eeb23f264239b83d49",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "replaced-element-017.tentative.html": [
+ "575fa8c78179d3741948e0d987fc446534bb6a86",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"table-with-infinite-max-intrinsic-width.html": [
"877e982cd4c5987f131587da33a23f3b7a49d538",
[
@@ -249632,6 +250046,32 @@
{}
]
],
+ "intrinsic-percent-replaced-029.tentative.html": [
+ "feff03bbe2e1a1e18a22429a58a9d20cc0f9987b",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "intrinsic-percent-replaced-030.tentative.html": [
+ "5a6b103c22e20d23aa842e72ac6ffe6c9948156f",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"intrinsic-percent-replaced-dynamic-001.html": [
"1128ffa1759f26011c0639d8b5f498322c6396ac",
[
@@ -324185,6 +324625,19 @@
{}
]
],
+ "table-cell-align-006.html": [
+ "a8d33f281fda76603ea312601933fdf170ddf64b",
+ [
+ null,
+ [
+ [
+ "/css/css-writing-modes/reference/table-cell-align-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"table-cell-valign-001.html": [
"f3026810dd58cd04f87df5f3ae2ad474d5c289db",
[
@@ -347922,7 +348375,7 @@
]
],
"marquee-with-trusted-types.html": [
- "57f4985032165e989ba261c32c11c9acf0491908",
+ "f16c58bb85d71b011e4ee524dfb63184a5fca81a",
[
null,
[
@@ -353314,19 +353767,6 @@
}
]
],
- "select-multiple-base-appearance.html": [
- "48673b446bc8e6e6cce72e6c4d29671bed313779",
- [
- null,
- [
- [
- "/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"select-only-button-opt-in.tentative.html": [
"b010d15e8adab1ebfe448842e195e29b24d332fb",
[
@@ -353559,6 +353999,21 @@
]
]
},
+ "customizable-select-in-page": {
+ "customizable-select-in-page-appearance.tentative.html": [
+ "b3bf75eb0ff25df6d4737326940a498a11d264d2",
+ [
+ null,
+ [
+ [
+ "/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
+ },
"reset-algorithm-rendering.html": [
"67da173ff2eb0d90c063294db486eaa34ea8878a",
[
@@ -361578,7 +362033,7 @@
]
],
"animation-with-transform.html": [
- "f741cc634d732624186d8d0a034822bef831c872",
+ "323d984c98938fbb5bd224560d7adf0711149430",
[
null,
[
@@ -361643,7 +362098,7 @@
]
],
"two-animations-attach-to-same-scroll-timeline-cancel-one.html": [
- "ed8e8337a65af3033e3df4e158333d225d88a56d",
+ "28973d2d1858421ff53bae1d667c160152d6ecda",
[
null,
[
@@ -361656,7 +362111,7 @@
]
],
"two-animations-attach-to-same-scroll-timeline.html": [
- "de50599fbafb634e44ccd9546e18bea8ba7f7f7e",
+ "45ba3f99ccdbf9ef64f915c1c124d7f946a1f74f",
[
null,
[
@@ -370753,7 +371208,7 @@
[]
],
"docker.yml": [
- "66794b69aba0f2ee5984c269434cdab2ee9a6cfc",
+ "5de0cc4bcb1faf6c919d41998bd9ec035e8594cf",
[]
],
"documentation.yml": [
@@ -371496,6 +371951,10 @@
"iframe-helper.html": [
"fe07de3f8abac59ddbd6ccfd706a5e69c5b8b4c4",
[]
+ ],
+ "util.js": [
+ "7cb3e7c2e13cb0415be019580ccfcc339cd7bd8f",
+ []
]
}
},
@@ -374126,6 +374585,14 @@
"eb50cb54ef867844ea741fe1fdb01df970e4deea",
[]
],
+ "clear-site-data-prefetchCache.py": [
+ "3a332dd58b2012154b6a193410be34dc3f92a172",
+ []
+ ],
+ "clear-site-data-prerenderCache.py": [
+ "bf845cfb699c311c145357ad12a5b4b056d2c986",
+ []
+ ],
"controlled-endpoint.py": [
"bb4f464088e46438f993d66ae0da134bb4410c7b",
[]
@@ -413745,6 +414212,14 @@
[]
],
"abspos": {
+ "align-items-static-position-001-ref.tentative.html": [
+ "22c1fd03e38792a3d697659c1e087178c453f1ed",
+ []
+ ],
+ "align-items-static-position-002-ref.tentative.html": [
+ "6f53b04178707a83eb2822e5807cf42d3c547ca6",
+ []
+ ],
"align-items-static-position-ref.html": [
"fd7093f98748709d0f6d03c9dc9993a7a1447446",
[]
@@ -413757,6 +414232,30 @@
"d8bef63aa292aecd1ce6628e27abbc2c196f8a29",
[]
],
+ "align-self-static-position-003-ref.html": [
+ "132bbb7360fb5a40130e0a7af9ffb3a9d2baf753",
+ []
+ ],
+ "align-self-static-position-004-ref.html": [
+ "68130ee1d7e723a6b5c4c8a7e3b78d7bdb2f35da",
+ []
+ ],
+ "align-self-static-position-005-ref.html": [
+ "947bd2704481f757f3d1f4bf51105483978cc7ff",
+ []
+ ],
+ "align-self-static-position-006-ref.html": [
+ "5bbafc6484585ad25223cf1b5825214e90705836",
+ []
+ ],
+ "align-self-static-position-007-ref.html": [
+ "bc9b5f4f6502f647e97332401308a87a64c339f0",
+ []
+ ],
+ "align-self-static-position-008-ref.html": [
+ "79cf612b8f846920af1d2d7b188376693c789b3f",
+ []
+ ],
"align-self-with-flex-grid-parent-ref.html": [
"c87289d450e9ec95677c17a6d72d3e34dec4d05d",
[]
@@ -430713,6 +431212,66 @@
"7e0d9cbcd6ff64b17bc8fe57616a37ba29a9fd8e",
[]
]
+ },
+ "tentative": {
+ "multicol": {
+ "multicol-gap-decorations-001-ref.html": [
+ "834c96ccd397fbc41abcfb80dbd298094cb929b1",
+ []
+ ],
+ "multicol-gap-decorations-002-ref.html": [
+ "d132f0ca6770be13d87ee66fb033f2f498d0e37b",
+ []
+ ],
+ "multicol-gap-decorations-003-ref.html": [
+ "cd26da243891f05c83c5d1eea17c747dcf390f05",
+ []
+ ],
+ "multicol-gap-decorations-004-ref.html": [
+ "002b1f2b594cf791b6d66613f48128e915517e01",
+ []
+ ],
+ "multicol-gap-decorations-005-ref.html": [
+ "6543021c97934a217568e567ac005166f7a9c0a0",
+ []
+ ],
+ "multicol-gap-decorations-006-ref.html": [
+ "4cb56d207fef4f801ec2063828103712267c030e",
+ []
+ ],
+ "multicol-gap-decorations-007-ref.html": [
+ "09973ddc690a899be9fb321e603b7831bfeb22a7",
+ []
+ ],
+ "multicol-gap-decorations-008-ref.html": [
+ "d49c2f50f1909d5b04be07798e62448d9b82ab72",
+ []
+ ],
+ "multicol-gap-decorations-009-ref.html": [
+ "124bf7eaeb1779d067d84f1c30560f45763add7c",
+ []
+ ],
+ "multicol-gap-decorations-010-ref.html": [
+ "9582ab4103d197d25823ed75dc8cafa83e0b1a7c",
+ []
+ ],
+ "multicol-gap-decorations-011-ref.html": [
+ "3387918d399cdbd3b39364ebe954a2a204a5145c",
+ []
+ ],
+ "multicol-gap-decorations-012-ref.html": [
+ "9fb5e85e920812d259e057c7538d35db56659b05",
+ []
+ ],
+ "multicol-gap-decorations-013-ref.html": [
+ "8e426d8ed32b25248e602e063e69678ca94b5e09",
+ []
+ ],
+ "multicol-gap-decorations-014-ref.html": [
+ "9d9674bd476896f0f1b03ec6835b069c97d9c8e5",
+ []
+ ]
+ }
}
},
"css-gcpm": {
@@ -454347,6 +454906,10 @@
"c5cd6fe28a97343b94989193c4583ddd2393538a",
[]
],
+ "table-cell-align-006-ref.html": [
+ "c5b52346fc0ad931aedb40339150146e067bc268",
+ []
+ ],
"table-cell-valign-001-ref.html": [
"03cb9ec9e4c6b1d7b6e0973b57f3c93ce293b1e4",
[]
@@ -460247,7 +460810,7 @@
},
"include": {
"editor-test-utils.js": [
- "9c5600af77bf22c936cbe383a9667790d2cd8c10",
+ "f0c4f58399263a453b11a37e54d7152d935adec5",
[]
],
"implementation.js": [
@@ -464908,7 +465471,7 @@
[]
],
"fledge-util.sub.js": [
- "0a18ea40d3d25e22acef6a7c32f0e644989294cf",
+ "49ebfd1c596c102970f0062592284b14da3841f9",
[]
],
"fledge_http_server_util.py": [
@@ -464927,6 +465490,14 @@
"54873674eb58783731237dde5ef299ce15947638",
[]
],
+ "record-click.py": [
+ "b4e76873d9b12227e350e2d4d01321cab05a44ce",
+ []
+ ],
+ "record-view.py": [
+ "d423b2d9c72930a1302738418eef197f28dfb661",
+ []
+ ],
"redirect-to-trusted-signals.py": [
"7da27cd6872f9119c8647be939aecc4452526e50",
[]
@@ -469611,6 +470182,10 @@
"2d.gradient.object.current.png": [
"d638d033868afd3aab0a7b26d5b2a0a2b95da010",
[]
+ ],
+ "WEB_FEATURES.yml": [
+ "319b5b8e04cb32161be0d8eb36cc4ba99eb6459c",
+ []
]
},
"filters": {
@@ -470031,6 +470606,10 @@
]
},
"fill-and-stroke-styles": {
+ "WEB_FEATURES.yml": [
+ "5d9106c1cd63b77005e44a30177d9e623f4e98df",
+ []
+ ],
"conic-gradient-expected.html": [
"f347abc9d3939fb52c4fe08d949f8d96c4de3386",
[]
@@ -470941,6 +471520,10 @@
"2d.gradient.hueInterpolationMethod-expected.html": [
"13ae67ad970eb6bc6a94d837d3f2c01c2ad9c3ba",
[]
+ ],
+ "WEB_FEATURES.yml": [
+ "319b5b8e04cb32161be0d8eb36cc4ba99eb6459c",
+ []
]
},
"filters": {
@@ -472307,82 +472890,6 @@
"244167937219cfd784f13d8ed37eedead64665e9",
[]
]
- },
- "tentative": {
- "restrict-properties": {
- "README.md": [
- "b3c24c3f82d2dbf07eefa9fa2e88fcf3817473d2",
- []
- ],
- "coop-rp-in-navigation-chain.https.html.headers": [
- "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
- []
- ],
- "iframe-popup-about-blank.https.window.js.headers": [
- "19d0dbe4e18df8ba52c2a564853f5614a0469b95",
- []
- ],
- "iframe-popup-to-so.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "iframe-popup-to-soap.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "iframe-popup-to-un.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "iframe-popup.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "popup-so.https.html.headers": [
- "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
- []
- ],
- "popup-soap.https.html.headers": [
- "d83ed86fb9b5d159b9f380424887402edc96cb75",
- []
- ],
- "popup-un.https.html.headers": [
- "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
- []
- ],
- "popup-with-cross-origin.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "popup-with-same-origin.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "popup-with-same-site.https.html.headers": [
- "d5c99062d2bb8f9660b68c172754867b598ed43f",
- []
- ],
- "reporting-bcg-reuse.https.html.sub.headers": [
- "33abadd83dd9187bfa5ecf811f9fef7058412780",
- []
- ],
- "reporting-from-rp-ro.https.html.sub.headers": [
- "07ecad96f2493c7ddc70cc5f37d242c07f0cabb1",
- []
- ],
- "reporting-from-rp.https.html.sub.headers": [
- "a61e2919c8acb6be886ef16e764f1ba5dcabe9bc",
- []
- ],
- "reporting-to-rp-ro.https.html.headers": [
- "16903320bb50789e0a64f9620540f1cc8c0902fd",
- []
- ],
- "reporting-to-rp.https.html.headers": [
- "16903320bb50789e0a64f9620540f1cc8c0902fd",
- []
- ]
- }
}
},
"document-isolation-policy": {
@@ -476378,6 +476885,12 @@
[]
]
}
+ },
+ "writing-suggestions": {
+ "WEB_FEATURES.yml": [
+ "4700eca4a12b8b607c16d85ff987a8ef42ac81a3",
+ []
+ ]
}
},
"the-hidden-attribute": {
@@ -476989,7 +477502,7 @@
[]
],
"marquee-with-trusted-types-ref.html": [
- "b177f47b757cc278abe79f5b59d9063f6911dbd3",
+ "5042557212e58741859ad6750543540cff563493",
[]
]
}
@@ -479765,10 +480278,6 @@
"b351c80c273940c8422db8f66da959fb36e962cb",
[]
],
- "select-multiple-base-appearance-ref.html": [
- "45a74da7559c72ee5840c00842aef4fc23915e0e",
- []
- ],
"select-only-picker-opt-in-ref.html": [
"67a0abe43f2d1aad0b1d82da8b8cdfc77a25b549",
[]
@@ -479806,6 +480315,22 @@
[]
]
},
+ "customizable-select-in-page": {
+ "customizable-select-in-page-appearance-ref.html": [
+ "57ea51e367cfad284ed80e71870698dfed0b26e4",
+ []
+ ],
+ "resources": {
+ "customizable-select-in-page.css": [
+ "deb080b4756cf51d2ece9d2b132e9fff6ccd6f7c",
+ []
+ ],
+ "customizable-select-in-page.js": [
+ "1323094332135c46297a1df5c9fed1922efe8f4a",
+ []
+ ]
+ }
+ },
"reset-algorithm-rendering-ref.html": [
"acf192d1d55b7da110d04651093e3ebe0cd48214",
[]
@@ -483754,6 +484279,10 @@
},
"system-state-and-capabilities": {
"the-navigator-object": {
+ "WEB_FEATURES.yml": [
+ "a1af3e21a48f5941a078209963d1ae7bc379dd59",
+ []
+ ],
"resources": {
"handler-sw.js": [
"5fd915d17f98d8fa9c3c81451f46d71bc6cd024e",
@@ -484797,6 +485326,12 @@
[]
]
},
+ "emulation": {
+ "set_geolocation_override.https.html.ini": [
+ "7de34991442711cd389fe324dabd6005605268af",
+ []
+ ]
+ },
"permissions": {
"set_permission.https.html.ini": [
"2101196fa2fe436c3f94c5f84451f1746501c84d",
@@ -485259,10 +485794,6 @@
"035e1d233d6f5646768b78e878c9db43b84a0068",
[]
],
- "WebCryptoAPI.idl": [
- "ff7a89cd0d51be01760b9bfdb709393f4db5fd31",
- []
- ],
"accelerometer.idl": [
"a082224dc88e10e043d86d09cbf981616f6bb9a7",
[]
@@ -485588,7 +486119,7 @@
[]
],
"fedcm.idl": [
- "215f375432e930afb63c26fb9bdc42365ca8c61d",
+ "5ce2d260f114ddcc25210905ee010a9b96b47410",
[]
],
"fenced-frame.idl": [
@@ -485680,7 +486211,7 @@
[]
],
"image-capture.idl": [
- "21e03d4db8248d469671d8286be877e3ad7dc7b5",
+ "26cc7fab5cdf1f3209057cf159171961b779dcd5",
[]
],
"image-resource.idl": [
@@ -485820,7 +486351,7 @@
[]
],
"mediastream-recording.idl": [
- "496bfcf2e27da7a7da6c653b8e7f27b702f7386f",
+ "68c891cdc918e7468de8add96acce35d6d63102f",
[]
],
"model-element.idl": [
@@ -486112,7 +486643,7 @@
[]
],
"turtledove.idl": [
- "b9f50d47885cf9186c9a2dd3c2d08e1dc4054431",
+ "7f11cdc37908f411280ea6f79eeb759c85acbe62",
[]
],
"ua-client-hints.idl": [
@@ -486236,13 +486767,17 @@
[]
],
"webcodecs.idl": [
- "274ef96578a3d16b9fcda6e817c25e12373ec824",
+ "3d4db1ed49d316c31005a5be857ad7d48eca378d",
[]
],
"webcrypto-secure-curves.idl": [
"01bb290b747827bb4e45ea6d0c8f6146e59b01ee",
[]
],
+ "webcrypto.idl": [
+ "ff7a89cd0d51be01760b9bfdb709393f4db5fd31",
+ []
+ ],
"webdriver.idl": [
"194e2d806adb2131f7cdc56a70a46d7784cb7d75",
[]
@@ -486256,7 +486791,7 @@
[]
],
"webgpu.idl": [
- "de1f7c1e52bc401fed112469595f281736213027",
+ "4fec46a2557033a941b5da7a7481aa8125696ed2",
[]
],
"webhid.idl": [
@@ -486272,7 +486807,7 @@
[]
],
"webnn.idl": [
- "57f2a4a9890147e24f10e91537a626732db1f617",
+ "37fcc32501efbeb38c9686a8fc96e1ce062eb30a",
[]
],
"webrtc-encoded-transform.idl": [
@@ -486328,7 +486863,7 @@
[]
],
"webxr-depth-sensing.idl": [
- "9befd640646a132bff680de5f5b0d2edbe199e91",
+ "7ddbec7cc975dfd1c5be6f05f1a854fffe653e79",
[]
],
"webxr-dom-overlays.idl": [
@@ -486356,7 +486891,7 @@
[]
],
"webxr.idl": [
- "1098000d6c2edae1a36f8e6a035f0c53432207c8",
+ "874994086a250df0f3c0a0eed03375d9429aeaa9",
[]
],
"webxrlayers.idl": [
@@ -486371,6 +486906,10 @@
"527c41deb6cda2de79780899d15bc43f02b281db",
[]
],
+ "writing-assistance-apis.idl": [
+ "916daee754e3ef992ad8fa282882c88dd9aa0734",
+ []
+ ],
"xhr.idl": [
"6ff75fd27741369f9671509998a21aeb9de3761a",
[]
@@ -494077,7 +494616,7 @@
[]
],
"webxr-test.js": [
- "0885b559e6335d7bcd8a539b7d7e03f5843c74a5",
+ "ce2503b1bbcfbd5c4318c08b49020e9453c4b3a6",
[]
],
"webxr-test.js.headers": [
@@ -494566,7 +495105,7 @@
[]
],
"testdriver.js": [
- "f127e2b2c8d9091a767b1ead849af1d18167070f",
+ "6e8410b7ea46064438c8d276274b6fbb689f81d2",
[]
],
"testdriver.js.headers": [
@@ -501383,7 +501922,7 @@
[]
],
"requirements_tc.txt": [
- "cb4ba1947784f9b9ba39b3e43237640c7d1e802d",
+ "ada75c2f761904412048f3525f3010b658d174f9",
[]
],
"run_tc.py": [
@@ -502002,7 +502541,7 @@
[]
],
"requirements_tests.txt": [
- "833fdb3b8761b3d790fcd9bf70ba536bd8dd3251",
+ "ca00b8f1f9835eea866a0462962b705a63366de6",
[]
],
"runner": {
@@ -512773,7 +513312,7 @@
[]
],
"asyncactions.py": [
- "71187ee76d7a1aff4803903a8506cb4dac4a8a04",
+ "9925a4b511def24fda82522acb5c5f0f9f3e80a1",
[]
],
"base.py": [
@@ -512805,7 +513344,7 @@
[]
],
"executorwebdriver.py": [
- "123c89c98b21e9ec2616c6bfad3d91c5069ee89c",
+ "87403c2944d57e31c2612871262af9b77ce73235",
[]
],
"executorwktr.py": [
@@ -512821,7 +513360,7 @@
[]
],
"protocol.py": [
- "7630fe1f3580f6cbb3554e89e05ab34c2fa3ee8e",
+ "833dff45636c7e22697e47cfe692ebecfcf2d76f",
[]
],
"pytestrunner": {
@@ -512936,7 +513475,7 @@
[]
],
"testdriver-extra.js": [
- "d83ba4192eb52487bf9265a5c2eea22f21e49c64",
+ "ab8b04ba3cdfc3d7c351ce99c6289de6e99b8f3e",
[]
],
"testdriver-vendor.js": [
@@ -515979,7 +516518,7 @@
[]
],
"keyframe-tests.js": [
- "2bcce1ecf47f180d7f91a8160ad548e2ad06f5b9",
+ "34a84f45b20dea524016a6f479e9e0d0f5b7b2e7",
[]
],
"keyframe-utils.js": [
@@ -518793,7 +519332,7 @@
"close-event": {
"resources": {
"helper.js": [
- "cb9ea9fe981e95374b836255c752a42de788fc7b",
+ "48744ac1c5b530ef8d46c3d9a0378c698353a5bc",
[]
]
}
@@ -518911,7 +519450,7 @@
},
"resources": {
"utils.js": [
- "d19cb7cf760f63d60b26f008af7329fad0a568a1",
+ "50d7911a9181a5139d9e16f7c866112dc54d6d01",
[]
],
"utils_validation.js": [
@@ -521784,6 +522323,10 @@
"0cc425955374e214cd5dd9bdb75a654c7c69faa9",
[]
],
+ "matchDepthViewValues.js": [
+ "597f9734d3fe66c2600c291a643a6d70ec908a25",
+ []
+ ],
"pauseResumeTests.js": [
"e7513ef61c13b856ea9e49ff93ad9088e57163b3",
[]
@@ -550196,14 +550739,14 @@
"ai": {
"language_detection": {
"detector-iframe.https.html": [
- "3e90d36b5aa63a556b82337cdf7a26410b80ac36",
+ "ddcf82bec684024f855217c649bb2da6cbd1f577",
[
null,
{}
]
],
"detector-locale.https.window.js": [
- "a1c67db912961d8850bb4a430f92f7be4b450c87",
+ "80cbfa485e3944ba13de2aec3ba317e2cc84026f",
[
"ai/language_detection/detector-locale.https.window.html",
{
@@ -550217,6 +550760,18 @@
"window"
],
[
+ "timeout",
+ "long"
+ ],
+ [
+ "script",
+ "resources/util.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
"script",
"../resources/util.js"
],
@@ -550224,12 +550779,13 @@
"script",
"../resources/locale-util.js"
]
- ]
+ ],
+ "timeout": "long"
}
]
],
"detector.https.window.js": [
- "e85ea6d249b17d3ed1505f206f5ac6659b6dfd94",
+ "b0255bc552b0d2f7c71f8567bab9e0102702cd4c",
[
"ai/language_detection/detector.https.window.html",
{
@@ -550243,6 +550799,18 @@
"window"
],
[
+ "timeout",
+ "long"
+ ],
+ [
+ "script",
+ "resources/util.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
"script",
"../resources/util.js"
],
@@ -550250,12 +550818,13 @@
"script",
"../resources/locale-util.js"
]
- ]
+ ],
+ "timeout": "long"
}
]
],
"detector.optional.https.window.js": [
- "7ffa1362dd5f97b68e7c678463dd5afa186d10dc",
+ "1dd248a9ecab667355702d00e865341122a2ebe2",
[
"ai/language_detection/detector.optional.https.window.html",
{
@@ -550269,10 +550838,23 @@
"window"
],
[
+ "timeout",
+ "long"
+ ],
+ [
+ "script",
+ "resources/util.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
"script",
"../resources/util.js"
]
- ]
+ ],
+ "timeout": "long"
}
]
]
@@ -551295,7 +551877,7 @@
]
],
"setSinkId.https.html": [
- "be65f0ac81bc41a89e5085a43124f7ee991fea7b",
+ "662596910ee9adf94f83d536fe9c67a49db67f4b",
[
null,
{
@@ -571982,7 +572564,7 @@
},
"cookie-store": {
"change_eventhandler_for_already_expired.https.window.js": [
- "89d84b13d1b53ec4d424b363ace9b26ed9685685",
+ "f3bbe0ea560974e9486941384e75a58d2d6a4637",
[
"cookie-store/change_eventhandler_for_already_expired.https.window.html",
{
@@ -572000,7 +572582,7 @@
]
],
"change_eventhandler_for_document_cookie.https.window.js": [
- "82b0f2baa2bb72f51d944e2138ad56f7a170ba7a",
+ "1937ebdae35942840dc3b641b5907f334048f3fb",
[
"cookie-store/change_eventhandler_for_document_cookie.https.window.html",
{
@@ -572018,7 +572600,7 @@
]
],
"change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js": [
- "8f5ef1cabbe7a742115ba81328e40ee789496edd",
+ "8517995acfe746bbff09243597d6d319e3af1bc2",
[
"cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.html",
{
@@ -572035,6 +572617,24 @@
}
]
],
+ "change_eventhandler_for_no_change.https.window.js": [
+ "5f9c2927433fc408c70c005789dc0bcc34d46caa",
+ [
+ "cookie-store/change_eventhandler_for_no_change.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Cookie Store API: Test that setting a duplicate cookie does not fire a second event."
+ ],
+ [
+ "script",
+ "resources/cookie-test-helpers.js"
+ ]
+ ]
+ }
+ ]
+ ],
"change_eventhandler_for_no_name_and_no_value.https.window.js": [
"4498caf59689cc3da875d1c56937f6d2a235cb5d",
[
@@ -580266,14 +580866,14 @@
]
],
"margin-trim-computed.html": [
- "ad2d17f2ef01d2f870a4f07cd3eccb226e4de0f2",
+ "c38adea9a68e1eeee53e8a42ba9d745546624f88",
[
null,
{}
]
],
"margin-trim.html": [
- "0d92f80b9b96ee409b141487f26cb664ce67f8df",
+ "e8679f9cbf3fb606c542ae8ccc653e0b90b96bbc",
[
null,
{}
@@ -584160,7 +584760,7 @@
]
],
"linear-timing-functions-syntax.html": [
- "0c949e9ea7dc50c86cd6877da1a10f7b2ba01625",
+ "408264b58dfe41dd7744d20419bae3a5fc7fd3eb",
[
null,
{}
@@ -584174,7 +584774,7 @@
]
],
"step-timing-functions-syntax.html": [
- "4e8b21e4413f8000ae584396355ed7df1c44a447",
+ "e8465ff7a3304184046f7eb81f93d51a61c19dad",
[
null,
{}
@@ -587326,7 +587926,7 @@
]
],
"font-palette-values-invalid.html": [
- "a3a0a88ba68c8fcc1f8b00054d7b12bc08d4b7af",
+ "32c9c4c5efeec345c24261b7bb0aa237f11d25e0",
[
null,
{}
@@ -587747,7 +588347,7 @@
]
],
"test_font_feature_values_parsing.html": [
- "7a5844d56008eae798652b59a335d08d24b34032",
+ "08c20142449646123ebdecde6f023511b45feed4",
[
null,
{}
@@ -595352,6 +595952,15 @@
}
]
],
+ "scroll-button-display-none.html": [
+ "8b3068be6dad6d1ccbe1134b9833ecc1c8b0f594",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"scroll-button-hover-remove.html": [
"af000012b4ec605fb0e30a34e50bc02119a9b925",
[
@@ -595710,6 +596319,55 @@
{}
]
],
+ "scrollable-overflow-transform-004.html": [
+ "b398167fa309885658f044ccdd1df75bca880701",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-005.tentative.html": [
+ "837b95ba96db71e7d696edfe4bb6c7c489e7a411",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-006.html": [
+ "2eea759da6a1adad341b2145a8b29725e84c2db6",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-007.html": [
+ "8aa6e5f17d8633e759d5b52b5096057c367d7b58",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-008.html": [
+ "df1daeb842405ba6107be563e1652651ec232d58",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-009.html": [
+ "aca1b28418adf361a38f59bb10e6ba3cdabd3097",
+ [
+ null,
+ {}
+ ]
+ ],
+ "scrollable-overflow-transform-010.tentative.html": [
+ "e2c62cb4474ecbd486360fdd4aeb1c306a433f2d",
+ [
+ null,
+ {}
+ ]
+ ],
"scrollable-overflow-transform-dynamic-001.html": [
"a233376bdb222e5eeb45e3b5f646a84a665e6594",
[
@@ -595752,6 +596410,13 @@
{}
]
],
+ "scrollable-overflow-transform-unreachable-region.html": [
+ "91e987bf82654415f47500f9d6d7d568e4eefcbc",
+ [
+ null,
+ {}
+ ]
+ ],
"scrollable-overflow-vertical-rl-dynamic.html": [
"07f322901748c9709c3037d0223a546549cc9cff",
[
@@ -595894,7 +596559,7 @@
]
],
"overscroll-behavior-root.html": [
- "a116ead01b71db7b72bfd483b10b35b2e83ea1b8",
+ "71c5f6573d6f31f1ef872c09302063919597d8da",
[
null,
{
@@ -600372,6 +601037,13 @@
{}
]
],
+ "host-part-nesting.html": [
+ "c0dc8e20eee9ab3fda124ef99cb7623146b8a321",
+ [
+ null,
+ {}
+ ]
+ ],
"host-stylesheet.html": [
"2e65c4b1b57bd9959c68e85e11b442c67f2c5a42",
[
@@ -613530,6 +614202,13 @@
{}
]
],
+ "run_in_parallel.html": [
+ "1afdae2be9d8092953746d360d2a77ea1a538ba1",
+ [
+ null,
+ {}
+ ]
+ ],
"start-view-transition.html": [
"a1bc95891956e6678c8ee2ecd51be7d6e94b70ca",
[
@@ -622599,6 +623278,13 @@
]
],
"non-cancelable-when-passive": {
+ "generic-events-stay-cancelable.html": [
+ "961794728d3799a2096bad18dd60e79f619533a4",
+ [
+ null,
+ {}
+ ]
+ ],
"non-passive-mousewheel-event-listener-on-body.html": [
"5574fe0acbcccb64ff05213fa518c49d4149e7e4",
[
@@ -624655,6 +625341,13 @@
{}
]
],
+ "Node-childNodes-cache-2.html": [
+ "9079fc6ea7a146cb854389bf4f1b8c302a102746",
+ [
+ null,
+ {}
+ ]
+ ],
"Node-childNodes-cache.html": [
"da9e32c6a9cf579f3d7c6ce2e3208e04f90d7105",
[
@@ -626699,7 +627392,7 @@
]
],
"XMLSerializer-serializeToString.html": [
- "c3b704bf18825c27e74c5db8177fa178925c9b26",
+ "6c294e464a5dc787abd4d10281ab2fe0555a0a3c",
[
null,
{}
@@ -626803,6 +627496,13 @@
{}
]
],
+ "xml-parse-serialize-roundtrip.html": [
+ "5195b9f04b5dd9f47937a5d11d2e82f09fdb9204",
+ [
+ null,
+ {}
+ ]
+ ],
"xml-serialization.xhtml": [
"852bbcc9fd1b1c91fd544dfc2fc462efc1195a4a",
[
@@ -630361,7 +631061,7 @@
]
],
"selection-change-not-fired-if-selection-set-to-root.html": [
- "39e8b46e69b2c469b4b5d4ed40314bd67a2b3524",
+ "cac621ad3cdd3b1b8c9fcbbdf09cac739f9756ff",
[
null,
{
@@ -668955,7 +669655,7 @@
]
],
"generate-bid-browser-signals.https.window.js": [
- "e472fccdc4da37c1a2cebb80921809cab5788b54",
+ "ee0cdd84efa4a3307bb674015c3eb5a8211fe962",
[
"fledge/tentative/generate-bid-browser-signals.https.window.html?1-4",
{
@@ -669014,7 +669714,15 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -669078,7 +669786,15 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -669142,7 +669858,15 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -669206,7 +669930,15 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -669270,14 +670002,94 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ],
+ [
+ "fledge/tentative/generate-bid-browser-signals.https.window.html?29-32",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver-vendor.js"
+ ],
+ [
+ "script",
+ "/common/utils.js"
+ ],
+ [
+ "script",
+ "resources/fledge-util.sub.js"
+ ],
+ [
+ "script",
+ "/common/subset-tests.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ],
+ [
+ "variant",
+ "?1-4"
+ ],
+ [
+ "variant",
+ "?5-8"
+ ],
+ [
+ "variant",
+ "?9-12"
+ ],
+ [
+ "variant",
+ "?13-16"
+ ],
+ [
+ "variant",
+ "?17-20"
+ ],
+ [
+ "variant",
+ "?21-24"
+ ],
+ [
+ "variant",
+ "?25-28"
+ ],
+ [
+ "variant",
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
}
],
[
- "fledge/tentative/generate-bid-browser-signals.https.window.html?29-last",
+ "fledge/tentative/generate-bid-browser-signals.https.window.html?33-36",
{
"script_metadata": [
[
@@ -669334,7 +670146,87 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ],
+ [
+ "fledge/tentative/generate-bid-browser-signals.https.window.html?37-last",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver-vendor.js"
+ ],
+ [
+ "script",
+ "/common/utils.js"
+ ],
+ [
+ "script",
+ "resources/fledge-util.sub.js"
+ ],
+ [
+ "script",
+ "/common/subset-tests.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ],
+ [
+ "variant",
+ "?1-4"
+ ],
+ [
+ "variant",
+ "?5-8"
+ ],
+ [
+ "variant",
+ "?9-12"
+ ],
+ [
+ "variant",
+ "?13-16"
+ ],
+ [
+ "variant",
+ "?17-20"
+ ],
+ [
+ "variant",
+ "?21-24"
+ ],
+ [
+ "variant",
+ "?25-28"
+ ],
+ [
+ "variant",
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -669398,7 +670290,15 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -669462,7 +670362,15 @@
],
[
"variant",
- "?29-last"
+ "?29-32"
+ ],
+ [
+ "variant",
+ "?33-36"
+ ],
+ [
+ "variant",
+ "?37-last"
]
],
"timeout": "long"
@@ -717217,342 +718125,6 @@
}
]
]
- },
- "restrict-properties": {
- "access-reporting-closed.https.html": [
- "1c315b35d7fa81188aabf59c1c3196a5d5d2a2ea",
- [
- null,
- {}
- ]
- ],
- "access-reporting-openee-rp-ro.https.html": [
- "7a96f4f5762721378036b47d248c3ae1ef21dd2f",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "access-reporting-opener-rp-ro.https.html": [
- "9e1e85b16a5876c3e78656b8300c2fcc9e3e3ab1",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "access-reporting-post-message.https.html": [
- "5bc718e2a89a28a6867e83c0d85bc0cedefe39f6",
- [
- null,
- {}
- ]
- ],
- "coop-rp-in-navigation-chain.https.html": [
- "e5c877517488f755e08f69233439a817dd444164",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "iframe-popup-about-blank.https.window.js": [
- "1247400a4e37d2f6bd52b2731c2a3eb7f84a7185",
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.html",
- {
- "script_metadata": [
- [
- "script",
- "/common/get-host-info.sub.js"
- ],
- [
- "script",
- "/common/utils.js"
- ],
- [
- "script",
- "/common/dispatcher/dispatcher.js"
- ]
- ]
- }
- ]
- ],
- "iframe-popup-to-so.https.html": [
- "8cf2679e190129e91de8e2af4ceef5b064fedba4",
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?1-1",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?2-2",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?3-3",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?4-4",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?5-5",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?6-6",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?7-7",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?8-8",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html?9-last",
- {
- "timeout": "long"
- }
- ]
- ],
- "iframe-popup-to-soap.https.html": [
- "f3af3ca7db1bad6506fef6b519c8f244d2080d0e",
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?1-2",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?3-4",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?5-6",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?7-8",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html?9-last",
- {
- "timeout": "long"
- }
- ]
- ],
- "iframe-popup-to-un.https.html": [
- "560dfd90511dca11a8b5f4fb30d88beb093c538a",
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?1-2",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?3-4",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?5-6",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?7-8",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html?9-last",
- {
- "timeout": "long"
- }
- ]
- ],
- "iframe-popup.https.html": [
- "17840724d9e342aa52cdcc474356b25d554dfd63",
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?1-2",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?3-4",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?5-6",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?7-8",
- {
- "timeout": "long"
- }
- ],
- [
- "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html?9-last",
- {
- "timeout": "long"
- }
- ]
- ],
- "named_targeting.https.html": [
- "10929847ee64d1f47e78b1c34af55c963871c055",
- [
- null,
- {}
- ]
- ],
- "popup-so.https.html": [
- "e5313a6e222d5b7671747516b8d056fda7e9db8b",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "popup-soap.https.html": [
- "595a10a84bbc9c23ba609411e84f5e0bf107e6ac",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "popup-u.https.html": [
- "595a10a84bbc9c23ba609411e84f5e0bf107e6ac",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "popup-un.https.html": [
- "595a10a84bbc9c23ba609411e84f5e0bf107e6ac",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "popup-with-cross-origin.https.html": [
- "a84d52584e9b4fbd6a9a35e5472c5a990fdf2351",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "popup-with-same-origin.https.html": [
- "c0020fa23a478fd75aa27b69edb95c84f3e3789a",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "popup-with-same-site.https.html": [
- "7d115ac7e639a53c76f6bc1b7b7c9210d8d6bf89",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "reporting-bcg-reuse.https.html": [
- "9bc171a269c5284de80cad871baafd58fb297da0",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "reporting-from-rp-ro.https.html": [
- "b89030f218ffeb79da7269f70a3432f79700e95a",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "reporting-from-rp.https.html": [
- "6b31f7e0098da78db34e91ba179ac1ef86e3035d",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "reporting-to-rp-ro.https.html": [
- "c47e59cd8f1aeac7ee6b1dbe2177595730148a38",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "reporting-to-rp.https.html": [
- "ff60e8c5afda67ff3ca1573dab5405769b2b2cc3",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ]
}
}
},
@@ -732892,6 +733464,26 @@
]
]
},
+ "customizable-select-in-page": {
+ "customizable-select-in-page-keyboard-behavior.tentative.html": [
+ "24e6e39ea48236fc7b72604860913247b5f5f05c",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "customizable-select-in-page-mouse-behavior.tentative.html": [
+ "d5b93693cf7d65b1202f459223a8cf6b8cff581a",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ]
+ },
"inserted-or-removed.html": [
"0db2bf0e77a4a8a76ebcef1b0879cac9bb8c3fea",
[
@@ -733613,7 +734205,7 @@
]
],
"dialog-focusability.html": [
- "1e000866099c7044ce07fc812229293f645c2f27",
+ "5afb407640b7d2ee1487454464df9adb41419a8a",
[
null,
{
@@ -733723,7 +734315,7 @@
]
],
"dialog-requestclose.html": [
- "9a9c87167d5eaf93bd31c1f979450415dd9fba0d",
+ "6555f1b43bd399cc4e885f80a3a9cbee1dd752dc",
[
null,
{
@@ -739124,14 +739716,14 @@
],
"processing-model-1": {
"col-span-limits.html": [
- "a4a425b9c1f70926c77ad3eb1b8a8a87a4655de9",
+ "2a1ac80e65ad37a0e15ca383e67889b79f2308d0",
[
null,
{}
]
],
"span-limits.html": [
- "cdfa61bbcdc06ea62b80d042440d55fb0c89a186",
+ "798639b387562a54965d5283673a50773c2a3c49",
[
null,
{
@@ -741502,6 +742094,13 @@
{}
]
],
+ "serializing-cdata-in-html-document.html": [
+ "b2366285a41d946324981e771bfbfe2b157606f5",
+ [
+ null,
+ {}
+ ]
+ ],
"serializing-lt-gt.tentative.html": [
"6c74b443a838267be7f0d2ad8a8a80964c57209f",
[
@@ -747310,6 +747909,20 @@
]
]
},
+ "emulation": {
+ "set_geolocation_override.https.html": [
+ "5cbcf546423c772a98fd3725531754c366ab7b91",
+ [
+ null,
+ {
+ "testdriver": true,
+ "testdriver_features": [
+ "bidi"
+ ]
+ }
+ ]
+ ]
+ },
"permissions": {
"set_permission.https.html": [
"5b05e2374e2b4b451a0f98eabd36a6e72a03f933",
@@ -755955,7 +756568,7 @@
]
],
"MediaDevices-enumerateDevices-per-origin-ids.sub.https.html": [
- "714355f5c1c0b2fe37cff162c7be6240540cc0e2",
+ "467cf5d50c71c28675e87445ec311df53815a100",
[
null,
{
@@ -768857,7 +769470,7 @@
]
],
"pointerevent_pointerout_no_pointer_movement.html": [
- "856f2ce37cec59f70dc1a9ad4d3fe0436da3e4cd",
+ "1af166593266f671b1b4705e1911e46eb4c4b990",
[
null,
{
@@ -787645,7 +788258,7 @@
]
],
"fieldset-source.html": [
- "d75f30e664e325f4e43277b4036da0cbb157a990",
+ "cdd2e0be40c87d0cb932a341c9f2f9bf842f96b8",
[
null,
{}
@@ -793871,7 +794484,7 @@
]
],
"form.html": [
- "a4a5f37283848efcdb99b50b3aebb23df3235fe5",
+ "5ab144b05ed130409a09c116fcceecfc57cfaab5",
[
null,
{
@@ -796325,8 +796938,8 @@
{}
]
],
- "clear-prefetch-cache-after-clear-site-data-cache.https.html": [
- "c5796e48b768868f084ae5ad97a63fca5abf6992",
+ "clear-prefetch-cache-after-clear-site-data-cache.tentative.https.html": [
+ "48f6264e852b0e32e6be06367e16b27f7cc6d14b",
[
null,
{}
@@ -797292,8 +797905,8 @@
}
]
],
- "cancel-prerendering-after-clear-site-data-cache-different-origins.https.html": [
- "34b77f8bc47346ecaac9e6f42856d2c5dcd66daf",
+ "cancel-prerendering-after-clear-site-data-cache-different-origins.tentative.https.html": [
+ "db52e758750f2757f722c025e3accf6fce13a9cc",
[
null,
{
@@ -797301,8 +797914,8 @@
}
]
],
- "cancel-prerendering-after-clear-site-data-cache-same-origin.https.html": [
- "cb253d45eaa8f70da33b3bfb13f222280058e9b7",
+ "cancel-prerendering-after-clear-site-data-cache-same-origin.tentative.https.html": [
+ "23d862c5130139bc5e20242e73cb8d2e4a93e332",
[
null,
{
@@ -806001,7 +806614,7 @@
],
"crashtests": {
"garbage-collection.any.js": [
- "b2ba5cd4c27e9120a9e69c358e6ff5be31b107fd",
+ "cf10f7f2e8317ed16dd5fe3a967c6f26efd0a335",
[
"streams/readable-streams/crashtests/garbage-collection.any.html",
{
@@ -814553,6 +815166,13 @@
]
},
"embedded": {
+ "attr-image-fetchpriority.html": [
+ "b083538a8b8ba723347860dda97afecadd1283ee",
+ [
+ null,
+ {}
+ ]
+ ],
"image-crossorigin.sub.html": [
"531512ec168003a55bd687b1b8db010e161f1b0e",
[
@@ -814856,6 +815476,33 @@
]
],
"interact": {
+ "focus-inside-hidden-svg-containers-01.html": [
+ "25765c5b93e66b597c3e66a3083e40e298491cb2",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "focus-inside-hidden-svg-containers-02.html": [
+ "fd9fd34275d0784d82ec0ef847b295c3ad93bcca",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "focus-inside-hidden-svg-containers-03.html": [
+ "097cff57b5ac8296f2e528f96e5333a7370e9722",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"inheritance.svg": [
"e67f19ed43529af5e34683b6853ae870435be014",
[
@@ -815733,6 +816380,13 @@
]
},
"scripted": {
+ "attr-script-fetchpriority.html": [
+ "2f73e1e59a8a450d0a1ad74e45cbb6d25c70bf4a",
+ [
+ null,
+ {}
+ ]
+ ],
"script-invalid-script-type.html": [
"9602dd525bd4d2b77b8d4ffadebef9e568a98c77",
[
@@ -822707,7 +823361,7 @@
},
"viewport": {
"viewport-segments.html": [
- "64f0eb9caefb0b862faabcfe0ab23df52c00735d",
+ "cd24f2bd230b6ce60da9fd230554856ae43d6b64",
[
null,
{}
@@ -822734,7 +823388,7 @@
]
],
"viewport-segments-segments-property.https.html": [
- "852e49fa7fecea5badf92dfafb6befa49800dd39",
+ "e6c9d8b4e169ad061ae7aef5ca270894dbb1db2c",
[
null,
{
@@ -848465,7 +849119,7 @@
]
],
"explicitly-closed.tentative.window.js": [
- "612003d58eaea908ad93294a7bbf777184356a28",
+ "12bfa0bd73e9278e39b825d4fa81437f943cbd02",
[
"webmessaging/message-channels/close-event/explicitly-closed.tentative.window.html",
{
@@ -849342,7 +849996,7 @@
"webnn": {
"conformance_tests": {
"abs.https.any.js": [
- "fcf144200f665b7f9370c2c3f0867f6cfc80a059",
+ "de6a5761df443ab6977ee3a61afc764eedd31c2c",
[
"webnn/conformance_tests/abs.https.any.html?cpu",
{
@@ -850602,7 +851256,7 @@
]
],
"concat.https.any.js": [
- "0208e2ec605387a8d4dac040b64a1465b61d6848",
+ "d41921720463d388eeb0e152b30e04d8246b40b0",
[
"webnn/conformance_tests/concat.https.any.html?cpu",
{
@@ -856245,7 +856899,7 @@
]
],
"neg.https.any.js": [
- "c03afc52516e3e59bd84c500afbbefe6ef7ce7cf",
+ "8bc10475453e24ce6e7d4049d5470b21d8e7b147",
[
"webnn/conformance_tests/neg.https.any.html?cpu",
{
@@ -857346,7 +858000,7 @@
]
],
"qdq_subgraph.https.any.js": [
- "8f6f2246b04f8a6fc9570eced30b31b841da5a06",
+ "3b59c3bb49d6441a77e83309f48a97dd982aea74",
[
"webnn/conformance_tests/qdq_subgraph.https.any.html?cpu",
{
@@ -859113,7 +859767,7 @@
]
],
"relu.https.any.js": [
- "16cc2a3fa67b4ffa77f2555b94e91d8d398e87ff",
+ "63ef9fa9ff09d41d60a228b79b20fd29ff911a21",
[
"webnn/conformance_tests/relu.https.any.html?cpu",
{
@@ -861576,7 +862230,7 @@
]
],
"sub.https.any.js": [
- "2f2fadf7282185eb92cbd7961ab3f1e9d35fd5a3",
+ "85b15f5a00051c0ece94f6202150c0b93b23260f",
[
"webnn/conformance_tests/sub.https.any.html?cpu",
{
@@ -878518,7 +879172,7 @@
]
],
"RTCConfiguration-iceServers.html": [
- "aa66bfbb2bfff0febc9404e4b73e0637a3226a70",
+ "bc7831361ab5f417b46a507b0e5977bef9bedd49",
[
null,
{}
@@ -878769,7 +879423,7 @@
]
],
"RTCPeerConnection-addTransceiver.https.html": [
- "3fd83a76fe2f687114de006bc877bc915a1809be",
+ "62df4293067e554dee9328f3f4f03556dedcdb10",
[
null,
{}
@@ -880742,7 +881396,7 @@
]
],
"supported-stats.https.html": [
- "677736f3cd8f33963c53d4fa9bee0c52f4826a5f",
+ "81aef5f94b90da1ee83de617ecabf0d3e11ad21d",
[
null,
{
@@ -896937,6 +897591,13 @@
{}
]
],
+ "depth_sensing_cpu_matchDepthViewIdentity.https.html": [
+ "f3256106e904b2b66291834197a80a4537c3c682",
+ [
+ null,
+ {}
+ ]
+ ],
"depth_sensing_cpu_pauseResume.https.html": [
"47469f4a0ea186e981843db8c00a1d72bc938907",
[
@@ -897002,6 +897663,13 @@
{}
]
],
+ "depth_sensing_gpu_matchDepthViewIdentity.https.html": [
+ "1813ddd449ec40a9722d38795b23c3397e02dc16",
+ [
+ null,
+ {}
+ ]
+ ],
"depth_sensing_gpu_pauseResume.https.html": [
"d51edb8cd3b85192fc5904df9f488e7c32356080",
[
@@ -926253,7 +926921,7 @@
]
],
"user_prompt_closed.py": [
- "fdb9e8b3ca7d5cc642ec69517f065887b16cdc24",
+ "8322829ebaf078152fd1874773ce0d110a0aac8e",
[
null,
{}
@@ -926276,7 +926944,7 @@
]
],
"user_prompt_opened.py": [
- "c24128004f73a8b09a61991837b1dad103f91789",
+ "a9051f662c8124b6ee4a8c1fc657a5a1aaf2a2b9",
[
null,
{}
@@ -926301,7 +926969,7 @@
]
],
"invalid.py": [
- "79241287fbc2b9a0dbd3c48e455d938e6bce7ad0",
+ "e804848e0be6c483340dcd8b3b4def10dddedce9",
[
null,
{}
@@ -926753,7 +927421,7 @@
]
],
"before_request_sent_cached.py": [
- "9483a707eab1d4caa561a193d641611cf92ffa2e",
+ "e8119d29d9e259208a11bed7c330a9ecbca49886",
[
null,
{}
diff --git a/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini
new file mode 100644
index 00000000000..88bb87548ec
--- /dev/null
+++ b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini
@@ -0,0 +1,8 @@
+[idlharness.https.any.html]
+ [idl_test setup]
+ expected: FAIL
+
+
+[idlharness.https.any.worker.html]
+ [idl_test setup]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini
new file mode 100644
index 00000000000..2f9fddf138a
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-003.html.ini
@@ -0,0 +1,2 @@
+[align-self-static-position-003.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini
new file mode 100644
index 00000000000..f268ef7e7a6
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-004.html.ini
@@ -0,0 +1,2 @@
+[align-self-static-position-004.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini
new file mode 100644
index 00000000000..07f1806f326
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-006.html.ini
@@ -0,0 +1,2 @@
+[align-self-static-position-006.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini
new file mode 100644
index 00000000000..d5abf6545c2
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-007.html.ini
@@ -0,0 +1,2 @@
+[align-self-static-position-007.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini
new file mode 100644
index 00000000000..bfeba12b70e
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-static-position-008.html.ini
@@ -0,0 +1,2 @@
+[align-self-static-position-008.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini
new file mode 100644
index 00000000000..6094b40bf56
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html.ini
@@ -0,0 +1,2 @@
+[align-self-stretch-auto-margins-aspect-ratio.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini
new file mode 100644
index 00000000000..cfef366e7b3
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/align-self-stretch-auto-margins.html.ini
@@ -0,0 +1,2 @@
+[align-self-stretch-auto-margins.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini
new file mode 100644
index 00000000000..bfba165e645
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html.ini
@@ -0,0 +1,2 @@
+[justify-self-stretch-auto-margins-aspect-ratio.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini
new file mode 100644
index 00000000000..75934b08795
--- /dev/null
+++ b/tests/wpt/meta/css/css-align/abspos/justify-self-stretch-auto-margins.html.ini
@@ -0,0 +1,2 @@
+[justify-self-stretch-auto-margins.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini b/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini
index 790872b29d0..ee2b86f6368 100644
--- a/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini
+++ b/tests/wpt/meta/css/css-box/parsing/margin-trim-computed.html.ini
@@ -46,3 +46,21 @@
[Property margin-trim value 'inline-start inline-end block-start']
expected: FAIL
+
+ [Property margin-trim value 'block-start inline-start block-end inline-end']
+ expected: FAIL
+
+ [Property margin-trim value 'block-start block-end inline-end inline-start']
+ expected: FAIL
+
+ [Property margin-trim value 'block-start block-end inline-start inline-end']
+ expected: FAIL
+
+ [Property margin-trim value 'inline-start block-end block-start inline-end']
+ expected: FAIL
+
+ [Property margin-trim value 'inline-start inline-end block-start block-end']
+ expected: FAIL
+
+ [Property margin-trim value 'inline-end block-end inline-start block-start']
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini b/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini
index cd977b53207..b75bfe7845a 100644
--- a/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini
+++ b/tests/wpt/meta/css/css-box/parsing/margin-trim.html.ini
@@ -43,3 +43,21 @@
[e.style['margin-trim'\] = "inline-end block-end inline-start block-start" should set the property value]
expected: FAIL
+
+ [e.style['margin-trim'\] = "block inline" should set the property value]
+ expected: FAIL
+
+ [e.style['margin-trim'\] = "inline block" should set the property value]
+ expected: FAIL
+
+ [e.style['margin-trim'\] = "block-start block-end inline-end inline-start" should set the property value]
+ expected: FAIL
+
+ [e.style['margin-trim'\] = "block-start block-end inline-start inline-end" should set the property value]
+ expected: FAIL
+
+ [e.style['margin-trim'\] = "inline-start block-end block-start inline-end" should set the property value]
+ expected: FAIL
+
+ [e.style['margin-trim'\] = "inline-start inline-end block-start block-end" should set the property value]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini b/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini
index 38100976826..e483189946d 100644
--- a/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini
+++ b/tests/wpt/meta/css/css-flexbox/negative-overflow.html.ini
@@ -5,21 +5,9 @@
[.flexbox 11]
expected: FAIL
- [.flexbox 6]
- expected: FAIL
-
- [.flexbox 7]
- expected: FAIL
-
- [.flexbox 1]
- expected: FAIL
-
[.flexbox 2]
expected: FAIL
- [.flexbox 3]
- expected: FAIL
-
[.flexbox 8]
expected: FAIL
diff --git a/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini b/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini
index 86c285fb78a..0d491bce6a4 100644
--- a/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini
+++ b/tests/wpt/meta/css/css-fonts/parsing/font-palette-values-invalid.html.ini
@@ -73,3 +73,6 @@
[CSS Fonts Module Level 4: parsing @font-palette-values 25]
expected: FAIL
+
+ [sibling-index() is invalid in base-palette descriptor]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini b/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini
index 6b1969e3049..b0922321d1f 100644
--- a/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini
+++ b/tests/wpt/meta/css/css-fonts/test_font_feature_values_parsing.html.ini
@@ -316,3 +316,6 @@
[basic parse tests - @font-feature-values bongo { @styleset { complex\\ blah: 1; } }]
expected: FAIL
+
+ [basic parse tests - @font-feature-values bongo { @stylistic { blah: sibling-index(); } }]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini
new file mode 100644
index 00000000000..09b5c2407df
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-001.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini
new file mode 100644
index 00000000000..d3d6008a74d
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-002.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini
new file mode 100644
index 00000000000..be28f9f62c3
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-003.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini
new file mode 100644
index 00000000000..f2c19d9824a
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-004.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini
new file mode 100644
index 00000000000..e63a9af4a63
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-005.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini
new file mode 100644
index 00000000000..e9fd7c8f430
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-006.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini
new file mode 100644
index 00000000000..f0da110b11d
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-007.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini
new file mode 100644
index 00000000000..fecb739fed1
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-008.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini
new file mode 100644
index 00000000000..15809ab6be8
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-009.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini
new file mode 100644
index 00000000000..087a090d25e
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-010.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini
new file mode 100644
index 00000000000..39cd43f8d3f
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-011.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini
new file mode 100644
index 00000000000..c60637403c8
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-012.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini
new file mode 100644
index 00000000000..319ec1ea8c7
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-013.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini
new file mode 100644
index 00000000000..7baae0182e4
--- /dev/null
+++ b/tests/wpt/meta/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html.ini
@@ -0,0 +1,2 @@
+[multicol-gap-decorations-014.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini
index bad0d70b3b5..794226f82ac 100644
--- a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini
+++ b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-overflow-002.html.ini
@@ -11,20 +11,11 @@
[.grid 4]
expected: FAIL
- [.grid 5]
- expected: FAIL
-
- [.grid 6]
- expected: FAIL
-
[.grid 7]
expected: FAIL
[.grid 8]
expected: FAIL
- [.grid 11]
- expected: FAIL
-
[.grid 12]
expected: FAIL
diff --git a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini
new file mode 100644
index 00000000000..efff2a2620a
--- /dev/null
+++ b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini
@@ -0,0 +1,3 @@
+[grid-content-alignment-with-abspos-001.html]
+ [.grid 1]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini
new file mode 100644
index 00000000000..39f8cc21286
--- /dev/null
+++ b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-016.tentative.html.ini
@@ -0,0 +1,2 @@
+[replaced-element-016.tentative.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini
new file mode 100644
index 00000000000..77a110a0e75
--- /dev/null
+++ b/tests/wpt/meta/css/css-grid/grid-items/replaced-element-017.tentative.html.ini
@@ -0,0 +1,2 @@
+[replaced-element-017.tentative.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini b/tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini
deleted file mode 100644
index 0ba0b29e0f2..00000000000
--- a/tests/wpt/meta/css/css-overflow/overflow-inline-transform-relative.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[overflow-inline-transform-relative.html]
- [#target used transform when computing scroll overflow]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini b/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini
index b4b8f3830d9..1738329f50c 100644
--- a/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini
+++ b/tests/wpt/meta/css/css-overflow/scroll-overflow-padding-block-001.html.ini
@@ -1,7 +1,4 @@
[scroll-overflow-padding-block-001.html]
expected: ERROR
- [undefined block-end]
- expected: FAIL
-
[undefined block-start]
expected: [PASS, FAIL]
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini
deleted file mode 100644
index e19232bb0b8..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-001.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-001.html]
- [.container 1]
- expected: FAIL
-
- [.container 2]
- expected: FAIL
-
- [.container 3]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini
deleted file mode 100644
index eae09f05def..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-002.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-002.html]
- [.container 1]
- expected: FAIL
-
- [.container 2]
- expected: FAIL
-
- [.container 3]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini
deleted file mode 100644
index 10ac7e63897..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-003.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-003.html]
- [.container 1]
- expected: FAIL
-
- [.container 2]
- expected: FAIL
-
- [.container 3]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini
new file mode 100644
index 00000000000..901184b8ed2
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-005.tentative.html.ini
@@ -0,0 +1,3 @@
+[scrollable-overflow-transform-005.tentative.html]
+ [.container 6]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini
new file mode 100644
index 00000000000..cd8e986f634
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-009.html.ini
@@ -0,0 +1,6 @@
+[scrollable-overflow-transform-009.html]
+ [.container 2]
+ expected: FAIL
+
+ [.container 3]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini
new file mode 100644
index 00000000000..94ff7fba3fb
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-010.tentative.html.ini
@@ -0,0 +1,6 @@
+[scrollable-overflow-transform-010.tentative.html]
+ [.container 1]
+ expected: FAIL
+
+ [.container 2]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini
deleted file mode 100644
index c4639b846ba..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-001.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-001.html]
- [Check scrollWidth before and after transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini
deleted file mode 100644
index ff8be1e2e49..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-002.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-002.html]
- [Check scrollWidth before and after transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini
deleted file mode 100644
index 227a2451b5e..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-003.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-003.html]
- [Check scrollWidth before and after transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini
deleted file mode 100644
index d346a0658c9..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-004.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-004.html]
- [Check scrollWidth before and after position and transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after position and transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight after position and transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini
deleted file mode 100644
index 3561e692dab..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-005.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-005.html]
- [Check scrollWidth before and after appendChild() and transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after appendChild() and transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after appendChild() and transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini
deleted file mode 100644
index f8a8cae0ae5..00000000000
--- a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-dynamic-006.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[scrollable-overflow-transform-dynamic-006.html]
- [Check scrollWidth before and after removeChild() and transform chage]
- expected: FAIL
-
- [Check scrollHeight before and after removeChild() and transform chage]
- expected: FAIL
-
- [Check scrollWidth and scrollHeight before and after removeChild() and transform chage]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini
new file mode 100644
index 00000000000..0a46e380a0b
--- /dev/null
+++ b/tests/wpt/meta/css/css-overflow/scrollable-overflow-transform-unreachable-region.html.ini
@@ -0,0 +1,168 @@
+[scrollable-overflow-transform-unreachable-region.html]
+ [scrollWidth of display: flow-root; direction: ltr; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flow-root; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flow-root; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flow-root; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: row-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-lr; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: ltr; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollHeight of display: flex; direction: rtl; writing-mode: horizontal-tb; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: flex; direction: rtl; writing-mode: vertical-rl; flex-direction: column-reverse; flex-wrap: wrap-reverse;]
+ expected: FAIL
+
+ [scrollWidth of display: grid; direction: ltr; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollWidth of display: grid; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: grid; direction: rtl; writing-mode: vertical-lr; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
+
+ [scrollHeight of display: grid; direction: rtl; writing-mode: vertical-rl; flex-direction: row; flex-wrap: nowrap;]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini b/tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini
new file mode 100644
index 00000000000..1a4d7b6af62
--- /dev/null
+++ b/tests/wpt/meta/css/css-sizing/intrinsic-percent-replaced-030.tentative.html.ini
@@ -0,0 +1,2 @@
+[intrinsic-percent-replaced-030.tentative.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini b/tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini
deleted file mode 100644
index 77a5d26e728..00000000000
--- a/tests/wpt/meta/css/css-will-change/will-change-fixedpos-cb-003.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[will-change-fixedpos-cb-003.html]
- expected: FAIL
diff --git a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini b/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini
deleted file mode 100644
index 01bd97ce10d..00000000000
--- a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-001.html.ini
+++ /dev/null
@@ -1,12 +0,0 @@
-[scrollWidthHeight-negative-margin-001.html]
- [scrollWidth/Height with negative margins: overflow: visible;]
- expected: FAIL
-
- [scrollWidth/Height with negative margins: overflow: hidden;]
- expected: FAIL
-
- [scrollWidth/Height with negative margins: overflow: auto;]
- expected: FAIL
-
- [scrollWidth/Height with negative margins: overflow: clip;]
- expected: FAIL
diff --git a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini b/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini
index e92445207b7..531b67bb161 100644
--- a/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini
+++ b/tests/wpt/meta/css/cssom-view/scrollWidthHeight-negative-margin-002.html.ini
@@ -121,97 +121,97 @@
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
@@ -220,49 +220,49 @@
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: row-reverse wrap-reverse;]
expected: FAIL
@@ -313,145 +313,145 @@
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: visible; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: hidden; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: auto; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: scroll; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
@@ -505,85 +505,70 @@
expected: FAIL
[scrollWidth with negative margins: display: flow-root; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: flow-root; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flow-root; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flow-root; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: wrap-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: wrap-reverse;]
expected: FAIL
@@ -592,13 +577,13 @@
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: row-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: row-reverse wrap-reverse;]
expected: FAIL
@@ -613,37 +598,37 @@
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: column wrap-reverse;]
expected: FAIL
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-flow: column wrap-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: ltr; flex-direction: column-reverse;]
expected: FAIL
[scrollWidth with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column-reverse;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollHeight with negative margins: display: flex; overflow: clip; direction: rtl; flex-direction: column-reverse;]
expected: FAIL
@@ -661,61 +646,46 @@
expected: FAIL
[scrollWidth with negative margins: display: grid; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: visible; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: hidden; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: auto; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: clip; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
-
- [scrollHeight with negative margins: display: grid; overflow: scroll; direction: ltr; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: visible; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: visible; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: hidden; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: hidden; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: auto; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: auto; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: clip; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: clip; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
[scrollWidth with negative margins: display: grid; overflow: scroll; direction: rtl; flex-direction: row;]
expected: FAIL
[scrollHeight with negative margins: display: grid; overflow: scroll; direction: rtl; flex-direction: row;]
- expected: FAIL
+ expected: [FAIL, PASS]
diff --git a/tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini b/tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini
new file mode 100644
index 00000000000..745c51cd4c7
--- /dev/null
+++ b/tests/wpt/meta/css/cssom-view/table-scroll-props.html.ini
@@ -0,0 +1,6 @@
+[table-scroll-props.html]
+ [Table with separated border]
+ expected: FAIL
+
+ [Table with collapsed border]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini b/tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini
deleted file mode 100644
index b366310b98b..00000000000
--- a/tests/wpt/meta/css/filter-effects/filtered-html-is-not-container.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[filtered-html-is-not-container.html]
- expected: FAIL
diff --git a/tests/wpt/meta/custom-elements/adopted-callback.html.ini b/tests/wpt/meta/custom-elements/adopted-callback.html.ini
deleted file mode 100644
index 0ab129693c0..00000000000
--- a/tests/wpt/meta/custom-elements/adopted-callback.html.ini
+++ /dev/null
@@ -1,39 +0,0 @@
-[adopted-callback.html]
- [Moving the shadow host's shadow of a custom element from the owner document into the document of the template elements must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the shadow host's shadow of a custom element from the owner document into a new document must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the <template>'s content of a custom element from the owner document into a new document must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the shadow host's shadow of a custom element from the owner document into a cloned document must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the <template>'s content of a custom element from the owner document into a cloned document must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the shadow host's shadow of a custom element from the owner document into a document created by createHTMLDocument must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the <template>'s content of a custom element from the owner document into a document created by createHTMLDocument must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the shadow host's shadow of a custom element from the owner document into an HTML document created by createDocument must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the <template>'s content of a custom element from the owner document into an HTML document created by createDocument must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the shadow host's shadow of a custom element from the owner document into the document of an iframe must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the <template>'s content of a custom element from the owner document into the document of an iframe must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the shadow host's shadow of a custom element from the owner document into an HTML document fetched by XHR must enqueue and invoke adoptedCallback]
- expected: FAIL
-
- [Moving the <template>'s content of a custom element from the owner document into an HTML document fetched by XHR must enqueue and invoke adoptedCallback]
- expected: FAIL
diff --git a/tests/wpt/meta/dom/nodes/adoption.window.js.ini b/tests/wpt/meta/dom/nodes/adoption.window.js.ini
index c7e08cd7b75..e9460c5d5d5 100644
--- a/tests/wpt/meta/dom/nodes/adoption.window.js.ini
+++ b/tests/wpt/meta/dom/nodes/adoption.window.js.ini
@@ -1,12 +1,3 @@
[adoption.window.html]
- [appendChild() and DocumentFragment with host]
- expected: FAIL
-
[adoptNode() and DocumentFragment with host]
expected: FAIL
-
- [appendChild() and DocumentFragment]
- expected: FAIL
-
- [appendChild() and ShadowRoot]
- expected: FAIL
diff --git a/tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini b/tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini
deleted file mode 100644
index 9b57360d600..00000000000
--- a/tests/wpt/meta/dom/nodes/insertion-removing-steps/blur-event.window.js.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[blur-event.window.html]
- expected: CRASH
diff --git a/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini b/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini
index dda18d32621..ad2c6663e6c 100644
--- a/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini
+++ b/tests/wpt/meta/domparsing/XMLSerializer-serializeToString.html.ini
@@ -67,3 +67,6 @@
[Check if a prefix bound to an empty namespace URI ("no namespace") serialize]
expected: FAIL
+
+ [Drop inconsistent xmlns="..." by matching on local name]
+ expected: FAIL
diff --git a/tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini b/tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini
new file mode 100644
index 00000000000..5424089439f
--- /dev/null
+++ b/tests/wpt/meta/domparsing/xml-parse-serialize-roundtrip.html.ini
@@ -0,0 +1,6 @@
+[xml-parse-serialize-roundtrip.html]
+ [DOMParser and XMLSerializer should round trip with CDATA sections: large CDATA]
+ expected: FAIL
+
+ [DOMParser and XMLSerializer should round trip with CDATA sections: multiple CDATAs]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini
deleted file mode 100644
index 8f3aec5177f..00000000000
--- a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html]
- [Check focus event and active element after focusing different site iframe then immediately focusing back]
- expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini
deleted file mode 100644
index b489ab52a39..00000000000
--- a/tests/wpt/meta/focus/activeelement-after-focusing-different-site-iframe.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[activeelement-after-focusing-different-site-iframe.html]
- [Check trailing events]
- expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini
index 5864035c9e1..612b845c7e9 100644
--- a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini
+++ b/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini
@@ -1,2 +1,3 @@
[activeelement-after-focusing-same-site-iframe-contentwindow.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini b/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini
deleted file mode 100644
index 406e6a58324..00000000000
--- a/tests/wpt/meta/focus/activeelement-after-focusing-same-site-iframe.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[activeelement-after-focusing-same-site-iframe.html]
- [Check trailing events]
- expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini
index 532cbcbabfe..a58db5d3146 100644
--- a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini
+++ b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini
@@ -1,2 +1,3 @@
[activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini
index 8483775c0c1..d8b0d3212c9 100644
--- a/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini
+++ b/tests/wpt/meta/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini
@@ -1,2 +1,3 @@
[activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini b/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini
index 8bdcea27053..1e3e377f307 100644
--- a/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini
+++ b/tests/wpt/meta/focus/focus-restoration-in-different-site-iframes-window.html.ini
@@ -1,2 +1,3 @@
[focus-restoration-in-different-site-iframes-window.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini b/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini
index 53f4db35f7e..f19949138fa 100644
--- a/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini
+++ b/tests/wpt/meta/focus/focus-restoration-in-same-site-iframes-window.html.ini
@@ -1,2 +1,3 @@
[focus-restoration-in-same-site-iframes-window.html]
- expected: TIMEOUT
+ [Check result]
+ expected: FAIL
diff --git a/tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini b/tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini
deleted file mode 100644
index 8877baa8ac6..00000000000
--- a/tests/wpt/meta/focus/iframe-focuses-parent-same-site.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[iframe-focuses-parent-same-site.html]
- expected: TIMEOUT
diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini
index 02a8e91ea04..d5f4fa2f799 100644
--- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini
+++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini
@@ -2,8 +2,5 @@
[window.open]
expected: FAIL
- [link click]
- expected: FAIL
-
[form submission]
expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini
new file mode 100644
index 00000000000..407f9d191c7
--- /dev/null
+++ b/tests/wpt/meta/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html.ini
@@ -0,0 +1,3 @@
+[cross-document-nav-cross-document-nav.html]
+ [cross-document navigation then cross-document navigation]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini b/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini
index 6720c0f77da..3e682215a0e 100644
--- a/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini
+++ b/tests/wpt/meta/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html.ini
@@ -1,7 +1,4 @@
[cross-origin-objects-function-caching.html]
- [Cross-origin Window methods are cached]
- expected: FAIL
-
[Cross-origin Location `replace` method is cached]
expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini b/tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini
deleted file mode 100644
index 27a9640a02c..00000000000
--- a/tests/wpt/meta/html/browsers/the-window-object/focus.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[focus.window.html]
- [focus]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini b/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini
index 8afe0888e4e..32cd3f302d4 100644
--- a/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini
+++ b/tests/wpt/meta/html/browsers/the-window-object/security-window/window-security.https.html.ini
@@ -328,9 +328,3 @@
[A SecurityError exception must be thrown when window.stop is accessed from a different origin.]
expected: FAIL
-
- [A SecurityError exception should not be thrown when window.blur is accessed from a different origin.]
- expected: FAIL
-
- [A SecurityError exception should not be thrown when window.focus is accessed from a different origin.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini b/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini
index e9061d31d26..94ad9ce191c 100644
--- a/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini
+++ b/tests/wpt/meta/html/browsers/the-window-object/window-properties.https.html.ini
@@ -1,9 +1,4 @@
[window-properties.https.html]
- [Window method: focus]
- expected: FAIL
-
- [Window method: blur]
- expected: FAIL
[Window method: print]
expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini b/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini
deleted file mode 100644
index f6455f9bd76..00000000000
--- a/tests/wpt/meta/html/canvas/element/canvas-host/2d.canvas.host.size.large.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini
index 7e036a1c4e4..5d2657041d1 100644
--- a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini
+++ b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini
@@ -1,5 +1,5 @@
[createImageBitmap-transfer.html]
- expected: TIMEOUT
+ expected: ERROR
[Transfer ImageBitmap created from a vector HTMLImageElement]
expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini
deleted file mode 100644
index f6455f9bd76..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini
deleted file mode 100644
index d571dfa4cf9..00000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[2d.canvas.host.size.large.worker.html]
- expected: CRASH
diff --git a/tests/wpt/meta/html/dom/idlharness.any.js.ini b/tests/wpt/meta/html/dom/idlharness.any.js.ini
index f17466adc7f..ad5e57e0759 100644
--- a/tests/wpt/meta/html/dom/idlharness.any.js.ini
+++ b/tests/wpt/meta/html/dom/idlharness.any.js.ini
@@ -95,9 +95,6 @@
[History interface: existence and properties of interface object]
expected: FAIL
- [MessagePort interface: attribute onclose]
- expected: FAIL
-
[WorkerGlobalScope interface: attribute onlanguagechange]
expected: FAIL
diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini
index 23b8e353fb0..25375c6ea47 100644
--- a/tests/wpt/meta/html/dom/idlharness.https.html.ini
+++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini
@@ -1517,9 +1517,6 @@
[SVGSVGElement interface: attribute onpagereveal]
expected: FAIL
- [MessagePort interface: attribute onclose]
- expected: FAIL
-
[NotRestoredReasonDetails interface: existence and properties of interface object]
expected: FAIL
@@ -1738,9 +1735,6 @@
[Document interface: attribute all]
expected: FAIL
- [Window interface: operation focus()]
- expected: FAIL
-
[Window interface: attribute scrollbars]
expected: FAIL
@@ -1870,9 +1864,6 @@
[Document interface: new Document() must inherit property "dir" with the proper type]
expected: FAIL
- [Window interface: window must inherit property "blur()" with the proper type]
- expected: FAIL
-
[Document interface: operation execCommand(DOMString, optional boolean, optional DOMString)]
expected: FAIL
@@ -1897,9 +1888,6 @@
[Document interface: iframe.contentDocument must inherit property "queryCommandEnabled(DOMString)" with the proper type]
expected: FAIL
- [Window interface: operation blur()]
- expected: FAIL
-
[Document interface: iframe.contentDocument must inherit property "onslotchange" with the proper type]
expected: FAIL
@@ -1924,9 +1912,6 @@
[Document interface: documentWithHandlers must inherit property "onauxclick" with the proper type]
expected: FAIL
- [Window interface: window must inherit property "focus()" with the proper type]
- expected: FAIL
-
[Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type]
expected: FAIL
@@ -5375,9 +5360,6 @@
[Navigator interface: window.navigator must inherit property "pdfViewerEnabled" with the proper type]
expected: FAIL
- [MessagePort interface: attribute onclose]
- expected: FAIL
-
[SharedWorker interface: existence and properties of interface object]
expected: FAIL
@@ -5750,9 +5732,6 @@
[SVGSVGElement interface: attribute onunload]
expected: FAIL
- [ShadowRoot interface: operation setHTMLUnsafe((TrustedHTML or DOMString))]
- expected: FAIL
-
[OffscreenCanvasRenderingContext2D interface: operation getContextAttributes()]
expected: FAIL
diff --git a/tests/wpt/meta/html/dom/reflection-tabular.html.ini b/tests/wpt/meta/html/dom/reflection-tabular.html.ini
index 7550e2dc15d..1aeec1b3ef7 100644
--- a/tests/wpt/meta/html/dom/reflection-tabular.html.ini
+++ b/tests/wpt/meta/html/dom/reflection-tabular.html.ini
@@ -1487,9 +1487,6 @@
[colgroup.tabIndex: IDL set to -2147483648]
expected: FAIL
- [colgroup.span: setAttribute() to 2147483647]
- expected: FAIL
-
[colgroup.span: setAttribute() to 2147483648]
expected: FAIL
@@ -1499,9 +1496,6 @@
[colgroup.span: setAttribute() to 4294967296]
expected: FAIL
- [colgroup.span: setAttribute() to 1001]
- expected: FAIL
-
[colgroup.span: IDL set to 0]
expected: FAIL
@@ -2276,9 +2270,6 @@
[col.tabIndex: IDL set to -2147483648]
expected: FAIL
- [col.span: setAttribute() to 2147483647]
- expected: FAIL
-
[col.span: setAttribute() to 2147483648]
expected: FAIL
@@ -2288,9 +2279,6 @@
[col.span: setAttribute() to 4294967296]
expected: FAIL
- [col.span: setAttribute() to 1001]
- expected: FAIL
-
[col.span: IDL set to 0]
expected: FAIL
@@ -5657,9 +5645,6 @@
[td.tabIndex: IDL set to -2147483648]
expected: FAIL
- [td.colSpan: setAttribute() to 2147483647]
- expected: FAIL
-
[td.colSpan: setAttribute() to 2147483648]
expected: FAIL
@@ -5669,9 +5654,6 @@
[td.colSpan: setAttribute() to 4294967296]
expected: FAIL
- [td.colSpan: setAttribute() to 1001]
- expected: FAIL
-
[td.colSpan: IDL set to 0]
expected: FAIL
@@ -5684,9 +5666,6 @@
[td.colSpan: IDL set to 1001]
expected: FAIL
- [td.rowSpan: setAttribute() to 2147483647]
- expected: FAIL
-
[td.rowSpan: setAttribute() to 2147483648]
expected: FAIL
@@ -5696,9 +5675,6 @@
[td.rowSpan: setAttribute() to 4294967296]
expected: FAIL
- [td.rowSpan: setAttribute() to 65535]
- expected: FAIL
-
[td.rowSpan: IDL set to 2147483647]
expected: FAIL
@@ -7157,9 +7133,6 @@
[th.tabIndex: IDL set to -2147483648]
expected: FAIL
- [th.colSpan: setAttribute() to 2147483647]
- expected: FAIL
-
[th.colSpan: setAttribute() to 2147483648]
expected: FAIL
@@ -7169,9 +7142,6 @@
[th.colSpan: setAttribute() to 4294967296]
expected: FAIL
- [th.colSpan: setAttribute() to 1001]
- expected: FAIL
-
[th.colSpan: IDL set to 0]
expected: FAIL
@@ -7184,9 +7154,6 @@
[th.colSpan: IDL set to 1001]
expected: FAIL
- [th.rowSpan: setAttribute() to 2147483647]
- expected: FAIL
-
[th.rowSpan: setAttribute() to 2147483648]
expected: FAIL
@@ -7196,9 +7163,6 @@
[th.rowSpan: setAttribute() to 4294967296]
expected: FAIL
- [th.rowSpan: setAttribute() to 65535]
- expected: FAIL
-
[th.rowSpan: IDL set to 2147483647]
expected: FAIL
diff --git a/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini b/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
index 8b8af2b9c2e..2ef0896e3b3 100644
--- a/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
+++ b/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
@@ -1,3 +1,4 @@
[document-base-url-window-initiator-is-not-opener.https.window.html]
+ expected: TIMEOUT
[window.open() gets base url from initiator not opener.]
expected: [FAIL, PASS, TIMEOUT]
diff --git a/tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini b/tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini
new file mode 100644
index 00000000000..ad3b45255f4
--- /dev/null
+++ b/tests/wpt/meta/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html.ini
@@ -0,0 +1,2 @@
+[marquee-with-trusted-types.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/document-metadata/the-style-element/mutations.window.js.ini b/tests/wpt/meta/html/semantics/document-metadata/the-style-element/mutations.window.js.ini
index 8e9ebe9a3c2..b4d47b505cb 100644
--- a/tests/wpt/meta/html/semantics/document-metadata/the-style-element/mutations.window.js.ini
+++ b/tests/wpt/meta/html/semantics/document-metadata/the-style-element/mutations.window.js.ini
@@ -1,6 +1,3 @@
[mutations.window.html]
[Mutating the style element: mutating a Comment node]
expected: FAIL
-
- [Mutating the style element: inserting an empty DocumentFragment node]
- expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
index 841bafc6eca..26704422bbe 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
@@ -1,3 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 62a6e7fc812..bbc1f35d8d9 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,4 +1,3 @@
[iframe_sandbox_popups_nonescaping-1.html]
- expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index c6f1e5d7d84..a6591b318dc 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_nonescaping-2.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index d89a1691435..ccdaf8d61b2 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,4 +1,3 @@
[iframe_sandbox_popups_nonescaping-3.html]
- expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini b/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini
new file mode 100644
index 00000000000..8458e10e93e
--- /dev/null
+++ b/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html.ini
@@ -0,0 +1,2 @@
+[customizable-select-in-page-appearance.tentative.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini
index 8dba4e9c469..bdba8dadafa 100644
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini
+++ b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.js.ini
@@ -15,3 +15,6 @@
[blob-url.any.html]
[Different blob URLs pointing to the same blob resolve to different modules]
expected: FAIL
+
+ [Revoking a blob URL immediately after calling import will not fail]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/code-cache-nonce.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/code-cache-nonce.html.ini
deleted file mode 100644
index ccad3276c85..00000000000
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/code-cache-nonce.html.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[code-cache-nonce.html]
- [First dynamic import should use nonce=abc]
- expected: FAIL
-
- [Second dynamic import should use nonce=def]
- expected: FAIL
-
- [Third dynamic import should use nonce=ghi]
- expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-classic.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-classic.html.ini
deleted file mode 100644
index 0080e7908e9..00000000000
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-classic.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[propagate-nonce-external-classic.html]
- [Dynamically imported module should eval when imported from script w/ a valid nonce.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-module.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-module.html.ini
deleted file mode 100644
index 849c9b3e60d..00000000000
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-external-module.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[propagate-nonce-external-module.html]
- expected: TIMEOUT
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-classic.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-classic.html.ini
deleted file mode 100644
index 74b32cc06dd..00000000000
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-classic.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[propagate-nonce-inline-classic.html]
- [Dynamically imported module should eval when imported from script w/ a valid nonce.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-module.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-module.html.ini
deleted file mode 100644
index eb08f590857..00000000000
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/propagate-nonce-inline-module.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[propagate-nonce-inline-module.html]
- [Dynamically imported module should eval when imported from script w/ a valid nonce.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html.ini
index 9b3e3358ad3..8a3281def9e 100644
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html.ini
+++ b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-classic.html.ini
@@ -1,18 +1,3 @@
[string-compilation-nonce-classic.html]
- [reflected inline event handlers must not inherit the nonce from the triggering script, thus fail]
- expected: PASS
-
- [inline event handlers triggered via UA code must not inherit the nonce from the triggering script, thus fail]
- expected: PASS
-
[setTimeout must inherit the nonce from the triggering script, thus execute]
expected: FAIL
-
- [direct eval must inherit the nonce from the triggering script, thus execute]
- expected: FAIL
-
- [indirect eval must inherit the nonce from the triggering script, thus execute]
- expected: FAIL
-
- [the Function constructor must inherit the nonce from the triggering script, thus execute]
- expected: FAIL \ No newline at end of file
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html.ini
index 1d3b047b68b..98d0b640164 100644
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html.ini
+++ b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/string-compilation-nonce-module.html.ini
@@ -1,18 +1,3 @@
[string-compilation-nonce-module.html]
- [reflected inline event handlers must not inherit the nonce from the triggering script, thus fail]
- expected: PASS
-
- [inline event handlers triggered via UA code must not inherit the nonce from the triggering script, thus fail]
- expected: PASS
-
- [direct eval must inherit the nonce from the triggering script, thus execute]
- expected: FAIL
-
- [indirect eval must inherit the nonce from the triggering script, thus execute]
- expected: FAIL
-
- [the Function constructor must inherit the nonce from the triggering script, thus execute]
- expected: FAIL
-
[setTimeout must inherit the nonce from the triggering script, thus execute]
- expected: FAIL \ No newline at end of file
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/v8-code-cache.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/v8-code-cache.html.ini
deleted file mode 100644
index 64413107401..00000000000
--- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/dynamic-import/v8-code-cache.html.ini
+++ /dev/null
@@ -1,30 +0,0 @@
-[v8-code-cache.html]
- [text/javascript: Run #1]
- expected: FAIL
-
- [text/javascript: Run #2]
- expected: FAIL
-
- [text/javascript: Run #3]
- expected: FAIL
-
- [text/javascript: Run #4]
- expected: FAIL
-
- [text/javascript: Run #5]
- expected: FAIL
-
- [module: Run #1]
- expected: FAIL
-
- [module: Run #2]
- expected: FAIL
-
- [module: Run #3]
- expected: FAIL
-
- [module: Run #4]
- expected: FAIL
-
- [module: Run #5]
- expected: FAIL
diff --git a/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini b/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini
new file mode 100644
index 00000000000..d8b897fb81f
--- /dev/null
+++ b/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html.ini
@@ -0,0 +1,3 @@
+[serializing-cdata-in-html-document.html]
+ [Serializing CDATA in an HTML document]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions.html.ini b/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions.html.ini
deleted file mode 100644
index d0b3986d561..00000000000
--- a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[setHTMLUnsafe-CEReactions.html]
- [ShadowRoot.setHTMLUnsafe should trigger custom element reactions.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe.html.ini b/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe.html.ini
deleted file mode 100644
index 850b529ff76..00000000000
--- a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe.html.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[setHTMLUnsafe.html]
- [ShadowRoot: setHTMLUnsafe with no shadowdom.]
- expected: FAIL
-
- [ShadowRoot: setHTMLUnsafe with shadowdom.]
- expected: FAIL
diff --git a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini b/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini
index c00e2949bf5..b229be268ec 100644
--- a/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini
+++ b/tests/wpt/meta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js.ini
@@ -1,12 +1,6 @@
[event-listeners.window.html]
- [Standard event listeners are to be removed from Window]
- expected: FAIL
-
[Standard event listeners are to be removed from Window for an active but not fully active document]
expected: FAIL
- [Standard event listeners are to be removed from Window for a non-active document that is the associated Document of a Window (frame is removed)]
- expected: FAIL
-
[Custom event listeners are to be removed from Window for an active but not fully active document]
expected: FAIL
diff --git a/tests/wpt/meta/navigation-timing/test-navigation-type-reload.html.ini b/tests/wpt/meta/navigation-timing/test-navigation-type-reload.html.ini
index 0bb708b5b98..fb5e4d1adbe 100644
--- a/tests/wpt/meta/navigation-timing/test-navigation-type-reload.html.ini
+++ b/tests/wpt/meta/navigation-timing/test-navigation-type-reload.html.ini
@@ -22,9 +22,3 @@
[Reload domComplete > Original domComplete]
expected: FAIL
-
- [Reload loadEventEnd > Original loadEventEnd]
- expected: FAIL
-
- [Reload loadEventStart > Original loadEventStart]
- expected: FAIL
diff --git a/tests/wpt/meta/shadow-dom/declarative/gethtml.html.ini b/tests/wpt/meta/shadow-dom/declarative/gethtml.html.ini
deleted file mode 100644
index 3a96cb5998d..00000000000
--- a/tests/wpt/meta/shadow-dom/declarative/gethtml.html.ini
+++ /dev/null
@@ -1,4896 +0,0 @@
-[gethtml.html]
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <article><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <aside><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <blockquote><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <div><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <footer><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h1><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h2><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h3><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h4><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h5><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <h6><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <header><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <main><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <nav><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <p><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <section><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=false, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=false, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=open, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=undefined, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=false, clonable=true, without shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, with shadow tree contents.]
- expected: FAIL
-
- [ShadowRoot.getHTML() on <span><span>light</span>, with declarative shadow, mode=closed, delegatesFocus=true, serializable=true, clonable=true, without shadow tree contents.]
- expected: FAIL
diff --git a/tests/wpt/meta/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html.ini b/tests/wpt/meta/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html.ini
index 1e95f7f9744..855ee5803f5 100644
--- a/tests/wpt/meta/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html.ini
+++ b/tests/wpt/meta/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html.ini
@@ -1,9 +1,9 @@
[block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html]
- [shadowRoot.setHTMLUnsafe(html) assigned via policy (successful HTML transformation).]
+ [`shadowRoot.setHTMLUnsafe(string)` assigned via default policy (successful HTML transformation).]
expected: FAIL
- [`shadowRoot.setHTMLUnsafe(string)` assigned via default policy (successful HTML transformation).]
+ [`shadowRoot.setHTMLUnsafe(string)` throws.]
expected: FAIL
- [`shadowRoot.setHTMLUnsafe(string)` assigned via default policy does not throw]
+ [`shadowRoot.setHTMLUnsafe(null)` throws.]
expected: FAIL
diff --git a/tests/wpt/meta/trusted-types/trusted-types-reporting-for-ShadowRoot-setHTMLUnsafe.html.ini b/tests/wpt/meta/trusted-types/trusted-types-reporting-for-ShadowRoot-setHTMLUnsafe.html.ini
index f42e7fa4f8b..79d9d1805d8 100644
--- a/tests/wpt/meta/trusted-types/trusted-types-reporting-for-ShadowRoot-setHTMLUnsafe.html.ini
+++ b/tests/wpt/meta/trusted-types/trusted-types-reporting-for-ShadowRoot-setHTMLUnsafe.html.ini
@@ -1,6 +1,3 @@
[trusted-types-reporting-for-ShadowRoot-setHTMLUnsafe.html]
- [No violation reported for TrustedHTML.]
- expected: FAIL
-
[Violation report for plain string.]
expected: FAIL
diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index a8e069b27e7..3bfb92e671a 100644
--- a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -760,3 +760,15 @@
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[14680\]\t1.7249685451109781e-36\t2.0512369275093079e-1\t2.0512369275093079e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[14681\]\t1.1480505578219891e-2\t1.4340442419052124e-1\t1.3192391861230135e-1\t9.1994315626575540e-1\t3.8985999999999999e-3\n\tMax AbsError of 2.0512369275093079e-1 at index of 14680.\n\tMax RelError of 1.0000000000000000e+0 at index of 14680.\n]
expected: FAIL
+
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[14680\]\t-2.7021871583080320e+24\t2.0512369275093079e-1\t2.7021871583080320e+24\t1.3173452184234677e+25\t3.8985999999999999e-3\n\t[14681\]\t1.1480505578219891e-2\t1.4340442419052124e-1\t1.3192391861230135e-1\t9.1994315626575540e-1\t3.8985999999999999e-3\n\tMax AbsError of 2.7021871583080320e+24 at index of 14680.\n\tMax RelError of 1.3173452184234677e+25 at index of 14680.\n]
+ expected: FAIL
+
+ [X SNR (-445.2002225707384 dB) is not greater than or equal to 65.737. Got -445.2002225707384.]
+ expected: FAIL
+
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[14680\]\t-4.2315589002308092e+19\t2.0512369275093079e-1\t4.2315589002308092e+19\t2.0629303438725304e+20\t3.8985999999999999e-3\n\t[14681\]\t1.1480505578219891e-2\t1.4340442419052124e-1\t1.3192391861230135e-1\t9.1994315626575540e-1\t3.8985999999999999e-3\n\tMax AbsError of 4.2315589002308092e+19 at index of 14680.\n\tMax RelError of 2.0629303438725304e+20 at index of 14680.\n]
+ expected: FAIL
+
+ [X SNR (-349.0959218623025 dB) is not greater than or equal to 65.737. Got -349.0959218623025.]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/accept_alert/accept.py.ini b/tests/wpt/meta/webdriver/tests/classic/accept_alert/accept.py.ini
new file mode 100644
index 00000000000..00caf69c8d5
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/accept_alert/accept.py.ini
@@ -0,0 +1,27 @@
+[accept.py]
+ [test_null_response_value]
+ expected: FAIL
+
+ [test_no_top_level_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_user_prompt]
+ expected: FAIL
+
+ [test_accept_alert]
+ expected: FAIL
+
+ [test_accept_confirm]
+ expected: FAIL
+
+ [test_accept_prompt]
+ expected: FAIL
+
+ [test_unexpected_alert]
+ expected: FAIL
+
+ [test_accept_in_popup_window]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/add_cookie/add.py.ini b/tests/wpt/meta/webdriver/tests/classic/add_cookie/add.py.ini
new file mode 100644
index 00000000000..37610cfc8ee
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/add_cookie/add.py.ini
@@ -0,0 +1,42 @@
+[add.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[about\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[blob\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[data\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[file\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[ftp\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[javascript\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[websocket\]]
+ expected: FAIL
+
+ [test_cookie_unsupported_scheme[secure websocket\]]
+ expected: FAIL
+
+ [test_add_non_session_cookie]
+ expected: FAIL
+
+ [test_add_cookie_with_valid_samesite_flag[None\]]
+ expected: FAIL
+
+ [test_add_cookie_with_valid_samesite_flag[Lax\]]
+ expected: FAIL
+
+ [test_add_cookie_with_valid_samesite_flag[Strict\]]
+ expected: FAIL
+
+ [test_add_cookie_with_invalid_samesite_flag]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/add_cookie/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/add_cookie/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/add_cookie/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/back/back.py.ini b/tests/wpt/meta/webdriver/tests/classic/back/back.py.ini
new file mode 100644
index 00000000000..10d35cc69e3
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/back/back.py.ini
@@ -0,0 +1,19 @@
+[back.py]
+ disabled: consistent panic
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_seen_nodes[http\]]
+ expected: FAIL
+
+ [test_seen_nodes[https\]]
+ expected: FAIL
+
+ [test_seen_nodes[https coop\]]
+ expected: FAIL
+
+ [test_history_pushstate]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/back/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/back/user_prompts.py.ini
new file mode 100644
index 00000000000..fcf10a0526c
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/back/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/close_window/close.py.ini b/tests/wpt/meta/webdriver/tests/classic/close_window/close.py.ini
new file mode 100644
index 00000000000..b1f13cee75e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/close_window/close.py.ini
@@ -0,0 +1,19 @@
+[close.py]
+ disabled: panic in test_close_browsing_context_with_accepted_beforeunload_prompt
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_close_browsing_context_with_accepted_beforeunload_prompt[tab\]]
+ expected: FAIL
+
+ [test_close_browsing_context_with_accepted_beforeunload_prompt[window\]]
+ expected: ERROR
+
+ [test_close_last_browsing_context]
+ expected: ERROR
+
+ [test_element_usage_after_closing_browsing_context]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/close_window/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/close_window/user_prompts.py.ini
new file mode 100644
index 00000000000..fcf10a0526c
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/close_window/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/delete.py.ini b/tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/delete.py.ini
new file mode 100644
index 00000000000..1a53a7bbaf5
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/delete.py.ini
@@ -0,0 +1,3 @@
+[delete.py]
+ [test_no_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/delete_all_cookies/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/delete_cookie/delete.py.ini b/tests/wpt/meta/webdriver/tests/classic/delete_cookie/delete.py.ini
new file mode 100644
index 00000000000..1a53a7bbaf5
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/delete_cookie/delete.py.ini
@@ -0,0 +1,3 @@
+[delete.py]
+ [test_no_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/delete_cookie/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/delete_cookie/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/delete_cookie/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/delete_session/delete.py.ini b/tests/wpt/meta/webdriver/tests/classic/delete_session/delete.py.ini
new file mode 100644
index 00000000000..ee03ab08fe3
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/delete_session/delete.py.ini
@@ -0,0 +1,7 @@
+[delete.py]
+ expected: ERROR
+ [test_null_response_value]
+ expected: FAIL
+
+ [test_accepted_beforeunload_prompt]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/dismiss_alert/dismiss.py.ini b/tests/wpt/meta/webdriver/tests/classic/dismiss_alert/dismiss.py.ini
new file mode 100644
index 00000000000..cd2546ede8b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/dismiss_alert/dismiss.py.ini
@@ -0,0 +1,24 @@
+[dismiss.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_user_prompt]
+ expected: FAIL
+
+ [test_dismiss_alert]
+ expected: FAIL
+
+ [test_dismiss_confirm]
+ expected: FAIL
+
+ [test_dismiss_prompt]
+ expected: FAIL
+
+ [test_unexpected_alert]
+ expected: FAIL
+
+ [test_dismiss_in_popup_window]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_clear/clear.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_clear/clear.py.ini
new file mode 100644
index 00000000000..541ffc25ca6
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_clear/clear.py.ini
@@ -0,0 +1,2 @@
+[clear.py]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_clear/disabled.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_clear/disabled.py.ini
new file mode 100644
index 00000000000..f6367167d66
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_clear/disabled.py.ini
@@ -0,0 +1,115 @@
+[disabled.py]
+ expected: TIMEOUT
+ [test_button[button\]]
+ expected: FAIL
+
+ [test_button[reset\]]
+ expected: FAIL
+
+ [test_button[submit\]]
+ expected: FAIL
+
+ [test_input[button\]]
+ expected: FAIL
+
+ [test_input[checkbox\]]
+ expected: FAIL
+
+ [test_input[color\]]
+ expected: FAIL
+
+ [test_input[date\]]
+ expected: FAIL
+
+ [test_input[datetime-local\]]
+ expected: FAIL
+
+ [test_input[email\]]
+ expected: FAIL
+
+ [test_input[file\]]
+ expected: FAIL
+
+ [test_input[image\]]
+ expected: FAIL
+
+ [test_input[month\]]
+ expected: FAIL
+
+ [test_input[number\]]
+ expected: FAIL
+
+ [test_input[password\]]
+ expected: FAIL
+
+ [test_input[radio\]]
+ expected: FAIL
+
+ [test_input[range\]]
+ expected: FAIL
+
+ [test_input[reset\]]
+ expected: FAIL
+
+ [test_input[search\]]
+ expected: FAIL
+
+ [test_input[submit\]]
+ expected: FAIL
+
+ [test_input[tel\]]
+ expected: FAIL
+
+ [test_input[text\]]
+ expected: FAIL
+
+ [test_input[time\]]
+ expected: FAIL
+
+ [test_input[url\]]
+ expected: FAIL
+
+ [test_input[week\]]
+ expected: FAIL
+
+ [test_textarea]
+ expected: FAIL
+
+ [test_fieldset_descendant]
+ expected: FAIL
+
+ [test_fieldset_descendant_first_legend]
+ expected: FAIL
+
+ [test_fieldset_descendant_not_first_legend]
+ expected: FAIL
+
+ [test_option]
+ expected: FAIL
+
+ [test_option_optgroup]
+ expected: FAIL
+
+ [test_option_select]
+ expected: FAIL
+
+ [test_optgroup_select]
+ expected: FAIL
+
+ [test_select]
+ expected: FAIL
+
+ [test_xhtml[button\]]
+ expected: FAIL
+
+ [test_xhtml[input\]]
+ expected: FAIL
+
+ [test_xhtml[select\]]
+ expected: FAIL
+
+ [test_xhtml[textarea\]]
+ expected: FAIL
+
+ [test_xml]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_clear/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_clear/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_clear/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/bubbling.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/bubbling.py.ini
new file mode 100644
index 00000000000..d99f3672ef6
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/bubbling.py.ini
@@ -0,0 +1,6 @@
+[bubbling.py]
+ [test_click_event_bubbles_to_parents]
+ expected: FAIL
+
+ [test_spin_event_loop]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/center_point.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/center_point.py.ini
new file mode 100644
index 00000000000..3e3bfa2708e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/center_point.py.ini
@@ -0,0 +1,33 @@
+[center_point.py]
+ [test_entirely_in_view]
+ expected: FAIL
+
+ [test_css_pixel_rounding[1\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[2\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[3\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[4\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[5\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[6\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[7\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[8\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[9\]]
+ expected: FAIL
+
+ [test_css_pixel_rounding[10\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/click.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/click.py.ini
new file mode 100644
index 00000000000..ad0f9714ad1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/click.py.ini
@@ -0,0 +1,21 @@
+[click.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/events.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/events.py.ini
new file mode 100644
index 00000000000..8f57d96cef8
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/events.py.ini
@@ -0,0 +1,3 @@
+[events.py]
+ [test_event_mousemove]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/interactability.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/interactability.py.ini
new file mode 100644
index 00000000000..982ea5ca753
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/interactability.py.ini
@@ -0,0 +1,33 @@
+[interactability.py]
+ [test_display_none]
+ expected: FAIL
+
+ [test_visibility_hidden]
+ expected: FAIL
+
+ [test_hidden]
+ expected: FAIL
+
+ [test_element_not_interactable_css_transform[translate(-100px, -100px)\]]
+ expected: FAIL
+
+ [test_element_not_interactable_css_transform[rotate(50deg)\]]
+ expected: FAIL
+
+ [test_element_not_interactable_out_of_view]
+ expected: FAIL
+
+ [test_zero_sized_element[div\]]
+ expected: FAIL
+
+ [test_zero_sized_element[span\]]
+ expected: FAIL
+
+ [test_element_intercepted]
+ expected: FAIL
+
+ [test_element_intercepted_no_pointer_events]
+ expected: FAIL
+
+ [test_element_not_visible_overflow_hidden]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/navigate.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/navigate.py.ini
new file mode 100644
index 00000000000..4811bba2d43
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/navigate.py.ini
@@ -0,0 +1,49 @@
+[navigate.py]
+ expected: TIMEOUT
+ [test_numbers_link]
+ expected: FAIL
+
+ [test_multi_line_link]
+ expected: FAIL
+
+ [test_navigation_retains_input_state]
+ expected: FAIL
+
+ [test_link_hash]
+ expected: FAIL
+
+ [test_link_from_toplevel_context_with_target[\]]
+ expected: FAIL
+
+ [test_link_from_toplevel_context_with_target[_blank\]]
+ expected: FAIL
+
+ [test_link_from_toplevel_context_with_target[_parent\]]
+ expected: FAIL
+
+ [test_link_from_toplevel_context_with_target[_self\]]
+ expected: FAIL
+
+ [test_link_from_toplevel_context_with_target[_top\]]
+ expected: FAIL
+
+ [test_link_from_nested_context_with_target[\]]
+ expected: FAIL
+
+ [test_link_from_nested_context_with_target[_blank\]]
+ expected: FAIL
+
+ [test_link_from_nested_context_with_target[_parent\]]
+ expected: FAIL
+
+ [test_link_from_nested_context_with_target[_self\]]
+ expected: FAIL
+
+ [test_link_from_nested_context_with_target[_top\]]
+ expected: FAIL
+
+ [test_link_cross_origin]
+ expected: FAIL
+
+ [test_link_closes_window]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/scroll_into_view.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/scroll_into_view.py.ini
new file mode 100644
index 00000000000..87c9c813881
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/scroll_into_view.py.ini
@@ -0,0 +1,30 @@
+[scroll_into_view.py]
+ [test_scroll_into_view]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[9\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[8\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[7\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[6\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[5\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[4\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[3\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[2\]]
+ expected: ERROR
+
+ [test_partially_visible_does_not_scroll[1\]]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/select.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/select.py.ini
new file mode 100644
index 00000000000..2bf7e5abac4
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/select.py.ini
@@ -0,0 +1,15 @@
+[select.py]
+ [test_click_option]
+ expected: FAIL
+
+ [test_click_preselected_option]
+ expected: FAIL
+
+ [test_click_deselects_others]
+ expected: FAIL
+
+ [test_click_selected_option]
+ expected: FAIL
+
+ [test_out_of_view_dropdown]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/shadow_dom.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/shadow_dom.py.ini
new file mode 100644
index 00000000000..92d8bfe9a3d
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/shadow_dom.py.ini
@@ -0,0 +1,15 @@
+[shadow_dom.py]
+ [test_shadow_element_click[host_element\]]
+ expected: FAIL
+
+ [test_shadow_element_click[checkbox_element\]]
+ expected: FAIL
+
+ [test_nested_shadow_element_click[outer_element\]]
+ expected: FAIL
+
+ [test_nested_shadow_element_click[inner_element\]]
+ expected: FAIL
+
+ [test_nested_shadow_element_click[checkbox\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_click/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_click/user_prompts.py.ini
new file mode 100644
index 00000000000..a050673119e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_click/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/content_editable.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/content_editable.py.ini
new file mode 100644
index 00000000000..3cf383a34ff
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/content_editable.py.ini
@@ -0,0 +1,9 @@
+[content_editable.py]
+ [test_sets_insertion_point_to_end]
+ expected: FAIL
+
+ [test_sets_insertion_point_to_after_last_text_node]
+ expected: FAIL
+
+ [test_no_move_caret_if_focused]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/events.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/events.py.ini
new file mode 100644
index 00000000000..26b3aaa641b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/events.py.ini
@@ -0,0 +1,9 @@
+[events.py]
+ [test_file_upload]
+ expected: FAIL
+
+ [test_form_control_send_text[input\]]
+ expected: FAIL
+
+ [test_form_control_send_text[textarea\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini
new file mode 100644
index 00000000000..4fd4b29e87f
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini
@@ -0,0 +1,55 @@
+[file_upload.py]
+ expected: TIMEOUT
+ [test_empty_text]
+ expected: FAIL
+
+ [test_multiple_files]
+ expected: FAIL
+
+ [test_multiple_files_last_path_not_found]
+ expected: FAIL
+
+ [test_multiple_files_without_multiple_attribute]
+ expected: FAIL
+
+ [test_multiple_files_send_twice]
+ expected: FAIL
+
+ [test_multiple_files_reset_with_element_clear]
+ expected: FAIL
+
+ [test_single_file]
+ expected: FAIL
+
+ [test_single_file_replaces_without_multiple_attribute]
+ expected: FAIL
+
+ [test_single_file_appends_with_multiple_attribute]
+ expected: FAIL
+
+ [test_transparent]
+ expected: FAIL
+
+ [test_obscured]
+ expected: FAIL
+
+ [test_outside_viewport]
+ expected: FAIL
+
+ [test_hidden]
+ expected: FAIL
+
+ [test_display_none]
+ expected: FAIL
+
+ [test_not_focused]
+ expected: FAIL
+
+ [test_focused]
+ expected: ERROR
+
+ [test_strict_hidden]
+ expected: ERROR
+
+ [test_strict_display_none]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/form_controls.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/form_controls.py.ini
new file mode 100644
index 00000000000..5d4a3bd4de5
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/form_controls.py.ini
@@ -0,0 +1,6 @@
+[form_controls.py]
+ [test_input_append]
+ expected: FAIL
+
+ [test_textarea_append]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/interactability.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/interactability.py.ini
new file mode 100644
index 00000000000..9510b686ea1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/interactability.py.ini
@@ -0,0 +1,24 @@
+[interactability.py]
+ [test_document_element_is_interactable]
+ expected: FAIL
+
+ [test_iframe_is_interactable]
+ expected: FAIL
+
+ [test_readonly_element]
+ expected: FAIL
+
+ [test_not_a_focusable_element]
+ expected: FAIL
+
+ [test_display_none]
+ expected: FAIL
+
+ [test_visibility_hidden]
+ expected: FAIL
+
+ [test_hidden]
+ expected: FAIL
+
+ [test_disabled]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/scroll_into_view.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/scroll_into_view.py.ini
new file mode 100644
index 00000000000..3e260cade03
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/scroll_into_view.py.ini
@@ -0,0 +1,27 @@
+[scroll_into_view.py]
+ [test_element_outside_of_not_scrollable_viewport]
+ expected: FAIL
+
+ [test_element_outside_of_scrollable_viewport]
+ expected: FAIL
+
+ [test_contenteditable_element_outside_of_scrollable_viewport]
+ expected: FAIL
+
+ [test_element_already_in_viewport[{block: 'start'}\]]
+ expected: FAIL
+
+ [test_element_already_in_viewport[{block: 'center'}\]]
+ expected: FAIL
+
+ [test_element_already_in_viewport[{block: 'end'}\]]
+ expected: FAIL
+
+ [test_element_already_in_viewport[{block: 'nearest'}\]]
+ expected: FAIL
+
+ [test_element_just_outside_viewport[Just above viewport\]]
+ expected: FAIL
+
+ [test_element_just_outside_viewport[Just below viewport\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/send_keys.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/send_keys.py.ini
new file mode 100644
index 00000000000..b2b09490191
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/send_keys.py.ini
@@ -0,0 +1,21 @@
+[send_keys.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_async_script/arguments.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/arguments.py.ini
new file mode 100644
index 00000000000..6bcbe1197f6
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/arguments.py.ini
@@ -0,0 +1,2 @@
+[arguments.py]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_async_script/collections.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/collections.py.ini
new file mode 100644
index 00000000000..5d0711fe4ad
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/collections.py.ini
@@ -0,0 +1,12 @@
+[collections.py]
+ [test_array_in_array]
+ expected: FAIL
+
+ [test_dom_token_list]
+ expected: FAIL
+
+ [test_file_list]
+ expected: FAIL
+
+ [test_html_all_collection]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_async_script/execute_async.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/execute_async.py.ini
new file mode 100644
index 00000000000..6885d2e743e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/execute_async.py.ini
@@ -0,0 +1,21 @@
+[execute_async.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_abort_by_user_prompt[alert\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt[confirm\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt[prompt\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt_twice[alert\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt_twice[confirm\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt_twice[prompt\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_async_script/node.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/node.py.ini
new file mode 100644
index 00000000000..99dbcbef513
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/node.py.ini
@@ -0,0 +1,33 @@
+[node.py]
+ [test_detached_shadow_root[top_context\]]
+ expected: FAIL
+
+ [test_detached_shadow_root[child_context\]]
+ expected: FAIL
+
+ [test_stale_element[top_context\]]
+ expected: FAIL
+
+ [test_stale_element[child_context\]]
+ expected: FAIL
+
+ [test_element_reference[shadow-root\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[attribute\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[text\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[processing_instruction\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[comment\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[document\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[doctype\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_async_script/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/user_prompts.py.ini
new file mode 100644
index 00000000000..a050673119e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_async_script/window.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/window.py.ini
new file mode 100644
index 00000000000..5cd736463b1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_async_script/window.py.ini
@@ -0,0 +1,6 @@
+[window.py]
+ [test_web_reference[window\]]
+ expected: FAIL
+
+ [test_window_open]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/arguments.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/arguments.py.ini
new file mode 100644
index 00000000000..8818990c5ef
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/arguments.py.ini
@@ -0,0 +1,88 @@
+[arguments.py]
+ expected: TIMEOUT
+ [test_no_such_element_with_unknown_id]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_unknown_id]
+ expected: FAIL
+
+ [test_no_such_shadow_root_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_shadow_root_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_shadow_root_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_shadow_root_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_detached_shadow_root_reference[top_context\]]
+ expected: FAIL
+
+ [test_detached_shadow_root_reference[child_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[None-frame\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[None-window\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[False-frame\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[False-window\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[42-frame\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[42-window\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[value3-frame\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[value3-window\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[value4-frame\]]
+ expected: FAIL
+
+ [test_invalid_argument_for_window_with_invalid_type[value4-window\]]
+ expected: FAIL
+
+ [test_no_such_window_for_window_with_invalid_value]
+ expected: FAIL
+
+ [test_element_reference[frame\]]
+ expected: FAIL
+
+ [test_element_reference[node\]]
+ expected: FAIL
+
+ [test_element_reference[shadow-root\]]
+ expected: FAIL
+
+ [test_element_reference[window\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/collections.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/collections.py.ini
new file mode 100644
index 00000000000..68e5ec4b830
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/collections.py.ini
@@ -0,0 +1,12 @@
+[collections.py]
+ [test_dom_token_list]
+ expected: FAIL
+
+ [test_file_list]
+ expected: FAIL
+
+ [test_html_all_collection]
+ expected: FAIL
+
+ [test_array_in_array]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/execute.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/execute.py.ini
new file mode 100644
index 00000000000..8a1571d1d7b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/execute.py.ini
@@ -0,0 +1,24 @@
+[execute.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_opening_new_window_keeps_current_window_handle]
+ expected: FAIL
+
+ [test_abort_by_user_prompt[alert\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt[confirm\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt[prompt\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt_twice[alert\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt_twice[confirm\]]
+ expected: FAIL
+
+ [test_abort_by_user_prompt_twice[prompt\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/node.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/node.py.ini
new file mode 100644
index 00000000000..dd95e12798a
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/node.py.ini
@@ -0,0 +1,33 @@
+[node.py]
+ [test_detached_shadow_root[top_context\]]
+ expected: FAIL
+
+ [test_detached_shadow_root[child_context\]]
+ expected: FAIL
+
+ [test_stale_element[top_context\]]
+ expected: FAIL
+
+ [test_stale_element[child_context\]]
+ expected: FAIL
+
+ [test_web_reference[shadow-root\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[attribute\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[text\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[processing_instruction\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[comment\]]
+ expected: FAIL
+
+ [test_not_supported_nodes[document\]]
+ expected: ERROR
+
+ [test_not_supported_nodes[doctype\]]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/promise.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/promise.py.ini
new file mode 100644
index 00000000000..d5d950aa7ac
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/promise.py.ini
@@ -0,0 +1,27 @@
+[promise.py]
+ [test_promise_resolve]
+ expected: FAIL
+
+ [test_promise_resolve_delayed]
+ expected: FAIL
+
+ [test_promise_all_resolve]
+ expected: FAIL
+
+ [test_await_promise_resolve]
+ expected: FAIL
+
+ [test_promise_resolve_timeout]
+ expected: FAIL
+
+ [test_promise_reject]
+ expected: FAIL
+
+ [test_promise_reject_delayed]
+ expected: FAIL
+
+ [test_promise_all_reject]
+ expected: FAIL
+
+ [test_promise_reject_timeout]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/user_prompts.py.ini
new file mode 100644
index 00000000000..a050673119e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/execute_script/window.py.ini b/tests/wpt/meta/webdriver/tests/classic/execute_script/window.py.ini
new file mode 100644
index 00000000000..9de464ed4f0
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/execute_script/window.py.ini
@@ -0,0 +1,15 @@
+[window.py]
+ [test_web_reference[window\]]
+ expected: FAIL
+
+ [test_web_reference_in_array[window\]]
+ expected: FAIL
+
+ [test_web_reference_in_object[window\]]
+ expected: FAIL
+
+ [test_window_open]
+ expected: FAIL
+
+ [test_same_id_after_cross_origin_navigation]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_element/find.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_element/find.py.ini
new file mode 100644
index 00000000000..7564f644b10
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_element/find.py.ini
@@ -0,0 +1,34 @@
+[find.py]
+ expected: TIMEOUT
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_element_with_unknown_selector[not-existent\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[existent-other-frame\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[existent-inside-shadow-root\]]
+ expected: FAIL
+
+ [test_find_element[xpath-//a\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[css selector-#linkText\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[link text-full link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[partial link text-link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[tag name-a\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[xpath-//*[name()='a'\]\]]
+ expected: FAIL
+
+ [test_htmldocument[xpath-/html\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_element/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_element/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_element/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_element_from_element/find.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_element_from_element/find.py.ini
new file mode 100644
index 00000000000..64a0652b75b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_element_from_element/find.py.ini
@@ -0,0 +1,52 @@
+[find.py]
+ expected: TIMEOUT
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[not-existent\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[existent-other-frame\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[existent-inside-shadow-root\]]
+ expected: FAIL
+
+ [test_no_such_element_with_startnode_from_other_window_handle]
+ expected: FAIL
+
+ [test_no_such_element_with_startnode_from_other_frame]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_find_element[xpath-//a\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[css selector-#linkText\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[link text-full link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[partial link text-link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[tag name-a\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[xpath-//*[name()='a'\]\]]
+ expected: FAIL
+
+ [test_parent_htmldocument]
+ expected: FAIL
+
+ [test_parent_of_document_node_errors]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_element_from_element/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_element_from_element/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_element_from_element/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/find.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/find.py.ini
new file mode 100644
index 00000000000..dba98c7726b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/find.py.ini
@@ -0,0 +1,157 @@
+[find.py]
+ expected: TIMEOUT
+ [test_null_parameter_value]
+ expected: FAIL
+
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_shadow_root_with_element]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_unknown_shadow_root]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_shadow_root_from_other_window_handle]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_shadow_root_from_other_frame]
+ expected: FAIL
+
+ [test_detached_shadow_root[top_context\]]
+ expected: FAIL
+
+ [test_detached_shadow_root[child_context\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[not-existent\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[existent-other-frame\]]
+ expected: FAIL
+
+ [test_no_such_element_with_unknown_selector[existent-outside-shadow-root\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[True\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[None\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[1\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[shadow_root_id3\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[shadow_root_id4\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[a\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[True\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[None\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[1\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[using4\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[using5\]]
+ expected: FAIL
+
+ [test_invalid_selector_argument[None\]]
+ expected: FAIL
+
+ [test_invalid_selector_argument[value1\]]
+ expected: FAIL
+
+ [test_invalid_selector_argument[value2\]]
+ expected: FAIL
+
+ [test_found_element_equivalence]
+ expected: FAIL
+
+ [test_find_element[open-css selector-#linkText\]]
+ expected: FAIL
+
+ [test_find_element[open-link text-full link text\]]
+ expected: FAIL
+
+ [test_find_element[open-partial link text-link text\]]
+ expected: FAIL
+
+ [test_find_element[open-tag name-a\]]
+ expected: FAIL
+
+ [test_find_element[open-xpath-//a\]]
+ expected: FAIL
+
+ [test_find_element[closed-css selector-#linkText\]]
+ expected: FAIL
+
+ [test_find_element[closed-link text-full link text\]]
+ expected: FAIL
+
+ [test_find_element[closed-partial link text-link text\]]
+ expected: FAIL
+
+ [test_find_element[closed-tag name-a\]]
+ expected: FAIL
+
+ [test_find_element[closed-xpath-//a\]]
+ expected: FAIL
+
+ [test_find_element_link_text[<a href=#>link text</a>-link text\]]
+ expected: FAIL
+
+ [test_find_element_link_text[<a href=#>&nbsp;link text&nbsp;</a>-link text\]]
+ expected: FAIL
+
+ [test_find_element_link_text[<a href=#>link<br>text</a>-link\\ntext\]]
+ expected: FAIL
+
+ [test_find_element_link_text[<a href=#>link&amp;text</a>-link&text\]]
+ expected: FAIL
+
+ [test_find_element_link_text[<a href=#>LINK TEXT</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_element_link_text[<a href=# style='text-transform: uppercase'>link text</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=#>partial link text</a>-link\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=#>&nbsp;partial link text&nbsp;</a>-link\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=#>partial link text</a>-k t\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=#>partial link<br>text</a>-k\\nt\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=#>partial link&amp;text</a>-k&t\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=#>PARTIAL LINK TEXT</a>-LINK\]]
+ expected: FAIL
+
+ [test_find_element_partial_link_text[<a href=# style='text-transform: uppercase'>partial link text</a>-LINK\]]
+ expected: FAIL
+
+ [test_find_element_in_nested_shadow_root[open\]]
+ expected: FAIL
+
+ [test_find_element_in_nested_shadow_root[closed\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_element_from_shadow_root/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_elements/find.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_elements/find.py.ini
new file mode 100644
index 00000000000..44f232824bb
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_elements/find.py.ini
@@ -0,0 +1,76 @@
+[find.py]
+ expected: TIMEOUT
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_find_elements[css selector-#linkText\]]
+ expected: FAIL
+
+ [test_find_elements[link text-full link text\]]
+ expected: FAIL
+
+ [test_find_elements[partial link text-link text\]]
+ expected: FAIL
+
+ [test_find_elements[tag name-a\]]
+ expected: FAIL
+
+ [test_find_elements[xpath-//a\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link text</a>-link text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>&nbsp;link text&nbsp;</a>-link text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link<br>text</a>-link\\ntext\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link&amp;text</a>-link&text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>LINK TEXT</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=# style='text-transform: uppercase'>link text</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link text</a>-link\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>&nbsp;partial link text&nbsp;</a>-link\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link text</a>-k t\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link<br>text</a>-k\\nt\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link&amp;text</a>-k&t\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>PARTIAL LINK TEXT</a>-LINK\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=# style='text-transform: uppercase'>partial link text</a>-LINK\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[css selector-#linkText\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[link text-full link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[partial link text-link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[tag name-a\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[xpath-//*[name()='a'\]\]]
+ expected: FAIL
+
+ [test_htmldocument[xpath-/html\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_elements/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_elements/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_elements/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/find.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/find.py.ini
new file mode 100644
index 00000000000..69ec1b4bbcc
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/find.py.ini
@@ -0,0 +1,82 @@
+[find.py]
+ expected: TIMEOUT
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_with_startnode_from_other_window_handle]
+ expected: FAIL
+
+ [test_no_such_element_with_startnode_from_other_frame]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_find_elements[xpath-//a\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link text</a>-link text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>&nbsp;link text&nbsp;</a>-link text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link<br>text</a>-link\\ntext\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link&amp;text</a>-link&text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>LINK TEXT</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=# style='text-transform: uppercase'>link text</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link text</a>-link\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>&nbsp;partial link text&nbsp;</a>-link\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link text</a>-k t\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link<br>text</a>-k\\nt\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link&amp;text</a>-k&t\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>PARTIAL LINK TEXT</a>-LINK\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=# style='text-transform: uppercase'>partial link text</a>-LINK\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[css selector-#linkText\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[link text-full link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[partial link text-link text\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[tag name-a\]]
+ expected: FAIL
+
+ [test_xhtml_namespace[xpath-//*[name()='a'\]\]]
+ expected: FAIL
+
+ [test_parent_htmldocument]
+ expected: FAIL
+
+ [test_parent_of_document_node_errors]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_element/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/find.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/find.py.ini
new file mode 100644
index 00000000000..5328af1b701
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/find.py.ini
@@ -0,0 +1,157 @@
+[find.py]
+ expected: TIMEOUT
+ [test_null_parameter_value]
+ expected: FAIL
+
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_shadow_root_with_element]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_unknown_shadow_root]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_shadow_root_from_other_window_handle]
+ expected: FAIL
+
+ [test_no_such_shadow_root_with_shadow_root_from_other_frame]
+ expected: FAIL
+
+ [test_detached_shadow_root[top_context\]]
+ expected: FAIL
+
+ [test_detached_shadow_root[child_context\]]
+ expected: FAIL
+
+ [test_no_elements_with_unknown_selector[not-existent\]]
+ expected: FAIL
+
+ [test_no_elements_with_unknown_selector[existent-other-frame\]]
+ expected: FAIL
+
+ [test_no_elements_with_unknown_selector[existent-outside-shadow-root\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[True\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[None\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[1\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[shadow_root_id3\]]
+ expected: FAIL
+
+ [test_invalid_shadow_root_id_argument[shadow_root_id4\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[a\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[True\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[None\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[1\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[using4\]]
+ expected: FAIL
+
+ [test_invalid_using_argument[using5\]]
+ expected: FAIL
+
+ [test_invalid_selector_argument[None\]]
+ expected: FAIL
+
+ [test_invalid_selector_argument[value1\]]
+ expected: FAIL
+
+ [test_invalid_selector_argument[value2\]]
+ expected: FAIL
+
+ [test_find_elements_equivalence]
+ expected: FAIL
+
+ [test_find_elements[open-css selector-#linkText\]]
+ expected: FAIL
+
+ [test_find_elements[open-link text-full link text\]]
+ expected: FAIL
+
+ [test_find_elements[open-partial link text-link text\]]
+ expected: FAIL
+
+ [test_find_elements[open-tag name-a\]]
+ expected: FAIL
+
+ [test_find_elements[open-xpath-//a\]]
+ expected: FAIL
+
+ [test_find_elements[closed-css selector-#linkText\]]
+ expected: FAIL
+
+ [test_find_elements[closed-link text-full link text\]]
+ expected: FAIL
+
+ [test_find_elements[closed-partial link text-link text\]]
+ expected: FAIL
+
+ [test_find_elements[closed-tag name-a\]]
+ expected: FAIL
+
+ [test_find_elements[closed-xpath-//a\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link text</a>-link text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>&nbsp;link text&nbsp;</a>-link text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link<br>text</a>-link\\ntext\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>link&amp;text</a>-link&text\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=#>LINK TEXT</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_elements_link_text[<a href=# style='text-transform: uppercase'>link text</a>-LINK TEXT\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link text</a>-link\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>&nbsp;partial link text&nbsp;</a>-link\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link text</a>-k t\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link<br>text</a>-k\\nt\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>partial link&amp;text</a>-k&t\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=#>PARTIAL LINK TEXT</a>-LINK\]]
+ expected: FAIL
+
+ [test_find_elements_partial_link_text[<a href=# style='text-transform: uppercase'>partial link text</a>-LINK\]]
+ expected: FAIL
+
+ [test_find_elements_in_nested_shadow_root[open\]]
+ expected: FAIL
+
+ [test_find_elements_in_nested_shadow_root[closed\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/find_elements_from_shadow_root/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/forward/forward.py.ini b/tests/wpt/meta/webdriver/tests/classic/forward/forward.py.ini
new file mode 100644
index 00000000000..12538247f27
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/forward/forward.py.ini
@@ -0,0 +1,34 @@
+[forward.py]
+ disabled: consistent panic
+ [test_no_top_browsing_context]
+ expected: ERROR
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_basic]
+ expected: ERROR
+
+ [test_no_browsing_history]
+ expected: ERROR
+
+ [test_seen_nodes[http\]]
+ expected: ERROR
+
+ [test_seen_nodes[https\]]
+ expected: ERROR
+
+ [test_seen_nodes[https coop\]]
+ expected: ERROR
+
+ [test_history_pushstate]
+ expected: ERROR
+
+ [test_data_urls]
+ expected: ERROR
+
+ [test_fragments]
+ expected: ERROR
+
+ [test_removed_iframe]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/forward/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/forward/user_prompts.py.ini
new file mode 100644
index 00000000000..326fdd875ad
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/forward/user_prompts.py.ini
@@ -0,0 +1,3 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/from_minimized_window.py.ini b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/from_minimized_window.py.ini
new file mode 100644
index 00000000000..99b10143b3e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/from_minimized_window.py.ini
@@ -0,0 +1,3 @@
+[from_minimized_window.py]
+ [test_fullscreen_from_minimized_window]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/fullscreen.py.ini b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/fullscreen.py.ini
new file mode 100644
index 00000000000..d03f4481fba
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/fullscreen.py.ini
@@ -0,0 +1,18 @@
+[fullscreen.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_response_payload]
+ expected: FAIL
+
+ [test_fullscreen_from_normal_window]
+ expected: FAIL
+
+ [test_fullscreen_from_maximized_window]
+ expected: FAIL
+
+ [test_fullscreen_twice_is_idempotent]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/stress.py.ini b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/stress.py.ini
new file mode 100644
index 00000000000..a6c136ac885
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/stress.py.ini
@@ -0,0 +1,15 @@
+[stress.py]
+ [test_stress[0\]]
+ expected: FAIL
+
+ [test_stress[1\]]
+ expected: FAIL
+
+ [test_stress[2\]]
+ expected: FAIL
+
+ [test_stress[3\]]
+ expected: FAIL
+
+ [test_stress[4\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/fullscreen_window/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_active_element/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_active_element/get.py.ini
new file mode 100644
index 00000000000..2d7e863ee5b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_active_element/get.py.ini
@@ -0,0 +1,6 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_active_element/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_active_element/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_active_element/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_alert_text/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_alert_text/get.py.ini
new file mode 100644
index 00000000000..fa50e27c0d1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_alert_text/get.py.ini
@@ -0,0 +1,22 @@
+[get.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_user_prompt]
+ expected: FAIL
+
+ [test_get_alert_text]
+ expected: FAIL
+
+ [test_get_confirm_text]
+ expected: FAIL
+
+ [test_get_prompt_text]
+ expected: FAIL
+
+ [test_unexpected_alert]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_computed_label/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_computed_label/get.py.ini
new file mode 100644
index 00000000000..6f7cda2f119
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_computed_label/get.py.ini
@@ -0,0 +1,42 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_invalid_value]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_get_computed_label[<button>ok</button>-button-ok\]]
+ expected: FAIL
+
+ [test_get_computed_label[<button aria-labelledby="one two"></button><div id=one>ok</div><div id=two>go</div>-button-ok go\]]
+ expected: FAIL
+
+ [test_get_computed_label[<button aria-label=foo>bar</button>-button-foo\]]
+ expected: FAIL
+
+ [test_get_computed_label[<label><input> foo</label>-input-foo\]]
+ expected: FAIL
+
+ [test_get_computed_label[<label for=b>foo<label><input id=b>-input-foo\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_computed_label/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_computed_label/user_prompts.py.ini
new file mode 100644
index 00000000000..913351aaa55
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_computed_label/user_prompts.py.ini
@@ -0,0 +1,2 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734 \ No newline at end of file
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_computed_role/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_computed_role/get.py.ini
new file mode 100644
index 00000000000..abd4a7750b7
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_computed_role/get.py.ini
@@ -0,0 +1,24 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_computed_roles[<article>foo</article>-article-article\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_computed_role/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_computed_role/user_prompts.py.ini
new file mode 100644
index 00000000000..b168410dab1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_computed_role/user_prompts.py.ini
@@ -0,0 +1,2 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_current_url/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_current_url/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_current_url/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_attribute/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_attribute/get.py.ini
new file mode 100644
index 00000000000..69b4a4c7d0b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_attribute/get.py.ini
@@ -0,0 +1,94 @@
+[get.py]
+ expected: TIMEOUT
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_normal]
+ expected: FAIL
+
+ [test_boolean_attribute[audio-attrs0\]]
+ expected: FAIL
+
+ [test_boolean_attribute[button-attrs1\]]
+ expected: FAIL
+
+ [test_boolean_attribute[details-attrs2\]]
+ expected: FAIL
+
+ [test_boolean_attribute[dialog-attrs3\]]
+ expected: FAIL
+
+ [test_boolean_attribute[fieldset-attrs4\]]
+ expected: FAIL
+
+ [test_boolean_attribute[form-attrs5\]]
+ expected: FAIL
+
+ [test_boolean_attribute[iframe-attrs6\]]
+ expected: FAIL
+
+ [test_boolean_attribute[img-attrs7\]]
+ expected: FAIL
+
+ [test_boolean_attribute[input-attrs8\]]
+ expected: FAIL
+
+ [test_boolean_attribute[menuitem-attrs9\]]
+ expected: FAIL
+
+ [test_boolean_attribute[ol-attrs10\]]
+ expected: FAIL
+
+ [test_boolean_attribute[optgroup-attrs11\]]
+ expected: FAIL
+
+ [test_boolean_attribute[option-attrs12\]]
+ expected: FAIL
+
+ [test_boolean_attribute[script-attrs13\]]
+ expected: FAIL
+
+ [test_boolean_attribute[select-attrs14\]]
+ expected: FAIL
+
+ [test_boolean_attribute[textarea-attrs15\]]
+ expected: FAIL
+
+ [test_boolean_attribute[track-attrs16\]]
+ expected: FAIL
+
+ [test_boolean_attribute[video-attrs17\]]
+ expected: FAIL
+
+ [test_global_boolean_attributes]
+ expected: FAIL
+
+ [test_anchor_href[relative\]]
+ expected: FAIL
+
+ [test_anchor_href[absolute\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_attribute/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_attribute/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_attribute/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_css_value/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_css_value/get.py.ini
new file mode 100644
index 00000000000..bcd25112776
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_css_value/get.py.ini
@@ -0,0 +1,21 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_css_value/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_css_value/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_css_value/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_property/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_property/get.py.ini
new file mode 100644
index 00000000000..646e2846e18
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_property/get.py.ini
@@ -0,0 +1,94 @@
+[get.py]
+ expected: TIMEOUT
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_property_non_existent]
+ expected: FAIL
+
+ [test_content_attribute]
+ expected: FAIL
+
+ [test_idl_attribute]
+ expected: FAIL
+
+ [test_primitives["foobar"-foobar\]]
+ expected: FAIL
+
+ [test_primitives[42-42\]]
+ expected: FAIL
+
+ [test_primitives[js_primitive2-py_primitive2\]]
+ expected: FAIL
+
+ [test_primitives[js_primitive3-py_primitive3\]]
+ expected: FAIL
+
+ [test_primitives[null-None\]]
+ expected: FAIL
+
+ [test_primitives[undefined-None\]]
+ expected: FAIL
+
+ [test_collection_dom_token_list]
+ expected: FAIL
+
+ [test_primitives_set_by_execute_script["foobar"-foobar\]]
+ expected: FAIL
+
+ [test_primitives_set_by_execute_script[42-42\]]
+ expected: FAIL
+
+ [test_primitives_set_by_execute_script[js_primitive2-py_primitive2\]]
+ expected: FAIL
+
+ [test_primitives_set_by_execute_script[js_primitive3-py_primitive3\]]
+ expected: FAIL
+
+ [test_primitives_set_by_execute_script[null-None\]]
+ expected: FAIL
+
+ [test_primitives_set_by_execute_script[undefined-None\]]
+ expected: FAIL
+
+ [test_web_reference[frame-WebFrame\]]
+ expected: FAIL
+
+ [test_web_reference[shadowRoot-ShadowRoot\]]
+ expected: FAIL
+
+ [test_web_reference[window-WebWindow\]]
+ expected: FAIL
+
+ [test_mutated_element]
+ expected: FAIL
+
+ [test_anchor_href[relative\]]
+ expected: FAIL
+
+ [test_anchor_href[absolute\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_property/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_property/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_property/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_rect/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_rect/get.py.ini
new file mode 100644
index 00000000000..065e9fbc4ce
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_rect/get.py.ini
@@ -0,0 +1,24 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_basic]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_rect/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_rect/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_rect/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/get.py.ini
new file mode 100644
index 00000000000..1b3957f08c8
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/get.py.ini
@@ -0,0 +1,33 @@
+[get.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_invalid_value]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_get_shadow_root]
+ expected: FAIL
+
+ [test_no_shadow_root]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_shadow_root/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/get.py.ini
new file mode 100644
index 00000000000..b810c389100
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/get.py.ini
@@ -0,0 +1,24 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_get_element_tag_name]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_tag_name/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_text/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_text/get.py.ini
new file mode 100644
index 00000000000..5f04f967054
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_text/get.py.ini
@@ -0,0 +1,42 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_transform_capitalize[space\]]
+ expected: FAIL
+
+ [test_transform_capitalize[dash\]]
+ expected: FAIL
+
+ [test_transform_capitalize[underscore\]]
+ expected: FAIL
+
+ [test_shadow_root_slot[custom outside\]]
+ expected: FAIL
+
+ [test_shadow_root_slot[default visible\]]
+ expected: FAIL
+
+ [test_shadow_root_slot[default outside\]]
+ expected: FAIL
+
+ [test_shadow_root_slot[default hidden\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_element_text/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_element_text/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_element_text/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_named_cookie/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_named_cookie/get.py.ini
new file mode 100644
index 00000000000..93b889d3a59
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_named_cookie/get.py.ini
@@ -0,0 +1,12 @@
+[get.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_get_named_session_cookie]
+ expected: FAIL
+
+ [test_get_named_cookie]
+ expected: FAIL
+
+ [test_duplicated_cookie]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_named_cookie/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_named_cookie/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_named_cookie/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_page_source/source.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_page_source/source.py.ini
new file mode 100644
index 00000000000..f1326acbc2f
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_page_source/source.py.ini
@@ -0,0 +1,3 @@
+[source.py]
+ [test_no_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_page_source/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_page_source/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_page_source/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_title/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_title/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_title/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_window_handle/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_window_handle/get.py.ini
new file mode 100644
index 00000000000..0fb70be2b4d
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_window_handle/get.py.ini
@@ -0,0 +1,3 @@
+[get.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_window_handle/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_window_handle/user_prompts.py.ini
new file mode 100644
index 00000000000..0bc849b2704
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_window_handle/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert\]]
+ expected: FAIL
+
+ [test_default[confirm\]]
+ expected: FAIL
+
+ [test_default[prompt\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_window_handles/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_window_handles/user_prompts.py.ini
new file mode 100644
index 00000000000..0bc849b2704
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_window_handles/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert\]]
+ expected: FAIL
+
+ [test_default[confirm\]]
+ expected: FAIL
+
+ [test_default[prompt\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_window_rect/get.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_window_rect/get.py.ini
new file mode 100644
index 00000000000..3394ac22306
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_window_rect/get.py.ini
@@ -0,0 +1,6 @@
+[get.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_payload]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/get_window_rect/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/get_window_rect/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/get_window_rect/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/idlharness.window.js.ini b/tests/wpt/meta/webdriver/tests/classic/idlharness.window.js.ini
new file mode 100644
index 00000000000..ee8e266e35f
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/idlharness.window.js.ini
@@ -0,0 +1,6 @@
+[idlharness.window.html]
+ [Navigator interface: attribute webdriver]
+ expected: FAIL
+
+ [Navigator interface: navigator must inherit property "webdriver" with the proper type]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/interface/interface.py.ini b/tests/wpt/meta/webdriver/tests/classic/interface/interface.py.ini
new file mode 100644
index 00000000000..9efc2c79243
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/interface/interface.py.ini
@@ -0,0 +1,3 @@
+[interface.py]
+ [test_navigator_webdriver_active]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/is_element_enabled/enabled.py.ini b/tests/wpt/meta/webdriver/tests/classic/is_element_enabled/enabled.py.ini
new file mode 100644
index 00000000000..1f97f812861
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/is_element_enabled/enabled.py.ini
@@ -0,0 +1,2 @@
+[enabled.py]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webdriver/tests/classic/is_element_enabled/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/is_element_enabled/user_prompts.py.ini
new file mode 100644
index 00000000000..913351aaa55
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/is_element_enabled/user_prompts.py.ini
@@ -0,0 +1,2 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734 \ No newline at end of file
diff --git a/tests/wpt/meta/webdriver/tests/classic/is_element_selected/selected.py.ini b/tests/wpt/meta/webdriver/tests/classic/is_element_selected/selected.py.ini
new file mode 100644
index 00000000000..f75724979c5
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/is_element_selected/selected.py.ini
@@ -0,0 +1,21 @@
+[selected.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/is_element_selected/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/is_element_selected/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/is_element_selected/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/maximize_window/from_minimized_window.py.ini b/tests/wpt/meta/webdriver/tests/classic/maximize_window/from_minimized_window.py.ini
new file mode 100644
index 00000000000..5d3e1ccc1b2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/maximize_window/from_minimized_window.py.ini
@@ -0,0 +1,3 @@
+[from_minimized_window.py]
+ [test_restore_from_minimized]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/maximize_window/maximize.py.ini b/tests/wpt/meta/webdriver/tests/classic/maximize_window/maximize.py.ini
new file mode 100644
index 00000000000..83d5c2fcf84
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/maximize_window/maximize.py.ini
@@ -0,0 +1,21 @@
+[maximize.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_response_payload]
+ expected: FAIL
+
+ [test_fully_exit_fullscreen]
+ expected: FAIL
+
+ [test_maximize_from_normal_window]
+ expected: FAIL
+
+ [test_maximize_with_window_already_at_maximum_size]
+ expected: FAIL
+
+ [test_maximize_twice_is_idempotent]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/maximize_window/stress.py.ini b/tests/wpt/meta/webdriver/tests/classic/maximize_window/stress.py.ini
new file mode 100644
index 00000000000..a6c136ac885
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/maximize_window/stress.py.ini
@@ -0,0 +1,15 @@
+[stress.py]
+ [test_stress[0\]]
+ expected: FAIL
+
+ [test_stress[1\]]
+ expected: FAIL
+
+ [test_stress[2\]]
+ expected: FAIL
+
+ [test_stress[3\]]
+ expected: FAIL
+
+ [test_stress[4\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/maximize_window/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/maximize_window/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/maximize_window/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/minimize_window/minimize.py.ini b/tests/wpt/meta/webdriver/tests/classic/minimize_window/minimize.py.ini
new file mode 100644
index 00000000000..75af78405d0
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/minimize_window/minimize.py.ini
@@ -0,0 +1,21 @@
+[minimize.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_response_payload]
+ expected: FAIL
+
+ [test_restore_from_fullscreen]
+ expected: FAIL
+
+ [test_restore_from_maximized]
+ expected: FAIL
+
+ [test_minimize_from_normal_window]
+ expected: FAIL
+
+ [test_minimize_twice_is_idempotent]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/minimize_window/stress.py.ini b/tests/wpt/meta/webdriver/tests/classic/minimize_window/stress.py.ini
new file mode 100644
index 00000000000..a6c136ac885
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/minimize_window/stress.py.ini
@@ -0,0 +1,15 @@
+[stress.py]
+ [test_stress[0\]]
+ expected: FAIL
+
+ [test_stress[1\]]
+ expected: FAIL
+
+ [test_stress[2\]]
+ expected: FAIL
+
+ [test_stress[3\]]
+ expected: FAIL
+
+ [test_stress[4\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/minimize_window/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/minimize_window/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/minimize_window/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/navigate_to/navigate.py.ini b/tests/wpt/meta/webdriver/tests/classic/navigate_to/navigate.py.ini
new file mode 100644
index 00000000000..2464f4b2b4d
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/navigate_to/navigate.py.ini
@@ -0,0 +1,12 @@
+[navigate.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_seen_nodes[http\]]
+ expected: FAIL
+
+ [test_seen_nodes[https\]]
+ expected: FAIL
+
+ [test_seen_nodes[https coop\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/navigate_to/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/navigate_to/user_prompts.py.ini
new file mode 100644
index 00000000000..fcf10a0526c
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/navigate_to/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_session/create_alwaysMatch.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_session/create_alwaysMatch.py.ini
new file mode 100644
index 00000000000..c837e638bb0
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_session/create_alwaysMatch.py.ini
@@ -0,0 +1,21 @@
+[create_alwaysMatch.py]
+ [test_valid[timeouts-value12\]]
+ expected: FAIL
+
+ [test_valid[strictFileInteractability-True\]]
+ expected: FAIL
+
+ [test_valid[test:extension-False\]]
+ expected: FAIL
+
+ [test_valid[test:extension-abc\]]
+ expected: FAIL
+
+ [test_valid[test:extension-123\]]
+ expected: FAIL
+
+ [test_valid[test:extension-value22\]]
+ expected: FAIL
+
+ [test_valid[test:extension-value23\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_session/create_firstMatch.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_session/create_firstMatch.py.ini
new file mode 100644
index 00000000000..3752bebca7b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_session/create_firstMatch.py.ini
@@ -0,0 +1,21 @@
+[create_firstMatch.py]
+ [test_valid[timeouts-value12\]]
+ expected: FAIL
+
+ [test_valid[strictFileInteractability-True\]]
+ expected: FAIL
+
+ [test_valid[test:extension-False\]]
+ expected: FAIL
+
+ [test_valid[test:extension-abc\]]
+ expected: FAIL
+
+ [test_valid[test:extension-123\]]
+ expected: FAIL
+
+ [test_valid[test:extension-value22\]]
+ expected: FAIL
+
+ [test_valid[test:extension-value23\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_session/response.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_session/response.py.ini
new file mode 100644
index 00000000000..b5c5cede365
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_session/response.py.ini
@@ -0,0 +1,3 @@
+[response.py]
+ [test_capability_user_agent]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_session/unhandled_prompt_behavior.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_session/unhandled_prompt_behavior.py.ini
new file mode 100644
index 00000000000..ff2e1c72126
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_session/unhandled_prompt_behavior.py.ini
@@ -0,0 +1,24 @@
+[unhandled_prompt_behavior.py]
+ [test_unhandled_prompt_behavior_as_object_default[handler0-expected_capability0-True-True\]]
+ expected: FAIL
+
+ [test_unhandled_prompt_behavior_as_object_default[handler1-expected_capability1-True-False\]]
+ expected: FAIL
+
+ [test_unhandled_prompt_behavior_as_object_default[handler2-expected_capability2-False-True\]]
+ expected: FAIL
+
+ [test_beforeunload_prompts_always_automatically_accepted[accept\]]
+ expected: FAIL
+
+ [test_beforeunload_prompts_always_automatically_accepted[accept and notify\]]
+ expected: FAIL
+
+ [test_beforeunload_prompts_always_automatically_accepted[dismiss\]]
+ expected: FAIL
+
+ [test_beforeunload_prompts_always_automatically_accepted[dismiss and notify\]]
+ expected: FAIL
+
+ [test_beforeunload_prompts_always_automatically_accepted[ignore\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_session/websocket_url.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_session/websocket_url.py.ini
new file mode 100644
index 00000000000..76e42fd0ed0
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_session/websocket_url.py.ini
@@ -0,0 +1,3 @@
+[websocket_url.py]
+ [test_bidi_upgrade]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_window/new.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_window/new.py.ini
new file mode 100644
index 00000000000..7288018eebf
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_window/new.py.ini
@@ -0,0 +1,6 @@
+[new.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_window/new_tab.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_window/new_tab.py.ini
new file mode 100644
index 00000000000..77be6174789
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_window/new_tab.py.ini
@@ -0,0 +1,15 @@
+[new_tab.py]
+ [test_keeps_current_window_handle]
+ expected: ERROR
+
+ [test_opens_about_blank_in_new_tab]
+ expected: ERROR
+
+ [test_initial_selection_for_contenteditable]
+ expected: ERROR
+
+ [test_sets_no_window_name]
+ expected: ERROR
+
+ [test_sets_no_opener]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_window/new_window.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_window/new_window.py.ini
new file mode 100644
index 00000000000..5ea6fe581f7
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_window/new_window.py.ini
@@ -0,0 +1,12 @@
+[new_window.py]
+ [test_payload]
+ expected: FAIL
+
+ [test_keeps_current_window_handle]
+ expected: FAIL
+
+ [test_opens_about_blank_in_new_window]
+ expected: FAIL
+
+ [test_initial_selection_for_contenteditable]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/new_window/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/new_window/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/new_window/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/invalid.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/invalid.py.ini
new file mode 100644
index 00000000000..39649c5204a
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/invalid.py.ini
@@ -0,0 +1,91 @@
+[invalid.py]
+ expected: TIMEOUT
+ [test_input_source_action_sequence_actions_pause_duration_invalid_value[9007199254740992-none\]]
+ expected: FAIL
+
+ [test_input_source_action_sequence_actions_pause_duration_invalid_value[9007199254740992-key\]]
+ expected: FAIL
+
+ [test_input_source_action_sequence_actions_pause_duration_invalid_value[9007199254740992-pointer\]]
+ expected: FAIL
+
+ [test_input_source_action_sequence_actions_pause_duration_invalid_value[9007199254740992-wheel\]]
+ expected: FAIL
+
+ [test_pointer_action_up_down_button_invalid_value[9007199254740992-pointerDown\]]
+ expected: FAIL
+
+ [test_pointer_action_up_down_button_invalid_value[9007199254740992-pointerUp\]]
+ expected: FAIL
+
+ [test_pointer_action_common_properties_dimensions_invalid_value[9007199254740992-width-pointerDown\]]
+ expected: FAIL
+
+ [test_pointer_action_common_properties_dimensions_invalid_value[9007199254740992-width-pointerMove\]]
+ expected: FAIL
+
+ [test_pointer_action_common_properties_dimensions_invalid_value[9007199254740992-width-pointerUp\]]
+ expected: FAIL
+
+ [test_pointer_action_common_properties_dimensions_invalid_value[9007199254740992-height-pointerDown\]]
+ expected: FAIL
+
+ [test_pointer_action_common_properties_dimensions_invalid_value[9007199254740992-height-pointerMove\]]
+ expected: FAIL
+
+ [test_pointer_action_common_properties_dimensions_invalid_value[9007199254740992-height-pointerUp\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_coordinate_invalid_type[None-x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_coordinate_invalid_type[None-y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_coordinate_invalid_value[-9007199254740992-x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_coordinate_invalid_value[-9007199254740992-y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_coordinate_invalid_value[9007199254740992-x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_coordinate_invalid_value[9007199254740992-y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_delta_invalid_type[None-x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_delta_invalid_type[None-y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_delta_invalid_value[-9007199254740992-x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_delta_invalid_value[-9007199254740992-y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_delta_invalid_value[9007199254740992-x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_delta_invalid_value[9007199254740992-y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_origin_pointer_not_supported]
+ expected: FAIL
+
+ [test_wheel_action_scroll_origin_element_invalid_value]
+ expected: FAIL
+
+ [test_wheel_action_scroll_missing_property[x\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_missing_property[y\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_missing_property[deltaX\]]
+ expected: FAIL
+
+ [test_wheel_action_scroll_missing_property[deltaY\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/key.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key.py.ini
new file mode 100644
index 00000000000..0a9efbca289
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key.py.ini
@@ -0,0 +1,24 @@
+[key.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_key_down_closes_browsing_context]
+ expected: FAIL
+
+ [test_backspace_erases_keys]
+ expected: FAIL
+
+ [test_element_in_shadow_tree[outer-open\]]
+ expected: FAIL
+
+ [test_element_in_shadow_tree[outer-closed\]]
+ expected: FAIL
+
+ [test_element_in_shadow_tree[inner-open\]]
+ expected: FAIL
+
+ [test_element_in_shadow_tree[inner-closed\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_events.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_events.py.ini
new file mode 100644
index 00000000000..6dabfbb793f
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_events.py.ini
@@ -0,0 +1,273 @@
+[key_events.py]
+ [test_modifier_key_sends_correct_events[\\ue00a-ALT\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue009-CONTROL\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue03d-META\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue008-SHIFT\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue052-R_ALT\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue051-R_CONTROL\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue053-R_META\]]
+ expected: FAIL
+
+ [test_modifier_key_sends_correct_events[\\ue050-R_SHIFT\]]
+ expected: FAIL
+
+ [test_non_printable_key_sends_events[\\ue00c-ESCAPE\]]
+ expected: FAIL
+
+ [test_non_printable_key_sends_events[\\ue014-RIGHT\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[a-KeyA0\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[a-KeyA1\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events["-Quote\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[,-Comma\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[\\xe0-\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[\\u0416-\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[@-Digit2\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[\\u2603-\]]
+ expected: FAIL
+
+ [test_printable_key_sends_correct_events[\\uf6c2-\]]
+ expected: FAIL
+
+ [test_sequence_of_keydown_printable_keys_sends_events]
+ expected: FAIL
+
+ [test_sequence_of_keydown_printable_characters_sends_events]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[ADD-expected0\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[ALT-expected1\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[BACKSPACE-expected2\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[CANCEL-expected3\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[CLEAR-expected4\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[CONTROL-expected5\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[DECIMAL-expected6\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[DELETE-expected7\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[DIVIDE-expected8\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[DOWN-expected9\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[END-expected10\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[ENTER-expected11\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[EQUALS-expected12\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[ESCAPE-expected13\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F1-expected14\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F10-expected15\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F11-expected16\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F12-expected17\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F2-expected18\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F3-expected19\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F4-expected20\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F5-expected21\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F6-expected22\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F7-expected23\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F8-expected24\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[F9-expected25\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[HELP-expected26\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[HOME-expected27\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[INSERT-expected28\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[LEFT-expected29\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[META-expected30\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[MULTIPLY-expected31\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NULL-expected32\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD0-expected33\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD1-expected34\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD2-expected35\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD3-expected36\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD4-expected37\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD5-expected38\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD6-expected39\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD7-expected40\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD8-expected41\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[NUMPAD9-expected42\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[PAGE_DOWN-expected43\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[PAGE_UP-expected44\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[PAUSE-expected45\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[RETURN-expected46\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[RIGHT-expected47\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_ALT-expected48\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_ARROWDOWN-expected49\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_ARROWLEFT-expected50\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_ARROWRIGHT-expected51\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_ARROWUP-expected52\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_CONTROL-expected53\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_DELETE-expected54\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_END-expected55\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_HOME-expected56\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_INSERT-expected57\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_META-expected58\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_PAGEDOWN-expected59\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_PAGEUP-expected60\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[R_SHIFT-expected61\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SEMICOLON-expected62\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SEPARATOR-expected63\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SHIFT-expected64\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SPACE-expected65\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[SUBTRACT-expected66\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[TAB-expected67\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[UP-expected68\]]
+ expected: FAIL
+
+ [test_special_key_sends_keydown[ZENKAKUHANKAKU-expected69\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_modifiers.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_modifiers.py.ini
new file mode 100644
index 00000000000..70b4b687388
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_modifiers.py.ini
@@ -0,0 +1,12 @@
+[key_modifiers.py]
+ [test_shift_modifier_and_non_printable_keys[\\ue008\]]
+ expected: FAIL
+
+ [test_shift_modifier_and_non_printable_keys[\\ue050\]]
+ expected: FAIL
+
+ [test_shift_modifier_generates_capital_letters[\\ue008\]]
+ expected: FAIL
+
+ [test_shift_modifier_generates_capital_letters[\\ue050\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_shortcuts.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_shortcuts.py.ini
new file mode 100644
index 00000000000..43e9ac6cf32
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_shortcuts.py.ini
@@ -0,0 +1,3 @@
+[key_shortcuts.py]
+ [test_mod_a_mod_c_right_mod_v_pastes_text]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_special_keys.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_special_keys.py.ini
new file mode 100644
index 00000000000..9f97050ec49
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_special_keys.py.ini
@@ -0,0 +1,12 @@
+[key_special_keys.py]
+ [test_codepoint_keys_behave_correctly[\\U0001f604\]]
+ expected: FAIL
+
+ [test_codepoint_keys_behave_correctly[\\U0001f60d\]]
+ expected: FAIL
+
+ [test_codepoint_keys_behave_correctly[\\u0ba8\\u0bbf\]]
+ expected: FAIL
+
+ [test_codepoint_keys_behave_correctly[\\u1100\\u1161\\u11a8\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_tentative.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_tentative.py.ini
new file mode 100644
index 00000000000..a16bb76d7c7
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/key_tentative.py.ini
@@ -0,0 +1,6 @@
+[key_tentative.py]
+ [test_grapheme_cluster[\\u0e01\\u0e33\]]
+ expected: FAIL
+
+ [test_grapheme_cluster[\\U0001f937\\U0001f3fd\\u200d\\u2640\\ufe0f\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini
new file mode 100644
index 00000000000..38af76d3cf4
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/navigation.py.ini
@@ -0,0 +1,6 @@
+[navigation.py]
+ [test_key]
+ expected: FAIL
+
+ [test_pointer]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/none.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/none.py.ini
new file mode 100644
index 00000000000..1dad7888c51
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/none.py.ini
@@ -0,0 +1,6 @@
+[none.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/perform.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/perform.py.ini
new file mode 100644
index 00000000000..b4a8841b9ae
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/perform.py.ini
@@ -0,0 +1,9 @@
+[perform.py]
+ [test_input_source_action_sequence_actions_pause_duration_valid[wheel\]]
+ expected: FAIL
+
+ [test_input_source_action_sequence_actions_pause_duration_missing[wheel\]]
+ expected: FAIL
+
+ [test_input_source_action_sequence_pointer_parameters_not_processed[wheel\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_contextmenu.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_contextmenu.py.ini
new file mode 100644
index 00000000000..e0fb2381634
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_contextmenu.py.ini
@@ -0,0 +1,9 @@
+[pointer_contextmenu.py]
+ [test_control_click[\\ue009-ctrlKey\]]
+ expected: ERROR
+
+ [test_control_click[\\ue051-ctrlKey\]]
+ expected: ERROR
+
+ [test_release_control_click]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_dblclick.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_dblclick.py.ini
new file mode 100644
index 00000000000..523d8d29edb
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_dblclick.py.ini
@@ -0,0 +1,9 @@
+[pointer_dblclick.py]
+ [test_dblclick_at_coordinates[0\]]
+ expected: FAIL
+
+ [test_dblclick_at_coordinates[200\]]
+ expected: FAIL
+
+ [test_no_dblclick_when_mouse_moves]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_modifier_click.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_modifier_click.py.ini
new file mode 100644
index 00000000000..ebb9ef4dcc0
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_modifier_click.py.ini
@@ -0,0 +1,21 @@
+[pointer_modifier_click.py]
+ [test_modifier_click[\\ue00a-altKey\]]
+ expected: ERROR
+
+ [test_modifier_click[\\ue052-altKey\]]
+ expected: ERROR
+
+ [test_modifier_click[\\ue03d-metaKey\]]
+ expected: ERROR
+
+ [test_modifier_click[\\ue053-metaKey\]]
+ expected: ERROR
+
+ [test_modifier_click[\\ue008-shiftKey\]]
+ expected: ERROR
+
+ [test_modifier_click[\\ue050-shiftKey\]]
+ expected: ERROR
+
+ [test_many_modifiers_click]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse.py.ini
new file mode 100644
index 00000000000..4a163fe2fac
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse.py.ini
@@ -0,0 +1,64 @@
+[pointer_mouse.py]
+ expected: TIMEOUT
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: ERROR
+
+ [test_pointer_down_closes_browsing_context]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_click_at_coordinates]
+ expected: FAIL
+
+ [test_context_menu_at_coordinates]
+ expected: FAIL
+
+ [test_middle_click]
+ expected: FAIL
+
+ [test_click_element_center]
+ expected: FAIL
+
+ [test_click_element_in_shadow_tree[outer-open\]]
+ expected: FAIL
+
+ [test_click_element_in_shadow_tree[outer-closed\]]
+ expected: FAIL
+
+ [test_click_element_in_shadow_tree[inner-open\]]
+ expected: FAIL
+
+ [test_click_element_in_shadow_tree[inner-closed\]]
+ expected: FAIL
+
+ [test_click_navigation]
+ expected: FAIL
+
+ [test_move_to_position_in_viewport[x\]]
+ expected: FAIL
+
+ [test_move_to_position_in_viewport[y\]]
+ expected: FAIL
+
+ [test_move_to_fractional_position]
+ expected: FAIL
+
+ [test_move_to_origin_position_within_frame[viewport\]]
+ expected: FAIL
+
+ [test_move_to_origin_position_within_frame[pointer\]]
+ expected: FAIL
+
+ [test_move_to_origin_position_within_frame[element\]]
+ expected: FAIL
+
+ [test_invalid_element_origin]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse_drag.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse_drag.py.ini
new file mode 100644
index 00000000000..8657edd79e8
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_mouse_drag.py.ini
@@ -0,0 +1,63 @@
+[pointer_mouse_drag.py]
+ [test_drag_and_drop[20-0-0\]]
+ expected: ERROR
+
+ [test_drag_and_drop[20-0-300\]]
+ expected: ERROR
+
+ [test_drag_and_drop[20-0-800\]]
+ expected: ERROR
+
+ [test_drag_and_drop[0-15-0\]]
+ expected: ERROR
+
+ [test_drag_and_drop[0-15-300\]]
+ expected: ERROR
+
+ [test_drag_and_drop[0-15-800\]]
+ expected: ERROR
+
+ [test_drag_and_drop[10-15-0\]]
+ expected: ERROR
+
+ [test_drag_and_drop[10-15-300\]]
+ expected: ERROR
+
+ [test_drag_and_drop[10-15-800\]]
+ expected: ERROR
+
+ [test_drag_and_drop[-20-0-0\]]
+ expected: ERROR
+
+ [test_drag_and_drop[-20-0-300\]]
+ expected: ERROR
+
+ [test_drag_and_drop[-20-0-800\]]
+ expected: ERROR
+
+ [test_drag_and_drop[10--15-0\]]
+ expected: ERROR
+
+ [test_drag_and_drop[10--15-300\]]
+ expected: ERROR
+
+ [test_drag_and_drop[10--15-800\]]
+ expected: ERROR
+
+ [test_drag_and_drop[-10--15-0\]]
+ expected: ERROR
+
+ [test_drag_and_drop[-10--15-300\]]
+ expected: ERROR
+
+ [test_drag_and_drop[-10--15-800\]]
+ expected: ERROR
+
+ [test_drag_and_drop_with_draggable_element[0\]]
+ expected: ERROR
+
+ [test_drag_and_drop_with_draggable_element[300\]]
+ expected: ERROR
+
+ [test_drag_and_drop_with_draggable_element[800\]]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_origin.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_origin.py.ini
new file mode 100644
index 00000000000..112a4f9ddf4
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_origin.py.ini
@@ -0,0 +1,27 @@
+[pointer_origin.py]
+ [test_viewport_inside]
+ expected: ERROR
+
+ [test_pointer_inside]
+ expected: ERROR
+
+ [test_element_center_point]
+ expected: ERROR
+
+ [test_element_center_point_with_offset]
+ expected: ERROR
+
+ [test_element_in_view_center_point_partly_visible]
+ expected: ERROR
+
+ [test_element_larger_than_viewport]
+ expected: ERROR
+
+ [test_element_outside_of_view_port]
+ expected: ERROR
+
+ [test_viewport_outside]
+ expected: ERROR
+
+ [test_pointer_outside]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pause_dblclick.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pause_dblclick.py.ini
new file mode 100644
index 00000000000..106650cb70e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pause_dblclick.py.ini
@@ -0,0 +1,6 @@
+[pointer_pause_dblclick.py]
+ [test_dblclick_with_pause_after_second_pointerdown]
+ expected: FAIL
+
+ [test_no_dblclick]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pen.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pen.py.ini
new file mode 100644
index 00000000000..a3d52579f7d
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_pen.py.ini
@@ -0,0 +1,33 @@
+[pointer_pen.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_pointer_down_closes_browsing_context]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_pen_pointer_in_shadow_tree[outer-open\]]
+ expected: FAIL
+
+ [test_pen_pointer_in_shadow_tree[outer-closed\]]
+ expected: FAIL
+
+ [test_pen_pointer_in_shadow_tree[inner-open\]]
+ expected: FAIL
+
+ [test_pen_pointer_in_shadow_tree[inner-closed\]]
+ expected: FAIL
+
+ [test_pen_pointer_properties]
+ expected: FAIL
+
+ [test_params_actions_origin_outside_viewport[element\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_touch.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_touch.py.ini
new file mode 100644
index 00000000000..65101d138aa
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_touch.py.ini
@@ -0,0 +1,42 @@
+[pointer_touch.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_pointer_down_closes_browsing_context]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_touch_pointer_in_shadow_tree[outer-open\]]
+ expected: FAIL
+
+ [test_touch_pointer_in_shadow_tree[outer-closed\]]
+ expected: FAIL
+
+ [test_touch_pointer_in_shadow_tree[inner-open\]]
+ expected: FAIL
+
+ [test_touch_pointer_in_shadow_tree[inner-closed\]]
+ expected: FAIL
+
+ [test_touch_pointer_properties]
+ expected: FAIL
+
+ [test_touch_pointer_properties_angle_twist]
+ expected: FAIL
+
+ [test_touch_pointer_properties_tilt_twist]
+ expected: FAIL
+
+ [test_move_to_fractional_position]
+ expected: FAIL
+
+ [test_params_actions_origin_outside_viewport[element\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_tripleclick.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_tripleclick.py.ini
new file mode 100644
index 00000000000..7e0523a6116
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/pointer_tripleclick.py.ini
@@ -0,0 +1,3 @@
+[pointer_tripleclick.py]
+ [test_tripleclick_at_coordinates]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/sequence.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/sequence.py.ini
new file mode 100644
index 00000000000..54ee376545d
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/sequence.py.ini
@@ -0,0 +1,3 @@
+[sequence.py]
+ [test_perform_no_actions_send_no_events]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/user_prompts.py.ini
new file mode 100644
index 00000000000..ca5401f5012
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/user_prompts.py.ini
@@ -0,0 +1,58 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: ERROR
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: ERROR
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: ERROR
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: ERROR
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: ERROR
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: ERROR
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: ERROR
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: ERROR
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: ERROR
+
+ [test_ignore[capabilities0-alert\]]
+ expected: ERROR
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: ERROR
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: ERROR
+
+ [test_default[alert-None\]]
+ expected: ERROR
+
+ [test_default[confirm-False\]]
+ expected: ERROR
+
+ [test_default[prompt-None\]]
+ expected: ERROR
+
+ [test_dismissed_beforeunload]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/perform_actions/wheel.py.ini b/tests/wpt/meta/webdriver/tests/classic/perform_actions/wheel.py.ini
new file mode 100644
index 00000000000..3f6abc70f3e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/perform_actions/wheel.py.ini
@@ -0,0 +1,39 @@
+[wheel.py]
+ [test_null_response_value]
+ expected: FAIL
+
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_params_actions_origin_outside_viewport[element\]]
+ expected: FAIL
+
+ [test_params_actions_origin_outside_viewport[viewport\]]
+ expected: FAIL
+
+ [test_scroll_not_scrollable]
+ expected: FAIL
+
+ [test_scroll_scrollable_overflow]
+ expected: FAIL
+
+ [test_scroll_iframe]
+ expected: FAIL
+
+ [test_scroll_shadow_tree[outer-open\]]
+ expected: FAIL
+
+ [test_scroll_shadow_tree[outer-closed\]]
+ expected: FAIL
+
+ [test_scroll_shadow_tree[inner-open\]]
+ expected: FAIL
+
+ [test_scroll_shadow_tree[inner-closed\]]
+ expected: FAIL
+
+ [test_scroll_with_key_pressed]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/permissions/set.py.ini b/tests/wpt/meta/webdriver/tests/classic/permissions/set.py.ini
new file mode 100644
index 00000000000..a97d40f6155
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/permissions/set.py.ini
@@ -0,0 +1,9 @@
+[set.py]
+ [test_set_to_state[granted\]]
+ expected: FAIL
+
+ [test_set_to_state[denied\]]
+ expected: FAIL
+
+ [test_set_to_state[prompt\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/print/background.py.ini b/tests/wpt/meta/webdriver/tests/classic/print/background.py.ini
new file mode 100644
index 00000000000..0d71e219071
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/print/background.py.ini
@@ -0,0 +1,9 @@
+[background.py]
+ [test_background[None-iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2P4DwQACfsD/Z8fLAAAAAAASUVORK5CYII=\]]
+ expected: FAIL
+
+ [test_background[True-iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2NgYGD4DwABBAEAwS2OUAAAAABJRU5ErkJggg==\]]
+ expected: FAIL
+
+ [test_background[False-iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2P4DwQACfsD/Z8fLAAAAAAASUVORK5CYII=\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/print/orientation.py.ini b/tests/wpt/meta/webdriver/tests/classic/print/orientation.py.ini
new file mode 100644
index 00000000000..387ff60af8b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/print/orientation.py.ini
@@ -0,0 +1,9 @@
+[orientation.py]
+ [test_orientation[default\]]
+ expected: FAIL
+
+ [test_orientation[portrait\]]
+ expected: FAIL
+
+ [test_orientation[landscape\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/print/printcmd.py.ini b/tests/wpt/meta/webdriver/tests/classic/print/printcmd.py.ini
new file mode 100644
index 00000000000..5d21a234610
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/print/printcmd.py.ini
@@ -0,0 +1,57 @@
+[printcmd.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_html_document]
+ expected: FAIL
+
+ [test_large_html_document]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges0-expected0\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges1-expected1\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges2-expected2\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges3-expected3\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges4-expected4\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges5-expected5\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges6-expected6\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges7-expected7\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges8-expected8\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges9-expected9\]]
+ expected: FAIL
+
+ [test_page_ranges_document[ranges10-expected10\]]
+ expected: FAIL
+
+ [test_page_ranges_invalid[options9\]]
+ expected: FAIL
+
+ [test_page_ranges_invalid[options10\]]
+ expected: FAIL
+
+ [test_page_ranges_invalid[options11\]]
+ expected: FAIL
+
+ [test_page_ranges_invalid[options12\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/print/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/print/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/print/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/refresh/refresh.py.ini b/tests/wpt/meta/webdriver/tests/classic/refresh/refresh.py.ini
new file mode 100644
index 00000000000..08528d08784
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/refresh/refresh.py.ini
@@ -0,0 +1,21 @@
+[refresh.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_seen_nodes[http\]]
+ expected: FAIL
+
+ [test_seen_nodes[https\]]
+ expected: FAIL
+
+ [test_seen_nodes[https coop\]]
+ expected: FAIL
+
+ [test_history_pushstate]
+ expected: FAIL
+
+ [test_refresh_switches_to_parent_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/refresh/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/refresh/user_prompts.py.ini
new file mode 100644
index 00000000000..fcf10a0526c
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/refresh/user_prompts.py.ini
@@ -0,0 +1,73 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-beforeunload-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-beforeunload\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[beforeunload-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/release_actions/release.py.ini b/tests/wpt/meta/webdriver/tests/classic/release_actions/release.py.ini
new file mode 100644
index 00000000000..7c5e73584b6
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/release_actions/release.py.ini
@@ -0,0 +1,6 @@
+[release.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/release_actions/sequence.py.ini b/tests/wpt/meta/webdriver/tests/classic/release_actions/sequence.py.ini
new file mode 100644
index 00000000000..6ba3814b563
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/release_actions/sequence.py.ini
@@ -0,0 +1,3 @@
+[sequence.py]
+ [test_release_char_sequence_sends_keyup_events_in_reverse]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/release_actions/sequence_tentative.py.ini b/tests/wpt/meta/webdriver/tests/classic/release_actions/sequence_tentative.py.ini
new file mode 100644
index 00000000000..aed5f673813
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/release_actions/sequence_tentative.py.ini
@@ -0,0 +1,6 @@
+[sequence_tentative.py]
+ [test_release_mouse_sequence_resets_dblclick_state[with release actions\]]
+ expected: FAIL
+
+ [test_release_mouse_sequence_resets_dblclick_state[without release actions\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/send_alert_text/send.py.ini b/tests/wpt/meta/webdriver/tests/classic/send_alert_text/send.py.ini
new file mode 100644
index 00000000000..fc3fe5245a3
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/send_alert_text/send.py.ini
@@ -0,0 +1,3 @@
+[send.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webdriver/tests/classic/set_timeouts/set.py.ini b/tests/wpt/meta/webdriver/tests/classic/set_timeouts/set.py.ini
new file mode 100644
index 00000000000..bfc9d7723d9
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/set_timeouts/set.py.ini
@@ -0,0 +1,2 @@
+[set.py]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/webdriver/tests/classic/set_timeouts/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/set_timeouts/user_prompts.py.ini
new file mode 100644
index 00000000000..913351aaa55
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/set_timeouts/user_prompts.py.ini
@@ -0,0 +1,2 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734 \ No newline at end of file
diff --git a/tests/wpt/meta/webdriver/tests/classic/set_window_rect/from_minimized_window.py.ini b/tests/wpt/meta/webdriver/tests/classic/set_window_rect/from_minimized_window.py.ini
new file mode 100644
index 00000000000..5d3e1ccc1b2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/set_window_rect/from_minimized_window.py.ini
@@ -0,0 +1,3 @@
+[from_minimized_window.py]
+ [test_restore_from_minimized]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/set_window_rect/set.py.ini b/tests/wpt/meta/webdriver/tests/classic/set_window_rect/set.py.ini
new file mode 100644
index 00000000000..6b28c2efdf8
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/set_window_rect/set.py.ini
@@ -0,0 +1,39 @@
+[set.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_restore_from_fullscreen]
+ expected: FAIL
+
+ [test_restore_from_maximized]
+ expected: FAIL
+
+ [test_x_y_floats]
+ expected: FAIL
+
+ [test_set_to_available_size]
+ expected: ERROR
+
+ [test_set_smaller_than_minimum_browser_size]
+ expected: FAIL
+
+ [test_x_y]
+ expected: FAIL
+
+ [test_x_as_current]
+ expected: FAIL
+
+ [test_y_as_current]
+ expected: FAIL
+
+ [test_negative_x_y]
+ expected: ERROR
+
+ [test_set_to_screen_size]
+ expected: ERROR
+
+ [test_set_larger_than_screen_size]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/classic/set_window_rect/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/set_window_rect/user_prompts.py.ini
new file mode 100644
index 00000000000..913351aaa55
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/set_window_rect/user_prompts.py.ini
@@ -0,0 +1,2 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734 \ No newline at end of file
diff --git a/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch.py.ini b/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch.py.ini
new file mode 100644
index 00000000000..ee73fbf4ce8
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch.py.ini
@@ -0,0 +1,21 @@
+[switch.py]
+ [test_no_top_browsing_context[None\]]
+ expected: FAIL
+
+ [test_no_top_browsing_context[0\]]
+ expected: FAIL
+
+ [test_no_browsing_context[0\]]
+ expected: FAIL
+
+ [test_no_browsing_context[id2\]]
+ expected: FAIL
+
+ [test_no_browsing_context_when_already_top_level]
+ expected: FAIL
+
+ [test_frame_id_shadow_root]
+ expected: FAIL
+
+ [test_frame_id_null]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_number.py.ini b/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_number.py.ini
new file mode 100644
index 00000000000..408f2eb2568
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_number.py.ini
@@ -0,0 +1,15 @@
+[switch_number.py]
+ [test_frame_id_number_index_out_of_bounds[1\]]
+ expected: FAIL
+
+ [test_frame_id_number_index_out_of_bounds[65535\]]
+ expected: FAIL
+
+ [test_frame_id_number_index[0-foo\]]
+ expected: FAIL
+
+ [test_frame_id_number_index[1-bar\]]
+ expected: FAIL
+
+ [test_frame_id_number_index_nested]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_webelement.py.ini b/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_webelement.py.ini
new file mode 100644
index 00000000000..9932ab9a5d5
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/switch_to_frame/switch_webelement.py.ini
@@ -0,0 +1,12 @@
+[switch_webelement.py]
+ [test_frame_id_webelement_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_frame_id_webelement_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_frame_id_webelement_frame[0-foo\]]
+ expected: FAIL
+
+ [test_frame_id_webelement_frame[1-bar\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/switch_to_parent_frame/switch.py.ini b/tests/wpt/meta/webdriver/tests/classic/switch_to_parent_frame/switch.py.ini
new file mode 100644
index 00000000000..ffd3d06f212
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/switch_to_parent_frame/switch.py.ini
@@ -0,0 +1,6 @@
+[switch.py]
+ [test_switch_from_iframe]
+ expected: FAIL
+
+ [test_switch_from_top_level]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/switch_to_window/alerts.py.ini b/tests/wpt/meta/webdriver/tests/classic/switch_to_window/alerts.py.ini
new file mode 100644
index 00000000000..3e6ad0c8af9
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/switch_to_window/alerts.py.ini
@@ -0,0 +1,3 @@
+[alerts.py]
+ [test_retain_tab_modal_status]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/switch_to_window/switch.py.ini b/tests/wpt/meta/webdriver/tests/classic/switch_to_window/switch.py.ini
new file mode 100644
index 00000000000..9b0ec38199b
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/switch_to_window/switch.py.ini
@@ -0,0 +1,12 @@
+[switch.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_finds_exising_user_prompt_after_tab_switch[alert\]]
+ expected: FAIL
+
+ [test_finds_exising_user_prompt_after_tab_switch[confirm\]]
+ expected: FAIL
+
+ [test_finds_exising_user_prompt_after_tab_switch[prompt\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/iframe.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/iframe.py.ini
new file mode 100644
index 00000000000..dd77eca9d72
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/iframe.py.ini
@@ -0,0 +1,9 @@
+[iframe.py]
+ [test_frame_element]
+ expected: FAIL
+
+ [test_source_origin[same_origin\]]
+ expected: FAIL
+
+ [test_source_origin[cross_origin\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/screenshot.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/screenshot.py.ini
new file mode 100644
index 00000000000..319e4bf848f
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/screenshot.py.ini
@@ -0,0 +1,30 @@
+[screenshot.py]
+ [test_no_browsing_context]
+ expected: FAIL
+
+ [test_no_such_element_with_invalid_value]
+ expected: FAIL
+
+ [test_no_such_element_with_shadow_root]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_window_handle[closed\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[open\]]
+ expected: FAIL
+
+ [test_no_such_element_from_other_frame[closed\]]
+ expected: FAIL
+
+ [test_stale_element_reference[top_context\]]
+ expected: FAIL
+
+ [test_stale_element_reference[child_context\]]
+ expected: FAIL
+
+ [test_format_and_dimensions]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/take_element_screenshot/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/take_screenshot/iframe.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_screenshot/iframe.py.ini
new file mode 100644
index 00000000000..62f7ab5e4da
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/take_screenshot/iframe.py.ini
@@ -0,0 +1,3 @@
+[iframe.py]
+ [test_always_captures_top_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/take_screenshot/screenshot.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_screenshot/screenshot.py.ini
new file mode 100644
index 00000000000..f2fac7a7fa1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/take_screenshot/screenshot.py.ini
@@ -0,0 +1,6 @@
+[screenshot.py]
+ [test_no_top_browsing_context]
+ expected: FAIL
+
+ [test_no_browsing_context]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/classic/take_screenshot/user_prompts.py.ini b/tests/wpt/meta/webdriver/tests/classic/take_screenshot/user_prompts.py.ini
new file mode 100644
index 00000000000..53b6399fdd2
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/classic/take_screenshot/user_prompts.py.ini
@@ -0,0 +1,55 @@
+[user_prompts.py]
+ disabled: https://github.com/servo/servo/issues/35734
+ [test_accept[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-confirm-True\]]
+ expected: FAIL
+
+ [test_accept_and_notify[capabilities0-prompt-\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-alert-None\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-confirm-False\]]
+ expected: FAIL
+
+ [test_dismiss_and_notify[capabilities0-prompt-None\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-alert\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-confirm\]]
+ expected: FAIL
+
+ [test_ignore[capabilities0-prompt\]]
+ expected: FAIL
+
+ [test_default[alert-None\]]
+ expected: FAIL
+
+ [test_default[confirm-False\]]
+ expected: FAIL
+
+ [test_default[prompt-None\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/webdriver/tests/interop/beforeunload_prompt.py.ini b/tests/wpt/meta/webdriver/tests/interop/beforeunload_prompt.py.ini
new file mode 100644
index 00000000000..8d9822802f0
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/interop/beforeunload_prompt.py.ini
@@ -0,0 +1,60 @@
+[beforeunload_prompt.py]
+ [test_accept[capabilities0-False\]]
+ expected: ERROR
+
+ [test_accept[capabilities0-True\]]
+ expected: ERROR
+
+ [test_accept_and_notify[capabilities0-False\]]
+ expected: ERROR
+
+ [test_accept_and_notify[capabilities0-True\]]
+ expected: ERROR
+
+ [test_dismiss[capabilities0-False\]]
+ expected: ERROR
+
+ [test_dismiss[capabilities0-True\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[capabilities0-False\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[capabilities0-True\]]
+ expected: ERROR
+
+ [test_ignore[capabilities0-False\]]
+ expected: ERROR
+
+ [test_ignore[capabilities0-True\]]
+ expected: ERROR
+
+ [test_accept[False\]]
+ expected: ERROR
+
+ [test_accept[True\]]
+ expected: ERROR
+
+ [test_accept_and_notify[False\]]
+ expected: ERROR
+
+ [test_accept_and_notify[True\]]
+ expected: ERROR
+
+ [test_dismiss[False\]]
+ expected: ERROR
+
+ [test_dismiss[True\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[False\]]
+ expected: ERROR
+
+ [test_dismiss_and_notify[True\]]
+ expected: ERROR
+
+ [test_ignore[False\]]
+ expected: ERROR
+
+ [test_ignore[True\]]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/interop/frames.py.ini b/tests/wpt/meta/webdriver/tests/interop/frames.py.ini
new file mode 100644
index 00000000000..21819720ff1
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/interop/frames.py.ini
@@ -0,0 +1,3 @@
+[frames.py]
+ [test_classic_switch_to_parent_no_browsing_context]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/interop/shared_id_node.py.ini b/tests/wpt/meta/webdriver/tests/interop/shared_id_node.py.ini
new file mode 100644
index 00000000000..07c51098229
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/interop/shared_id_node.py.ini
@@ -0,0 +1,18 @@
+[shared_id_node.py]
+ [test_web_element_reference_created_in_classic]
+ expected: ERROR
+
+ [test_web_element_reference_created_in_bidi]
+ expected: ERROR
+
+ [test_shadow_root_reference_created_in_classic[open\]]
+ expected: ERROR
+
+ [test_shadow_root_reference_created_in_classic[closed\]]
+ expected: ERROR
+
+ [test_shadow_root_reference_created_in_bidi[open\]]
+ expected: ERROR
+
+ [test_shadow_root_reference_created_in_bidi[closed\]]
+ expected: ERROR
diff --git a/tests/wpt/meta/webdriver/tests/interop/shared_id_window.py.ini b/tests/wpt/meta/webdriver/tests/interop/shared_id_window.py.ini
new file mode 100644
index 00000000000..7dc97d71d7e
--- /dev/null
+++ b/tests/wpt/meta/webdriver/tests/interop/shared_id_window.py.ini
@@ -0,0 +1,15 @@
+[shared_id_window.py]
+ [test_top_level_context_id_equals_window_handle]
+ expected: ERROR
+
+ [test_web_window_reference_created_in_classic]
+ expected: ERROR
+
+ [test_web_frame_reference_created_in_classic]
+ expected: ERROR
+
+ [test_web_window_reference_created_in_bidi]
+ expected: ERROR
+
+ [test_web_frame_reference_created_in_bidi]
+ expected: ERROR
diff --git a/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini b/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini
index 492ba730948..b63c174f353 100644
--- a/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini
+++ b/tests/wpt/meta/webidl/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.ini
@@ -1,6 +1,3 @@
[global-object-implicit-this-value-cross-realm.html]
- [Cross-realm global object's operation throws when called on incompatible object]
- expected: FAIL
-
[Cross-realm global object's operation called on null / undefined]
expected: FAIL
diff --git a/tests/wpt/meta/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js.ini b/tests/wpt/meta/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js.ini
deleted file mode 100644
index c625c16f713..00000000000
--- a/tests/wpt/meta/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[explicitly-closed.tentative.window.html]
- expected: TIMEOUT
- [Close event on port2 is fired when port1 is explicitly closed]
- expected: TIMEOUT
-
- [Close event on port2 is fired when port1, which is in a different window, is explicitly closed.]
- expected: TIMEOUT
diff --git a/tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini b/tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini
new file mode 100644
index 00000000000..ce3fb065178
--- /dev/null
+++ b/tests/wpt/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html.ini
@@ -0,0 +1,19 @@
+[depth_sensing_cpu_matchDepthViewIdentity.https.html]
+ expected: ERROR
+ [Ensures XRViewGeometry values are identity when matchDepthView is unset, `cpu-optimized` - webgl]
+ expected: TIMEOUT
+
+ [Ensures XRViewGeometry values are identity when matchDepthView is unset, `cpu-optimized` - webgl2]
+ expected: NOTRUN
+
+ [Ensures XRViewGeometry values are identity when matchDepthView=true, `cpu-optimized` - webgl]
+ expected: NOTRUN
+
+ [Ensures XRViewGeometry values are identity when matchDepthView=true, `cpu-optimized` - webgl2]
+ expected: NOTRUN
+
+ [Ensures session can be created when matchDepthView=false, `cpu-optimized` - webgl]
+ expected: NOTRUN
+
+ [Ensures session can be created when matchDepthView=false, `cpu-optimized` - webgl2]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini b/tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini
new file mode 100644
index 00000000000..54901a8468a
--- /dev/null
+++ b/tests/wpt/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html.ini
@@ -0,0 +1,19 @@
+[depth_sensing_gpu_matchDepthViewIdentity.https.html]
+ expected: ERROR
+ [Ensures XRViewGeometry values are identity when matchDepthView is unset, `gpu-optimized` - webgl]
+ expected: TIMEOUT
+
+ [Ensures XRViewGeometry values are identity when matchDepthView is unset, `gpu-optimized` - webgl2]
+ expected: NOTRUN
+
+ [Ensures XRViewGeometry values are identity when matchDepthView=true, `gpu-optimized` - webgl]
+ expected: NOTRUN
+
+ [Ensures XRViewGeometry values are identity when matchDepthView=true, `gpu-optimized` - webgl2]
+ expected: NOTRUN
+
+ [Ensures session can be created when matchDepthView=false, `gpu-optimized` - webgl]
+ expected: NOTRUN
+
+ [Ensures session can be created when matchDepthView=false, `gpu-optimized` - webgl2]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/meta/workers/WorkerGlobalScope-close.html.ini
deleted file mode 100644
index 24daae4c2e7..00000000000
--- a/tests/wpt/meta/workers/WorkerGlobalScope-close.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[WorkerGlobalScope-close.html]
- [Test sending a message after closing.]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index d3a939eab57..a3f77769a9d 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -25,6 +25,13 @@
{}
]
],
+ "form_reset-crash.html": [
+ "b23cbf6aefdef8231e2cc4cb0e6416195d5bdf71",
+ [
+ null,
+ {}
+ ]
+ ],
"global-enumerate-crash.html": [
"a77e79b1465bf7555340dd5e9bf94a4c8caa85f2",
[
@@ -12737,7 +12744,7 @@
]
},
"FocusEvent.html": [
- "9e002c1088de060b5e7f94c4152bf9fb779c04cc",
+ "7fb7aebf2afbac7f68a16308b9cc5d4588b7022f",
[
null,
{}
@@ -13271,6 +13278,13 @@
{}
]
],
+ "focus_inter_documents.html": [
+ "5c759772367e844066d1df0081917c9e129d09ec",
+ [
+ null,
+ {}
+ ]
+ ],
"follow-hyperlink.html": [
"6ac9eaeb5814a663988ed8c664c113072e329dc5",
[
diff --git a/tests/wpt/mozilla/tests/mozilla/FocusEvent.html b/tests/wpt/mozilla/tests/mozilla/FocusEvent.html
index 9e002c1088d..7fb7aebf2af 100644
--- a/tests/wpt/mozilla/tests/mozilla/FocusEvent.html
+++ b/tests/wpt/mozilla/tests/mozilla/FocusEvent.html
@@ -48,13 +48,6 @@
]
},
- {
- element: document.body,
- expected_events: [
- {element: input3, event_name: "blur"},
- ]
- }
-
];
var idx = 0;
diff --git a/tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html b/tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html
new file mode 100644
index 00000000000..5c759772367
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/focus_inter_documents.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <iframe id="f1"></iframe>
+ <iframe id="f2"></iframe>
+ <input id="d0">
+ <script>
+
+ /** Wait for an `event` event to be fired on `element`. Resolves to a boolean
+ * value indicating whether the event was fired within a predetermined period. */
+ async function waitForEvent(element, event) {
+ let listener;
+ try {
+ return await new Promise(resolve => {
+ setTimeout(() => resolve(false), 1000);
+ listener = () => resolve(true);
+ element.addEventListener(event, listener);
+ });
+ } finally {
+ if (listener) {
+ element.removeEventListener(event, listener);
+ }
+ }
+ }
+
+ promise_test(async t => {
+ await new Promise(r => window.onload = r);
+
+ const d0 = document.getElementById("d0");
+
+ // This test requires the document to have focus as a starting condition.
+ if (!document.hasFocus() || document.activeElement !== d0) {
+ const p = new Promise(r => d0.onfocus = r);
+ d0.focus();
+ await p;
+ }
+
+ assert_true(document.hasFocus(), "Document has focus as starting condition.");
+ assert_equals(document.activeElement, d0, "`d0` has focus as starting condition.");
+ }, "Starting condition");
+
+ promise_test(async t => {
+ const d0 = document.getElementById("d0");
+ const f1 = document.getElementById("f1");
+ f1.contentDocument.body.innerHTML = '<input id=d1>';
+ const d1 = f1.contentDocument.getElementById("d1");
+
+ const p0 = waitForEvent(d1, 'focus');
+ const p1 = waitForEvent(f1, 'focus');
+ const p2 = waitForEvent(f1.contentWindow, 'focus');
+ const p3 = waitForEvent(d0, 'blur');
+
+ d1.focus();
+
+ assert_true(await p0, "`d1.focus` fires in time");
+ await p1; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p2, "`f1.contentWindow.focus` fires in time");
+ assert_true(await p3, "`d0.blur` fires in time");
+
+ assert_equals(document.activeElement, f1, "The top-level document's activeElement is `f1`");
+ assert_true(f1.contentDocument.hasFocus(), "f1's contentDocument has focus");
+ assert_equals(f1.contentDocument.activeElement, d1, "f1's contentDocument's activeElement is `d1`");
+ }, "Focusing an element in a nested browsing context also focuses the container");
+
+ promise_test(async t => {
+ const f1 = document.getElementById("f1");
+ const d1 = f1.contentDocument.getElementById("d1");
+
+ const f2 = document.getElementById("f2");
+ f2.contentDocument.body.innerHTML = '<input id=d2>';
+ const d2 = f2.contentDocument.getElementById("d2");
+
+ const p0 = waitForEvent(d1, 'blur');
+ const p1 = waitForEvent(f1, 'blur');
+ const p2 = waitForEvent(f1.contentWindow, 'blur');
+
+ d2.focus();
+
+ assert_true(await p0, "`d1.blur` fires in time");
+ await p1; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p2, "`f1.contentWindow.blur` fires in time");
+
+ // Wait for any ongoing execution of the focus update steps to complete
+ await new Promise(r => window.setTimeout(r, 0));
+
+ assert_equals(document.activeElement, f2, "The top-level document's activeElement is `f2`");
+ assert_true(f2.contentDocument.hasFocus(), "f2's contentDocument has focus");
+ assert_equals(f2.contentDocument.activeElement, d2, "f2's contentDocument's activeElement is `d2`");
+ assert_false(f1.contentDocument.hasFocus(), "f1's contentDocument does not have focus");
+ assert_equals(f1.contentDocument.activeElement, f1.contentDocument.body, "f1's contentDocument's activeElement is its body");
+ }, "Focusing an element in a different container also unfocuses the previously focused element and its container");
+
+ promise_test(async t => {
+ const d0 = document.getElementById("d0");
+
+ const f2 = document.getElementById("f2");
+ const d2 = f2.contentDocument.getElementById("d2");
+
+ const p0 = waitForEvent(d2, 'blur');
+ const p1 = waitForEvent(f2, 'blur');
+ const p2 = waitForEvent(f2.contentWindow, 'blur');
+ const p3 = waitForEvent(d0, 'focus');
+
+ d0.focus();
+
+ assert_true(await p0, "`d2.blur` fires in time");
+ await p1; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p2, "`f2.contentWindow.blur` fires in time");
+ assert_true(await p3, "`d0.focus` fires in time");
+
+ // Wait for any ongoing execution of the focus update steps to complete
+ await new Promise(r => window.setTimeout(r, 0));
+
+ assert_equals(document.activeElement, d0, "The top-level document's activeElement is `d0`");
+ assert_false(f2.contentDocument.hasFocus(), "f2's contentDocument does not have focus");
+ assert_equals(f2.contentDocument.activeElement, f2.contentDocument.body, "f2's contentDocument's activeElement is its body");
+ }, "Unfocusing a container also unfocuses any focused elements within");
+
+ promise_test(async t => {
+ const f1 = document.getElementById("f1");
+
+ const p0 = waitForEvent(f1, 'focus');
+ const p1 = waitForEvent(f1.contentWindow, 'focus');
+
+ f1.focus();
+
+ await p0; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p1, "`f1.contentWindow.focus` fires in time");
+
+ assert_equals(document.activeElement, f1, "The top-level document's activeElement is `f1`");
+ assert_true(f1.contentDocument.hasFocus(), "f1's contentDocument has focus");
+ }, "Focusing a container changes the contained document's 'has focus steps' result");
+
+ promise_test(async t => {
+ const f1 = document.getElementById("f1");
+
+ // `f1` should be focused because of the previous step
+ assert_equals(document.activeElement, f1, "The top-level document's activeElement is `f1`");
+
+ // Navigate the focused container
+ const pLoad = new Promise(resolve => window.subframeIsReady = resolve);
+ f1.srcdoc = "<script>window.parent.subframeIsReady();</" + "script>";
+ await pLoad;
+
+ // Allow some delay before the document finally receives focus
+ if (!f1.contentDocument.hasFocus()) {
+ await waitForEvent(f1.contentWindow, 'focus');
+ }
+
+ assert_true(f1.contentDocument.hasFocus(), "f1's contentDocument has focus");
+ }, "When a focused container navigates, the new document should receive focus");
+
+ promise_test(async t => {
+ const f2 = document.getElementById("f2");
+
+ const p0 = waitForEvent(f2, 'focus');
+ const p1 = waitForEvent(f2.contentWindow, 'focus');
+
+ f2.contentWindow.focus();
+
+ await p0; // FIXME: doesn't fire on Firefox, Blink, Edge, and WebKit
+ assert_true(await p1, "`f2.contentWindow.focus` fires in time");
+
+ assert_equals(document.activeElement, f2, "The top-level document's activeElement is `f2`");
+ assert_true(f2.contentDocument.hasFocus(), "f2's contentDocument has focus");
+ }, "Focusing the window of a nested browsing context also focuses the container");
+
+ promise_test(async t => {
+ const f2 = document.getElementById("f2");
+ const d2 = f2.contentDocument.getElementById("d2");
+
+ {
+ const p = waitForEvent(d2, 'focus');
+ f2.focus();
+ d2.focus();
+ await p;
+ }
+
+ const p0 = waitForEvent(d2, 'blur');
+ d2.blur();
+ assert_true(await p0, "`d2.blur` fires in time");
+
+ // FIXME: This passes on Firefox, Blink, and WebKit but is not spec-
+ // compliant. Per spec, the top-level document's viewport should be
+ // focused instead.
+ //
+ // <https://html.spec.whatwg.org/multipage/#get-the-focusable-area>
+ //
+ // > The unfocusing steps for an object `old focus target`` that is either a
+ // > focusable area or an element that is not a focusable area are as
+ // > follows: [...]
+ // >
+ // > 7. If `topDocument`'s browsing context has system focus, then run the
+ // > focusing steps for topDocument's viewport.
+
+ assert_equals(document.activeElement, f2, "The top-level document's activeElement is `f2`");
+ assert_equals(f2.contentDocument.activeElement, f2.contentDocument.body, "f2's contentDocument's activeElement is its body");
+ assert_true(f2.contentDocument.hasFocus(), "f2's contentDocument has focus");
+ }, "Blurring an element in a nested browsing context focuses its node document");
+ </script>
+</body>
+</html>
diff --git a/tests/wpt/mozilla/tests/mozilla/form_reset-crash.html b/tests/wpt/mozilla/tests/mozilla/form_reset-crash.html
new file mode 100644
index 00000000000..b23cbf6aefd
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/form_reset-crash.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<form id="form">
+ <output><textarea></textarea></output>
+</form>
+<script>
+form.reset();
+</script>
diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml
index 66794b69aba..5de0cc4bcb1 100644
--- a/tests/wpt/tests/.github/workflows/docker.yml
+++ b/tests/wpt/tests/.github/workflows/docker.yml
@@ -40,7 +40,7 @@ jobs:
latest
type=raw,value=${{ inputs.tag }}
- name: Build and push the Docker image
- uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
+ uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
context: ./tools/docker
push: true
diff --git a/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html b/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html
index 5f76d59eb35..ee5e27e35b6 100644
--- a/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html
+++ b/tests/wpt/tests/ai/language_detection/availability-detached-crash.https.html
@@ -2,12 +2,19 @@
<title>Assures no crash upon call of LanguageDetector.availability() on a detached document</title>
<link rel="author" href="mailto:christinesm@chromium.org">
<link rel="help" href="https://issues.chromium.org/issues/384233287">
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
<body>
<iframe src="about:blank"></iframe>
<script>
-const factory = frames[0].LanguageDetector;
-const detector = factory.create();
+const iframe = frames[0];
+await test_driver.bless('Create LanguageDetector', null, iframe);
+
+const factory = iframe.LanguageDetector;
+const detectorPromise = await factory.create();
document.getElementsByTagName("iframe")[0].remove();
-detector.availability();
+
+factory.availability();
+detectorPromise.then(detector => detector.detect());
</script>
</body>
diff --git a/tests/wpt/tests/ai/language_detection/detector-iframe.https.html b/tests/wpt/tests/ai/language_detection/detector-iframe.https.html
index 3e90d36b5aa..ddcf82bec68 100644
--- a/tests/wpt/tests/ai/language_detection/detector-iframe.https.html
+++ b/tests/wpt/tests/ai/language_detection/detector-iframe.https.html
@@ -37,6 +37,9 @@ function load_iframe(src, permission_policy) {
});
}
+// TODO(crbug.com/414428433): Tests in this file intermittently crash.
+// Re-enable once potential causes in Permissions Policy implementation
+// and test setup are addressed.
promise_test(async t => {
const src = HTTPS_NOTSAMESITE_ORIGIN + IFRAME_PATH;
const iframe = await load_iframe(src, /*permission_policy=*/"");
diff --git a/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js b/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js
index a1c67db9129..80cbfa485e3 100644
--- a/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js
+++ b/tests/wpt/tests/ai/language_detection/detector-locale.https.window.js
@@ -1,5 +1,8 @@
// META: title=Detect english
// META: global=window
+// META: timeout=long
+// META: script=resources/util.js
+// META: script=/resources/testdriver.js
// META: script=../resources/util.js
// META: script=../resources/locale-util.js
@@ -45,7 +48,7 @@ promise_test(async t => {
async function getExpectedInputLanguages(expectedInputLanguages) {
- return (await LanguageDetector.create({expectedInputLanguages}))
+ return (await createLanguageDetector({expectedInputLanguages}))
.expectedInputLanguages;
}
@@ -63,14 +66,14 @@ function uniqueCount(array) {
promise_test(async t => {
for (const [languageSubtag, variations] of Object.entries(
valid_language_tags)) {
- if (await getAvailability(languageSubtag) === 'unavailable') {
+ if (await getAvailability([languageSubtag]) === 'unavailable') {
continue;
}
- await assert_valid_expected_input_languages(languageSubtag)
+ await assert_valid_expected_input_languages(languageSubtag);
for (const variation of variations) {
- await assert_valid_expected_input_languages(variation)
+ await assert_valid_expected_input_languages(variation);
}
const expectedInputLanguages = await getExpectedInputLanguages(variations);
@@ -94,10 +97,10 @@ function assert_rejects_invalid_expected_input_languages(
promise_test(async t => {
for (const languageTag of invalid_language_tags) {
assert_rejects_invalid_expected_input_languages(
- t, LanguageDetector.create, [languageTag]);
+ t, createLanguageDetector, [languageTag]);
}
assert_rejects_invalid_expected_input_languages(
- t, LanguageDetector.create, invalid_language_tags);
+ t, createLanguageDetector, invalid_language_tags);
}, 'LanguageDetector.create() throws RangeError for invalid language tags');
promise_test(async t => {
diff --git a/tests/wpt/tests/ai/language_detection/detector.https.window.js b/tests/wpt/tests/ai/language_detection/detector.https.window.js
index e85ea6d249b..b0255bc552b 100644
--- a/tests/wpt/tests/ai/language_detection/detector.https.window.js
+++ b/tests/wpt/tests/ai/language_detection/detector.https.window.js
@@ -1,19 +1,32 @@
// META: title=Detect english
// META: global=window
+// META: timeout=long
+// META: script=resources/util.js
+// META: script=/resources/testdriver.js
// META: script=../resources/util.js
// META: script=../resources/locale-util.js
'use strict';
promise_test(async t => {
- // Language detection is available after call to `create()`.
- await LanguageDetector.create();
+ // Creating the language detector without user activation rejects with
+ // NotAllowedError.
+ const createPromise = LanguageDetector.create();
+ await promise_rejects_dom(t, 'NotAllowedError', createPromise);
+
+ // Creating the translator with user activation succeeds.
+ await createLanguageDetector();
+
+ // Creating it should have switched it to available.
const availability = await LanguageDetector.availability();
assert_equals(availability, 'available');
-}, 'Simple LanguageDetector.availability() call');
+
+ // Now that it is available, we should no longer need user activation.
+ await LanguageDetector.create();
+}, 'LanguageDetector.create() requires user activation when availability is "downloadable.');
promise_test(async t => {
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
const results = await detector.detect('Hello world!');
// must at least have the 'und' result.
@@ -62,30 +75,30 @@ promise_test(async t => {
throw error;
}
- await promise_rejects_exactly(t, error, LanguageDetector.create({monitor}));
+ await promise_rejects_exactly(t, error, createLanguageDetector({monitor}));
}, 'If monitor throws an error, LanguageDetector.create() rejects with that error');
promise_test(async t => {
- testMonitor(LanguageDetector.create);
+ testMonitor(createLanguageDetector);
}, 'LanguageDetector.create() notifies its monitor on downloadprogress');
promise_test(async t => {
const controller = new AbortController();
controller.abort();
- const createPromise = LanguageDetector.create({signal: controller.signal});
+ const createPromise = createLanguageDetector({signal: controller.signal});
await promise_rejects_dom(t, 'AbortError', createPromise);
}, 'LanguageDetector.create() call with an aborted signal.');
promise_test(async t => {
await testAbortPromise(t, signal => {
- return LanguageDetector.create({signal});
+ return createLanguageDetector({signal});
});
-}, 'Aborting LanguageDetector.create().');
+}, 'Aborting createLanguageDetector().');
promise_test(async t => {
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
const text = 'Hello world!';
const promises = [detector.detect(text), detector.measureInputUsage(text)];
@@ -101,7 +114,7 @@ promise_test(async t => {
promise_test(async t => {
const controller = new AbortController();
- const detector = await LanguageDetector.create({signal: controller.signal});
+ const detector = await createLanguageDetector({signal: controller.signal});
const text = 'Hello world!';
const promises = [detector.detect(text), detector.measureInputUsage(text)];
@@ -120,7 +133,7 @@ promise_test(async t => {
const controller = new AbortController();
controller.abort();
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
const detectPromise =
detector.detect('Hello world!', {signal: controller.signal});
@@ -128,14 +141,14 @@ promise_test(async t => {
}, 'LanguageDetector.detect() call with an aborted signal.');
promise_test(async t => {
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
await testAbortPromise(t, signal => {
return detector.detect('Hello world!', {signal});
});
}, 'Aborting LanguageDetector.detect().');
promise_test(async t => {
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
const text = 'Hello world!';
const largeText = text.repeat(10000);
@@ -157,7 +170,7 @@ promise_test(async t => {
const controller = new AbortController();
controller.abort();
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
const measureInputUsagePromise =
detector.measureInputUsage('hello', {signal: controller.signal});
@@ -165,17 +178,17 @@ promise_test(async t => {
}, 'LanguageDetector.measureInputUsage() call with an aborted signal.');
promise_test(async t => {
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
await testAbortPromise(t, signal => {
return detector.measureInputUsage('hello', {signal});
});
}, 'Aborting LanguageDetector.measureInputUsage().');
promise_test(async () => {
- const detector = await LanguageDetector.create();
+ const detector = await createLanguageDetector();
assert_equals(detector.expectedInputLanguages, null);
}, 'Creating LanguageDetector without expectedInputLanguages');
promise_test(async t => {
- await testCreateMonitorWithAbort(t, LanguageDetector.create);
+ await testCreateMonitorWithAbort(t, createLanguageDetector);
}, 'Progress events are not emitted after aborted.');
diff --git a/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js b/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js
index 7ffa1362dd5..1dd248a9eca 100644
--- a/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js
+++ b/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js
@@ -1,5 +1,8 @@
// META: title=Detect english
// META: global=window
+// META: timeout=long
+// META: script=resources/util.js
+// META: script=/resources/testdriver.js
// META: script=../resources/util.js
'use strict';
@@ -36,7 +39,7 @@ promise_test(async t => {
const expectedInputLanguages = Object.keys(testInput);
- const detector = await LanguageDetector.create({expectedInputLanguages});
+ const detector = await createLanguageDetector({expectedInputLanguages});
for (const [language, input] of Object.entries(testInput)) {
await assert_detects_correct_language(detector, input, language);
@@ -45,7 +48,7 @@ promise_test(async t => {
promise_test(async () => {
const expectedInputLanguages = ['en', 'es'];
- const detector = await LanguageDetector.create({expectedInputLanguages});
+ const detector = await createLanguageDetector({expectedInputLanguages});
assert_array_equals(detector.expectedInputLanguages, expectedInputLanguages);
assert_true(Object.isFrozen(detector.expectedInputLanguages));
}, 'Creating LanguageDetector with expectedInputLanguages');
diff --git a/tests/wpt/tests/ai/language_detection/resources/util.js b/tests/wpt/tests/ai/language_detection/resources/util.js
new file mode 100644
index 00000000000..7cb3e7c2e13
--- /dev/null
+++ b/tests/wpt/tests/ai/language_detection/resources/util.js
@@ -0,0 +1,4 @@
+async function createLanguageDetector(options = {}) {
+ await test_driver.bless();
+ return await LanguageDetector.create(options);
+}
diff --git a/tests/wpt/tests/audio-output/setSinkId.https.html b/tests/wpt/tests/audio-output/setSinkId.https.html
index be65f0ac81b..662596910ee 100644
--- a/tests/wpt/tests/audio-output/setSinkId.https.html
+++ b/tests/wpt/tests/audio-output/setSinkId.https.html
@@ -26,14 +26,8 @@ promise_test(async t => {
const list = await navigator.mediaDevices.enumerateDevices();
assert_greater_than(list.length, 0,
"media device list includes at least one device");
- const audioInputList = list.filter(({kind}) => kind == "audioinput");
const outputDevicesList = list.filter(({kind}) => kind == "audiooutput");
- // List of exposed microphone groupIds
- const exposedGroupIds = new Set(audioInputList.map(device => device.groupId));
-
for (const { deviceId, groupId } of outputDevicesList) {
- assert_true(exposedGroupIds.has(groupId),
- "audiooutput device groupId must match an exposed microphone");
assert_greater_than(deviceId.length, 0, "deviceId.length");
const p1 = audio.setSinkId(deviceId);
diff --git a/tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py b/tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py
new file mode 100644
index 00000000000..3a332dd58b2
--- /dev/null
+++ b/tests/wpt/tests/clear-site-data/support/clear-site-data-prefetchCache.py
@@ -0,0 +1,18 @@
+def main(request, response):
+ headers = [(b"Content-Type", b"text/html")]
+ headers += [(b"Clear-Site-Data", b'"prefetchCache"')]
+ content = f'''
+ <script>
+ setTimeout(() => {{
+ if(window.opener) {{
+ window.opener.postMessage("message", "*");
+ }} else {{
+ window.parent.postMessage("message", "*");
+ }}
+ window.close();
+ }}, 1000);
+ </script>
+ <body>
+ {request.url}
+ </body>'''
+ return 200, headers, content
diff --git a/tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py b/tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py
new file mode 100644
index 00000000000..bf845cfb699
--- /dev/null
+++ b/tests/wpt/tests/clear-site-data/support/clear-site-data-prerenderCache.py
@@ -0,0 +1,18 @@
+def main(request, response):
+ headers = [(b"Content-Type", b"text/html")]
+ headers += [(b"Clear-Site-Data", b'"prerenderCache"')]
+ content = f'''
+ <script>
+ setTimeout(() => {{
+ if(window.opener) {{
+ window.opener.postMessage("message", "*");
+ }} else {{
+ window.parent.postMessage("message", "*");
+ }}
+ window.close();
+ }}, 1000);
+ </script>
+ <body>
+ {request.url}
+ </body>'''
+ return 200, headers, content
diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js
index 89d84b13d1b..f3bbe0ea560 100644
--- a/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js
+++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js
@@ -20,3 +20,22 @@ cookie_test(async t => {
{deleted: [], changed: [{name: 'alt-cookie', value: 'IGNORE'}]},
'Deletion not observed after document.cookie sets already-expired cookie');
}, 'CookieStore setting already-expired cookie should not be observed');
+
+cookie_test(async t => {
+ const eventPromise = observeNextCookieChangeEvent();
+ await cookieStore.set({
+ name: 'cookie',
+ value: 'ALREADY-EXPIRED',
+ expires: new Date(new Date() - 10_000),
+ partitioned: true,
+ });
+ await cookieStore.set('alt-cookie', 'IGNORE');
+ assert_equals(
+ await getCookieString(),
+ 'alt-cookie=IGNORE',
+ 'Already-expired cookie not included in CookieStore');
+ await verifyCookieChangeEvent(
+ eventPromise,
+ {deleted: [], changed: [{name: 'alt-cookie', value: 'IGNORE'}]},
+ 'Deletion not observed after document.cookie sets already-expired cookie');
+}, 'CookieStore setting already-expired partitioned cookie should not be observed');
diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js
index 82b0f2baa2b..1937ebdae35 100644
--- a/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js
+++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js
@@ -78,6 +78,21 @@ cookie_test(async t => {
'Deletion not observed after document.cookie sets already-expired cookie');
}, 'document.cookie set already-expired cookie should not be observed by CookieStore');
+cookie_test(async t => {
+ let eventPromise = observeNextCookieChangeEvent();
+ await setCookieStringDocument('DOCUMENT-cookie=VALUE; path=/');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'DOCUMENT-cookie', value: 'VALUE'}]},
+ 'Original cookie is observed.');
+
+ eventPromise = observeNextCookieChangeEvent();
+ // Overwrite the original cookie with a duplicate, this should not dispatch an event.
+ await setCookieStringDocument('DOCUMENT-cookie=VALUE; path=/');
+ await setCookieStringDocument('DOCUMENT-alt-cookie=IGNORE; path=/');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'DOCUMENT-alt-cookie', value: 'IGNORE'}]},
+ 'Duplicate cookie is not observed.');
+}, 'document.cookie duplicate cookie should not be observed by CookieStore');
cookie_test(async t => {
let eventPromise = observeNextCookieChangeEvent();
diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js
index 8f5ef1cabbe..8517995acfe 100644
--- a/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js
+++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js
@@ -62,6 +62,22 @@ cookie_test(async t => {
'Deletion not observed after HTTP sets already-expired cookie');
}, 'HTTP set already-expired cookie should not be observed by CookieStore');
+cookie_test(async t => {
+ let eventPromise = observeNextCookieChangeEvent();
+ await setCookieStringHttp('HTTP-cookie=VALUE; path=/');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'HTTP-cookie', value: 'VALUE'}]},
+ 'Original cookie is observed.');
+
+ eventPromise = observeNextCookieChangeEvent();
+ // Overwrite the original cookie with a duplicate, this should not dispatch an event.
+ await setCookieStringHttp('HTTP-cookie=VALUE; path=/');
+ await setCookieStringHttp('HTTP-alt-cookie=IGNORE; path=/');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'HTTP-alt-cookie', value: 'IGNORE'}]},
+ 'Duplicate cookie is not observed.');
+}, 'HTTP duplicate cookie should not be observed by CookieStore');
+
cookie_test(async t => {
let eventPromise = observeNextCookieChangeEvent();
diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js b/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js
new file mode 100644
index 00000000000..5f9c2927433
--- /dev/null
+++ b/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js
@@ -0,0 +1,43 @@
+// META: title=Cookie Store API: Test that setting a duplicate cookie does not fire a second event.
+// META: script=resources/cookie-test-helpers.js
+
+'use strict';
+
+cookie_test(async t => {
+ let eventPromise = observeNextCookieChangeEvent();
+ await cookieStore.set('cookie', 'VALUE');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'cookie', value: 'VALUE'}]},
+ 'Original cookie is observed.');
+
+ eventPromise = observeNextCookieChangeEvent();
+ await cookieStore.set('cookie', 'VALUE');
+ await cookieStore.set('alt-cookie', 'IGNORE');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'alt-cookie', value: 'IGNORE'}]},
+ 'Duplicate cookie is not observed.');
+}, 'CookieStore duplicate cookie should not be observed');
+
+cookie_test(async t => {
+ let eventPromise = observeNextCookieChangeEvent();
+ await cookieStore.set({
+ name: 'cookie',
+ value: 'VALUE',
+ partitioned: true,
+ });
+ await verifyCookieChangeEvent(
+ eventPromise,
+ {changed: [{name: 'cookie', value: 'VALUE', partitioned: true}]},
+ 'Original cookie is observed.');
+
+ eventPromise = observeNextCookieChangeEvent();
+ await cookieStore.set({
+ name: 'cookie',
+ value: 'VALUE',
+ partitioned: true,
+ });
+ await cookieStore.set('alt-cookie', 'IGNORE');
+ await verifyCookieChangeEvent(
+ eventPromise, {changed: [{name: 'alt-cookie', value: 'IGNORE'}]},
+ 'Duplicate cookie is not observed.');
+}, 'CookieStore duplicate partitioned cookie should not be observed');
diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html
new file mode 100644
index 00000000000..22c1fd03e38
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001-ref.tentative.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<style>
+.block {
+ display: block;
+ width: 75%;
+ height: 75%;
+ border: 5px dotted blue;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+ justify-self: center;
+}
+</style>
+<div class="container"><div class="block">
+ <div class="abs"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html
new file mode 100644
index 00000000000..06c11e6cdb6
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-001.tentative.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<title>Align-items only applies to OOF elements of block elements when statically positioned if it would apply if not OOF.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12121">
+<link rel="match" href="align-items-static-position-001-ref.tentative.html">
+<style>
+.block {
+ display: block;
+ width: 75%;
+ height: 75%;
+ border: 5px dotted blue;
+ align-items: center;
+ justify-items: center;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<div class="container"><div class="block">
+ <div class="abs"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html
new file mode 100644
index 00000000000..6f53b041787
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002-ref.tentative.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<div class="container"><div class="inline">text
+ <div class="abs"></div>
+ <br>text
+</div></div>
+
diff --git a/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html
new file mode 100644
index 00000000000..f90004b5672
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-items-static-position-002.tentative.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<title>Align-items doesn't apply to OOF elements of inline elements when statically positioned because they would apply if not OOF.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12121">
+<link rel="match" href="align-items-static-position-002-ref.tentative.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+ align-items: center;
+ justify-items: center;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<div class="container"><div class="inline">text
+ <div class="abs"></div>
+ <br>text
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html
new file mode 100644
index 00000000000..132bbb7360f
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003-ref.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<!-- start aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 25px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 0px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 25px;"></div>
+</div></div>
+<br>
+<!-- end aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs" style="bottom: 50px; left: -50px"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="bottom: 0px; left: -50px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="bottom: 50px; left: 50px;"></div>
+</div></div>
+<br>
+<!-- center aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 12.5px; left: -25px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 25px; left: -25px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 12.5px; left: 25px;"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html
new file mode 100644
index 00000000000..39f871f4c2b
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-003.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<title>Align-self applies to OOF elements of inline elements when statically positioned.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="match" href="align-self-static-position-003-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+
+.static-positioned-inline {
+ left: auto;
+ right: auto;
+}
+
+.static-positioned-block {
+ top: auto;
+ bottom: auto;
+}
+
+.positioned-inline {
+ left: 0;
+ right: 0;
+}
+
+.positioned-block {
+ top: 0;
+ bottom: 0;
+}
+
+.center {
+ justify-self: center;
+ align-self: center;
+}
+
+.end {
+ justify-self: end;
+ align-self: end;
+}
+
+.start {
+ justify-self: start;
+ align-self: start;
+}
+</style>
+<!-- start aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs static-positioned-inline static-positioned-block start"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs static-positioned-inline positioned-block start"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs positioned-inline static-positioned-block start"></div>
+ <br>text
+</div></div>
+<br>
+<!-- end aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs static-positioned-inline static-positioned-block end"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs static-positioned-inline positioned-block end"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs positioned-inline static-positioned-block end"></div>
+ <br>text
+</div></div>
+<br>
+<!-- center aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs static-positioned-inline static-positioned-block center"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs static-positioned-inline positioned-block center"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs positioned-inline static-positioned-block center"></div>
+ <br>text
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html
new file mode 100644
index 00000000000..68130ee1d7e
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004-ref.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+
+.vertRL {
+ writing-mode: vertical-rl;
+}
+
+.vertLR {
+ writing-mode: vertical-lr;
+}
+</style>
+<!-- start aligned -->
+<div class="container vertRL"><div class="inline">text
+ <div class="abs" style="top: 0px; right: 25px;"></div>
+</div></div>
+<div class="container vertLR"><div class="inline">text
+ <div class="abs" style="top: 0px; left: 25px;"></div>
+</div></div>
+<div class="container vertRL"><div class="inline">text
+ <div class="abs" style="top: 0px; right: 0px;"></div>
+</div></div>
+<br>
+<!-- end aligned -->
+<div class="container vertLR"><div class="inline">text
+ <div class="abs" style="top: -50px; right: 50px"></div>
+</div></div>
+<div class="container vertRL"><div class="inline">text
+ <div class="abs" style="bottom: 0px; left: 50px;"></div>
+</div></div>
+<div class="container vertLR"><div class="inline">text
+ <div class="abs" style="top: -50px; right: 0px;"></div>
+</div></div>
+<br>
+<!-- center aligned -->
+<div class="container vertLR"><div class="inline">text
+ <div class="abs" style="right: 12.5px; top: -25px;"></div>
+</div></div>
+<div class="container vertRL"><div class="inline">text
+ <div class="abs" style="top: 25px; left: 12.5px;"></div>
+</div></div>
+<div class="container vertLR"><div class="inline">text
+ <div class="abs" style="top: -25px; left: 25px;"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html
new file mode 100644
index 00000000000..afba7215b11
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-004.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<title>Align-self applies to OOF elements of inline elements when statically positioned with different writing modes.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="match" href="align-self-static-position-004-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+
+.static-positioned-inline {
+ left: auto;
+ right: auto;
+}
+
+.static-positioned-block {
+ top: auto;
+ bottom: auto;
+}
+
+.positioned-inline {
+ left: 0;
+ right: 0;
+}
+
+.positioned-block {
+ top: 0;
+ bottom: 0;
+}
+
+.center {
+ justify-self: center;
+ align-self: center;
+}
+
+.end {
+ justify-self: end;
+ align-self: end;
+}
+
+.start {
+ justify-self: start;
+ align-self: start;
+}
+
+.vertRL {
+ writing-mode: vertical-rl;
+}
+
+.vertLR {
+ writing-mode: vertical-lr;
+}
+</style>
+<!-- start aligned -->
+<div class="container vertRL"><div class="inline">text
+ <div class="abs static-positioned-inline static-positioned-block start"></div>
+ <br>text
+</div></div>
+<div class="container vertLR"><div class="inline">text
+ <div class="abs static-positioned-inline positioned-block start"></div>
+ <br>text
+</div></div>
+<div class="container vertRL"><div class="inline">text
+ <div class="abs positioned-inline static-positioned-block start"></div>
+ <br>text
+</div></div>
+<br>
+<!-- end aligned -->
+<div class="container vertLR"><div class="inline">text
+ <div class="abs static-positioned-inline static-positioned-block end"></div>
+ <br>text
+</div></div>
+<div class="container vertRL"><div class="inline">text
+ <div class="abs static-positioned-inline positioned-block end"></div>
+ <br>text
+</div></div>
+<div class="container vertLR"><div class="inline">text
+ <div class="abs positioned-inline static-positioned-block end"></div>
+ <br>text
+</div></div>
+<br>
+<!-- center aligned -->
+<div class="container vertRL"><div class="inline">text
+ <div class="abs static-positioned-inline static-positioned-block center"></div>
+ <br>text
+</div></div>
+<div class="container vertLR"><div class="inline">text
+ <div class="abs static-positioned-inline positioned-block center"></div>
+ <br>text
+</div></div>
+<div class="container vertRL"><div class="inline">text
+ <div class="abs positioned-inline static-positioned-block center"></div>
+ <br>text
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html
new file mode 100644
index 00000000000..947bd270448
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.container {
+ position: relative;
+ border: 1px solid;
+}
+
+.abs {
+ position: absolute;
+ background: purple;
+ opacity: 0.5;
+ bottom: 0px;
+}
+</style>
+<div class="container">
+ <span style="font: 20px Ahem;">hello
+ <span class="abs">hello</span>
+ <span style="vertical-align: top; font-size: 50px;">world</span>
+ </span>
+</div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html
new file mode 100644
index 00000000000..e148f0ebda3
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-005.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<title>Align-self applies to OOF elements of inline elements when statically positioned.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-normal">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-normal">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-abspos">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="match" href="align-self-static-position-005-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.container {
+ position: relative;
+ border: 1px solid;
+}
+
+.abs {
+ position: absolute;
+ background: purple;
+ align-self: end;
+ opacity: 0.5;
+}
+</style>
+<div class="container">
+ <span style="font: 20px Ahem;">hello
+ <span class="abs">hello</span>
+ <span style="vertical-align: top; font-size: 50px;">world</span>
+ </span>
+</div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html
new file mode 100644
index 00000000000..5bbafc64845
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<style>
+.block {
+ width: 75px;
+ height: 75px;
+ z-index: -1;
+ border: 5px dotted blue;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<!-- start aligned -->
+<div class="container"><div class="block">
+ <div class="abs"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="left: 30px;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs"></div>
+</div></div>
+<br>
+<!-- end aligned -->
+<div class="container"><div class="block">
+ <div class="abs" style="top: -45px; left: 30px;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="top: -45px;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="top: -45px; left: 30px;"></div>
+</div></div>
+<br>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html
new file mode 100644
index 00000000000..253b2a52f61
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-006.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<title>Align-self:self-start/end applies to OOF elements of block elements when statically positioned.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="match" href="align-self-static-position-006-ref.html">
+<style>
+.block {
+ display: block;
+ width: 75%;
+ height: 75%;
+ border: 5px dotted blue;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ display: inline-block;
+ width: 100px;
+ height: 100px;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+
+.end {
+ justify-self: self-end;
+ align-self: self-end;
+}
+
+.start {
+ justify-self: self-start;
+ align-self: self-start;
+}
+</style>
+<!-- self-start aligned -->
+<div class="container"><div class="block">
+ <div class="abs start"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs start" style="direction: rtl;"></div>
+</div></div>
+<div class="container"><div class="block" style="direction: rtl;">
+ <div class="abs start" style="direction: ltr;"></div>
+</div></div>
+<br>
+<!-- self-end aligned -->
+<div class="container"><div class="block">
+ <div class="abs end"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs end" style="direction: rtl;"></div>
+</div></div>
+<div class="container"><div class="block" style="direction: rtl;">
+ <div class="abs end" style="direction: ltr;"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html
new file mode 100644
index 00000000000..bc9b5f4f650
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007-ref.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<!-- start aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 25px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="left: -50px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 0px;"></div>
+</div></div>
+<br>
+<!-- end aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs" style="bottom: 50px; left: -50px"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: 0px;"></div>
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs" style="top: -25px; left: -50px;"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html
new file mode 100644
index 00000000000..ebe872aaab9
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-007.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<title>Align-self:self-start/end applies to OOF elements of inline elements when statically positioned.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="match" href="align-self-static-position-007-ref.html">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+.inline {
+ display: inline;
+ color: transparent;
+ font: 10px Ahem;
+ line-height: 25px;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ display: inline-block;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+
+.end {
+ justify-self: self-end;
+ align-self: self-end;
+}
+
+.start {
+ justify-self: self-start;
+ align-self: self-start;
+}
+</style>
+<!-- self-start aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs start"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs start" style="direction: rtl;"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline" style="direction: rtl;">text
+ <div class="abs start" style="direction: ltr;"></div>
+ <br>text
+</div></div>
+<br>
+<!-- self-end aligned -->
+<div class="container"><div class="inline">text
+ <div class="abs end"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline">text
+ <div class="abs end" style="direction: rtl;"></div>
+ <br>text
+</div></div>
+<div class="container"><div class="inline" style="direction: rtl;">text
+ <div class="abs end" style="direction: ltr;"></div>
+ <br>text
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html
new file mode 100644
index 00000000000..79cf612b8f8
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008-ref.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<style>
+.block {
+ display: block;
+ width: 75%;
+ height: 75%;
+ border: 5px dotted blue;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ display: inline-block;
+ width: 100px;
+ height: 100px;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<!-- justify-self -->
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: end;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: end;"></div>
+</div></div>
+<br>
+<div class="container"><div class="block">
+ <div class="abs" style="left: 25px;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: end;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: start;"></div>
+</div></div>
+<br>
+<!-- align-self -->
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: end;"></div>
+</div></div>
+<br>
+<div class="container"><div class="block">
+ <div class="abs" style="top: 25px;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: end;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: start;"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html
new file mode 100644
index 00000000000..187974884b4
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-static-position-008.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<title>Align-self applies to OOF elements of block elements when statically positioned.</title>
+<link rel="author" title="Alison Maher" href="mailto:almaher@microsoft.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-justify-self-auto">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#abspos-alignment">
+<link rel="help" href="https://issues.chromium.org/issues/409806799">
+<link rel="match" href="align-self-static-position-008-ref.html">
+<style>
+.block {
+ display: block;
+ width: 75%;
+ height: 75%;
+ border: 5px dotted blue;
+}
+
+.container {
+ border: 1px solid;
+ position: relative;
+ display: inline-block;
+ width: 100px;
+ height: 100px;
+ margin-left: 50px;
+ margin-bottom: 50px;
+}
+
+.abs {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ background: purple;
+}
+</style>
+<!-- justify-self -->
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: auto;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: normal;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: right;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: left;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: flex-start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: flex-end;"></div>
+</div></div>
+<br>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: anchor-center;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: baseline;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: first baseline;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: last baseline;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: legacy;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="justify-self: stretch;"></div>
+</div></div>
+<br>
+<!-- align-self -->
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: auto;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: normal;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: right;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: left;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: flex-start;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: flex-end;"></div>
+</div></div>
+<br>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: anchor-center;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: baseline;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: first baseline;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: last baseline;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: legacy;"></div>
+</div></div>
+<div class="container"><div class="block">
+ <div class="abs" style="align-self: stretch;"></div>
+</div></div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html
new file mode 100644
index 00000000000..4eaa9d2f3a6
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins-aspect-ratio.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11195#issuecomment-2824879710">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+.container {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ top: -50px;
+ left: -50px;
+}
+.abspos {
+ position: absolute;
+ inset: 10px auto 10px 50px;
+ margin: auto 0 auto 0;
+ align-self: stretch;
+ background: green;
+}
+.abspos::before {
+ content: '';
+ min-width: 100px;
+ height: 100%;
+ aspect-ratio: 1;
+ display: block;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="container">
+ <div class="abspos"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html
new file mode 100644
index 00000000000..9d1b6454c84
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/align-self-stretch-auto-margins.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11195#issuecomment-2824879710">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+.container {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ top: -50px;
+ left: -50px;
+}
+.abspos {
+ position: absolute;
+ inset: 10px 50px 10px 50px;
+ margin: auto 0 auto 0;
+ align-self: stretch;
+ background: green;
+}
+.abspos::before {
+ content: '';
+ width: 100px;
+ height: 100px;
+ display: block;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="container">
+ <div class="abspos"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html
new file mode 100644
index 00000000000..c50b32f089b
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins-aspect-ratio.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11195#issuecomment-2824879710">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+.container {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ top: -50px;
+ left: -50px;
+}
+.abspos {
+ position: absolute;
+ inset: 50px 10px auto 10px;
+ margin: 0 auto 0 auto;
+ justify-self: stretch;
+ background: green;
+}
+.abspos::before {
+ content: '';
+ width: 100%;
+ min-height: 100px;
+ aspect-ratio: 1;
+ display: block;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="container">
+ <div class="abspos"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html
new file mode 100644
index 00000000000..7d7b4bfc857
--- /dev/null
+++ b/tests/wpt/tests/css/css-align/abspos/justify-self-stretch-auto-margins.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11195#issuecomment-2824879710">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<style>
+.container {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ top: -50px;
+ left: -50px;
+}
+.abspos {
+ position: absolute;
+ inset: 50px 10px 50px 10px;
+ margin: 0 auto 0 auto;
+ justify-self: stretch;
+ background: green;
+}
+.abspos::before {
+ content: '';
+ width: 100px;
+ height: 100px;
+ display: block;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="container">
+ <div class="abspos"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html b/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html
new file mode 100644
index 00000000000..5b45527fd9c
--- /dev/null
+++ b/tests/wpt/tests/css/css-animations/crashtests/chrome-bug-405795970.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<link rel="help" href="https://crbug.com/405795970">
+<style>
+ @keyframes --anim {
+ from {
+ width: calc(10px * sibling-index());
+ }
+ to {
+ width: calc(50px);
+ }
+ }
+ #target {
+ animation: --anim 2s;
+ }
+</style>
+<p>Pass if no crash</p>
+<div id="target"></div>
diff --git a/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html b/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html
index ad2d17f2ef0..c38adea9a68 100644
--- a/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html
+++ b/tests/wpt/tests/css/css-box/parsing/margin-trim-computed.html
@@ -27,8 +27,13 @@ test_computed_value("margin-trim", "inline-start block-start", "block-start inli
test_computed_value("margin-trim", "inline-end block-start", "block-start inline-end");
test_computed_value("margin-trim", "inline-end block-end", "block-end inline-end");
test_computed_value("margin-trim", "block-start block-end inline-start", "block-start inline-start block-end");
-test_computed_value("margin-trim", "inline-start block-start inline-end block-end", "block-start inline-start block-end inline-end");
-test_computed_value("margin-trim", "inline-start inline-end block-start", "block-start inline-start inline-end");
+
+test_computed_value("margin-trim", "block-start inline-start block-end inline-end", "block inline");
+test_computed_value("margin-trim", "block-start block-end inline-end inline-start", "block inline");
+test_computed_value("margin-trim", "block-start block-end inline-start inline-end", "block inline");
+test_computed_value("margin-trim", "inline-start block-end block-start inline-end", "block inline");
+test_computed_value("margin-trim", "inline-start inline-end block-start block-end", "block inline");
+test_computed_value("margin-trim", "inline-end block-end inline-start block-start", "block inline");
</script>
</body>
</html>
diff --git a/tests/wpt/tests/css/css-box/parsing/margin-trim.html b/tests/wpt/tests/css/css-box/parsing/margin-trim.html
index 0d92f80b9b9..e8679f9cbf3 100644
--- a/tests/wpt/tests/css/css-box/parsing/margin-trim.html
+++ b/tests/wpt/tests/css/css-box/parsing/margin-trim.html
@@ -21,6 +21,9 @@ test_valid_value("margin-trim", "block-end");
test_valid_value("margin-trim", "inline-start");
test_valid_value("margin-trim", "inline-end");
+test_valid_value("margin-trim", "block inline");
+test_valid_value("margin-trim", "inline block");
+
// Serialize values into either block or inline
test_valid_value("margin-trim", "block-start block-end", "block");
test_valid_value("margin-trim", "inline-start inline-end", "inline");
@@ -29,10 +32,15 @@ test_valid_value("margin-trim", "inline-end inline-start", "inline");
test_valid_value("margin-trim", "inline-start block-start");
test_valid_value("margin-trim", "inline-end block-start block-end");
-test_valid_value("margin-trim", "block-start inline-start block-end inline-end");
-test_valid_value("margin-trim", "inline-end block-end inline-start block-start");
-test_invalid_value("margin-trim", "block inline");
+// Serialize 4 values into "block inline"
+test_valid_value("margin-trim", "block-start inline-start block-end inline-end", "block inline");
+test_valid_value("margin-trim", "block-start block-end inline-end inline-start", "block inline");
+test_valid_value("margin-trim", "block-start block-end inline-start inline-end", "block inline");
+test_valid_value("margin-trim", "inline-start block-end block-start inline-end", "block inline");
+test_valid_value("margin-trim", "inline-start inline-end block-start block-end", "block inline");
+test_valid_value("margin-trim", "inline-end block-end inline-start block-start", "block inline");
+
test_invalid_value("margin-trim", "block block");
test_invalid_value("margin-trim", "inline inline");
test_invalid_value("margin-trim", "block inline-start inline-end");
diff --git a/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html b/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html
index 0c949e9ea7d..408264b58df 100644
--- a/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html
+++ b/tests/wpt/tests/css/css-easing/linear-timing-functions-syntax.html
@@ -26,6 +26,7 @@ test_valid_value("animation-timing-function", "linear(0, 0.5 25% 75%, 1 100% 100
test_valid_value("animation-timing-function", "linear(0, 1.3, 1, 0.92, 1, 0.99, 1, 0.998, 1 100% 100%)");
test_valid_value("animation-timing-function", "linear(0, 0 40%, 1, 0.5, 1)");
test_valid_value("animation-timing-function", "linear(0, 1.3, 1, 0.92, 1, 0.99, 1, 1.004, 0.998, 1 100% 100%)");
+test_valid_value("animation-timing-function", "linear(calc(0/0), 1)", "linear(0 0%, 1 100%)");
test_invalid_value("animation-timing-function", "linear()");
test_invalid_value("animation-timing-function", "linear(0)");
diff --git a/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html b/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html
index 4e8b21e4413..e8465ff7a33 100644
--- a/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html
+++ b/tests/wpt/tests/css/css-easing/step-timing-functions-syntax.html
@@ -29,6 +29,7 @@ test_invalid_value("animation-timing-function", "steps(0, jump-start)");
test_invalid_value("animation-timing-function", "steps(0, jump-end)");
test_invalid_value("animation-timing-function", "steps(0, jump-both)");
test_invalid_value("animation-timing-function", "steps(1, jump-none)");
+test_invalid_value("animation-timing-function", "steps(calc(0/0), jump-none)");
</script>
</body>
diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html b/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html
index a3a0a88ba68..32c9c4c5efe 100644
--- a/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html
+++ b/tests/wpt/tests/css/css-fonts/parsing/font-palette-values-invalid.html
@@ -140,13 +140,18 @@
@font-palette-values --A {
override-colors: 0 color-mix(in lch, red, color-mix(in lch, currentcolor, black));
}
+
+/* 24 */
+@font-palette-values --A {
+ base-palette: sibling-index();
+}
</style>
</head>
<body>
<script>
let rules = document.getElementById("style").sheet.cssRules;
test(function() {
- assert_equals(rules.length, 24);
+ assert_equals(rules.length, 25);
});
test(function() {
@@ -343,6 +348,13 @@ test(function() {
assert_equals(text.indexOf("override-colors"), -1);
assert_equals(rule.overrideColors, "");
});
+
+test(function() {
+ let text = rules[24].cssText;
+ let rule = rules[24];
+ assert_equals(text.indexOf("base-palette"), -1);
+ assert_equals(rule.basePalette, "");
+}, "sibling-index() is invalid in base-palette descriptor");
</script>
</body>
</html>
diff --git a/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html b/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html
index 7a5844d5600..08c20142449 100644
--- a/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html
+++ b/tests/wpt/tests/css/css-fonts/test_font_feature_values_parsing.html
@@ -81,6 +81,7 @@ var testrules = [
{ rule: _("@styleset { ok-1: 1; }"), serializationSame: true },
{ rule: _("@annotation { ok-1: 3; }"), serializationSame: true },
{ rule: _("@stylistic { blah: 3; }"), serializationSame: true },
+ { rule: _("@stylistic { blah: sibling-index(); }"), serializationNoValueDefn: true },
{ rule: makeRule("bongo", "\n@styleset\n { blah: 3; super-blah: 4 5;\n more-blah: 5 6 7;\n }"), serializationSame: true },
{ rule: makeRule("bongo", "\n@styleset\n {\n blah:\n 3\n;\n super-blah:\n 4\n 5\n;\n more-blah:\n 5 6\n 7;\n }"), serializationSame: true },
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html
new file mode 100644
index 00000000000..834c96ccd39
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items {
+ background: rgb(96 139 168 / 0.2);
+ height: 130px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 10px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 62px;
+ }
+
+ .column-gap {
+ position: absolute;
+ height: 130px;
+ width: 10px;
+ background: blue;
+ top: 2px;
+ }
+</style>
+
+<div class="container">
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+</div>
+<div class="column-gap" style="left:62px;"></div>
+<div class="column-gap" style="left:132px;"></div>
+<div class="row-gap"></div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html
new file mode 100644
index 00000000000..c3752156c7d
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-001.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with column-wrap.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-001-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-count: 3;
+ column-width: 60px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ column-wrap: wrap;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html
new file mode 100644
index 00000000000..d132f0ca677
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002-ref.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 130px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 10px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 120px;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 40px;
+ width: 10px;
+ background: blue;
+ top: 2px;
+ }
+
+ .column-gap2 {
+ position: absolute;
+ height: 142px;
+ width: 10px;
+ background: blue;
+ top: 60px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+</style>
+
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="column-gap1" style="left:62px;"></div>
+ <div class="column-gap1" style="left:132px;"></div>
+ <div class="column-gap2" style="left:62px;"></div>
+ <div class="column-gap2" style="left:132px;"></div>
+ <div class="row-gap"></div>
+ <div class="spanner"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html
new file mode 100644
index 00000000000..0b632fa94ac
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-002.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with column-wrap and a spanner.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-002-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ column-wrap: wrap;
+ column-width: 60px;
+ column-count: 3;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+
+ h2 {
+ column-span: all;
+ background-color: cyan;
+ color: #fff;
+ margin: 0px;
+ opacity: 0.5;
+ height: 18px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <h2></h2>
+
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html
new file mode 100644
index 00000000000..cd26da24389
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003-ref.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ height: 200px;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ height: 200px;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 200px;
+ width: 10px;
+ background: blue;
+ top: 2px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+</style>
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="column-gap1" style="left:62px;"></div>
+ <div class="column-gap1" style="left:132px;"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html
new file mode 100644
index 00000000000..2f2473fd046
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-003.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted basic case.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-003-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ #container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ column-count: 3;
+ column-width: 60px;
+ column-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 200px;
+ margin: 0px;
+ }
+</style>
+
+<div id="container">
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html
new file mode 100644
index 00000000000..002b1f2b594
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004-ref.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ }
+
+ .container1 {
+ width: 200px;
+ height: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 72px;
+ left: 2px;
+ width: 200px;
+ height: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 4px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 65px;
+ }
+
+ .column-gap {
+ position: absolute;
+ height: 130px;
+ width: 4px;
+ background: blue;
+ top: 2px;
+ }
+</style>
+
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="column-gap" style="left:65px;"></div>
+ <div class="column-gap" style="left:135px;"></div>
+ <div class="row-gap"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html
new file mode 100644
index 00000000000..0dcbeef4df8
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-004.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with smaller width than gap and column-wrap.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-004-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-count: 3;
+ column-width: 60px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 4px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 4px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ column-wrap: wrap;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html
new file mode 100644
index 00000000000..6543021c979
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005-ref.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ display: flex;
+ border: 1px solid #ccc;
+ height: 50px;
+ width: 210px;
+ column-gap: 10px;
+ }
+
+ .outer-items {
+ background: rgb(96 139 168 / 0.2);
+ height 50px;
+ width: 100px;
+ }
+
+ .inner {
+ display: flex;
+ height: 50px;
+ column-gap: 10px;
+ width: 100px;
+ }
+
+ .inner-items {
+ height: 50px;
+ width: 45px;
+ background: black;
+ }
+
+ .column-gap {
+ position: absolute;
+ height: 50px;
+ top: 1px;
+ left: 101px;
+ width: 10px;
+ }
+
+ .row-gap {
+ position: absolute;
+ background: purple;
+ height: 10px;
+ top: 21px;
+ left: 111px;
+ width: 100px;
+ }
+</style>
+<div class="outer">
+ <div class="outer-items"></div>
+ <div class="outer-items" id="nested">
+ <div class="inner">
+ <div class="inner-items"></div>
+ <div class="inner-items"></div>
+ </div>
+ </div>
+</div>
+<div class="column-gap" style="background: blue;"></div>
+<div class="column-gap" style="background: gold; left: 156px"></div>
+<div class="row-gap"></div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html
new file mode 100644
index 00000000000..daa65e904e7
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-005.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with nested multicol with column wrap.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-005-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer-container {
+ column-count: 2;
+ column-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ border: 1px solid #ccc;
+ width: 210px;
+ height: 50px;
+ }
+
+ .nested-container {
+ column-count: 2;
+ column-gap: 10px;
+ width: 100px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: gold;
+ row-gap: 10px;
+ row-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: purple;
+ column-wrap: wrap;
+ column-fill: auto;
+ column-height: 20px;
+ }
+
+ .column1 {
+ background: rgb(96 139 168 / 0.2);
+ width: 100px;
+ height: 50px
+ }
+
+ .nested-column {
+ background: black;
+ width: 45px;
+ height: 20px;
+ }
+</style>
+
+<div class="outer-container">
+ <div class="column1">
+ </div>
+ <div class="column2">
+ <div class="nested-container">
+ <div class="nested-column"></div>
+ <div class="nested-column"></div>
+ <div class="nested-column"></div>
+ <div class="nested-column"></div>
+ </div>
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html
new file mode 100644
index 00000000000..4cb56d207fe
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006-ref.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ .outer-container {
+ columns: 3;
+ column-fill: auto;
+ height: 100px;
+ width: 600px;
+ gap: 10px;
+ background: yellow;
+ }
+
+ .nested-container {
+ columns: 2;
+ box-decoration-break: clone;
+ padding: 10px;
+ gap: 10px;
+ background: cyan;
+ }
+
+ .inner-column {
+ height: 250px;
+ background: hotpink;
+ width: 80px;
+ }
+
+ #col-gap1 {
+ position: absolute;
+ height: 80px;
+ width: 1px;
+ background: green;
+ top: 18px;
+ left: 104px;
+ }
+
+ #col-gap2 {
+ position: absolute;
+ width: 1px;
+ background: green;
+ top: 18px;
+ left: 307px;
+ height: 45px;
+ }
+</style>
+<div class="outer-container">
+ <div class="nested-container">
+ <div class="inner-column"></div>
+ </div>
+</div>
+<div id="col-gap1"></div>
+<div id="col-gap2"></div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html
new file mode 100644
index 00000000000..64b3b007ab5
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-006.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with nested fragmented multicol.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-006-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ .outer-container {
+ columns: 3;
+ column-fill: auto;
+ height: 100px;
+ width: 600px;
+ gap: 10px;
+ background: yellow;
+ }
+
+ .nested-container {
+ columns: 2;
+ box-decoration-break: clone;
+ padding: 10px;
+ column-rule: solid;
+ column-rule-color: green;
+ column-rule-width: 1px;
+ background: cyan;
+ gap: 10px;
+ }
+
+ .inner-column {
+ height: 250px;
+ background: hotpink;
+ width: 80px;
+ }
+</style>
+<div class="outer-container">
+ <div class="nested-container">
+ <div class="inner-column"></div>
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html
new file mode 100644
index 00000000000..09973ddc690
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007-ref.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ #outer {
+ width: 620px;
+ height: 200px;
+ background: yellow;
+ }
+
+ .inner1 {
+ border-top: 2px solid;
+ border-left: 2px solid;
+ border-right: 2px solid;
+ background: cyan;
+ height: 198px;
+ width: 296px;
+ }
+
+ .inner2 {
+ border-bottom: 2px solid;
+ border-left: 2px solid;
+ border-right: 2px solid;
+ position: absolute;
+ left: 320px;
+ top: 0px;
+ height: 130px;
+ width: 296px;
+ background: cyan
+ }
+
+ .inner-flex {
+ display: flex;
+ column-gap: 20px;
+ }
+
+ .inner-items {
+ background: hotpink;
+ width: 85.333px;
+ }
+
+ .column-gap1 {
+ width: 10px;
+ background: blue;
+ position: absolute;
+ top: 2px;
+ }
+
+ .column-gap2 {
+ width: 10px;
+ background: blue;
+ position: absolute;
+ top: 40px;
+ }
+
+ .spanner {
+ background: grey;
+ opacity: 0.5;
+ height: 18px;
+ width: 296px;
+ }
+
+ .row-gap1 {
+ height: 10px;
+ background: green;
+ position: relative;
+ width: 296px;
+ top: 105px;
+ }
+
+ .row-gap2 {
+ height: 10px;
+ background: green;
+ position: absolute;
+ width: 296px;
+ top: 105px;
+ }
+
+ .column-gap3 {
+ background: blue;
+ height: 130px;
+ position: absolute;
+ width: 10px;
+ top: 0px;
+ }
+</style>
+
+<div id="outer">
+ <div class="inner1">
+ <div class="inner-flex">
+ <div class="inner-items" style="height:20px;"></div>
+ <div class="inner-items" style="height:20px" ;></div>
+ <div class="inner-items" style="height:20px;"></div>
+ </div>
+ <div class="inner-flex" style="position: absolute; left:2px; top:40px">
+ <div class="inner-items" style="height:100px;"></div>
+ <div class="inner-items" style="height:100px" ;></div>
+ <div class="inner-items" style="height:100px;"></div>
+ </div>
+ <div class="inner-flex" style="position: absolute; left:2px; top:160px">
+ <div class="inner-items" style="height:40px;"></div>
+ <div class="inner-items" style="height:40px" ;></div>
+ <div class="inner-items" style="height:40px;"></div>
+ </div>
+ <div class="spanner"></div>
+ <div class="column-gap1" style="height: 20px; left:calc(2px + 85.333px + 5px)"></div>
+ <div class="column-gap1" style="height: 20px; left:calc(2px + 85.333px + 5px + 10px + 5px + 85.333px + 5px)">
+ </div>
+ <div class="column-gap2" style="height: 160px; left:calc(2px + 85.333px + 5px)"></div>
+ <div class="column-gap2" style="height: 160px; left:calc(2px + 85.333px + 5px + 10px + 5px + 85.333px + 5px)">
+ </div>
+ <div class="row-gap1"></div>
+ </div>
+ <div class="inner2">
+ <div class="inner-flex">
+ <div class="inner-items" style="height:100px"></div>
+ <div class="inner-items" style="height:100px"></div>
+ <div class="inner-items" style="height:100px"></div>
+ </div>
+ <div class="inner-flex" style="position: absolute; top:120px;">
+ <div class="inner-items" style="height:10px"></div>
+ <div class="inner-items" style="height:10px"></div>
+ <div class="inner-items" style="height:10px"></div>
+ </div>
+ <div class="column-gap3" style="left:calc(85.333px + 5px);"></div>
+ <div class="column-gap3" style="left:calc(85.333px + 5px + 10px + 5px + 85.333px + 5px);"></div>
+ <div class="row-gap2"></div>
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html
new file mode 100644
index 00000000000..1f23ed7f7ca
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-007.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with nested fragmented multicol.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-007-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ #outer {
+ width: 620px;
+ columns: 2;
+ column-fill: auto;
+ gap: 20px;
+ height: 200px;
+ background: yellow;
+ }
+
+ #inner {
+ columns: 3;
+ border: 2px solid;
+ gap: 20px;
+ column-height: 100px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ column-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: green;
+ row-rule-width: 10px;
+ column-wrap: wrap;
+ background: cyan;
+ }
+</style>
+
+<div id="outer">
+ <div id="inner">
+ <div style="height:60px; background:hotpink;"></div>
+ <div style="column-span:all; background: grey; opacity: 0.5; height:18px"></div>
+ <div style="height:750px; background:hotpink;"></div>
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html
new file mode 100644
index 00000000000..d49c2f50f19
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008-ref.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 130px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 10px;
+ width: 200px;
+ left: 2px;
+ top: 120px;
+ display: flex;
+ column-gap: 10px;
+ }
+
+ .row-gap-items {
+ width: 60px;
+ background: gold;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 40px;
+ width: 10px;
+ background: blue;
+ top: 2px;
+ }
+
+ .column-gap2 {
+ position: absolute;
+ height: 60px;
+ width: 10px;
+ background: blue;
+ top: 60px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+
+ .column-gap3 {
+ position: absolute;
+ height: 72px;
+ width: 10px;
+ background: blue;
+ top: 130px;
+ }
+</style>
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="row-gap">
+ <div class="row-gap-items"></div>
+ <div class="row-gap-items"></div>
+ <div class="row-gap-items"></div>
+ </div>
+ <div class="spanner"></div>
+ <div class="column-gap1" style="left:62px;"></div>
+ <div class="column-gap1" style="left:132px;"></div>
+ <div class="column-gap2" style="left:62px;"></div>
+ <div class="column-gap2" style="left:132px;"></div>
+ <div class="column-gap3" style="left:62px;"></div>
+ <div class="column-gap3" style="left:132px;"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html
new file mode 100644
index 00000000000..ed299b5d9f6
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-008.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with 0px outset and rule-break intersection.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-008-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ row-rule-break: intersection;
+ column-rule-break: intersection;
+ column-rule-outset: 0px;
+ row-rule-outset: 0px;
+ column-wrap: wrap;
+ column-width: 60px;
+ column-count: 3;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+
+ h2 {
+ column-span: all;
+ background-color: cyan;
+ color: #fff;
+ margin: 0px;
+ opacity: 0.5;
+ height: 18px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <h2></h2>
+
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html
new file mode 100644
index 00000000000..124bf7eaeb1
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009-ref.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 130px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 10px;
+ width: 204px;
+ left: 0px;
+ top: 120px;
+ display: flex;
+ column-gap: 6px;
+ }
+
+ .row-gap-items {
+ width: 64px;
+ background: gold;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 44px;
+ width: 10px;
+ background: blue;
+ top: 0px;
+ }
+
+ .column-gap2 {
+ position: absolute;
+ height: 64px;
+ width: 10px;
+ background: blue;
+ top: 58px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+
+ .column-gap3 {
+ position: absolute;
+ height: 76px;
+ width: 10px;
+ background: blue;
+ top: 128px;
+ }
+</style>
+
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="column-gap1" style="left:62px;"></div>
+ <div class="column-gap1" style="left:132px;"></div>
+ <div class="column-gap2" style="left:62px;"></div>
+ <div class="column-gap2" style="left:132px;"></div>
+ <div class="spanner"></div>
+ <div class="column-gap3" style="left:62px;"></div>
+ <div class="column-gap3" style="left:132px;"></div>
+ <div class="row-gap">
+ <div class="row-gap-items"></div>
+ <div class="row-gap-items"></div>
+ <div class="row-gap-items"></div>
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html
new file mode 100644
index 00000000000..b00c6a70f8a
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-009.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with 2px outset and rule-break intersection.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-009-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ row-rule-break: intersection;
+ column-rule-break: intersection;
+ column-rule-outset: 2px;
+ row-rule-outset: 2px;
+ column-wrap: wrap;
+ column-width: 60px;
+ column-count: 3;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+
+ h2 {
+ column-span: all;
+ background-color: cyan;
+ color: #fff;
+ margin: 0px;
+ opacity: 0.5;
+ height: 18px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <h2></h2>
+
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html
new file mode 100644
index 00000000000..9582ab4103d
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010-ref.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container3 {
+ position: absolute;
+ top: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items3 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 10px;
+ width: 204px;
+ left: 4px;
+ top: 120px;
+ display: flex;
+ column-gap: 14px;
+ }
+
+ .row-gap-items {
+ width: 56px;
+ background: gold;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 36px;
+ width: 10px;
+ background: blue;
+ top: 4px;
+ }
+
+ .column-gap2 {
+ position: absolute;
+ height: 56px;
+ width: 10px;
+ background: blue;
+ top: 62px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+
+ .column-gap3 {
+ position: absolute;
+ height: 68px;
+ width: 10px;
+ background: blue;
+ top: 132px;
+ }
+</style>
+
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="container3">
+ <div class="items3"></div>
+ <div class="items3"></div>
+ <div class="items3"></div>
+ </div>
+ <div class="row-gap">
+ <div class="row-gap-items"></div>
+ <div class="row-gap-items"></div>
+ <div class="row-gap-items"></div>
+ </div>
+ <div class="column-gap1" style="left:62px;"></div>
+ <div class="column-gap1" style="left:132px;"></div>
+ <div class="column-gap2" style="left:62px;"></div>
+ <div class="column-gap2" style="left:132px;"></div>
+ <div class="spanner"></div>
+ <div class="column-gap3" style="left:62px;"></div>
+ <div class="column-gap3" style="left:132px;"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html
new file mode 100644
index 00000000000..61bb4a9b933
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-010.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with -2px outset and rule-break intersection.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-010-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 10px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ row-rule-break: intersection;
+ column-rule-break: intersection;
+ column-rule-outset: -2px;
+ row-rule-outset: -2px;
+ column-wrap: wrap;
+ column-width: 60px;
+ column-count: 3;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+
+ h2 {
+ column-span: all;
+ background-color: cyan;
+ color: #fff;
+ margin: 0px;
+ opacity: 0.5;
+ height: 18px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <h2></h2>
+
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html
new file mode 100644
index 00000000000..3387918d399
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011-ref.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container3 {
+ position: absolute;
+ top: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items3 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 2px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 124px;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 40px;
+ width: 2px;
+ background: blue;
+ top: 2px;
+ }
+
+ .column-gap2 {
+ position: absolute;
+ height: 142px;
+ width: 2px;
+ background: blue;
+ top: 60px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+</style>
+
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="container3">
+ <div class="items3"></div>
+ <div class="items3"></div>
+ <div class="items3"></div>
+ </div>
+ <div class="column-gap1" style="left:66px;"></div>
+ <div class="column-gap1" style="left:136px;"></div>
+ <div class="column-gap2" style="left:66px;"></div>
+ <div class="column-gap2" style="left:136px;"></div>
+ <div class="row-gap"></div>
+ <div class="spanner"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html
new file mode 100644
index 00000000000..cf588ded41e
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-011.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with 100% outset and rule-break intersection.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-011-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 2px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 2px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ row-rule-break: intersection;
+ column-rule-break: intersection;
+ column-rule-outset: 100%;
+ row-rule-outset: 100%;
+ column-wrap: wrap;
+ column-width: 60px;
+ column-count: 3;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+
+ h2 {
+ column-span: all;
+ background-color: cyan;
+ color: #fff;
+ margin: 0px;
+ opacity: 0.5;
+ height: 18px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <h2></h2>
+
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html
new file mode 100644
index 00000000000..9fb5e85e920
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012-ref.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .outer {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ }
+
+ .container1 {
+ position: absolute;
+ top: 2px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items1 {
+ background: rgb(96 139 168 / 0.2);
+ height: 40px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container2 {
+ position: absolute;
+ top: 60px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items2 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .container3 {
+ position: absolute;
+ top: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items3 {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 2px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 124px;
+ }
+
+ .column-gap1 {
+ position: absolute;
+ height: 200px;
+ width: 2px;
+ background: blue;
+ top: 2px;
+ }
+
+ .spanner {
+ position: absolute;
+ background: cyan;
+ width: 200px;
+ height: 18px;
+ top: 42px;
+ left: 2px;
+ opacity: 0.5;
+ }
+</style>
+<div class="outer">
+ <div class="container1">
+ <div class="items1"></div>
+ <div class="items1"></div>
+ <div class="items1"></div>
+ </div>
+ <div class="container2">
+ <div class="items2"></div>
+ <div class="items2"></div>
+ <div class="items2"></div>
+ </div>
+ <div class="container3">
+ <div class="items3"></div>
+ <div class="items3"></div>
+ <div class="items3"></div>
+ </div>
+ <div class="column-gap1" style="left:66px;"></div>
+ <div class="column-gap1" style="left:136px;"></div>
+ <div class="row-gap"></div>
+ <div class="spanner"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html
new file mode 100644
index 00000000000..078b810cf8e
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-012.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with 2px width and rule-break none.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-012-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 200px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 2px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 2px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ row-rule-break: none;
+ column-rule-break: none;
+ column-wrap: wrap;
+ column-width: 60px;
+ column-count: 3;
+ column-fill: auto;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+
+ h2 {
+ column-span: all;
+ background-color: cyan;
+ color: #fff;
+ margin: 0px;
+ opacity: 0.5;
+ height: 18px;
+ }
+</style>
+<div class="container">
+ <p></p>
+ <p></p>
+ <h2></h2>
+
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html
new file mode 100644
index 00000000000..8e426d8ed32
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .mc {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100px;
+ height: 100px;
+ columns: 2;
+ column-fill: auto;
+ column-gap: 10px;
+ }
+
+ .fake-column-gaps {
+ position: absolute;
+ top: 4px;
+ left: 45px;
+ display: flex;
+ height: 92px;
+ column-gap: 45px;
+ }
+
+ .column-gap {
+ width: 10px;
+ background: gold;
+ }
+</style>
+
+<div class="fake-column-gaps">
+ <div class="column-gap"></div>
+ <div class="column-gap"></div>
+ <div class="column-gap"></div>
+</div>
+<div class="mc">
+ <div style="height: 400px; background: cyan;">
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html
new file mode 100644
index 00000000000..d4170084f06
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-013.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-013-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .mc {
+ position: absolute;
+ top: 0px;
+ width: 100px;
+ height: 100px;
+ columns: 2;
+ column-fill: auto;
+ column-gap: 10px;
+ column-rule-color: gold;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-outset: -4px;
+ }
+</style>
+
+<div class="mc">
+ <div style="height: 400px; background: cyan;">
+ </div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html
new file mode 100644
index 00000000000..9d9674bd476
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014-ref.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .last-item {
+ position: absolute;
+ left: 2px;
+ top: 72px;
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 2px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 66px;
+ }
+
+ .column-gap {
+ position: absolute;
+ height: 60px;
+ width: 10px;
+ background: blue;
+ top: 2px;
+ }
+</style>
+
+<div class="container">
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+</div>
+<div class="last-item"></div>
+<div class="column-gap" style="left:62px;"></div>
+<div class="column-gap" style="left:132px;"></div>
+<div class="column-gap" style="left:62px; top: 72px;"></div>
+<div class="column-gap" style="left:132px; top: 72px;"></div>
+<div class="row-gap"></div>
diff --git a/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html
new file mode 100644
index 00000000000..1dcd393d99a
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/tentative/multicol/multicol-gap-decorations-014.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations painted with column-wrap, rule-break-intersection, and fewer
+ columns in last row.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-014-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-count: 3;
+ column-width: 60px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule-width: 10px;
+ column-rule-style: solid;
+ column-rule-color: blue;
+ row-rule-width: 2px;
+ row-rule-style: solid;
+ row-rule-color: gold;
+ column-wrap: wrap;
+ column-fill: auto;
+ column-rule-break: intersection;
+ column-rule-outset: 0;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+</style>
+
+<div class="container">
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+</div>
diff --git a/tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html
new file mode 100644
index 00000000000..2d5b401b8d2
--- /dev/null
+++ b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-016.tentative.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#min-content-zero">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308929">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12133">
+<meta name="assert" content="A replaced element with a percentage block-size doesn't compress the min-content contribution on its block axis to zero.">
+<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
+
+<p>Test passes if there is a filled green square.</p>
+<div style="display: grid; grid-template-rows: min-content;">
+ <canvas width="100" height="100" style="background: green; block-size: 100%"></canvas>
+</div>
diff --git a/tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html
new file mode 100644
index 00000000000..575fa8c7817
--- /dev/null
+++ b/tests/wpt/tests/css/css-grid/grid-items/replaced-element-017.tentative.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#min-content-zero">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308929">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12133">
+<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
+<meta name="assert" content="A replaced element with a percentage max-block-size doesn't compress the min-content contribution on its block axis to zero.">
+
+<p>Test passes if there is a filled green square.</p>
+<div style="display: grid; grid-template-rows: min-content;">
+ <canvas width="200" height="200" style="background: green; max-block-size: 50%"></canvas>
+</div>
diff --git a/tests/wpt/tests/css/css-overflow/scroll-button-display-none.html b/tests/wpt/tests/css/css-overflow/scroll-button-display-none.html
new file mode 100644
index 00000000000..8b3068be6da
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scroll-button-display-none.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow Test: focused ::scroll-button() does not crash after becoming display none</title>
+<link rel="help" href="http://crbug.com/402673873">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<style>
+ #scroller::scroll-button(left) {
+ content: "";
+ background-color: red;
+ height: 100px;
+ width: 100px;
+ top: 0;
+ left: 0;
+ position: absolute;
+ }
+
+ #scroller.hide::scroll-button(left) {
+ display: none;
+ }
+
+ #scroller {
+ width: 300px;
+ height: 300px;
+ overflow: auto;
+ }
+
+ #filler {
+ height: 20000x;
+ }
+</style>
+<div id="scroller">
+ <div id="filler"></div>
+</div>
+<script>
+ promise_test(async t => {
+ await new test_driver.Actions()
+ .pointerMove(15, 15)
+ .pointerDown()
+ .pointerUp()
+ .send();
+ scroller.className = "hide";
+ document.documentElement.offsetTop;
+ await new test_driver.Actions()
+ .pointerMove(15, 15)
+ .pointerDown()
+ .pointerUp()
+ .send();
+ assert_true(true);
+ });
+</script>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html
new file mode 100644
index 00000000000..b398167fa30
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-004.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Scroll Container</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the box of scroll container with transform contribute to the scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: auto;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+ background: lime;
+ }
+
+ .element-content {
+ width: 500px;
+ height: 500px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="250">
+ <div style="transform: translateX(200px);" class="element">
+ <div class="element-content"></div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="350">
+ <div style="transform: translateY(300px);" class="element">
+ <div class="element-content"></div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="250" data-expected-scroll-height="350">
+ <div style="transform: translate(200px, 300px);" class="element">
+ <div class="element-content"></div>
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html
new file mode 100644
index 00000000000..837b95ba96d
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-005.tentative.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Exclusion of Untransformed Child Box</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable"/>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12113"/>
+<meta name="assert" content="Checks that the untransformed child box is not included in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 100px;
+ height: 100px;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-200px, -200px);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="150" data-expected-scroll-height="150">
+ <div style="transform: translate(-25%, -25%);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="100" data-expected-scroll-height="100">
+ <div style="width: 100px; height: 100px;">
+ <div style="transform: translate(-200px, -200px);" class="element">
+ </div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="150" data-expected-scroll-height="150">
+ <div style="width: 100px; height: 100px;">
+ <div style="transform: translate(-25%, -25%);" class="element">
+ </div>
+ </div>
+ </div>
+
+ <div class="container" style="position: relative;" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-200px, -200px); position: absolute;" class="element">
+ </div>
+ </div>
+
+ <div class="container" style="position: relative;" data-expected-scroll-width="150" data-expected-scroll-height="150">
+ <div style="transform: translate(-25%, -25%); position: absolute;" class="element">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html
new file mode 100644
index 00000000000..2eea759da6a
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-006.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Rotate</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the bounding rectangle of rotated element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="241" data-expected-scroll-height="241">
+ <div style="transform: rotate(45deg);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="241" data-expected-scroll-height="241">
+ <div style="transform: rotate(-45deg);" class="element">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html
new file mode 100644
index 00000000000..8aa6e5f17d8
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-007.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Scale</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the bounding rectangle of scaled element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="300" data-expected-scroll-height="300">
+ <div style="transform: scale(2);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="250" data-expected-scroll-height="250">
+ <div style="transform: scale(0.5);" class="element">
+ <div style="transform: scale(3);" class="element-2">
+ </div>
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html
new file mode 100644
index 00000000000..df1daeb8424
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-008.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Skew</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the bounding rectangle of skewed element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-width="227" data-expected-scroll-height="227">
+ <div style="transform: skew(-15deg, -15deg);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="227" data-expected-scroll-height="227">
+ <div style="transform: skew(15deg, 15deg);" class="element">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html
new file mode 100644
index 00000000000..aca1b28418a
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-009.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Unreachable Scrollable Overflow</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable" />
+<meta name="assert" content="Checks that the box in unreachable scrollable overflow region with transform is not included in the calculation.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .relative {
+ position: relative;
+ }
+
+ .absolute {
+ position: absolute;
+ }
+
+ .element {
+ width: 100px;
+ height: 100px;
+ background: lime;
+ }
+</style>
+<body onload="checkLayout('.container')">
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, -300px);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(300px, -300px);" class="element">
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, 300px);" class="element">
+ </div>
+ </div>
+
+ <div class="container relative" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, -300px);" class="element absolute">
+ </div>
+ </div>
+
+ <div class="container relative" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(300px, -300px);" class="element absolute">
+ </div>
+ </div>
+
+ <div class="container relative" data-expected-scroll-width="100" data-expected-scroll-height="100">
+ <div style="transform: translate(-300px, 300px);" class="element absolute">
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html
new file mode 100644
index 00000000000..e2c62cb4474
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-010.tentative.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Overflow: Scrollable Overflow Transform Rotate Nested Element</title>
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable"/>
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12112"/>
+<meta name="assert" content="Checks that the bounding rectangle of nested rotated element is included correctly in scrollable overflow.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ overflow: scroll;
+ background: silver;
+ border: solid thick;
+ scrollbar-width: none;
+ }
+
+ .element {
+ width: 200px;
+ height: 200px;
+ background: lime;
+ }
+
+ .element-2 {
+ width: 200px;
+ height: 200px;
+ background: aqua;
+ }
+</style>
+<body onload="checkLayout('.container')">
+
+ <div class="container" data-expected-scroll-height="241" data-expected-scroll-height="241">
+ <div style="transform: rotate(-45deg);" class="element">
+ <div style="transform: rotate(45deg);" class="element-2">
+ </div>
+ </div>
+ </div>
+
+ <div class="container" data-expected-scroll-height="222" data-expected-scroll-height="222">
+ <div style="transform: rotate(30deg) rotate(-15deg);" class="element">
+ <div style="transform: rotate(-30deg) rotate(105deg);" class="element-2">
+ </div>
+ </div>
+ </div>
+
+</body>
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html
new file mode 100644
index 00000000000..91e987bf826
--- /dev/null
+++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-transform-unreachable-region.html
@@ -0,0 +1,95 @@
+<!doctype html>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<title>Scrollable Overflow of a Scroll Container with Transformed Child in Unreachable Scrollable Overflow Region.</title>
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#unreachable-scrollable-overflow-region">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollable">
+<link rel="author" title="Jo Steven Novaryo" href="mailto:steven.novaryo@gmail.com">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+body { margin: 0 }
+.wrapper {
+ width: 100px;
+ height: 200px;
+ overflow: scroll;
+}
+.inner {
+ width: 100px;
+ height: 200px;
+ background-color: lime;
+ transform: translate(-3px, -6px) scale(1.10);
+}
+</style>
+<div class="wrapper">
+ <div class="inner"></div>
+</div>
+<script>
+const wrapper = document.querySelector(".wrapper");
+const contentBox = {
+ width: 100,
+ height: 200,
+};
+
+function getCurrentTestName(display, direction, writingMode, flexDirection, flexWrap) {
+ return `display: ${display}; ` +
+ `direction: ${direction}; ` +
+ `writing-mode: ${writingMode}; ` +
+ `flex-direction: ${flexDirection}; ` +
+ `flex-wrap: ${flexWrap};`;
+}
+
+for (let display of ["flow-root", "flex", "grid"]) {
+ for (let flexDirection of ["row", "row-reverse", "column", "column-reverse"]) {
+ if (flexDirection != "row" && display != "flex") {
+ // Don't bother retesting with all flexDirection values unless we're actually a flex container
+ continue;
+ }
+ for (let flexWrap of ["nowrap", "wrap-reverse"]) {
+ if (flexWrap != "nowrap" && display != "flex") {
+ // Don't bother retesting with all flexWrap values unless we're actually a flex container
+ continue;
+ }
+ for (let direction of ["ltr", "rtl"]) {
+ for (let writingMode of ["horizontal-tb", "vertical-lr", "vertical-rl"]) {
+ wrapper.style.display = display;
+ wrapper.style.direction = direction;
+ wrapper.style.writingMode = writingMode;
+ wrapper.style.flexDirection = flexDirection;
+ wrapper.style.flexWrap = flexWrap;
+ // Suppress scrollbars because they get added to the padding are
+ // and would need to account for them in flexbox.
+ wrapper.style.scrollbarWidth = display == "flex" ? "none" : "";
+ let vertical = writingMode.startsWith("vertical");
+ let scrollToTop = vertical && direction == "rtl";
+ let scrollToLeft = (!vertical && direction == "rtl") || writingMode == "vertical-rl";
+ let flexMainAxisIsVertical = flexDirection.startsWith("row") == vertical;
+ if (display == "flex") {
+ if (flexDirection.endsWith("-reverse")) {
+ if (flexMainAxisIsVertical) {
+ scrollToTop = !scrollToTop;
+ } else {
+ scrollToLeft = !scrollToLeft;
+ }
+ }
+ if (flexWrap == "wrap-reverse") {
+ if (flexMainAxisIsVertical) {
+ scrollToLeft = !scrollToLeft;
+ } else {
+ scrollToTop = !scrollToTop;
+ }
+ }
+ }
+ currentTestName = getCurrentTestName(display, direction, writingMode, flexDirection, flexWrap);
+ test(function() {
+ assert_equals(wrapper.scrollWidth, (scrollToLeft ? 108 : 102), "scrollWidth");
+ }, "scrollWidth of " + currentTestName);
+ test(function() {
+ assert_equals(wrapper.scrollHeight, (scrollToTop ? 216 : 204), "scrollHeight");
+ }, "scrollHeight of " + currentTestName);
+ }
+ }
+ }
+ }
+}
+</script>
diff --git a/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html b/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html
index a116ead01b7..71c5f6573d6 100644
--- a/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html
+++ b/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-root.html
@@ -33,6 +33,10 @@ promise_test(async function() {
Math.round(bounds.top + bounds.height / 2), 0, -100)
.send();
+ // Await two animation frames to give a chance to scroll.
+ await new Promise(resolve => requestAnimationFrame(resolve));
+ await new Promise(resolve => requestAnimationFrame(resolve));
+
assert_equals(window.scrollY, originalScrollPos, "overscroll-behavior should work on the root");
});
</script>
diff --git a/tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html b/tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html
new file mode 100644
index 00000000000..c0dc8e20eee
--- /dev/null
+++ b/tests/wpt/tests/css/css-shadow-parts/host-part-nesting.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<title>CSS Shadow Parts - :host::part() in nesting</title>
+<link rel="help" href="https://drafts.csswg.org/css-shadow-parts/#part">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/#host-selector">
+<link rel="help" href="https://crbug.com/326526716">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="host"></div>
+<script>
+test(function() {
+ let host = document.getElementById("host");
+ host.attachShadow({ mode: "open" }).innerHTML = `
+ <style>
+ :host {
+ &::part(mypart) {
+ color: lime;
+ }
+ }
+ </style>
+ <div part="mypart">This text should be green.</div>
+ `;
+
+ let part = host.shadowRoot.querySelector("[part]");
+
+ assert_equals(
+ window.getComputedStyle(part).color,
+ "rgb(0, 255, 0)",
+ ":host::part() works in nesting",
+ );
+}, ":host::part works in nesting");
+</script>
diff --git a/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html
new file mode 100644
index 00000000000..feff03bbe2e
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-029.tentative.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#min-content-zero">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308929">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12133">
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<meta name="assert" content="A replaced element with a percentage block-size doesn't compress the min-content contribution on its block axis to zero.">
+
+<p>Test passes if there is a filled green square.</p>
+<div style="inline-size: min-content">
+ <canvas width="100" height="100"
+ style="writing-mode:vertical-rl; background: green; block-size: 100%"></canvas>
+</div>
diff --git a/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html
new file mode 100644
index 00000000000..5a6b103c22e
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/intrinsic-percent-replaced-030.tentative.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#min-content-zero">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308929">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12133">
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<meta name="assert" content="A replaced element with a percentage max-block-size doesn't compress the min-content contribution on its block axis to zero.">
+
+<p>Test passes if there is a filled green square.</p>
+<div style="inline-size: min-content">
+ <canvas width="200" height="200"
+ style="writing-mode:vertical-rl; background: green; max-block-size: 50%"></canvas>
+</div>
diff --git a/tests/wpt/tests/css/css-tables/colspan-zero-crash.html b/tests/wpt/tests/css/css-tables/colspan-zero-crash.html
new file mode 100644
index 00000000000..a50586a5bfa
--- /dev/null
+++ b/tests/wpt/tests/css/css-tables/colspan-zero-crash.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/servo/servo/issues/36699">
+<link rel="author" href="mailto:fwang@igalia.com" title="Frédéric Wang">
+<span id="span"></span>
+<script>
+ let th = document.createElement("th");
+ span.replaceWith(th);
+ th.colSpan = 0;
+</script>
+
diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html b/tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html
new file mode 100644
index 00000000000..1afdae2be9d
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/scoped/run_in_parallel.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <!-- TODO update link -->
+ <link rel="help" href="https://www.w3.org/TR/css-view-transitions-2/">
+ <title>Scope view transitions run in parallel</title>
+</head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style type="text/css">
+ .block {
+ background-color: blue;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ margin: 50px;
+ }
+
+ #target1 {
+ view-transition-name: a;
+ }
+
+ #target2 {
+ view-transition-name: b;
+ }
+
+ ::view-transition-group(*),
+ ::view-transition-image-pair(*),
+ ::view-transition-old(*) {
+ animation: unset;
+ }
+
+ ::view-transition-old(*) {
+ opacity: 0;
+ }
+
+ @keyframes stylize {
+ from {
+ opacity: 0.5;
+ }
+ to {
+ opacity: 1.0;
+ }
+ }
+ ::view-transition-new(*) {
+ animation: stylize 1s paused;
+ }
+
+</style>
+<body>
+ <div id="target1" class="block"></div>
+ <div id="target2" class="block"></div>
+</body>
+<script type="text/javascript">
+
+ async function run_parallel_scoped_view_transition_test(
+ transition_update_callback,
+ message) {
+ promise_test(async t => {
+ const vt1 = target1.startViewTransition(() => {});
+ const vt2 = target2.startViewTransition(() => {});
+ await Promise.all([vt1.ready, vt2.ready]);
+
+ let list = document.getAnimations().map(a => {
+ return `${a.effect.pseudoElement}:${a.animationName}`;
+ });
+ let expected = [
+ '::view-transition-new(a):stylize',
+ '::view-transition-new(b):stylize'
+ ];
+ assert_array_equals(list, expected, 'Before callback');
+ assert_equals(
+ getComputedStyle(target1, "::view-transition-new(a)")
+ .getPropertyValue("opacity"),
+ "0.5");
+ assert_equals(
+ getComputedStyle(target2, "::view-transition-new(b)")
+ .getPropertyValue("opacity"),
+ "0.5");
+
+ transition_update_callback(vt1);
+ await vt1.finished.then(
+ () => {},
+ () => {
+ // The only case where the finished promise should not be resolved is
+ // when the DOM update callback returns a rejected promise.
+ assert_unreached('Finished promise should have been resolved');
+ });
+
+ list = document.getAnimations().map(a => {
+ return `${a.effect.pseudoElement}:${a.animationName}`;
+ });
+ assert_array_equals(list, [`::view-transition-new(b):stylize`],
+ 'After callback');
+ assert_equals(
+ getComputedStyle(target2, "::view-transition-new(b)")
+ .getPropertyValue("opacity"),
+ "0.5");
+ }, message);
+ }
+
+ run_parallel_scoped_view_transition_test(
+ (vt) => {
+ vt.skipTransition();
+ },
+ 'Concurrent transition keeps running after transition skipped');
+
+ run_parallel_scoped_view_transition_test(
+ () => {
+ document.getAnimations().filter(a => {
+ return a.effect.target.id == 'target1';
+ }).forEach(a => {
+ a.finish();
+ });
+ }, 'Concurrent transition keeps running after transition finished');
+
+ run_parallel_scoped_view_transition_test(
+ () => {
+ document.getAnimations().filter(a => {
+ return a.effect.target.id == 'target1';
+ }).forEach(a => {
+ a.cancel();
+ });
+ }, 'Concurrent transition keeps running after transition canceled');
+</script>
+</html>
diff --git a/tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html b/tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html
new file mode 100644
index 00000000000..c5b52346fc0
--- /dev/null
+++ b/tests/wpt/tests/css/css-writing-modes/reference/table-cell-align-006-ref.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Writing Modes reference: text-align in orthogonal table cell</title>
+
+<meta name="flags" content="ahem" />
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+
+<style>
+table {
+ font: 20px/1 Ahem;
+ border: 1px solid gray;
+ display: inline-table;
+ margin: 1em;
+}
+
+td {
+ padding: 0;
+ color: green;
+ vertical-align: top;
+}
+
+td div {
+ position: relative;
+}
+
+.t {
+ top: 0;
+}
+.m {
+ top: 2em;
+}
+.b {
+ top: 4em;
+}
+</style>
+
+<div>
+<table>
+ <tr>
+ <td>X<br>X<br>X<br>X<br>X</td>
+ <td><div class=t>X</div></td>
+ <td><div class=m>X</div></td>
+ <td><div class=b>X</div></td>
+ <td><div class=t>X</div></td>
+ <td><div class=b>X</div></td>
+ <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
+ </tr>
+</table>
+<table>
+ <tr>
+ <td>X<br>X<br>X<br>X<br>X</td>
+ <td><div class=t>X</div></td>
+ <td><div class=m>X</div></td>
+ <td><div class=b>X</div></td>
+ <td><div class=b>X</div></td>
+ <td><div class=t>X</div></td>
+ <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
+ </tr>
+</table>
+</div>
+
+<div>
+<table>
+ <tr>
+ <td>X<br>X<br>X<br>X<br>X</td>
+ <td><div class=b>X</div></td>
+ <td><div class=m>X</div></td>
+ <td><div class=t>X</div></td>
+ <td><div class=b>X</div></td>
+ <td><div class=t>X</div></td>
+ <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
+ </tr>
+</table>
+<table>
+ <tr>
+ <td>X<br>X<br>X<br>X<br>X</td>
+ <td><div class=b>X</div></td>
+ <td><div class=m>X</div></td>
+ <td><div class=t>X</div></td>
+ <td><div class=t>X</div></td>
+ <td><div class=b>X</div></td>
+ <td>X<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>X</td>
+ </tr>
+</table>
+</div>
+
+<div>
+<table>
+ <tr><td>XXXXX</td></tr>
+ <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+ <tr><td>&nbsp;&nbsp;X&nbsp;&nbsp;</td></tr>
+ <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
+ <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+ <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
+ <tr><td>X&nbsp;&nbsp;&nbsp;X</td></tr>
+</table>
+<table>
+ <tr><td>XXXXX</td></tr>
+ <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+ <tr><td>&nbsp;&nbsp;X&nbsp;&nbsp;</td></tr>
+ <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
+ <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;X</td></tr>
+ <tr><td>X&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
+ <tr><td>X&nbsp;&nbsp;&nbsp;X</td></tr>
+</table>
+</div>
diff --git a/tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html b/tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html
new file mode 100644
index 00000000000..a8d33f281fd
--- /dev/null
+++ b/tests/wpt/tests/css/css-writing-modes/table-cell-align-006.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Writing Modes test: text-align in orthogonal table cell</title>
+
+<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#line-mappings">
+<meta assert="text-align values respect line-relative mappings of the table cell">
+<link rel="match" href="reference/table-cell-align-006-ref.html">
+<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
+
+<meta name="flags" content="ahem" />
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+
+<style>
+table {
+ font: 20px/1 Ahem;
+ border: 1px solid gray;
+ display: inline-table;
+ margin: 1em;
+}
+
+td {
+ padding: 0;
+ color: green;
+}
+
+table.vrl td {
+ writing-mode: vertical-rl;
+}
+
+table.slr td {
+ writing-mode: sideways-lr;
+}
+
+table.h {
+ writing-mode: vertical-lr;
+}
+
+table.h td {
+ writing-mode: initial;
+}
+
+/* If text-align works correctly on the cells, their green Ahem glyphs
+ should cover the red part of each background. */
+.left {
+ text-align: left;
+ background: linear-gradient(to bottom, red 20%, transparent 20%);
+}
+.slr .left {
+ background: linear-gradient(to top, red 20%, transparent 20%);
+}
+.center {
+ text-align: center;
+ background: linear-gradient(to bottom, transparent 40%, red 40%, red 60%, transparent 60%);
+}
+.right {
+ text-align: right;
+ background: linear-gradient(to bottom, transparent 80%, red 80%);
+}
+.slr .right {
+ background: linear-gradient(to top, transparent 80%, red 80%);
+}
+.start,
+.slr .start:dir(rtl)
+ {
+ text-align: start;
+ background: linear-gradient(to bottom, red 20%, transparent 20%);
+}
+.start:dir(rtl),
+.slr .start {
+ background: linear-gradient(to top, red 20%, transparent 20%);
+}
+.end,
+.slr .end:dir(rtl)
+ {
+ text-align: end;
+ background: linear-gradient(to bottom, transparent 80%, red 80%);
+}
+.end:dir(rtl),
+.slr .end
+ {
+ background: linear-gradient(to top, transparent 80%, red 80%);
+}
+.justify {
+ text-align-last: justify;
+ background: linear-gradient(to bottom, red 20%, transparent 20% 80%, red 80% );
+}
+
+.h .left {
+ background: linear-gradient(to right, red 20%, transparent 20%);
+}
+.h .center {
+ background: linear-gradient(to right, transparent 40%, red 40%, red 60%, transparent 60%);
+}
+.h .right {
+ background: linear-gradient(to right, transparent 80%, red 80%);
+}
+.h .start {
+ background: linear-gradient(to right, red 20%, transparent 20%);
+}
+.h .start:dir(rtl) {
+ background: linear-gradient(to left, red 20%, transparent 20%);
+}
+.h .end {
+ background: linear-gradient(to right, transparent 80%, red 80%);
+}
+.h .end:dir(rtl) {
+ background: linear-gradient(to left, transparent 80%, red 80%);
+}
+.h .justify {
+ background: linear-gradient(to right, red 20%, transparent 20% 80%, red 80% );
+}
+</style>
+
+</div>
+<table class=vrl>
+ <tr>
+ <td>XXXXX</td>
+ <td class=left>X</td>
+ <td class=center>X</td>
+ <td class=right>X</td>
+ <td class=start>X</td>
+ <td class=end>X</td>
+ <td class=justify>X X</td>
+ </tr>
+</table>
+<table class=vrl>
+ <tr dir=rtl>
+ <td>XXXXX</td>
+ <td class=left>X</td>
+ <td class=center>X</td>
+ <td class=right>X</td>
+ <td class=start>X</td>
+ <td class=end>X</td>
+ <td class=justify>X X</td>
+ </tr>
+</table>
+</div>
+
+<div>
+<table class=slr>
+ <tr>
+ <td>XXXXX</td>
+ <td class=left>X</td>
+ <td class=center>X</td>
+ <td class=right>X</td>
+ <td class=start>X</td>
+ <td class=end>X</td>
+ <td class=justify>X X</td>
+ </tr>
+</table>
+<table class=slr>
+ <tr dir=rtl>
+ <td>XXXXX</td>
+ <td class=left>X</td>
+ <td class=center>X</td>
+ <td class=right>X</td>
+ <td class=start>X</td>
+ <td class=end>X</td>
+ <td class=justify>X X</td>
+ </tr>
+</table>
+</div>
+
+<div>
+<table class=h>
+ <tr>
+ <td>XXXXX</td>
+ <td class=left>X</td>
+ <td class=center>X</td>
+ <td class=right>X</td>
+ <td class=start>X</td>
+ <td class=end>X</td>
+ <td class=justify>X X</td>
+ </tr>
+</table>
+<table class=h>
+ <tr dir=rtl>
+ <td>XXXXX</td>
+ <td class=left>X</td>
+ <td class=center>X</td>
+ <td class=right>X</td>
+ <td class=start>X</td>
+ <td class=end>X</td>
+ <td class=justify>X X</td>
+ </tr>
+</table>
+</div>
diff --git a/tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html b/tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html
new file mode 100644
index 00000000000..961794728d3
--- /dev/null
+++ b/tests/wpt/tests/dom/events/non-cancelable-when-passive/generic-events-stay-cancelable.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<meta charset=utf-8>
+<title></title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+async_test((t) => {
+ const et = new EventTarget();
+ et.addEventListener('test', t.step_func_done((e) => {
+ assert_true(e.cancelable);
+ }), {passive: true});
+ et.dispatchEvent(new Event('test', {cancelable: true}));
+}, "A generic event with only passive listeners remains cancelable");
+</script>
diff --git a/tests/wpt/tests/dom/nodes/Node-childNodes-cache-2.html b/tests/wpt/tests/dom/nodes/Node-childNodes-cache-2.html
new file mode 100644
index 00000000000..9079fc6ea7a
--- /dev/null
+++ b/tests/wpt/tests/dom/nodes/Node-childNodes-cache-2.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Node.childNodes caching bug with replaceChild</title>
+<link rel=help href="https://dom.spec.whatwg.org/#dom-node-childnodes">
+<link rel=author title="Xiaocheng Hu" href="mailto:xiaochengh.work@gmail.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="target"><div id="first"></div><div id="second"></div><div id="third"></div><div id="last"></div></div>
+<script>
+test(function() {
+ let target = document.getElementById("target");
+ assert_array_equals(Array.from(target.childNodes).map(node => node.id), ["first", "second", "third", "last"]);
+ target.replaceChild(target.childNodes[2], target.childNodes[1]);
+ assert_array_equals(Array.from(target.childNodes).map(node => node.id), ["first", "third", "last"]);
+});
+</script>
diff --git a/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html b/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html
index c3b704bf188..6c294e464a5 100644
--- a/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html
+++ b/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html
@@ -81,6 +81,25 @@ test(function() {
}, 'Check if inconsistent xmlns="..." is dropped.');
test(function() {
+ const root1 = parse('<package></package>');
+ root1.setAttribute('xmlns', 'http://www.idpf.org/2007/opf');
+ const manifest1 = root1.appendChild(root1.ownerDocument.createElement('manifest'));
+ manifest1.setAttribute('xmlns', 'http://www.idpf.org/2007/opf');
+ assert_equals(serialize(root1), '<package><manifest/></package>');
+
+ const root2 = parse('<package xmlns="http://www.idpf.org/2007/opf"></package>');
+ const manifest2 = root2.appendChild(root2.ownerDocument.createElement('manifest'));
+ manifest2.setAttribute('xmlns', 'http://www.idpf.org/2007/opf');
+ assert_equals(serialize(root2),
+ '<package xmlns="http://www.idpf.org/2007/opf"><manifest xmlns=""/></package>');
+
+ const root3 = parse('<package xmlns="http://www.idpf.org/2007/opf"></package>');
+ const manifest3 = root3.appendChild(root3.ownerDocument.createElement('manifest'));
+ assert_equals(serialize(root3),
+ '<package xmlns="http://www.idpf.org/2007/opf"><manifest xmlns=""/></package>');
+}, 'Drop inconsistent xmlns="..." by matching on local name');
+
+test(function() {
let root = parse('<r xmlns:xx="uri"></r>');
root.setAttributeNS('uri', 'name', 'v');
assert_equals(serialize(root), '<r xmlns:xx="uri" xx:name="v"/>');
diff --git a/tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html b/tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html
new file mode 100644
index 00000000000..5195b9f04b5
--- /dev/null
+++ b/tests/wpt/tests/domparsing/xml-parse-serialize-roundtrip.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://issues.chromium.org/issues/327273585">
+<link rel=help href="https://issues.chromium.org/issues/41101979">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+function runTest(xmlString, testName) {
+ test(() => {
+ const xmlDoc = (new DOMParser()).parseFromString(xmlString, 'text/xml');
+ const result = (new XMLSerializer()).serializeToString(xmlDoc);
+ assert_equals(result, xmlString);
+ }, `DOMParser and XMLSerializer should round trip with CDATA sections: ${testName}`);
+}
+
+runTest(
+ `<root><![CDATA[
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+]]></root>`,
+ 'large CDATA');
+
+runTest(
+ '<root><htmlDefn><![CDATA[<div><![CDATA[ Just Rubbish Data $#$^#^$ ]]]]><![CDATA[></div><div></div>]]></htmlDefn></root>',
+ 'multiple CDATAs');
+</script>
diff --git a/tests/wpt/tests/editing/include/editor-test-utils.js b/tests/wpt/tests/editing/include/editor-test-utils.js
index 9c5600af77b..f0c4f583992 100644
--- a/tests/wpt/tests/editing/include/editor-test-utils.js
+++ b/tests/wpt/tests/editing/include/editor-test-utils.js
@@ -568,5 +568,8 @@ class EditorTestUtils {
}) - (${EditorTestUtils.getNodeDescription(range.endContainer)}, ${range.endOffset})`;
}
+ static waitForRender() {
+ return new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve)));
+ }
}
diff --git a/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html b/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html
index 39e8b46e69b..cac621ad3cd 100644
--- a/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html
+++ b/tests/wpt/tests/editing/other/selection-change-not-fired-if-selection-set-to-root.html
@@ -3,6 +3,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
+<script src="../include/editor-test-utils.js"></script>
<body>
<div contenteditable="true" id="target">
@@ -11,13 +12,13 @@
// Selectionchange event should not get fired if the selection is already set to the beginning of the root
promise_test(async () => {
let selectionChangeCount = 0;
- document.getElementById("target").focus();
- await new Promise(resolve => step_timeout(resolve, 50));
+ const target = document.getElementById("target");
+ await new test_driver.click(target);
+ await EditorTestUtils.waitForRender();
document.addEventListener("selectionchange", () => ++selectionChangeCount);
- test_driver.send_keys(target, "\uE003");
- // Waits a short time to allow any events to be processed.
- await new Promise(resolve => step_timeout(resolve, 50));
+ await new test_driver.send_keys(target, "\uE003");
+ await EditorTestUtils.waitForRender();
assert_equals(selectionChangeCount, 0, "Selectionchange event should not get fired");
- }, "Selectionchange event not get fired when the selection is already set to the beginning of the root ");
+ }, "Selectionchange event should not get fired when the selection is already set to the beginning of the root ");
</script>
</body> \ No newline at end of file
diff --git a/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js b/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js
index e472fccdc4d..ee0cdd84efa 100644
--- a/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js
+++ b/tests/wpt/tests/fledge/tentative/generate-bid-browser-signals.https.window.js
@@ -11,7 +11,9 @@
// META: variant=?17-20
// META: variant=?21-24
// META: variant=?25-28
-// META: variant=?29-last
+// META: variant=?29-32
+// META: variant=?33-36
+// META: variant=?37-last
"use strict";
@@ -35,7 +37,21 @@ subsetTest(promise_test, async test => {
'bidCount': 0,
'multiBidLimit': 1,
'prevWinsMs': [],
- 'forDebuggingOnlySampling': false
+ 'forDebuggingOnlySampling': false,
+ 'viewCounts': {
+ 'pastHour': 0,
+ 'pastDay': 0,
+ 'pastWeek': 0,
+ 'past30Days': 0,
+ 'past90Days': 0
+ },
+ 'clickCounts': {
+ 'pastHour': 0,
+ 'pastDay': 0,
+ 'pastWeek': 0,
+ 'past30Days': 0,
+ 'past90Days': 0
+ }
};
let biddingLogicURL = createBiddingScriptURL({
generateBid:
@@ -48,6 +64,17 @@ subsetTest(promise_test, async test => {
expectedBrowserSignals.forDebuggingOnlyInCooldownOrLockout =
browserSignals.forDebuggingOnlyInCooldownOrLockout;
+ // Don't check exact values of view/click reports.
+ function zeroCounts(object) {
+ object.pastHour = 0;
+ object.pastDay = 0;
+ object.pastWeek = 0;
+ object.past30Days = 0;
+ object.past90Days = 0;
+ }
+ zeroCounts(browserSignals.viewCounts);
+ zeroCounts(browserSignals.clickCounts);
+
// Remove deprecated field, if present.
delete browserSignals.prevWins;
@@ -947,3 +974,253 @@ subsetTest(promise_test, async test => {
}
});
}, 'browserSignals.wasmHelper.');
+
+
+// Generates 0 or 1 clicks, dependent on `produceAttributionSrc` &
+// `produceUserAction`, and `numViews` views for `igOwner`, provided by
+// `viewClickProvider`.
+async function generateViewsAndClicks(
+ test, uuid, viewClickProvider, igOwner, numViews, produceAttributionSrc,
+ produceUserAction) {
+ let iframe = await createIframe(test, viewClickProvider);
+ let script = `
+ // We use a wrapper iframe here so the original remains in communication.
+ let frame = document.createElement('iframe');
+ document.body.appendChild(frame);
+ let frameDocument = frame.contentDocument;
+ let a = frameDocument.createElement('a');
+ a.href = '${RESOURCE_PATH}/record-click.py?' +
+ 'eligible_origin=${igOwner}&num_views=${numViews}';
+ if (${produceAttributionSrc}) {
+ a.attributionSrc = '';
+ }
+ a.target = '_self';
+ a.appendChild(frameDocument.createTextNode('Click me'));
+ frameDocument.body.appendChild(a);
+
+ if (${produceUserAction}) {
+ // Note: test_driver.click() seems to not work well with Chrome's
+ // content_shell; while .bless() does... unreliably.
+ // headless_shell/chrome path seems to work reliably. User activation
+ // is used sparingly to work around content_shell flakiness.
+ await test_driver.bless('User-initiated click', () => { a.click() });
+ } else {
+ a.click();
+ }
+ `;
+
+ await runInFrame(test, iframe, script);
+}
+
+// Keep running a basic auction with an interest group in
+// `interestGroupOverrides` until it succeeds; joining and leaving the
+// IG every time to bypass caching which is permitted to provide stale
+// view/click counts.
+async function keepTryingAuctionUntilWinBypassCaching(
+ test, uuid, interestGroupOverrides) {
+ while (true) {
+ await joinInterestGroup(test, uuid, interestGroupOverrides);
+ let result = await runBasicFledgeAuction(test, uuid);
+ if (result !== null) { // Got a winner.
+ break;
+ }
+ await leaveInterestGroup(interestGroupOverrides);
+ }
+}
+
+// Like keepTryingAuctionUntilWinBypassCaching but for auctions with
+// cross-origin interest group, owned by `igOwner`.
+async function crossOriginKeepTryingAuctionUntilWinBypassCaching(
+ test, uuid, igOwner, interestGroupOverrides) {
+ while (true) {
+ await joinCrossOriginInterestGroup(
+ test, uuid, igOwner, interestGroupOverrides);
+ const auctionConfigOverrides = {interestGroupBuyers: [igOwner]};
+ let result =
+ await runBasicFledgeAuction(test, uuid, auctionConfigOverrides);
+ if (result !== null) { // Got a winner.
+ break;
+ }
+ await leaveCrossOriginInterestGroup(
+ test, uuid, igOwner, interestGroupOverrides);
+ }
+}
+
+// Generates `numViews` views and 0 or 1 clicks based on `produceAttributionSrc`
+// and `produceUserAction`, by `viewClickProvider` available to `igOwner`, then
+// creates an interest group for `igOwner` with given
+// `viewAndClickCountsProviders`, and runs an auction
+// to make sure the events are eventually available.
+async function testClickiness(
+ test, igOwner, viewClickProvider, numViews, produceAttributionSrc,
+ produceUserAction, viewAndClickCountsProviders = undefined) {
+ const uuid = generateUuid(test);
+
+ await generateViewsAndClicks(
+ test, uuid, viewClickProvider, igOwner, numViews, produceAttributionSrc,
+ produceUserAction);
+
+ // For clicks to be recorded, both attributionsrc attribution must exist
+ // and a user action must be used. If we don't expect clicks, we can expect
+ // that the number is exactly 0 since re-running the test won't break that.
+ //
+ // This is relying on all tests using Ad-Auction-Record-Event using distinct
+ // `viewClickProvider`s.
+ let clicksBadTest =
+ produceAttributionSrc && produceUserAction ? '< 1' : ' !== 0';
+
+ let viewsBadTest = (numViews > 0) ? `< ${numViews}` : ' !== 0';
+
+ // Join an IG to read view/click info back. We use a UUID for a name to make
+ // sure nothing old is cached, since view/clicks are permitted to be a bit
+ // stale.
+ let interestGroupOverrides = {
+ owner: igOwner,
+ name: uuid,
+ biddingLogicURL: createBiddingScriptURL({
+ origin: igOwner,
+ generateBid: `
+ // We should see at least one click and numViews views the test injects.
+ if (browserSignals.clickCounts.pastHour ${clicksBadTest} ||
+ browserSignals.clickCounts.pastDay ${clicksBadTest} ||
+ browserSignals.clickCounts.pastWeek ${clicksBadTest} ||
+ browserSignals.clickCounts.past30Days ${clicksBadTest} ||
+ browserSignals.clickCounts.past90Days ${clicksBadTest} ||
+ browserSignals.viewCounts.pastHour ${viewsBadTest} ||
+ browserSignals.viewCounts.pastDay ${viewsBadTest} ||
+ browserSignals.viewCounts.pastWeek ${viewsBadTest} ||
+ browserSignals.viewCounts.past30Days ${viewsBadTest} ||
+ browserSignals.viewCounts.past90Days ${viewsBadTest}) {
+ return -1;
+ }
+ `
+ })
+ };
+
+ if (viewAndClickCountsProviders) {
+ interestGroupOverrides.viewAndClickCountsProviders =
+ viewAndClickCountsProviders;
+ }
+
+ await crossOriginKeepTryingAuctionUntilWinBypassCaching(
+ test, uuid, igOwner, interestGroupOverrides);
+}
+
+subsetTest(promise_test, async test => {
+ const IG_OWNER = OTHER_ORIGIN5;
+ const VIEW_CLICK_PROVIDER = OTHER_ORIGIN6;
+ await testClickiness(
+ test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 2,
+ /*produceAttributionSrc=*/ true,
+ /*produceUserAction=*/ true, [VIEW_CLICK_PROVIDER]);
+}, 'browserSignals for clickiness.');
+
+subsetTest(promise_test, async test => {
+ const IG_OWNER = OTHER_ORIGIN5;
+ const VIEW_CLICK_PROVIDER = OTHER_ORIGIN5;
+
+ await testClickiness(
+ test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 4,
+ /*produceAttributionSrc=*/ false,
+ /*produceUserAction=*/ false);
+}, 'IG owner is default clickiness provider if nothing is specified');
+
+subsetTest(promise_test, async test => {
+ const IG_OWNER = OTHER_ORIGIN4;
+ const VIEW_CLICK_PROVIDER = OTHER_ORIGIN4;
+
+ await testClickiness(
+ test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 6,
+ /*produceAttributionSrc=*/ true,
+ /*produceUserAction=*/ true, []);
+}, 'IG owner is default clickiness provider if empty list provided');
+
+subsetTest(promise_test, async test => {
+ const IG_OWNER = OTHER_ORIGIN3;
+ const VIEW_CLICK_PROVIDER = OTHER_ORIGIN3;
+
+ await testClickiness(
+ test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 0,
+ /*produceAttributionSrc=*/ true,
+ /*produceUserAction=*/ true, []);
+}, 'browserSignals for clickiness --- just a click');
+
+subsetTest(promise_test, async test => {
+ const IG_OWNER = OTHER_ORIGIN2;
+ const VIEW_CLICK_PROVIDER = OTHER_ORIGIN2;
+
+ await testClickiness(
+ test, IG_OWNER, VIEW_CLICK_PROVIDER, /*numViews=*/ 1,
+ /*produceAttributionSrc=*/ true,
+ /*produceUserAction=*/ false, [VIEW_CLICK_PROVIDER]);
+}, 'browserSignals for clickiness --- no click report w/o user action');
+
+subsetTest(promise_test, async test => {
+ const uuid = generateUuid(test);
+ const IG_OWNER = window.location.origin;
+ const VIEW_CLICK_PROVIDER1 = OTHER_ORIGIN1;
+ const VIEW_CLICK_PROVIDER2 = window.location.origin;
+
+ // From provider 1 have click, no views.
+ // From provider 2 have views, no clicks;
+ await generateViewsAndClicks(
+ test, uuid, VIEW_CLICK_PROVIDER1, IG_OWNER,
+ /*numViews=*/ 0, /*produceAttributionSrc=*/ true,
+ /*produceUserAction=*/ true);
+ await generateViewsAndClicks(
+ test, uuid, VIEW_CLICK_PROVIDER2, IG_OWNER,
+ /*numViews=*/ 2, /*produceAttributionSrc=*/ false,
+ /*produceUserAction=*/ false);
+
+ // Create an IG that subscribes only to provider 2 --- it should only see
+ // the views.
+ let interestGroupOverrides = {
+ name: uuid,
+ viewAndClickCountsProviders: [VIEW_CLICK_PROVIDER2],
+ biddingLogicURL: createBiddingScriptURL({
+ generateBid: `
+ if (browserSignals.clickCounts.pastHour !== 0 ||
+ browserSignals.viewCounts.pastHour < 2) {
+ throw JSON.stringify(browserSignals);
+ }
+ `
+ })
+ };
+
+ await keepTryingAuctionUntilWinBypassCaching(
+ test, uuid, interestGroupOverrides);
+
+ // Now see that subscribing only to 1 provides only the click.
+ interestGroupOverrides = {
+ name: uuid,
+ viewAndClickCountsProviders: [VIEW_CLICK_PROVIDER1],
+ biddingLogicURL: createBiddingScriptURL({
+ generateBid: `
+ if (browserSignals.clickCounts.pastHour < 1 ||
+ browserSignals.viewCounts.pastHour !== 0) {
+ throw JSON.stringify(browserSignals);
+ }
+ `
+ })
+ };
+
+ await keepTryingAuctionUntilWinBypassCaching(
+ test, uuid, interestGroupOverrides);
+
+ // Now subscribe to both.
+ interestGroupOverrides = {
+ name: uuid,
+ viewAndClickCountsProviders: [VIEW_CLICK_PROVIDER1, VIEW_CLICK_PROVIDER2],
+ biddingLogicURL: createBiddingScriptURL({
+ generateBid: `
+ if (browserSignals.clickCounts.pastHour < 1 ||
+ browserSignals.viewCounts.pastHour < 2) {
+ throw JSON.stringify(browserSignals);
+ }
+ `
+ })
+ };
+
+ await keepTryingAuctionUntilWinBypassCaching(
+ test, uuid, interestGroupOverrides);
+}, 'browserSignals for clickiness --- viewAndClickCountsProviders works.');
diff --git a/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js b/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js
index 0a18ea40d3d..49ebfd1c596 100644
--- a/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js
+++ b/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js
@@ -695,6 +695,16 @@ async function joinCrossOriginInterestGroup(test, uuid, origin, interestGroupOve
`await joinInterestGroup(test_instance, "${uuid}", ${interestGroup})`);
}
+// Leaves a cross-origin interest group, by running a leave in an iframe.
+async function leaveCrossOriginInterestGroup(test, uuid, origin, interestGroupOverrides = {}) {
+ let interestGroup = JSON.stringify(
+ createInterestGroupForOrigin(uuid, origin, interestGroupOverrides));
+
+ let iframe = await createIframe(test, origin, 'join-ad-interest-group');
+ await runInFrame(test, iframe,
+ `await leaveInterestGroup(${interestGroup})`);
+}
+
// Joins an interest group in a top-level window, which has the same origin
// as the joined interest group.
async function joinInterestGroupInTopLevelWindow(
diff --git a/tests/wpt/tests/fledge/tentative/resources/record-click.py b/tests/wpt/tests/fledge/tentative/resources/record-click.py
new file mode 100644
index 00000000000..b4e76873d9b
--- /dev/null
+++ b/tests/wpt/tests/fledge/tentative/resources/record-click.py
@@ -0,0 +1,21 @@
+# This responds with a page reporting a click event to the origin provided in
+# the `eligible_origin` query param. The pages loads `num_views` copies of
+# record-view.py as images in a clickiness-eligible way; with them reporting
+# view events.
+def main(request, response):
+ eligible_origin = request.GET.get(b"eligible_origin")
+ num_views = int(request.GET.get(b"num_views"))
+ response.status = (200, b"OK")
+ response.headers.set(b"Content-Type", b"text/html")
+ response.headers.set(
+ b"Ad-Auction-Record-Event",
+ b"type=\"click\", eligible-origins=(\"%s\")" % eligible_origin)
+
+ result = b"<!DOCTYPE html>"
+ img_template = b"<img src=\"record-view.py?i=%d&eligible_origin=%s\"" + \
+ b" attributionsrc>"
+ for i in range(0, num_views):
+ view = img_template % (i, eligible_origin)
+ result = result + view
+ return result.decode("utf-8")
+
diff --git a/tests/wpt/tests/fledge/tentative/resources/record-view.py b/tests/wpt/tests/fledge/tentative/resources/record-view.py
new file mode 100644
index 00000000000..d423b2d9c72
--- /dev/null
+++ b/tests/wpt/tests/fledge/tentative/resources/record-view.py
@@ -0,0 +1,19 @@
+# This responds with an image reporting a view event to the origin provided in
+# the `eligible_origin` query param.
+def main(request, response):
+ eligible_origin = request.GET.get(b"eligible_origin")
+ response.status = (200, b"OK")
+ response.headers.set(b"Content-Type", b"image/png")
+ response.headers.set(
+ b"Ad-Auction-Record-Event",
+ b"type=\"view\", eligible-origins=(\"%s\")" % eligible_origin)
+ png = b"\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" + \
+ b"\x49\x48\x44\x52\x00\x00\x00\x05\x00\x00\x00\x05" + \
+ b"\x08\x06\x00\x00\x00\x8d\x6f\x26\xe5\x00\x00\x00" + \
+ b"\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e" + \
+ b"\xc4\x01\x95\x2b\x0e\x1b\x00\x00\x00\x15\x49\x44" + \
+ b"\x41\x54\x08\x99\x63\x64\xf8\xcf\xf0\x9f\x01\x0d" + \
+ b"\x30\xa1\x0b\x50\x41\x10\x00\xcd\xaa\x02\x08\x0f" + \
+ b"\x23\x6b\x59\x00\x00\x00\x00\x49\x45\x4e\x44\xae" + \
+ b"\x42\x60\x82"
+ return png
diff --git a/tests/wpt/tests/focus/focus-element-crash.html b/tests/wpt/tests/focus/focus-element-crash.html
new file mode 100644
index 00000000000..27df1c0b130
--- /dev/null
+++ b/tests/wpt/tests/focus/focus-element-crash.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<meta charset="utf-8">
+<meta name="assert" content="focus element adopted or remounted shouldn't crash.">
+
+<body>
+
+<!--focus element remounted test case-->
+<audio onloadstart="select.focus()" src=""></audio>
+<iframe id="iframe"></iframe>
+<table id="table">
+ <td>
+ <select id="select" onblur=";"></select>
+ </td>
+</table>
+<script>
+ window.addEventListener("load", _ => iframe.appendChild(table));
+</script>
+
+<!--focus element adopted test case-->
+<input id="username" type="text" placeholder="username">
+<input id="password" type="text" placeholder="password">
+</body>
+<script>
+ let search = document.getElementById("search");
+ let username = document.getElementById("username");
+ username.focus();
+ window.onload = () => document.adoptNode(username);
+ username.addEventListener("blur", function (e) {
+ document.body.append(`event:${e.type} fire.`)
+ });
+</script>
+</html>
diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml
new file mode 100644
index 00000000000..319b5b8e04c
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/WEB_FEATURES.yml
@@ -0,0 +1,4 @@
+features:
+- name: canvas-createconicgradient
+ files:
+ - 2d.gradient.conic.*
diff --git a/tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml b/tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml
new file mode 100644
index 00000000000..5d9106c1cd6
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/element/manual/fill-and-stroke-styles/WEB_FEATURES.yml
@@ -0,0 +1,5 @@
+features:
+- name: canvas-createconicgradient
+ files:
+ - conic-gradient.html
+ - conic-gradient-rotation.html
diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml
new file mode 100644
index 00000000000..319b5b8e04c
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/WEB_FEATURES.yml
@@ -0,0 +1,4 @@
+features:
+- name: canvas-createconicgradient
+ files:
+ - 2d.gradient.conic.*
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md
deleted file mode 100644
index b3c24c3f82d..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-Because this test suite is run as a virtual suite and it's quite deep in the
-folders, we have to use abbreviations for the test names to not run over 200
-characters, which is problematic on Windows.
-
-* unspecified -> "u"
-* unsafe-none -> "un"
-* same-origin -> "so"
-* same-origin-allow-popups -> "soap"
-* restrict-properties -> omitted
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html
deleted file mode 100644
index 1c315b35d7f..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-closed.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!doctype html>
-<title> Check openee.closed access is allowed for COOP: restrict-properties</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/test-access-property.js"></script>
-<script>
-
-testAccessProperty(
- "closed",
- w => w.closed,
- expectReport = false,
- use_restrict_properties = true
-);
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html
deleted file mode 100644
index 7a96f4f5762..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-openee-rp-ro.https.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!doctype html>
-<title>
- COOP reports are sent to the openee when the openee used COOP-RO:
- restrict-properties and its same-origin opener tries to access it.
-</title>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/try-access.js"></script>
-<script>
-
-const directory = "/html/cross-origin-opener-policy";
-const same_origin = get_host_info().HTTPS_ORIGIN;
-
-promise_test(async t => {
- const report_token = token();
- const openee_token = token();
- const opener_token = token(); // The current test window.
-
- const opener_url = location.href;
-
- const reportTo = reportToHeaders(report_token);
- const openee_url = same_origin + executor_path + reportTo.header +
- reportTo.coopReportOnlyRestrictPropertiesHeader +
- `&uuid=${openee_token}`;
-
- const openee = window.open(openee_url);
- t.add_cleanup(() => send(openee_token, "window.close()"))
-
- // 1. Make sure the new document to be loaded.
- send(openee_token, `
- send("${opener_token}", "Ready");
- `);
- let reply = await receive(opener_token);
- assert_equals(reply, "Ready");
-
- // 2. Try to access the openee. A report is sent, because of COOP-RO:
- // restrict-properties.
- tryAccess(openee);
-
- // 3. Check a report is sent to the openee.
- let report =
- await receiveReport(report_token, "access-to-coop-page-from-opener");
- assert_equals(report.type, "coop");
- assert_equals(report.url, openee_url.replace(/"/g, '%22'));
- assert_equals(report.body.disposition, "reporting");
- assert_equals(report.body.effectivePolicy, "restrict-properties");
- assert_equals(report.body.property, "blur");
- assert_source_location_missing(report);
- assert_equals(report.body.openerURL, opener_url);
- assert_equals(report.body.openeeURL, undefined);
- assert_equals(report.body.otherDocumentURL, undefined);
- assert_equals(report.body.referrer, opener_url);
- assert_equals(report.body.initialPopupURL, undefined);
-}, "access-reporting-openee-rp-ro");
-
-</script>
-
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html
deleted file mode 100644
index 9e1e85b16a5..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-opener-rp-ro.https.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!doctype html>
-<title>
- COOP reports are sent to the opener when the opener used COOP-RO:
- restrict-properties and its same-origin openee tries to access it.
-</title>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/resources/common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/try-access.js"></script>
-<script>
-
-const directory = "/html/cross-origin-opener-policy";
-const same_origin = get_host_info().HTTPS_ORIGIN;
-
-promise_test(async t => {
- // The test window.
- const this_window_token = token();
-
- // The "opener" window. This has COOP and a reporter.
- const opener_report_token= token();
- const opener_token = token();
- const opener_reportTo = reportToHeaders(opener_report_token);
- const opener_url = same_origin + executor_path + opener_reportTo.header +
- opener_reportTo.coopReportOnlyRestrictPropertiesHeader +
- `&uuid=${opener_token}`;
-
- // The "openee" window. This is same origin with the "opener".
- const openee_report_token= token();
- const openee_token = token();
- const openee_url = same_origin + executor_path + `&uuid=${openee_token}`;
-
- // 1. Create the opener window.
- let opener_window_proxy = window.open(opener_url);
- t.add_cleanup(() => send(opener_token, "window.close()"));
-
- // 2. The opener opens its openee.
- send(opener_token, `
- openee = window.open("${openee_url}");
- send("${this_window_token}", "ACK 1");
- `);
- assert_equals("ACK 1", await receive(this_window_token));
- t.add_cleanup(() => send(openee_token, "window.close()"));
-
- // 3. The openee tries to access its opener.
- send(openee_token, addScriptAndTriggerOnload(
- directory + "/reporting/resources/try-access.js",
- "tryAccess(opener);")
- );
-
- // 4. Check a report sent to the opener.
- let report =
- await receiveReport(opener_report_token, "access-to-coop-page-from-openee");
- assert_equals(report.type, "coop");
- assert_equals(report.url, opener_url.replace(/"/g, '%22'));
- assert_equals(report.body.disposition, "reporting");
- assert_equals(report.body.effectivePolicy, "restrict-properties");
- assert_equals(report.body.property, "blur");
- assert_source_location_missing(report);
- assert_equals(report.body.openerURL, undefined);
- assert_equals(report.body.openeeURL, openee_url);
- assert_equals(report.body.otherDocumentURL, undefined);
- assert_equals(report.body.referrer, undefined);
- assert_equals(report.body.initialPopupURL, openee_url);
-}, "access-reporting-opener-rp-ro");
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html
deleted file mode 100644
index 5bc718e2a89..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/access-reporting-post-message.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!doctype html>
-<title> Check openee.postMessage() access is allowed for COOP: restrict-properties</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/test-access-property.js"></script>
-<script>
-
-testAccessProperty(
- "postMessage",
- w => w.postMessage("message", "*"),
- expectReport = false,
- use_restrict_properties = true
-);
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html
deleted file mode 100644
index e5c87751748..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-promise_test(async t => {
- const popup_token = token();
- const second_popup_token = token();
- const reply_token = token();
-
- const unsafe_none_url = getExecutorPath(
- popup_token,
- SAME_ORIGIN.origin,
- { coop: "unsafe-none"});
-
- const restrict_properties_url = getExecutorPath(
- second_popup_token,
- SAME_ORIGIN.origin,
- { coop: "restrict-properties"});
-
- // We open popup and then ping it, it will respond after loading.
- const popup = window.open(unsafe_none_url);
- send(popup_token, `send('${reply_token}', 'Popup loaded');`);
- assert_equals(await receive(reply_token), 'Popup loaded');
-
- // Make sure the popup will be closed once the test has run, keeping a clean
- // state.
- t.add_cleanup(() => {
- send(popup_token, `close()`);
- });
-
- // Now navigate this popup to a restrict-properties page.
- send(popup_token, `document.location = '${restrict_properties_url}'`);
- send(second_popup_token, `send('${reply_token}', 'Popup loaded');`);
- assert_equals(await receive(reply_token), 'Popup loaded');
-
- // Navigate again to the original page.
- send(second_popup_token, `document.location = '${unsafe_none_url}'`);
- send(popup_token, `send('${reply_token}', 'Popup loaded');`);
- assert_equals(await receive(reply_token), 'Popup loaded');
-
- // Give some time for things to settle across processes etc. before
- // proceeding with verifications.
- await new Promise(resolve => { t.step_timeout(resolve, 500); });
-
- // Verify that we have full access to the popup.
- assert_false(popup.closed, 'Popup is closed from opener?');
- assert_true(await getPopupHasOpener(popup_token) === "true",
- 'Popup has nulled opener?');
- assert_true(canAccessProperty(popup, "document"),
- 'Main page has dom access to the popup?');
- assert_true(canAccessProperty(popup, "frames"),
- 'Main page has cross origin access to the popup?');
-
-}, "COOP: restrict-properties has no impact in a navigation chain between " +
- "multiple unsafe-none pages.");
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers
deleted file mode 100644
index 073ce7adfbd..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/coop-rp-in-navigation-chain.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: unsafe-none
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js
deleted file mode 100644
index 1247400a4e3..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js
+++ /dev/null
@@ -1,144 +0,0 @@
-// META: script=/common/get-host-info.sub.js
-// META: script=/common/utils.js
-// META: script=/common/dispatcher/dispatcher.js
-
-const executor_path = '/common/dispatcher/executor.html?pipe=';
-const cross_origin = get_host_info().OTHER_ORIGIN;
-const same_origin = get_host_info().ORIGIN;
-const coep_require_corp_header =
- '|header(Cross-Origin-Embedder-Policy,require-corp)';
-const corp_cross_origin_header =
- '|header(Cross-Origin-Resource-Policy,cross-origin)';
-const coop_restrict_properties_header =
- '|header(Cross-Origin-Opener-Policy,restrict-properties)';
-
-function iframePopupAboutBlankTest(
- origin, {expectedCrossOriginIsolated}, description) {
- promise_test(async t => {
- assert_true(crossOriginIsolated, 'Is main frame crossOriginIsolated?');
- assert_true(
- 'SharedArrayBuffer' in globalThis,
- 'Is SharedArrayBuffer defined in main frame?');
-
- const reply_token = token();
- const iframe_token = token();
-
- const iframe = document.createElement('iframe');
- iframe.src = origin + executor_path + coep_require_corp_header +
- corp_cross_origin_header + `&uuid=${iframe_token}`;
- document.body.appendChild(iframe);
-
- send(iframe_token, `send('${reply_token}', 'Iframe loaded');`);
- assert_equals(await receive(reply_token), 'Iframe loaded');
-
- send(iframe_token, `
- window.popup = window.open();
- send('${reply_token}', popup === null);
- `);
- assert_equals(await receive(reply_token), 'false', 'Is popup handle null?');
-
- send(
- iframe_token,
- `send('${reply_token}', popup.window.crossOriginIsolated);`);
- assert_equals(
- await receive(reply_token), `${expectedCrossOriginIsolated}`,
- 'Is popup crossOriginIsolated?');
-
- send(iframe_token, `
- send('${reply_token}', 'SharedArrayBuffer' in popup.window.globalThis);
- `);
- assert_equals(
- await receive(reply_token), `${expectedCrossOriginIsolated}`,
- 'Is SharedArrayBuffer defined in popup?');
-
- // Test whether the popup's subframe is crossOriginIsolated
- const popup_iframe_token = token();
- const popup_iframe_src = origin + executor_path + coep_require_corp_header +
- corp_cross_origin_header + `&uuid=${popup_iframe_token}`;
- send(iframe_token, `
- const iframe = window.popup.document.createElement('iframe');
- iframe.src = '${popup_iframe_src}';
- popup.document.body.appendChild(iframe);
- `);
-
- send(popup_iframe_token, `
- send('${reply_token}', 'Iframe in popup loaded');
- `);
- assert_equals(await receive(reply_token), 'Iframe in popup loaded');
-
- send(popup_iframe_token, `
- send('${reply_token}', crossOriginIsolated);
- `);
- assert_equals(
- await receive(reply_token), `${expectedCrossOriginIsolated}`,
- 'Is iframe in popup crossOriginIsolated?');
-
- send(popup_iframe_token, `
- send('${reply_token}', 'SharedArrayBuffer' in globalThis);
- `);
- assert_equals(
- await receive(reply_token), `${expectedCrossOriginIsolated}`,
- 'Is SharedArrayBuffer defined in iframe in popup?');
-
- // Test whether a nested iframe is crossOriginIsolated
- const popup_nested_iframe_token = token();
- const popup_nested_iframe_src = origin + executor_path +
- coep_require_corp_header + corp_cross_origin_header +
- `&uuid=${popup_nested_iframe_token}`;
- send(iframe_token, `
- blank_iframe = popup.document.createElement('iframe');
- blank_iframe.src = '';
- popup.document.body.appendChild(blank_iframe);
- nested_iframe =
- blank_iframe.contentDocument.createElement('iframe');
- nested_iframe.src = '${popup_nested_iframe_src}';
- blank_iframe.contentDocument.body.appendChild(nested_iframe);
- `);
-
- send(popup_nested_iframe_token, `
- send('${reply_token}', 'Nested iframe in popup loaded');
- `);
- assert_equals(await receive(reply_token), 'Nested iframe in popup loaded');
-
- send(popup_nested_iframe_token, `
- send('${reply_token}', crossOriginIsolated);
- `);
- assert_equals(
- await receive(reply_token), `${expectedCrossOriginIsolated}`,
- 'Is nested iframe in popup crossOriginIsolated?');
-
- send(popup_nested_iframe_token, `
- send('${reply_token}', 'SharedArrayBuffer' in globalThis);
- `);
- assert_equals(
- await receive(reply_token), `${expectedCrossOriginIsolated}`,
- 'Is SharedArrayBuffer defined in nested iframe in popup?');
-
- // Navigate the popup out of the initial empty document, with COOP:RP and
- // COEP: require-corp. Expect to be crossOriginIsolated.
- const popup_token = token();
- const popup_src = origin + executor_path + coop_restrict_properties_header +
- coep_require_corp_header + `&uuid=${popup_token}`;
- send(iframe_token, `popup.window.location = '${popup_src}';`);
-
- send(popup_token, `send('${reply_token}', 'Popup loaded');`);
- assert_equals(await receive(reply_token), 'Popup loaded');
-
- send(popup_token, `send('${reply_token}', crossOriginIsolated);`);
- assert_equals(
- await receive(reply_token), 'true',
- 'Is popup crossOriginIsolated after navigation?');
-
- send(popup_token, `
- send('${reply_token}', 'SharedArrayBuffer' in globalThis);
- `);
- assert_equals(
- await receive(reply_token), 'true',
- 'Is SharedArrayBuffer defined in popup after navigation?');
- }, description);
-}
-
-iframePopupAboutBlankTest(
- cross_origin, {expectedCrossOriginIsolated: false}, 'Cross-origin iframe');
-iframePopupAboutBlankTest(
- same_origin, {expectedCrossOriginIsolated: true}, 'Same-origin iframe');
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers
deleted file mode 100644
index 19d0dbe4e18..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.js.headers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
-Cross-Origin-Embedder-Policy: require-corp
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html
deleted file mode 100644
index 8cf2679e190..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<meta name="variant" content="?1-1">
-<meta name="variant" content="?2-2">
-<meta name="variant" content="?3-3">
-<meta name="variant" content="?4-4">
-<meta name="variant" content="?5-5">
-<meta name="variant" content="?6-6">
-<meta name="variant" content="?7-7">
-<meta name="variant" content="?8-8">
-<meta name="variant" content="?9-last">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/dispatcher/dispatcher.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src=/common/subset-tests.js></script>
-<script src=/common/utils.js></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/iframe-test.js"></script>
-
-<body>
-<script>
-
-// This document has COOP: restrict-properties. The popup has COOP: same-origin.
-// Opening from an iframe should not be different from opening from the main
-// frame and the opener should be severed.
-[
- {
- "title": "same origin iframe, same origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "same site iframe, same origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "cross origin iframe, same origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "same origin iframe, same site popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "severed"
- },
- {
- "title": "same site iframe, same site popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_SITE,
- "opener": "severed"
- },
- {
- "title": "cross origin iframe, same site popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "severed"
- },
- {
- "title": "same origin iframe, cross origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "same site iframe, cross origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "cross origin iframe, cross origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "severed"
- }
-].forEach(variant => {
- subsetTest(
- iframe_test,
- `COOP: restrict-properties to popup COOP: same-origin via an iframe, ` +
- `with ${variant.title}`,
- variant.iframeOrigin,
- variant.popupOrigin,
- { coop: 'same-origin' },
- variant.opener);
-});
-</script>
-</body>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-so.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html
deleted file mode 100644
index f3af3ca7db1..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<meta name="variant" content="?1-2">
-<meta name="variant" content="?3-4">
-<meta name="variant" content="?5-6">
-<meta name="variant" content="?7-8">
-<meta name="variant" content="?9-last">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/dispatcher/dispatcher.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src=/common/subset-tests.js></script>
-<script src=/common/utils.js></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/iframe-test.js"></script>
-
-<body>
-<script>
-
-
-// This document has COOP: restrict-properties. The popup has COOP:
-// same-origin-allow-popups. Opening from an iframe should not be different from
-// opening from the main frame and the opener should be severed.
-[
- {
- "title": "same origin iframe, same origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "same site iframe, same origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "cross origin iframe, same origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "same origin iframe, same site popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "severed"
- },
- {
- "title": "same site iframe, same site popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_SITE,
- "opener": "severed"
- },
- {
- "title": "cross origin iframe, same site popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "severed"
- },
- {
- "title": "same origin iframe, cross origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "same site iframe, cross origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "severed"
- },
- {
- "title": "cross origin iframe, cross origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "severed"
- }
-].forEach(variant => {
- subsetTest(
- iframe_test,
- `COOP: restrict-properties to popup COOP: same-origin-allow-popups ` +
- `via an iframe, with ${variant.title}`,
- variant.iframeOrigin,
- variant.popupOrigin,
- { coop: 'same-origin-allow-popups' },
- variant.opener);
-});
-</script>
-</body>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-soap.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html
deleted file mode 100644
index 560dfd90511..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<meta name="variant" content="?1-2">
-<meta name="variant" content="?3-4">
-<meta name="variant" content="?5-6">
-<meta name="variant" content="?7-8">
-<meta name="variant" content="?9-last">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/dispatcher/dispatcher.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src=/common/subset-tests.js></script>
-<script src=/common/utils.js></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/iframe-test.js"></script>
-
-<body>
-<script>
-
-// This document has COOP: restrict-properties. The popup has COOP: unsafe-none.
-// Opening from an iframe should not be different from opening from the main
-// frame and the opener should be severed.
-[
- {
- "title": "same origin iframe, same origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "same site iframe, same origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "cross origin iframe, same origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "same origin iframe, same site popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "restricted"
- },
- {
- "title": "same site iframe, same site popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_SITE,
- "opener": "restricted"
- },
- {
- "title": "cross origin iframe, same site popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "restricted"
- },
- {
- "title": "same origin iframe, cross origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "same site iframe, cross origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "cross origin iframe, cross origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "restricted"
- }
-].forEach(variant => {
- subsetTest(
- iframe_test,
- `COOP: restrict-properties to popup COOP: unsafe-none via an iframe, ` +
- `with ${variant.title}`,
- variant.iframeOrigin,
- variant.popupOrigin,
- { coop: 'unsafe-none' },
- variant.opener);
-});
-</script>
-</body>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-to-un.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html
deleted file mode 100644
index 17840724d9e..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<meta name="variant" content="?1-2">
-<meta name="variant" content="?3-4">
-<meta name="variant" content="?5-6">
-<meta name="variant" content="?7-8">
-<meta name="variant" content="?9-last">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/common/dispatcher/dispatcher.js></script>
-<script src=/common/get-host-info.sub.js></script>
-<script src=/common/subset-tests.js></script>
-<script src=/common/utils.js></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/iframe-test.js"></script>
-
-<body>
-<script>
-
-// This document has COOP: restrict-properties. The popup has COOP:
-// restrict-properties. Opening from an iframe should not be different from
-// opening from the main frame and the opener should be restricted if
-// cross-origin.
-[
- {
- "title": "same origin iframe, same origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "preserved"
- },
- {
- "title": "same site iframe, same origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_ORIGIN,
- "opener": "preserved"
- },
- {
- "title": "cross origin iframe, same origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_ORIGIN,
- "opener": "preserved"
- },
- {
- "title": "same origin iframe, same site popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "restricted"
- },
- {
- "title": "same site iframe, same site popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": SAME_SITE,
- "opener": "restricted"
- },
- {
- "title": "cross origin iframe, same site popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": SAME_SITE,
- "opener": "restricted"
- },
- {
- "title": "same origin iframe, cross origin popup",
- "iframeOrigin": SAME_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "same site iframe, cross origin popup",
- "iframeOrigin": SAME_SITE,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "restricted"
- },
- {
- "title": "cross origin iframe, cross origin popup",
- "iframeOrigin": CROSS_ORIGIN,
- "popupOrigin": CROSS_ORIGIN,
- "opener": "restricted"
- }
-].forEach(variant => {
- subsetTest(
- iframe_test,
- `COOP: restrict-properties to popup COOP: restrict-properties via an ` +
- `iframe, with ${variant.title}`,
- variant.iframeOrigin,
- variant.popupOrigin,
- { coop: 'restrict-properties' },
- variant.opener);
-});
-</script>
-</body>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html
deleted file mode 100644
index 10929847ee6..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/named_targeting.https.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-
-<script>
-
-async function createCoopRestrictPropertiesPopup(popupToken, name) {
- const url = SAME_ORIGIN.origin + '/common/dispatcher/executor.html' +
- `?uuid=${popupToken}` +
- '&pipe=|header(Cross-Origin-Opener-Policy, restrict-properties)';
- const popup = window.open(url, name);
- add_completion_callback(() => popup.close());
-
- // Wait for the popup to be loaded.
- const replyToken = token();
- send(popupToken, `send('${replyToken}', 'Done loading')`);
- assert_equals(await receive(replyToken), 'Done loading');
-
- return popup;
-}
-
-promise_test(async t => {
- // Start by opening a first COOP: restrict-properties popup. No name is set to
- // begin with.
- const popupToken1 = token();
- const popup1 = await createCoopRestrictPropertiesPopup(popupToken1, '');
-
- // Once the popup is live, explicitly set a name.
- const name = token();
- send(popupToken1, `window.name = '${name}'`);
-
- // To make sure this name has been propagated to other processes, send a dummy
- // message from the popup to the main page, and wait for it to be received.
- // It should be delivered after the name change is replicated.
- const message_waiter = new Promise(resolve => {
- onmessage = (event) => {
- if (event.data == 'Waited enough') { resolve(); }
- }
- });
- send(popupToken1, `opener.postMessage('Waited enough', '*')`);
- await message_waiter;
-
- // Finally, call window.open with the same name. This should not resolve
- // across browsing context groups, and create a brand new popup.
- const popupToken2 = token();
- const popup2 = await createCoopRestrictPropertiesPopup(popupToken2, name);
- assert_not_equals(popup1, popup2,
- 'Named targeting resolved across isolation boundaries');
-
-}, 'Verify that named targeting does not work across isolation boundaries.');
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html
deleted file mode 100644
index e5313a6e222..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "severed",
- "origin": SAME_ORIGIN
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "severed",
- "origin": SAME_SITE
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "severed",
- "origin": CROSS_ORIGIN
- }
-].forEach(variant => {
- popup_test(`${variant.origin.name} ${variant.title}`, variant.origin,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers
deleted file mode 100644
index 46ad58d83bf..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-so.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: same-origin
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html
deleted file mode 100644
index 595a10a84bb..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": SAME_ORIGIN
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": SAME_SITE
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": CROSS_ORIGIN
- }
-].forEach(variant => {
- popup_test(`${variant.origin.name} ${variant.title}`, variant.origin,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers
deleted file mode 100644
index d83ed86fb9b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-soap.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: same-origin-allow-popups
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html
deleted file mode 100644
index 595a10a84bb..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-u.https.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": SAME_ORIGIN
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": SAME_SITE
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": CROSS_ORIGIN
- }
-].forEach(variant => {
- popup_test(`${variant.origin.name} ${variant.title}`, variant.origin,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html
deleted file mode 100644
index 595a10a84bb..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": SAME_ORIGIN
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": SAME_SITE
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted",
- "origin": CROSS_ORIGIN
- }
-].forEach(variant => {
- popup_test(`${variant.origin.name} ${variant.title}`, variant.origin,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers
deleted file mode 100644
index 073ce7adfbd..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-un.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: unsafe-none
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html
deleted file mode 100644
index a84d52584e9..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with empty coop",
- "coop": "",
- "opener": "restricted"
- },
- {
- "title": "popup with coop unsafe-none",
- "coop": "unsafe-none",
- "opener": "restricted"
- },
- {
- "title": "popup with coop same-origin",
- "coop": "same-origin",
- "opener": "severed"
- },
- {
- "title": "popup with coop same-origin-allow-popups",
- "coop": "same-origin-allow-popups",
- "opener": "severed"
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted"
- }
-].forEach(variant => {
- popup_test(`Cross-origin ${variant.title}`, CROSS_ORIGIN,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-cross-origin.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html
deleted file mode 100644
index c0020fa23a4..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with empty coop",
- "coop": "",
- "opener": "restricted"
- },
- {
- "title": "popup with coop unsafe-none",
- "coop": "unsafe-none",
- "opener": "restricted"
- },
- {
- "title": "popup with coop same-origin",
- "coop": "same-origin",
- "opener": "severed"
- },
- {
- "title": "popup with coop same-origin-allow-popups",
- "coop": "same-origin-allow-popups",
- "opener": "severed"
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "preserved"
- }
-].forEach(variant => {
- popup_test(`Same-origin ${variant.title}`, SAME_ORIGIN,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-origin.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html
deleted file mode 100644
index 7d115ac7e63..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<meta name=timeout content=long>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../../resources/common.js"></script>
-<script src="../../resources/popup-test.js"></script>
-<script>
-
-[
- {
- "title": "popup with empty coop",
- "coop": "",
- "opener": "restricted"
- },
- {
- "title": "popup with coop unsafe-none",
- "coop": "unsafe-none",
- "opener": "restricted"
- },
- {
- "title": "popup with coop same-origin",
- "coop": "same-origin",
- "opener": "severed"
- },
- {
- "title": "popup with coop same-origin-allow-popups",
- "coop": "same-origin-allow-popups",
- "opener": "severed"
- },
- {
- "title": "popup with coop restrict-properties",
- "coop": "restrict-properties",
- "opener": "restricted"
- }
-].forEach(variant => {
- popup_test(`Same-site ${variant.title}`, SAME_SITE,
- { coop: variant.coop }, variant.opener);
-});
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers
deleted file mode 100644
index d5c99062d2b..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/popup-with-same-site.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html
deleted file mode 100644
index 9bc171a269c..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!doctype html>
-<title>
- Verify that we consider browsing context group reuse for COOP reporting.
-</title>
-<meta name="timeout" content="long">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/try-access.js"></script>
-<script src="/html/cross-origin-opener-policy/resources/common.js"></script>
-<script
- src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js?pipe=sub&report_id=f1e361ab5854f2dcfe0224b19bc53199&report_only_id=b6fe666b74547291d52d72790adde05c"></script>
-<script>
-
-const same_origin = get_host_info().HTTPS_ORIGIN;
-const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
-
-promise_test(async test => {
- // To receive reports use the same hard-coded value as the one passed in the
- // headers and to "reporting-common.js".
- const report_token = "b6fe666b74547291d52d72790adde05c";
- const reportTo = reportToHeaders(report_token);
-
- // 1. Open a popup without any COOP. It should be in a
- // different virtual browsing context group.
- const opener_token = token(); // For this window.
- const initial_openee_token = token();
- const initial_openee_url = cross_origin + executor_path +
- `&uuid=${initial_openee_token}`;
- let openee = window.open(initial_openee_url);
-
- // 2. Navigate the openee to a COOP-RO: restrict-properties page. If the
- // policy was enforced, it would live in the same browsing context group as
- // this page. The virtual browsing context group should similarly be equal.
- // Note: We omit the reporting endpoint header, because it is not possible to
- // easily escape it. Since it is not necessary in this test, we skip it.
- const final_openee_token = token();
- const final_openee_url = same_origin + executor_path +
- reportTo.coopReportOnlyRestrictPropertiesHeader +
- `&uuid=${final_openee_token}`;
-
- send(initial_openee_token, `location.href = '${final_openee_url}';`);
- test.add_cleanup(() => send(final_openee_token, "window.close()"));
-
- // Wait for the final openee to load.
- send(final_openee_token,
- `send("${opener_token}", "Ready");
- `);
- assert_equals(await receive(opener_token), "Ready");
-
- // 3. Try to access the openee from the opener. No report should be sent.
- tryAccess(openee);
-
- let report =
- await receiveReport(report_token, "access-from-coop-page-to-openee")
- assert_equals(report, "timeout");
-
-}, "access-reporting-browsing-context-group-reuse");
-
-</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers
deleted file mode 100644
index 33abadd83dd..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-bcg-reuse.https.html.sub.headers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cross-Origin-Opener-Policy-Report-Only: restrict-properties; report-to="coop-report-only-endpoint"
-Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=f1e361ab5854f2dcfe0224b19bc53199", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=b6fe666b74547291d52d72790adde05c"
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html
deleted file mode 100644
index b89030f218f..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<meta name=timeout content=long>
-<title>Opening a restrict-properties</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/resources/common.js"></script>
-<script
- src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js?pipe=sub&report_id=fb054dadb3a9ec17b5cd5c0152d2a7dd&report_only_id=c265b07fbb3bffa2cd2a5179d686ced2"></script>
-
-<script>
-
-let tests = [
- // popup origin, popup COOP, popup COEP, popup COOP report-only, popup COEP report-only, expected reports
-
- // Open a same-origin popup with COOP unsafe-none, which mismatches with the
- // current document (opener) COOP report-only (restrict-properties) values.
- [
- SAME_ORIGIN,
- "unsafe-none",
- "",
- "",
- "",
- []
- ],
-
- // Open a cross-origin popup with COOP unsafe-none, which mismatches with the
- // current document (opener) COOP report-only (restrict-properties) values.
- [
- CROSS_ORIGIN,
- "unsafe-none",
- "",
- "",
- "",
- []
- ],
-
- // Open a same-origin popup with COOP restrict-properties, which matches with
- // the current document (opener) COOP report-only (restrict-properties) value.
- [
- SAME_ORIGIN,
- "restrict-properties",
- "",
- "",
- "",
- []
- ],
-];
-
-runNavigationReportingTests(document.title, tests);
-
-</script>
-
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers
deleted file mode 100644
index 07ecad96f24..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp-ro.https.html.sub.headers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cross-Origin-Opener-Policy-Report-Only: restrict-properties; report-to="coop-report-only-endpoint"
-Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=fb054dadb3a9ec17b5cd5c0152d2a7dd", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=c265b07fbb3bffa2cd2a5179d686ced2"
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html
deleted file mode 100644
index 6b31f7e0098..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<meta name=timeout content=long>
-<title>Opening a restrict-properties</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/resources/common.js"></script>
-<script
- src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js?pipe=sub&report_id=ed5a8be35e4e21c2ba960e6574e0a32c&report_only_id=fa22ddc676642edae42c75defb82ba2e"></script>
-
-<script>
-
-let tests = [
- // popup origin, popup COOP, popup COEP, popup COOP report-only, popup COEP report-only, expected reports
-
- // Open a same-origin popup with COOP unsafe-none, which mismatches
- // with the current document (opener) COOP (restrict-properties) values.
- [
- SAME_ORIGIN,
- "unsafe-none",
- "",
- "",
- "",
- []
- ],
-
- // Open a cross-origin popup with COOP unsafe-none, which mismatches
- // with the current document (opener) COOP (restrict-properties) values.
- [
- CROSS_ORIGIN,
- "unsafe-none",
- "",
- "",
- "",
- []
- ],
-
- // Open a same-origin popup with COOP restrict-properties, which matches with
- // the current document (opener) COOP (restrict-properties) value.
- [
- SAME_ORIGIN,
- "restrict-properties",
- "",
- "",
- "",
- []
- ],
-];
-
-runNavigationReportingTests(document.title, tests);
-
-</script>
-
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers
deleted file mode 100644
index a61e2919c8a..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-from-rp.https.html.sub.headers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cross-Origin-Opener-Policy: restrict-properties; report-to="coop-report-endpoint"
-Reporting-Endpoints: coop-report-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=ed5a8be35e4e21c2ba960e6574e0a32c", coop-report-only-endpoint="https://{{host}}:{{ports[https][0]}}/reporting/resources/report.py?reportID=fa22ddc676642edae42c75defb82ba2e"
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html
deleted file mode 100644
index c47e59cd8f1..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!doctype html>
-<meta name=timeout content=long>
-<title>reporting same origin with report-to</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/resources/common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js"></script>
-
-<script>
-
-let tests = [
- // popup origin, popup COOP, popup COEP, popup COOP report-only, popup COEP report-only, expected reports
-
- // Open a same-origin popup with COOP report-only restrict-properties, which
- // mismatches with the current document (opener) COOP (unsafe-none).
- [
- SAME_ORIGIN,
- "",
- "",
- `restrict-properties; report-to="${popupReportOnlyEndpoint.name}"`,
- "",
- []
- ],
-
- // Open a cross-origin popup with COOP report-only restrict-properties, which
- // mismatches with the current document (opener) COOP (unsafe-none).
- [
- CROSS_ORIGIN,
- "",
- "",
- `restrict-properties; report-to="${popupReportOnlyEndpoint.name}"`,
- "",
- []
- ],
-];
-
-runNavigationReportingTests(document.title, tests);
-
-</script>
-
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers
deleted file mode 100644
index 16903320bb5..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp-ro.https.html.headers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cross-Origin-Opener-Policy: unsafe-none
-Referrer-Policy: origin
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html
deleted file mode 100644
index ff60e8c5afd..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!doctype html>
-<meta name=timeout content=long>
-<title>reporting same origin with report-to</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="/common/utils.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/html/cross-origin-opener-policy/resources/common.js"></script>
-<script src="/html/cross-origin-opener-policy/reporting/resources/reporting-common.js"></script>
-
-<script>
-
-let tests = [
- // popup origin, popup COOP, popup COEP, popup COOP report-only, popup COEP report-only, expected reports
-
- // Open a same-origin popup with COOP report-only restrict-properties, which
- // mismatches with the current document (opener) COOP (unsafe-none).
- [
- SAME_ORIGIN,
- `restrict-properties; report-to="${popupReportEndpoint.name}"`,
- "",
- "",
- "",
- []
- ],
-
- // Open a cross-origin popup with COOP report-only restrict-properties, which
- // mismatches with the current document (opener) COOP (unsafe-none).
- [
- CROSS_ORIGIN,
- `restrict-properties; report-to="${popupReportEndpoint.name}"`,
- "",
- "",
- "",
- []
- ],
-];
-
-runNavigationReportingTests(document.title, tests);
-
-</script>
-
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers
deleted file mode 100644
index 16903320bb5..00000000000
--- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/restrict-properties/reporting-to-rp.https.html.headers
+++ /dev/null
@@ -1,2 +0,0 @@
-Cross-Origin-Opener-Policy: unsafe-none
-Referrer-Policy: origin
diff --git a/tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml b/tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml
new file mode 100644
index 00000000000..4700eca4a12
--- /dev/null
+++ b/tests/wpt/tests/html/editing/editing-0/writing-suggestions/WEB_FEATURES.yml
@@ -0,0 +1,3 @@
+features:
+- name: writingsuggestions
+ files: "**"
diff --git a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html
index b177f47b757..5042557212e 100644
--- a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html
+++ b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types-ref.html
@@ -1,8 +1,8 @@
<!doctype html>
<html>
<body>
-<div style="width: 1em; color: white; background-color: black;">
- <marquee loop="1" behavior="alternate">m</marquee>
+<div style="vertical-align: text-bottom; display: inline-block;">
+ <div style="width: 10px; height: 10px; background-color: green;"></div>
</div>
</body>
</html>
diff --git a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html
index 57f49850321..f16c58bb85d 100644
--- a/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html
+++ b/tests/wpt/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-with-trusted-types.html
@@ -1,12 +1,12 @@
<!doctype html>
<html>
<head>
-<meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">
-<link rel="match" href="marquee-with-trusted-types-ref.html">
+ <meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">
+ <link rel="match" href="marquee-with-trusted-types-ref.html">
</head>
<body>
-<div style="width: 1em; color: white; background-color: black;">
- <marquee loop="1" behavior="alternate">m</marquee>
-</div>
+<marquee scrollamount="0">
+ <div style="width: 10px; height: 10px; background-color: green;"></div>
+</marquee>
</body>
</html>
diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe-hit-test-during-load-event-crash.html b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe-hit-test-during-load-event-crash.html
new file mode 100644
index 00000000000..f668fc51573
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/embedded-content/the-iframe-element/iframe-hit-test-during-load-event-crash.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<div style="visibility: hidden;">
+ <iframe id="iframe"></iframe>
+</div>
+<script>
+ window.addEventListener("load", _ =>
+ iframe.contentDocument.elementFromPoint(0, 0)
+ );
+</script>
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html
new file mode 100644
index 00000000000..57ea51e367c
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<link rel=stylesheet href="resources/customizable-select-in-page.css">
+<link rel=stylesheet href="../customizable-select/resources/customizable-select-styles.css">
+<script src="resources/customizable-select-in-page.js"></script>
+
+<div class=customizable-select-in-page size=4>
+ <div class="customizable-select-option selected">select multiple</div>
+ <div class=customizable-select-option>two</div>
+ <div class=customizable-select-option>three</div>
+</div>
+
+<div class=customizable-select-in-page size=4>
+ <div class="customizable-select-option selected">select size=4</div>
+ <div class=customizable-select-option>two</div>
+ <div class=customizable-select-option>three</div>
+</div>
+
+<div class="customizable-select-in-page disabled" size=4>
+ <div class="customizable-select-option selected">select disabled</div>
+ <div class=customizable-select-option>two</div>
+ <div class=customizable-select-option>three</div>
+ <div class=customizable-select-option>disabled</div>
+</div>
+
+<!-- TODO(crbug.com/407801061): Fix padding and remove this div. -->
+<div style="position: absolute; top: 150px">
+
+<div class=customizable-select-in-page size=4>
+ <div class="customizable-select-option selected">with disabled option</div>
+ <div class=customizable-select-option>two</div>
+ <div class=customizable-select-option>three</div>
+ <div class="customizable-select-option disabled">disabled</div>
+</div>
+
+<div class=customizable-select-in-page size=4>
+ <div class=customizable-select-legend>optgroup</div>
+ <div class=customizable-select-option>option in optgroup</div>
+ <div class=customizable-select-option>option out of optgroup</div>
+</div>
+
+<div class=customizable-select-in-page size=4>
+ <div class="customizable-select-legend disabled">disabled optgroup</div>
+ <div class="customizable-select-option disabled">option in optgroup</div>
+ <div class=customizable-select-option>option out of optgroup</div>
+</div>
+
+<script>
+updateCustomizableSelectInPageSize();
+</script>
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html
new file mode 100644
index 00000000000..b3bf75eb0ff
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-appearance.tentative.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://issues.chromium.org/issues/357649033">
+<link rel=match href="customizable-select-in-page-appearance-ref.html">
+
+<style>
+select {
+ appearance: base-select;
+}
+</style>
+
+<select multiple>
+ <option selected>select multiple</option>
+ <option>two</option>
+ <option>three</option>
+</select>
+
+<select size=4>
+ <option selected>select size=4</option>
+ <option>two</option>
+ <option>three</option>
+</select>
+
+<select size=4 disabled>
+ <option selected>select disabled</option>
+ <option>two</option>
+ <option>three</option>
+ <option disabled>disabled</option>
+</select>
+
+<!-- TODO(crbug.com/407801061): Fix padding and remove this div. -->
+<div style="position: absolute; top: 150px">
+
+<select size=4>
+ <option selected>with disabled option</option>
+ <option>two</option>
+ <option>three</option>
+ <option disabled>disabled</option>
+</select>
+
+<select size=4>
+ <optgroup>
+ <legend>optgroup</legend>
+ <option>option in optgroup</option>
+ </optgroup>
+ <option>option out of optgroup</option>
+</select>
+
+<select size=4>
+ <optgroup disabled>
+ <legend>disabled optgroup</legend>
+ <option>option in optgroup</option>
+ </optgroup>
+ <option>option out of optgroup</option>
+</select>
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html
new file mode 100644
index 00000000000..24e6e39ea48
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-keyboard-behavior.tentative.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://issues.chromium.org/issues/357649033">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+
+<style>
+select {
+ appearance: base-select;
+}
+</style>
+
+<button id=beforemultiple>button before multiple</button>
+<select multiple>
+ <option class=one>one</option>
+ <option class=two>two</option>
+ <option class=disabled disabled>disabled</option>
+</select>
+
+<button id=beforesize>button before size=4</button>
+<select size=4>
+ <option class=one>one</option>
+ <option class=two>two</option>
+ <option class=disabled disabled>disabled</option>
+</select>
+
+<script>
+const tabKey = '\uE004';
+const enterKey = '\uE007';
+const spaceKey = '\uE00D';
+const arrowUp = '\uE013';
+const arrowDown = '\uE015';
+function pressKey(keyCode) {
+ return (new test_driver.Actions()
+ .keyDown(keyCode)
+ .keyUp(keyCode))
+ .send();
+}
+
+promise_test(async () => {
+ const select = document.querySelector('select[multiple]');
+ const optionOne = select.querySelector('.one');
+ const optionTwo = select.querySelector('.two');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected at the start of the test.');
+
+ beforemultiple.focus();
+ await pressKey(tabKey);
+ assert_equals(document.activeElement, optionOne,
+ 'The first option should get focus when keyboard focusing into a select.');
+
+ await pressKey(spaceKey);
+ assert_equals(document.activeElement, optionOne,
+ 'Focus should not be moved after pressing space.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One option should be selected after the first space.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should be selected after the first space.');
+
+ await pressKey(arrowDown);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after arrow down.');
+
+ await pressKey(arrowDown);
+ assert_equals(document.activeElement, optionTwo,
+ 'Disabled option should not be focusable.');
+
+ await pressKey(spaceKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after second space.');
+ assert_equals(select.selectedOptions.length, 2,
+ 'Two options should be selected after second space.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should stay selected after second space.');
+ assert_equals(select.selectedOptions[1], optionTwo,
+ 'Second option should be selected after second space.');
+
+ await pressKey(spaceKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after third space.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One option should be selected after third space.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should stay selected after third space.');
+
+ await pressKey(enterKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after first enter.');
+ assert_equals(select.selectedOptions.length, 2,
+ 'Two options should be selected after first enter.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should stay selected after first enter.');
+ assert_equals(select.selectedOptions[1], optionTwo,
+ 'Second option should be selected after first enter.');
+
+ await pressKey(enterKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after second enter.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One option should be selected after second enter.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should stay selected after second enter.');
+
+ await pressKey(arrowUp);
+ assert_equals(document.activeElement, optionOne,
+ 'First option should be focused after arrow up.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One option should be selected after arrow up.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should stay selected after arrow up.');
+}, 'Keyboard behavior for base appearance <select multiple>');
+
+promise_test(async () => {
+ const select = document.querySelector('select[size]');
+ const optionOne = select.querySelector('.one');
+ const optionTwo = select.querySelector('.two');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected at the start of the test.');
+
+ beforesize.focus();
+ await pressKey(tabKey);
+ assert_equals(document.activeElement, optionOne,
+ 'The first option should get focus when keyboard focusing into a select.');
+
+ await pressKey(spaceKey);
+ assert_equals(document.activeElement, optionOne,
+ 'Focus should not be moved after pressing space.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One option should be selected after the first space.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'First option should be selected after the first space.');
+
+ await pressKey(arrowDown);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after arrow down.');
+
+ await pressKey(arrowDown);
+ assert_equals(document.activeElement, optionTwo,
+ 'Disabled option should not be focusable.');
+
+ await pressKey(spaceKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after second space.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One options should be selected after second space.');
+ assert_equals(select.selectedOptions[0], optionTwo,
+ 'Second option should be selected after second space.');
+
+ await pressKey(spaceKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after third space.');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected after third space.');
+
+ await pressKey(enterKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after first enter.');
+ assert_equals(select.selectedOptions.length, 1,
+ 'One option should be selected after first enter.');
+ assert_equals(select.selectedOptions[0], optionTwo,
+ 'Second option should be selected after first enter.');
+
+ await pressKey(enterKey);
+ assert_equals(document.activeElement, optionTwo,
+ 'Second option should be focused after second enter.');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected after second enter.');
+
+ await pressKey(arrowUp);
+ assert_equals(document.activeElement, optionOne,
+ 'First option should be focused after arrow up.');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected after arrow up.');
+}, 'Keyboard behavior for base appearance <select size=4>');
+
+promise_test(async () => {
+ document.body.focus();
+
+ const selectMultiple = document.querySelector('select[multiple]');
+ selectMultiple.focus();
+ assert_not_equals(document.activeElement, selectMultiple, '<select multiple>');
+
+ const selectSize = document.querySelector('select[size]');
+ selectSize.focus();
+ assert_not_equals(document.activeElement, selectSize, '<select size=4>');
+}, 'Base appearance in-page selects should not be focusable.');
+
+// TODO(crbug.com/357649033): Test tab key while focused on an option after deciding behavior.
+</script>
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html
new file mode 100644
index 00000000000..d5b93693cf7
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/customizable-select-in-page-mouse-behavior.tentative.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<link rel=author href="mailto:jarhar@chromium.org">
+<link rel=help href="https://issues.chromium.org/issues/357649033">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+
+<style>
+select {
+ appearance: base-select;
+}
+</style>
+
+<select multiple>
+ <option class=one>one</option>
+ <option class=two>two</option>
+ <option class=disabled disabled>disabled</option>
+</select>
+
+<select size=4>
+ <option class=one>one</option>
+ <option class=two>two</option>
+ <option class=disabled disabled>disabled</option>
+</select>
+
+<script>
+function click(element) {
+ return (new test_driver.Actions()
+ .pointerMove(1, 1, {origin: element})
+ .pointerDown()
+ .pointerUp())
+ .send();
+}
+
+function touch(element) {
+ return (new test_driver.Actions()
+ .addPointer('finger', 'touch')
+ .pointerMove(1, 1, {origin: element, sourceName: 'finger'})
+ .pointerDown({sourceName: 'finger'})
+ .pointerUp({sourceName: 'finger'}))
+ .send();
+}
+
+['mouse', 'touch'].forEach(inputType => {
+ const activate = inputType == 'touch' ? touch : click;
+
+ promise_test(async () => {
+ const select = document.querySelector('select[multiple]');
+ select.value = null;
+ select.removeAttribute('disabled');
+ const optionOne = select.querySelector('.one');
+ const optionTwo = select.querySelector('.two');
+ const disabledOption = select.querySelector('.disabled');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected at the start of the test.');
+
+ await activate(optionOne);
+ assert_equals(select.selectedOptions.length, 1,
+ 'There should be one selected option after first click.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'Option one should be selected after first click.');
+
+ await activate(optionTwo);
+ assert_equals(select.selectedOptions.length, 2,
+ 'There should be two selected options after second click.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'Option one should stay selected after second click.');
+ assert_equals(select.selectedOptions[1], optionTwo,
+ 'Option two should be seleted after second click.');
+
+ await activate(optionTwo);
+ assert_equals(select.selectedOptions.length, 1,
+ 'There should be one selected option after third click.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'Option one should stay selected after third click.');
+
+ await activate(disabledOption);
+ assert_equals(select.selectedOptions.length, 1,
+ 'Disabled option should not be checkable.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'Disabled option should not be checkable.');
+
+ select.setAttribute('disabled', '');
+ await activate(optionTwo);
+ assert_equals(select.selectedOptions.length, 1,
+ 'Disabled select should not have checkable options.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'Disabled select should not have checkable options.');
+ }, `${inputType}: input behavior for base appearance <select multiple>`);
+
+ promise_test(async () => {
+ const select = document.querySelector('select[size]');
+ select.value = null;
+ select.removeAttribute('disabled');
+ const optionOne = select.querySelector('.one');
+ const optionTwo = select.querySelector('.two');
+ const disabledOption = select.querySelector('.disabled');
+ assert_equals(select.selectedOptions.length, 0,
+ 'No options should be selected at the start of the test.');
+
+ await activate(optionOne);
+ assert_equals(select.selectedOptions.length, 1,
+ 'There should be one selected option after first click.');
+ assert_equals(select.selectedOptions[0], optionOne,
+ 'Option one should be selected after first click.');
+
+ await activate(optionTwo);
+ assert_equals(select.selectedOptions.length, 1,
+ 'There should be one selected option after second click.');
+ assert_equals(select.selectedOptions[0], optionTwo,
+ 'Option two should be selected after second click.');
+
+ await activate(optionTwo);
+ assert_equals(select.selectedOptions.length, 0,
+ 'There should be no selected options after third click.');
+
+ await activate(disabledOption);
+ assert_equals(select.selectedOptions.length, 0,
+ 'Disabled option should not be checkable.');
+
+ select.setAttribute('disabled', '');
+ await activate(optionTwo);
+ assert_equals(select.selectedOptions.length, 0,
+ 'Disabled select should not have checkable options.');
+ }, `${inputType}: input behavior for base appearance <select size=4>`);
+});
+</script>
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css
new file mode 100644
index 00000000000..deb080b4756
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.css
@@ -0,0 +1,14 @@
+.customizable-select-in-page {
+ display: inline-block;
+ border: 1px solid;
+ overflow-inline: hidden;
+ overflow-block: scroll;
+}
+
+.customizable-select-in-page.disabled {
+ color: color-mix(in lab, currentColor 50%, transparent);
+}
+
+.customizable-select-in-page:not(.disabled) .customizable-select-legend.disabled {
+ color: color-mix(in lab, currentColor 50%, transparent);
+}
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js
new file mode 100644
index 00000000000..13230943321
--- /dev/null
+++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select-in-page/resources/customizable-select-in-page.js
@@ -0,0 +1,13 @@
+function updateCustomizableSelectInPageSize() {
+ document.querySelectorAll('.customizable-select-in-page').forEach(select => {
+ const size = Number(select.getAttribute('size'));
+ if (size) {
+ let optionHeight = 0;
+ select.querySelectorAll('.customizable-select-option').forEach(option => {
+ const rect = option.getBoundingClientRect();
+ optionHeight = Math.max(optionHeight, rect.height);
+ });
+ select.style.height = (optionHeight * size) + 'px';
+ }
+ });
+}
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html
deleted file mode 100644
index 45a74da7559..00000000000
--- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<select multiple>
- <option>one</option>
- <option>two div button</option>
-</select>
-
-<select multiple size=2>
- <option>one</option>
- <option>two</option>
- <option>three</option>
- <option>four</option>
-</select>
-
-<select multiple>
- <option selected>option</option>
-</select>
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html
deleted file mode 100644
index 48673b446bc..00000000000
--- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html class=reftest-wait>
-<link rel=author href="mailto:jarhar@chromium.org">
-<link rel=match href="select-multiple-base-appearance-ref.html">
-
-<style>
-select, ::picker(select) {
- appearance: base-select;
-}
-</style>
-
-<select multiple>
- <option>one</option>
- <option>
- two
- <div>div</div>
- <button>button</button>
- </option>
-</select>
-
-<select multiple size=2>
- <option>one</option>
- <option>two</option>
- <option>three</option>
- <option>four</option>
-</select>
-
-<select id=needsmultiple>
- <option selected>option</option>
-</select>
-
-<script>
-requestAnimationFrame(() => {
- document.getElementById('needsmultiple').setAttribute('multiple', '');
- requestAnimationFrame(() => {
- document.documentElement.classList.remove('reftest-wait');
- });
-});
-</script>
diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html
index 1e000866099..5afb407640b 100644
--- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html
+++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusability.html
@@ -48,11 +48,9 @@
}
}
- async_test((t) => {
- window.onload = async () => {
- await assert_focus_order([before,within1,after1,dialog2,within2,after2,
- within3,after3,dialog4,within4,after4]);
- t.done();
- };
+ promise_test(async () => {
+ await new Promise(resolve => window.onload = resolve);
+ await assert_focus_order([before,within1,after1,dialog2,within2,after2,
+ within3,after3,dialog4,within4,after4]);
}, "The dialog element itself should not be keyboard focusable.");
</script>
diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html
index 9a9c87167d5..6555f1b43bd 100644
--- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html
+++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html
@@ -35,14 +35,8 @@ function openDialog(openMethod) {
assert_true(dialog.matches(':open'));
assert_equals(dialog.matches(':modal'),openMethod === 'modal');
}
-function getSignal(t) {
- const controller = new AbortController();
- const signal = controller.signal;
- t.add_cleanup(() => controller.abort());
- return signal;
-}
-async function setup(t,closedby) {
+function setup(t,closedby) {
t.add_cleanup(() => {
dialog.close();
dialog.removeAttribute('closedby');
@@ -52,16 +46,14 @@ async function setup(t,closedby) {
if (closedby) {
dialog.setAttribute('closedby',closedby);
}
- // Be sure any pending close events (from prior test cleanups) get fired.
- await waitForRender();
- return getSignal(t);
+ return t.get_signal();
}
['modeless','modal','open'].forEach(openMethod => {
[null,'any','closedrequest','none'].forEach(closedby => {
const testDescription = `for ${openMethod} dialog with closedby=${closedby}`;
promise_test(async (t) => {
- await setup(t,closedby);
+ setup(t,closedby);
openDialog(openMethod);
dialog.requestClose();
assert_false(dialog.open);
@@ -69,25 +61,35 @@ async function setup(t,closedby) {
},`requestClose basic behavior ${testDescription}`);
promise_test(async (t) => {
- const signal = await setup(t,closedby);
+ const signal = setup(t,closedby);
let events = [];
+ const { promise: untilFullyClosed, resolve: hasClosed } = Promise.withResolvers();
dialog.addEventListener('cancel',() => events.push('cancel'),{signal});
- dialog.addEventListener('close',() => events.push('close'),{signal});
+ dialog.addEventListener('close',() => {
+ events.push('close');
+ hasClosed();
+ },{signal});
openDialog(openMethod);
assert_array_equals(events,[]);
dialog.requestClose();
assert_false(dialog.open);
assert_false(dialog.matches(':open'));
assert_array_equals(events,['cancel'],'close is scheduled');
- await waitForRender();
+ await untilFullyClosed;
assert_array_equals(events,['cancel','close']);
},`requestClose fires both cancel and close ${testDescription}`);
promise_test(async (t) => {
- const signal = await setup(t,'none');
+ const signal = setup(t,'none');
let events = [];
+ const { promise: untilFullyClosed, resolve: hasClosed } = Promise.withResolvers();
+ const { promise: untilFullyClosedAgain, resolve: hasClosedAgain } = Promise.withResolvers();
+ const closeResolvers = [hasClosed, hasClosedAgain];
dialog.addEventListener('cancel',() => events.push('cancel'),{signal});
- dialog.addEventListener('close',() => events.push('close'),{signal});
+ dialog.addEventListener('close',() => {
+ events.push('close');
+ closeResolvers.shift()();
+ },{signal});
openDialog(openMethod);
dialog.setAttribute('closedby',closedby);
assert_array_equals(events,[]);
@@ -95,6 +97,7 @@ async function setup(t,closedby) {
assert_false(dialog.open,'Adding closedby after dialog is open');
assert_false(dialog.matches(':open'));
assert_array_equals(events,['cancel']);
+ await untilFullyClosed;
events=[];
openDialog(openMethod);
dialog.removeAttribute('closedby');
@@ -102,11 +105,13 @@ async function setup(t,closedby) {
dialog.requestClose();
assert_false(dialog.open,'Removing closedby after dialog is open');
assert_array_equals(events,['cancel']);
+ await untilFullyClosedAgain;
+ assert_array_equals(events,['cancel', 'close']);
},`closedby has no effect on dialog.requestClose() ${testDescription}`);
if (closedby != "none") {
promise_test(async (t) => {
- const signal = await setup(t,closedby);
+ const signal = setup(t,closedby);
let shouldPreventDefault = true;
dialog.addEventListener('cancel',(e) => {
if (shouldPreventDefault) {
@@ -124,7 +129,7 @@ async function setup(t,closedby) {
},`requestClose can be cancelled ${testDescription}`);
promise_test(async (t) => {
- const signal = await setup(t,closedby);
+ const signal = setup(t,closedby);
dialog.addEventListener('cancel',(e) => e.preventDefault(),{signal});
openDialog(openMethod);
// No user activation here.
@@ -136,7 +141,7 @@ async function setup(t,closedby) {
},`requestClose avoids abuse prevention logic ${testDescription}`);
promise_test(async (t) => {
- await setup(t,closedby);
+ setup(t,closedby);
openDialog(openMethod);
assert_equals(dialog.returnValue,'','Return value starts out empty');
const returnValue = 'The return value';
@@ -153,7 +158,7 @@ async function setup(t,closedby) {
},`requestClose(returnValue) passes along the return value ${testDescription}`);
promise_test(async (t) => {
- await setup(t,closedby);
+ setup(t,closedby);
dialog.addEventListener('cancel',(e) => e.preventDefault(),{once:true});
openDialog(openMethod);
dialog.returnValue = 'foo';
@@ -168,23 +173,27 @@ async function setup(t,closedby) {
});
promise_test(async (t) => {
- await setup(t);
+ setup(t);
dialog.open = true;
dialog.requestClose();
assert_false(dialog.open);
},`requestClose basic behavior when dialog is open via attribute`);
promise_test(async (t) => {
- const signal = await setup(t);
+ const signal = setup(t);
let events = [];
+ const { promise: untilFullyClosed, resolve: hasClosed } = Promise.withResolvers();
dialog.addEventListener('cancel',() => events.push('cancel'),{signal});
- dialog.addEventListener('close',() => events.push('close'),{signal});
+ dialog.addEventListener('close',() => {
+ events.push('close')
+ hasClosed();
+ },{signal});
dialog.open = true;
assert_array_equals(events,[]);
dialog.requestClose();
assert_false(dialog.open);
assert_array_equals(events,['cancel'],'close is scheduled');
- await waitForRender();
+ await untilFullyClosed;
assert_array_equals(events,['cancel','close']);
},`requestClose fires cancel and close when dialog is open via attribute`);
diff --git a/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/col-span-limits.html b/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/col-span-limits.html
index a4a425b9c1f..2a1ac80e65a 100644
--- a/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/col-span-limits.html
+++ b/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/col-span-limits.html
@@ -39,12 +39,21 @@ These two must look the same, each having 2 cells in one row:
</table>
<br>
<table id=table3>
- <col span=1001>
+ <col id="colspan-3" span=1001>
<tr>
<td colspan=1000><div class="square"></div></td>
<td><div class="square"></div></td>
</tr>
</table>
+<table>
+ <tr>
+ <td id="colspan-limit-test1" colspan=5></td>
+ <td id="colspan-limit-test2" colspan=0></td>
+ <td id="colspan-limit-test3" colspan=1000></td>
+ <td id="colspan-limit-test4" colspan=1001></td>
+ <td id="colspan-limit-test5" colspan=5555555></td>
+ </tr>
+</table>
</main>
<script>
@@ -56,4 +65,48 @@ test(() => {
assert_equals(table2.offsetWidth, 51, "table2 width");
assert_equals(table3.offsetWidth, 51, "table3 width");
}, "col span of 1001 must be treated as 1000");
+
+test(() => {
+ let td = document.createElement("td");
+ td.colSpan = 5;
+ assert_equals(td.colSpan, 5);
+
+ td.colSpan = 0;
+ assert_equals(td.colSpan, 1);
+
+ td.colSpan = 1000;
+ assert_equals(td.colSpan, 1000);
+
+ td.colSpan = 1001;
+ assert_equals(td.colSpan, 1000);
+
+ td.colSpan = 555555;
+ assert_equals(td.colSpan, 1000);
+}, "colspan must be clamped to [1, 1000] when set via script");
+
+test(() => {
+ assert_equals(document.getElementById("colspan-limit-test1").colSpan, 5);
+ assert_equals(document.getElementById("colspan-limit-test2").colSpan, 1);
+ assert_equals(document.getElementById("colspan-limit-test3").colSpan, 1000);
+ assert_equals(document.getElementById("colspan-limit-test4").colSpan, 1000);
+ assert_equals(document.getElementById("colspan-limit-test5").colSpan, 1000);
+}, "colspan must be clamped to [1, 1000] when parsing attributes");
+
+test(() => {
+ let column = document.getElementById("colspan-3");
+ column.span = 5;
+ assert_equals(column.span, 5);
+
+ column.span = 0;
+ assert_equals(column.span, 1);
+
+ column.span = 1000;
+ assert_equals(column.span, 1000);
+
+ column.span = 1001;
+ assert_equals(column.span, 1000);
+
+ column.span = 555555;
+ assert_equals(column.span, 1000);
+}, "column span must be clamped to [1, 1000] when set via script");
</script>
diff --git a/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/span-limits.html b/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/span-limits.html
index cdfa61bbcdc..798639b3875 100644
--- a/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/span-limits.html
+++ b/tests/wpt/tests/html/semantics/tabular-data/processing-model-1/span-limits.html
@@ -29,6 +29,17 @@
<!-- We'll add another 65534 rows later -->
</table>
+<table>
+ <tr>
+ <td id="rowspan-limit-test1" rowspan=5></td>
+ <td id="rowspan-limit-test2" rowspan=0></td>
+ <td id="rowspan-limit-test3" rowspan=1000></td>
+ <td id="rowspan-limit-test4" rowspan=65534></td>
+ <td id="rowspan-limit-test5" rowspan=65535></td>
+ <td id="rowspan-limit-test6" rowspan=5555555></td>
+ </tr>
+</table>
+
<script>
var $ = document.querySelector.bind(document);
@@ -63,4 +74,34 @@ test(() => {
assert_equals($("#d1").getBoundingClientRect().bottom,
$("#d2").getBoundingClientRect().bottom);
}, "rowspan of 65535 must be treated as 65534");
+
+test(() => {
+ let td = document.createElement("td");
+ td.rowSpan = 5;
+ assert_equals(td.rowSpan, 5);
+
+ td.rowSpan = 0;
+ assert_equals(td.rowSpan, 0);
+
+ td.rowSpan = 1000;
+ assert_equals(td.rowSpan, 1000);
+
+ td.rowSpan = 65534;
+ assert_equals(td.rowSpan, 65534);
+
+ td.rowSpan = 65535;
+ assert_equals(td.rowSpan, 65534);
+
+ td.rowSpan = 555555;
+ assert_equals(td.rowSpan, 65534);
+}, "rowspan must be clamped to [0, 65534] when set via script");
+
+test(() => {
+ assert_equals(document.getElementById("rowspan-limit-test1").rowSpan, 5);
+ assert_equals(document.getElementById("rowspan-limit-test2").rowSpan, 0);
+ assert_equals(document.getElementById("rowspan-limit-test3").rowSpan, 1000);
+ assert_equals(document.getElementById("rowspan-limit-test4").rowSpan, 65534);
+ assert_equals(document.getElementById("rowspan-limit-test5").rowSpan, 65534);
+ assert_equals(document.getElementById("rowspan-limit-test6").rowSpan, 65534);
+}, "rowspan must be clamped to [0, 65534] when parsing attributes");
</script>
diff --git a/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html
new file mode 100644
index 00000000000..b2366285a41
--- /dev/null
+++ b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-cdata-in-html-document.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<title>Serializing CDATA in an HTML document</title>
+<link rel="help" href="https://html.spec.whatwg.org/multipage/parsing.html#serialising-html-fragments">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(t => {
+ const doc = new DOMParser().parseFromString('<svg xmlns="http://www.w3.org/2000/svg"><![CDATA[<img>]]></svg>', 'application/xml');
+ const el = document.adoptNode(doc.documentElement);
+ assert_equals(el.outerHTML, '<svg xmlns="http://www.w3.org/2000/svg">&lt;img&gt;</svg>');
+});
+</script>
diff --git a/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml b/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml
new file mode 100644
index 00000000000..a1af3e21a48
--- /dev/null
+++ b/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/WEB_FEATURES.yml
@@ -0,0 +1,4 @@
+features:
+- name: pdf-viewer
+ files:
+ - plugins-and-mimetypes.html
diff --git a/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini
new file mode 100644
index 00000000000..7de34991442
--- /dev/null
+++ b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html.ini
@@ -0,0 +1,3 @@
+[set_geolocation_override.https.html]
+ expected:
+ if product != "chrome": ERROR
diff --git a/tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html b/tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html
new file mode 100644
index 00000000000..5cbcf546423
--- /dev/null
+++ b/tests/wpt/tests/infrastructure/testdriver/bidi/emulation/set_geolocation_override.https.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<meta charset="utf-8"/>
+<title>TestDriver bidi.emulation.set_geolocation_override method</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js?feature=bidi"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<script>
+ promise_setup(async () => {
+ // Ensure permission is granted before proceeding.
+ await test_driver.bidi.permissions.set_permission({
+ descriptor: {name: "geolocation"},
+ state: "granted",
+ });
+
+ // Ensure any previously set geolocation emulations are cleared.
+ await test_driver.bidi.emulation.set_geolocation_override(
+ {coordinates: null});
+ });
+
+ /** Get the current geolocation or error */
+ function get_current_geolocation() {
+ return new Promise(
+ resolve => window.navigator.geolocation.getCurrentPosition(
+ position => resolve(position.coords.toJSON()),
+ error => resolve({code: error.code, message: error.message}),
+ // Fail fast if geolocation is not available.
+ {timeout: 500}
+ ))
+ }
+
+ /** Asserts that relevant coordinate properties match */
+ function assert_coordinates_match(actual, expected) {
+ for (const key in expected) {
+ assert_equals(actual[key], expected[key],
+ `"${key}" should match the expected value ${expected[key]}`);
+ }
+ }
+
+ const SOME_COORDINATES = {
+ latitude: 52.51,
+ longitude: 13.39,
+ accuracy: 0.5,
+ altitude: 34,
+ altitudeAccuracy: 0.75,
+ heading: 180,
+ speed: 2.77
+ };
+
+ promise_test(async (t) => {
+ // Get the initial geolocation (might be error).
+ const initial_coords = await get_current_geolocation();
+
+ // Set the geolocation override
+ await test_driver.bidi.emulation.set_geolocation_override({
+ coordinates: SOME_COORDINATES
+ });
+
+ // Get the geolocation after setting the override.
+ const coords = await get_current_geolocation();
+ // Assert the coordinates match the override.
+ assert_coordinates_match(coords, SOME_COORDINATES);
+
+ // Clear the geolocation override.
+ await test_driver.bidi.emulation.set_geolocation_override(
+ {coordinates: null});
+ // Assert coordinates are set to the original value.
+ assert_coordinates_match(await get_current_geolocation(), initial_coords);
+ }, "emulate geolocation and clear override");
+</script>
diff --git a/tests/wpt/tests/interfaces/fedcm.idl b/tests/wpt/tests/interfaces/fedcm.idl
index 215f375432e..5ce2d260f11 100644
--- a/tests/wpt/tests/interfaces/fedcm.idl
+++ b/tests/wpt/tests/interfaces/fedcm.idl
@@ -84,8 +84,10 @@ dictionary IdentityProviderAPIConfig {
dictionary IdentityProviderAccount {
required USVString id;
- required USVString name;
- required USVString email;
+ USVString name;
+ USVString email;
+ USVString tel;
+ USVString username;
USVString given_name;
USVString picture;
sequence<USVString> approved_clients;
diff --git a/tests/wpt/tests/interfaces/image-capture.idl b/tests/wpt/tests/interfaces/image-capture.idl
index 21e03d4db82..26cc7fab5cd 100644
--- a/tests/wpt/tests/interfaces/image-capture.idl
+++ b/tests/wpt/tests/interfaces/image-capture.idl
@@ -3,7 +3,7 @@
// (https://github.com/w3c/webref)
// Source: MediaStream Image Capture (https://w3c.github.io/mediacapture-image/)
-[Exposed=Window]
+[Exposed=Window, SecureContext]
interface ImageCapture {
constructor(MediaStreamTrack videoTrack);
Promise<Blob> takePhoto(optional PhotoSettings photoSettings = {});
diff --git a/tests/wpt/tests/interfaces/mediastream-recording.idl b/tests/wpt/tests/interfaces/mediastream-recording.idl
index 496bfcf2e27..68c891cdc91 100644
--- a/tests/wpt/tests/interfaces/mediastream-recording.idl
+++ b/tests/wpt/tests/interfaces/mediastream-recording.idl
@@ -56,7 +56,7 @@ interface BlobEvent : Event {
readonly attribute DOMHighResTimeStamp timecode;
};
-dictionary BlobEventInit {
+dictionary BlobEventInit : EventInit {
required Blob data;
DOMHighResTimeStamp timecode;
};
diff --git a/tests/wpt/tests/interfaces/turtledove.idl b/tests/wpt/tests/interfaces/turtledove.idl
index b9f50d47885..7f11cdc3790 100644
--- a/tests/wpt/tests/interfaces/turtledove.idl
+++ b/tests/wpt/tests/interfaces/turtledove.idl
@@ -206,6 +206,7 @@ partial interface Navigator {
[Exposed=InterestGroupScriptRunnerGlobalScope]
interface InterestGroupScriptRunnerGlobalScope {
readonly attribute PrivateAggregation? privateAggregation;
+ readonly attribute ProtectedAudienceUtilities protectedAudience;
};
dictionary PASignalValue {
@@ -220,6 +221,12 @@ dictionary PAExtendedHistogramContribution {
bigint filteringId = 0;
};
+[Exposed=InterestGroupScriptRunnerGlobalScope]
+interface ProtectedAudienceUtilities {
+ Uint8Array encodeUtf8(USVString input);
+ USVString decodeUtf8(Uint8Array bytes);
+};
+
[Exposed=InterestGroupBiddingAndScoringScriptRunnerGlobalScope]
interface ForDebuggingOnly {
undefined reportAdAuctionWin(USVString url);
diff --git a/tests/wpt/tests/interfaces/webcodecs.idl b/tests/wpt/tests/interfaces/webcodecs.idl
index 274ef96578a..3d4db1ed49d 100644
--- a/tests/wpt/tests/interfaces/webcodecs.idl
+++ b/tests/wpt/tests/interfaces/webcodecs.idl
@@ -141,7 +141,7 @@ dictionary AudioDecoderConfig {
required DOMString codec;
[EnforceRange] required unsigned long sampleRate;
[EnforceRange] required unsigned long numberOfChannels;
- BufferSource description;
+ AllowSharedBufferSource description;
};
dictionary VideoDecoderConfig {
diff --git a/tests/wpt/tests/interfaces/WebCryptoAPI.idl b/tests/wpt/tests/interfaces/webcrypto.idl
index ff7a89cd0d5..ff7a89cd0d5 100644
--- a/tests/wpt/tests/interfaces/WebCryptoAPI.idl
+++ b/tests/wpt/tests/interfaces/webcrypto.idl
diff --git a/tests/wpt/tests/interfaces/webgpu.idl b/tests/wpt/tests/interfaces/webgpu.idl
index de1f7c1e52b..4fec46a2557 100644
--- a/tests/wpt/tests/interfaces/webgpu.idl
+++ b/tests/wpt/tests/interfaces/webgpu.idl
@@ -109,6 +109,7 @@ dictionary GPUDeviceDescriptor
};
enum GPUFeatureName {
+ "core-features-and-limits",
"depth-clip-control",
"depth32float-stencil8",
"texture-compression-bc",
diff --git a/tests/wpt/tests/interfaces/webnn.idl b/tests/wpt/tests/interfaces/webnn.idl
index 57f2a4a9890..37fcc32501e 100644
--- a/tests/wpt/tests/interfaces/webnn.idl
+++ b/tests/wpt/tests/interfaces/webnn.idl
@@ -36,6 +36,8 @@ interface MLContext {
undefined dispatch(MLGraph graph, MLNamedTensors inputs, MLNamedTensors outputs);
Promise<MLTensor> createTensor(MLTensorDescriptor descriptor);
+ Promise<MLTensor> createConstantTensor(
+ MLOperandDescriptor descriptor, AllowSharedBufferSource inputData);
Promise<ArrayBuffer> readTensor(MLTensor tensor);
Promise<undefined> readTensor(MLTensor tensor, AllowSharedBufferSource outputData);
@@ -133,6 +135,7 @@ interface MLTensor {
readonly attribute FrozenArray<unsigned long> shape;
readonly attribute boolean readable;
readonly attribute boolean writable;
+ readonly attribute boolean constant;
undefined destroy();
};
@@ -154,6 +157,9 @@ interface MLGraphBuilder {
// Create a scalar operand from the specified number of the specified type.
MLOperand constant(MLOperandDataType type, MLNumber value);
+ // Create an operand from a specified constant tensor.
+ MLOperand constant(MLTensor tensor);
+
// Compile the graph up to the specified output operands asynchronously.
Promise<MLGraph> build(MLNamedOperands outputs);
};
diff --git a/tests/wpt/tests/interfaces/webxr-depth-sensing.idl b/tests/wpt/tests/interfaces/webxr-depth-sensing.idl
index 9befd640646..7ddbec7cc97 100644
--- a/tests/wpt/tests/interfaces/webxr-depth-sensing.idl
+++ b/tests/wpt/tests/interfaces/webxr-depth-sensing.idl
@@ -34,6 +34,10 @@ partial interface XRSession {
readonly attribute XRDepthUsage depthUsage;
readonly attribute XRDepthDataFormat depthDataFormat;
readonly attribute XRDepthType? depthType;
+ readonly attribute boolean? depthActive;
+
+ undefined pauseDepthSensing();
+ undefined resumeDepthSensing();
};
[SecureContext, Exposed=Window]
@@ -43,9 +47,10 @@ interface XRDepthInformation {
[SameObject] readonly attribute XRRigidTransform normDepthBufferFromNormView;
readonly attribute float rawValueToMeters;
- readonly attribute XRView? view;
};
+XRDepthInformation includes XRViewGeometry;
+
[Exposed=Window]
interface XRCPUDepthInformation : XRDepthInformation {
[SameObject] readonly attribute ArrayBuffer data;
diff --git a/tests/wpt/tests/interfaces/webxr.idl b/tests/wpt/tests/interfaces/webxr.idl
index 1098000d6c2..874994086a2 100644
--- a/tests/wpt/tests/interfaces/webxr.idl
+++ b/tests/wpt/tests/interfaces/webxr.idl
@@ -118,6 +118,11 @@ interface XRBoundedReferenceSpace : XRReferenceSpace {
readonly attribute FrozenArray<DOMPointReadOnly> boundsGeometry;
};
+[SecureContext, Exposed=Window] interface mixin XRViewGeometry {
+ readonly attribute Float32Array projectionMatrix;
+ [SameObject] readonly attribute XRRigidTransform transform;
+};
+
enum XREye {
"none",
"left",
@@ -126,13 +131,13 @@ enum XREye {
[SecureContext, Exposed=Window] interface XRView {
readonly attribute XREye eye;
- readonly attribute Float32Array projectionMatrix;
- [SameObject] readonly attribute XRRigidTransform transform;
readonly attribute double? recommendedViewportScale;
undefined requestViewportScale(double? scale);
};
+XRView includes XRViewGeometry;
+
[SecureContext, Exposed=Window] interface XRViewport {
readonly attribute long x;
readonly attribute long y;
diff --git a/tests/wpt/tests/interfaces/writing-assistance-apis.idl b/tests/wpt/tests/interfaces/writing-assistance-apis.idl
new file mode 100644
index 00000000000..916daee754e
--- /dev/null
+++ b/tests/wpt/tests/interfaces/writing-assistance-apis.idl
@@ -0,0 +1,193 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Writing Assistance APIs (https://webmachinelearning.github.io/writing-assistance-apis/)
+
+[Exposed=Window, SecureContext]
+interface Summarizer {
+ static Promise<Summarizer> create(optional SummarizerCreateOptions options = {});
+ static Promise<Availability> availability(optional SummarizerCreateCoreOptions options = {});
+
+ Promise<DOMString> summarize(
+ DOMString input,
+ optional SummarizerSummarizeOptions options = {}
+ );
+ ReadableStream summarizeStreaming(
+ DOMString input,
+ optional SummarizerSummarizeOptions options = {}
+ );
+
+ readonly attribute DOMString sharedContext;
+ readonly attribute SummarizerType type;
+ readonly attribute SummarizerFormat format;
+ readonly attribute SummarizerLength length;
+
+ readonly attribute FrozenArray<DOMString>? expectedInputLanguages;
+ readonly attribute FrozenArray<DOMString>? expectedContextLanguages;
+ readonly attribute DOMString? outputLanguage;
+
+ Promise<double> measureInputUsage(
+ DOMString input,
+ optional SummarizerSummarizeOptions options = {}
+ );
+ readonly attribute unrestricted double inputQuota;
+};
+Summarizer includes DestroyableModel;
+
+dictionary SummarizerCreateCoreOptions {
+ SummarizerType type = "key-points";
+ SummarizerFormat format = "markdown";
+ SummarizerLength length = "short";
+
+ sequence<DOMString> expectedInputLanguages;
+ sequence<DOMString> expectedContextLanguages;
+ DOMString outputLanguage;
+};
+
+dictionary SummarizerCreateOptions : SummarizerCreateCoreOptions {
+ AbortSignal signal;
+ CreateMonitorCallback monitor;
+
+ DOMString sharedContext;
+};
+
+dictionary SummarizerSummarizeOptions {
+ AbortSignal signal;
+ DOMString context;
+};
+
+enum SummarizerType { "tl;dr", "teaser", "key-points", "headline" };
+enum SummarizerFormat { "plain-text", "markdown" };
+enum SummarizerLength { "short", "medium", "long" };
+
+[Exposed=Window, SecureContext]
+interface Writer {
+ static Promise<Writer> create(optional WriterCreateOptions options = {});
+ static Promise<Availability> availability(optional WriterCreateCoreOptions options = {});
+
+ Promise<DOMString> write(
+ DOMString input,
+ optional WriterWriteOptions options = {}
+ );
+ ReadableStream writeStreaming(
+ DOMString input,
+ optional WriterWriteOptions options = {}
+ );
+
+ readonly attribute DOMString sharedContext;
+ readonly attribute WriterTone tone;
+ readonly attribute WriterFormat format;
+ readonly attribute WriterLength length;
+
+ readonly attribute FrozenArray<DOMString>? expectedInputLanguages;
+ readonly attribute FrozenArray<DOMString>? expectedContextLanguages;
+ readonly attribute DOMString? outputLanguage;
+
+ Promise<double> measureInputUsage(
+ DOMString input,
+ optional WriterWriteOptions options = {}
+ );
+ readonly attribute unrestricted double inputQuota;
+};
+Writer includes DestroyableModel;
+
+dictionary WriterCreateCoreOptions {
+ WriterTone tone = "neutral";
+ WriterFormat format = "markdown";
+ WriterLength length = "short";
+
+ sequence<DOMString> expectedInputLanguages;
+ sequence<DOMString> expectedContextLanguages;
+ DOMString outputLanguage;
+};
+
+dictionary WriterCreateOptions : WriterCreateCoreOptions {
+ AbortSignal signal;
+ CreateMonitorCallback monitor;
+
+ DOMString sharedContext;
+};
+
+dictionary WriterWriteOptions {
+ DOMString context;
+ AbortSignal signal;
+};
+
+enum WriterTone { "formal", "neutral", "casual" };
+enum WriterFormat { "plain-text", "markdown" };
+enum WriterLength { "short", "medium", "long" };
+
+[Exposed=Window, SecureContext]
+interface Rewriter {
+ static Promise<Rewriter> create(optional RewriterCreateOptions options = {});
+ static Promise<Availability> availability(optional RewriterCreateCoreOptions options = {});
+
+ Promise<DOMString> rewrite(
+ DOMString input,
+ optional RewriterRewriteOptions options = {}
+ );
+ ReadableStream rewriteStreaming(
+ DOMString input,
+ optional RewriterRewriteOptions options = {}
+ );
+
+ readonly attribute DOMString sharedContext;
+ readonly attribute RewriterTone tone;
+ readonly attribute RewriterFormat format;
+ readonly attribute RewriterLength length;
+
+ readonly attribute FrozenArray<DOMString>? expectedInputLanguages;
+ readonly attribute FrozenArray<DOMString>? expectedContextLanguages;
+ readonly attribute DOMString? outputLanguage;
+
+ Promise<double> measureInputUsage(
+ DOMString input,
+ optional RewriterRewriteOptions options = {}
+ );
+ readonly attribute unrestricted double inputQuota;
+};
+Rewriter includes DestroyableModel;
+
+dictionary RewriterCreateCoreOptions {
+ RewriterTone tone = "as-is";
+ RewriterFormat format = "as-is";
+ RewriterLength length = "as-is";
+
+ sequence<DOMString> expectedInputLanguages;
+ sequence<DOMString> expectedContextLanguages;
+ DOMString outputLanguage;
+};
+
+dictionary RewriterCreateOptions : RewriterCreateCoreOptions {
+ AbortSignal signal;
+ CreateMonitorCallback monitor;
+
+ DOMString sharedContext;
+};
+
+dictionary RewriterRewriteOptions {
+ DOMString context;
+ AbortSignal signal;
+};
+
+enum RewriterTone { "as-is", "more-formal", "more-casual" };
+enum RewriterFormat { "as-is", "plain-text", "markdown" };
+enum RewriterLength { "as-is", "shorter", "longer" };
+
+[Exposed=Window, SecureContext]
+interface CreateMonitor : EventTarget {
+ attribute EventHandler ondownloadprogress;
+};
+
+callback CreateMonitorCallback = undefined (CreateMonitor monitor);
+
+enum Availability {
+ "unavailable",
+ "downloadable",
+ "downloading",
+ "available"
+};
+
+interface mixin DestroyableModel {
+ undefined destroy();
+};
diff --git a/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html b/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html
index 714355f5c1c..467cf5d50c7 100644
--- a/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html
+++ b/tests/wpt/tests/mediacapture-streams/MediaDevices-enumerateDevices-per-origin-ids.sub.https.html
@@ -9,8 +9,8 @@
<script src=permission-helper.js></script>
</head>
<body>
- <iframe allow="camera 'src';microphone 'src'" id=same src="/mediacapture-streams/iframe-enumerate.html"></iframe>
-<iframe allow="camera 'src';microphone 'src'" id=cross src="https://{{hosts[][www1]}}:{{ports[https][0]}}/mediacapture-streams/iframe-enumerate.html"></iframe>
+ <iframe allow="camera 'src';microphone 'src';speaker-selection 'src'" id=same src="/mediacapture-streams/iframe-enumerate.html"></iframe>
+<iframe allow="camera 'src';microphone 'src';speaker-selection 'src'" id=cross src="https://{{hosts[][www1]}}:{{ports[https][0]}}/mediacapture-streams/iframe-enumerate.html"></iframe>
<script>
let deviceList;
diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html b/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html
index 856f2ce37ce..1af16659326 100644
--- a/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html
+++ b/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html
@@ -1,85 +1,62 @@
<!doctype html>
-<html>
-<head>
-<title>The pointerout event should not be fired if the pointer doesn't move</title>
+<title>
+ Layout change under a stationary pointer fires boundary events and no pointermove event
+</title>
<meta name="viewport" content="width=device-width">
-<link rel="help" href="https://github.com/w3c/pointerevents/issues/457">
+<link rel="help"
+ href="https://w3c.github.io/pointerevents/#boundary-events-caused-by-layout-changes">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
+<script src="pointerevent_support.js"></script>
<style>
-#target{
- width:100px;
- height:100px;
- background-color:red;
-}
-
-#overlay{
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background-color: rgba(0,0,0,0.2);
- z-index: 1000;
- text-align: center;
- display:none;
-}
+ div {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 50px;
+ height: 50px;
+ }
+
+ #overlay {
+ z-index: 1000;
+ display: none;
+ }
</style>
-</head>
-<body>
-<h1>The pointerout event should not be fired if the pointer doesn't move</h1>
-<h4>
- Test Description: This test checks if the pointerout event dispatched unexpectedly.
- <ol>
- <li>Click on the black rectangle.
- <li>Don't move mouse after clicking.
- </ol>
-</h4>
-<p>
<div id="target"></div>
<div id="overlay"></div>
-<div id="log"></div>
<script>
-function waitForAnimationFrame() {
- return new Promise(resolve => {
- requestAnimationFrame(() => {
- requestAnimationFrame(resolve);
- });
- });
-}
+ "use strict";
-promise_test(async () => {
const target = document.getElementById("target");
+ const overlay = document.getElementById("overlay");
- let out_event_count = 0;
- target.addEventListener("pointerout", function() {
- out_event_count++;
- });
+ let logging_active = false;
+ let num_pointermoves = 0;
- // Wait for the click event on target element and update display style on
- // overlay element.
- const promise = new Promise(resolve => {
- target.addEventListener("click", async function() {
- const overlay = document.getElementById("overlay");
- overlay.style.display= 'block';
- await waitForAnimationFrame();
+ target.addEventListener("click", () => logging_active = true);
+ target.addEventListener("pointermove", () => {
+ if (logging_active) num_pointermoves++;
+ });
- overlay.style.display= 'none'
- await waitForAnimationFrame();
+ promise_test(async t => {
+ await test_driver.click(target);
- resolve();
- }, { once: true });
- });
+ let pointerout_promise = getEvent("pointerout", target);
+ overlay.style.display = "block";
+ await pointerout_promise;
- // Click target.
- test_driver.click(target);
- await promise;
+ let pointerover_promise = getEvent("pointerover", target);
+ overlay.style.display = "none";
+ await waitForAnimationFrames(2);
+ // Why does Chrome time out at the next line w/o the redundant wait above?
+ // Does chrome require something to request a main frame in order to detect
+ // the new pointer target after the style update to generate the event?
+ // https://crbug.com/413595088
+ await pointerover_promise;
- assert_equals(out_event_count, 0, "The pointerout event should not be fired");
-}, "The pointerout event should not be fired if the pointer doesn't move");
+ assert_equals(num_pointermoves, 0, "no pointermove events are expected");
+ }, "Layout change under a stationary pointer fires boundary events and no pointermove event");
</script>
-</body>
-</html>
diff --git a/tests/wpt/tests/resources/chromium/webxr-test.js b/tests/wpt/tests/resources/chromium/webxr-test.js
index 0885b559e63..ce2503b1bbc 100644
--- a/tests/wpt/tests/resources/chromium/webxr-test.js
+++ b/tests/wpt/tests/resources/chromium/webxr-test.js
@@ -757,30 +757,34 @@ class MockRuntime {
const viewport_size = 20;
return [{
eye: vrMojom.XREye.kLeft,
- fieldOfView: {
- upDegrees: 48.316,
- downDegrees: 50.099,
- leftDegrees: 50.899,
- rightDegrees: 35.197
+ geometry: {
+ fieldOfView: {
+ upDegrees: 48.316,
+ downDegrees: 50.099,
+ leftDegrees: 50.899,
+ rightDegrees: 35.197
+ },
+ mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({
+ position: [-0.032, 0, 0],
+ orientation: [0, 0, 0, 1]
+ }))
},
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({
- position: [-0.032, 0, 0],
- orientation: [0, 0, 0, 1]
- })),
viewport: { x: 0, y: 0, width: viewport_size, height: viewport_size }
},
{
eye: vrMojom.XREye.kRight,
- fieldOfView: {
- upDegrees: 48.316,
- downDegrees: 50.099,
- leftDegrees: 50.899,
- rightDegrees: 35.197
+ geometry: {
+ fieldOfView: {
+ upDegrees: 48.316,
+ downDegrees: 50.099,
+ leftDegrees: 50.899,
+ rightDegrees: 35.197
+ },
+ mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({
+ position: [0.032, 0, 0],
+ orientation: [0, 0, 0, 1]
+ }))
},
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform({
- position: [0.032, 0, 0],
- orientation: [0, 0, 0, 1]
- })),
viewport: { x: viewport_size, y: 0, width: viewport_size, height: viewport_size }
}];
}
@@ -835,13 +839,15 @@ class MockRuntime {
return {
eye: viewEye,
- fieldOfView: fov,
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset)),
+ geometry: {
+ fieldOfView: fov,
+ mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset))
+ },
viewport: {
x: xOffset,
- y: 0,
- width: fakeXRViewInit.resolution.width,
- height: fakeXRViewInit.resolution.height
+ y: 0,
+ width: fakeXRViewInit.resolution.width,
+ height: fakeXRViewInit.resolution.height
},
isFirstPersonObserver: fakeXRViewInit.isFirstPersonObserver ? true : false,
viewOffset: composeGFXTransform(fakeXRViewInit.viewOffset)
@@ -915,12 +921,12 @@ class MockRuntime {
let frame_views = this.primaryViews_;
for (let i = 0; i < this.primaryViews_.length; i++) {
- this.primaryViews_[i].mojoFromView =
+ this.primaryViews_[i].geometry.mojoFromView =
this._getMojoFromViewerWithOffset(this.primaryViews_[i].viewOffset);
}
if (this.enabledFeatures_.includes(xrSessionMojom.XRSessionFeature.SECONDARY_VIEWS)) {
for (let i = 0; i < this.secondaryViews_.length; i++) {
- this.secondaryViews_[i].mojoFromView =
+ this.secondaryViews_[i].geometry.mojoFromView =
this._getMojoFromViewerWithOffset(this.secondaryViews_[i].viewOffset);
}
diff --git a/tests/wpt/tests/resources/testdriver.js b/tests/wpt/tests/resources/testdriver.js
index f127e2b2c8d..6e8410b7ea4 100644
--- a/tests/wpt/tests/resources/testdriver.js
+++ b/tests/wpt/tests/resources/testdriver.js
@@ -254,12 +254,57 @@
}
},
/**
- * `log <https://w3c.github.io/webdriver-bidi/#module-log>`_ module.
+ * `emulation <https://www.w3.org/TR/webdriver-bidi/#module-emulation>`_ module.
+ */
+ emulation: {
+ /**
+ * Overrides the geolocation coordinates for the specified
+ * browsing contexts.
+ * Matches the `emulation.setGeolocationOverride
+ * <https://w3c.github.io/webdriver-bidi/#command-emulation-setGeolocationOverride>`_
+ * WebDriver BiDi command.
+ *
+ * @example
+ * await test_driver.bidi.emulation.set_geolocation_override({
+ * coordinates: {
+ * latitude: 52.51,
+ * longitude: 13.39,
+ * accuracy: 0.5,
+ * altitude: 34,
+ * altitudeAccuracy: 0.75,
+ * heading: 180,
+ * speed: 2.77
+ * }
+ * });
+ *
+ * @param {object} params - Parameters for the command.
+ * @param {null|object} params.coordinates - The optional
+ * geolocation coordinates to set. Matches the
+ * `emulation.GeolocationCoordinates <https://w3c.github.io/webdriver-bidi/#type-emulation-GeolocationCoordinates>`_
+ * value. If null or omitted, the emulation will be removed.
+ * @param {null|Array.<(Context)>} [params.contexts] The
+ * optional contexts parameter specifies which browsing contexts
+ * to set the geolocation override on. It should be either an
+ * array of Context objects (window or browsing context id), or
+ * null. If null or omitted, the override will be set on the
+ * current browsing context.
+ * @returns {Promise<void>} Resolves when the geolocation
+ * override is successfully set.
+ */
+ set_geolocation_override: function (params) {
+ // Ensure the bidi feature is enabled before calling the internal method
+ assertBidiIsEnabled();
+ return window.test_driver_internal.bidi.emulation.set_geolocation_override(
+ params);
+ },
+ },
+ /**
+ * `log <https://www.w3.org/TR/webdriver-bidi/#module-log>`_ module.
*/
log: {
entry_added: {
/**
- * @typedef {object} LogEntryAdded `log.entryAdded <https://w3c.github.io/webdriver-bidi/#event-log-entryAdded>`_ event.
+ * @typedef {object} LogEntryAdded `log.entryAdded <https://www.w3.org/TR/webdriver-bidi/#event-log-entryAdded>`_ event.
*/
/**
@@ -1576,6 +1621,12 @@
}
}
},
+ emulation: {
+ set_geolocation_override: function (params) {
+ throw new Error(
+ "bidi.emulation.set_geolocation_override is not implemented by testdriver-vendor.js");
+ }
+ },
log: {
entry_added: {
async subscribe() {
diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html b/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html
index f741cc634d7..323d984c989 100644
--- a/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html
+++ b/tests/wpt/tests/scroll-animations/scroll-timelines/animation-with-transform.html
@@ -21,7 +21,7 @@
}
#scroller {
- overflow: auto;
+ overflow: hidden;
height: 100px;
width: 100px;
will-change: transform; /* force compositing */
diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html
index ed8e8337a65..28973d2d185 100644
--- a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html
+++ b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html
@@ -22,7 +22,7 @@
}
#scroller {
- overflow: auto;
+ overflow: hidden;
height: 100px;
width: 100px;
will-change: transform; /* force compositing */
diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html
index de50599fbaf..45ba3f99ccd 100644
--- a/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html
+++ b/tests/wpt/tests/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html
@@ -22,7 +22,7 @@ drive two animations">
}
#scroller {
- overflow: auto;
+ overflow: hidden;
height: 100px;
width: 100px;
will-change: transform; /* force compositing */
diff --git a/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html b/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html
index d75f30e664e..cdd2e0be40c 100644
--- a/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html
+++ b/tests/wpt/tests/scroll-animations/view-timelines/fieldset-source.html
@@ -87,7 +87,7 @@
parseFloat(getComputedStyle(fieldset).borderBottom);
// Validate the start and end offsets for each view timeline.
- anims.forEach(async (anim) => {
+ for (let anim of anims) {
assert_equals(anim.timeline.source.id, 'fieldset');
assert_equals(anim.timeline.subject.tagName, 'INPUT');
const bounds = anim.effect.target.getBoundingClientRect();
@@ -96,13 +96,13 @@
const expectedEndOffset = bounds.bottom - fieldsetContentTop;
assert_approx_equals(
parseFloat(anim.timeline.startOffset),
- expectedStartOffset, 0.1,
+ expectedStartOffset, 0.5,
`Unexpected start offset for ${anim.effect.target.id}`);
assert_approx_equals(
parseFloat(anim.timeline.endOffset),
- expectedEndOffset, 0.1,
+ expectedEndOffset, 0.5,
`Unexpected end offset for ${anim.effect.target.id}`);
- });
+ };
}, 'Fieldset is a valid source for a view timeline');
}
diff --git a/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html b/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html
index a4a5f372838..5ab144b05ed 100644
--- a/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html
+++ b/tests/wpt/tests/shadow-dom/reference-target/tentative/form.html
@@ -9,6 +9,13 @@
</head>
<body>
+ <div>
+ <template shadowrootmode="open">
+ <!-- This button shouldn't link to the real form in fancy-form-1 as it's in a different tree scope -->
+ <button id="button-in-shadow" form="fancy-form-1"></button>
+ </template>
+ </div>
+
<button id="reset-button-1" type="reset" form="fancy-form-1"></button>
<fancy-form-1 id="fancy-form-1">
<template shadowrootmode="open" shadowrootreferencetarget="real-form">
@@ -44,6 +51,9 @@
input.value = "new value";
const resetButton = document.getElementById(resetButtonId);
+ assert_equals(realForm.elements.length, 2, "The .elements property should have 2 elements.");
+ assert_equals(realForm.elements[0], resetButton, "The first element should be the referencing element.");
+ assert_equals(realForm.elements[1], input, "The 2nd element should be the input inside the real form.");
assert_equals(input.value, "new value", "The input value should be updated to the new value.");
resetButton.click();
assert_equals(input.value, "default value", "The input value should be reset to the default value.");
@@ -56,5 +66,107 @@
document.getElementById('reset-button-3').setAttribute('form', "fancy-form-3");
testFormWithReferenceTarget('fancy-form-3', 'reset-button-3', "Reference target works with setAttribute('form')");
</script>
+
+ <form-associated-custom-button id="custom-button" form="fancy-form-4"></form-associated-custom-button>
+ <fancy-form-4 id="fancy-form-4">
+ <template shadowrootmode="open" shadowrootreferencetarget="real-form">
+ <form id="real-form">
+ <input type="text" value="default value">
+ <!-- The internal button of the custom button below shouldn't be associated with real-form -->
+ <form-associated-custom-button id="custom-button-in-shadow"></form-associated-custom-button>
+ </form>
+ </template>
+ </fancy-form-4>
+ <script>
+ class FormAssociatedCustomButton extends HTMLElement {
+ static formAssociated = true;
+ constructor() {
+ super();
+ this.internals_ = this.attachInternals();
+ const shadow = this.attachShadow({ mode: 'open' });
+ shadow.innerHTML = `<button>fancy button</button>`;
+ }
+ }
+ window.customElements.define("form-associated-custom-button", FormAssociatedCustomButton);
+ test(function () {
+ const customElement = document.getElementById("custom-button");
+ const fancyForm = document.getElementById("fancy-form-4");
+ const realForm = fancyForm.shadowRoot.getElementById("real-form");
+ const customElementInShadow = fancyForm.shadowRoot.getElementById("custom-button-in-shadow");
+ const input = realForm.firstElementChild;
+
+ assert_equals(realForm.elements.length, 3, "The .elements property should have 3 elements.");
+ assert_equals(realForm.elements[0], customElement, "The first element should be the form-associated custom element.");
+ assert_equals(realForm.elements[1], input, "The 2nd element should be the input inside the real form.");
+ assert_equals(realForm.elements[2], customElementInShadow, "The 3rd element should be the custom element inside the real form.");
+
+ // Swap the input and the custom element in real-form.
+ realForm.moveBefore(customElementInShadow, input);
+ assert_equals(realForm.elements.length, 3, "The .elements property should have 3 elements.");
+ assert_equals(realForm.elements[0], customElement, "The first element should be the form-associated custom element.");
+ assert_equals(realForm.elements[1], customElementInShadow, "The 2nd element should be the custom element inside the real form.");
+ assert_equals(realForm.elements[2], input, "The 3rd element should be the input inside the real form.");
+
+ // Swap the referencing element and the fancy form
+ customElement.parentNode.moveBefore(fancyForm, customElement);
+ assert_equals(realForm.elements.length, 3, "The .elements property should have 3 elements.");
+ assert_equals(realForm.elements[0], customElementInShadow, "The first element should be the custom element inside the real form.");
+ assert_equals(realForm.elements[1], input, "The 2nd element should be the input inside the real form.");
+ assert_equals(realForm.elements[2], customElement, "The 3rd element should be the form-associated custom element.");
+ }, "Reference target works with form-associated custom element.");
+ </script>
+
+ <button id="reset-button-5" type="reset" form="fancy-form-5"></button>
+ <fancy-form-5 id="fancy-form-5">
+ <template shadowrootmode="open" shadowrootreferencetarget="nested-element">
+ <nested-element id="nested-element">
+ <template shadowrootmode="open" shadowrootreferencetarget="real-form">
+ <form id="real-form">
+ <input type="text" value="default value">
+ </form>
+ </template>
+ </nested-element>
+ <button id="button-in-shadow" form="nested-element"></button>
+ <div>
+ <template shadowrootmode="open">
+ <!-- This button shouldn't link to the real form in nested-element as it's in a different tree scope -->
+ <button id="button-in-different-shadow" form="nested-element"></button>
+ </template>
+ </div>
+ </template>
+ </fancy-form-5>
+ <script>
+ test(function () {
+ const fancyForm = document.getElementById("fancy-form-5");
+ const nestedElement = fancyForm.shadowRoot.getElementById("nested-element");
+ const buttonInShadow = fancyForm.shadowRoot.getElementById("button-in-shadow");
+ const realForm = nestedElement.shadowRoot.getElementById("real-form");
+ const input = realForm.firstElementChild;
+
+ input.value = "new value";
+ const resetButton = document.getElementById("reset-button-5");
+ assert_equals(realForm.elements.length, 3, "The .elements property should have 3 elements.");
+ // The elements in .elements property should be in tree order (preorder, depth-first).
+ assert_equals(realForm.elements[0], resetButton, "The first element should be the referencing element.");
+ assert_equals(realForm.elements[1], input, "The 2nd element should be the input inside the real form.");
+ assert_equals(realForm.elements[2], buttonInShadow, "The 3rd element should be the button in the shadow dom.");
+ assert_equals(input.value, "new value", "The input value should be updated to the new value.");
+ resetButton.click();
+ assert_equals(input.value, "default value", "The input value should be reset to the default value.");
+
+ // Remove the button that's using reference target in the 1st level shadow.
+ buttonInShadow.remove();
+ assert_equals(realForm.elements.length, 2, "The .elements property should have 2 elements after removing the button.");
+
+ // Add a new button using reference target in the 1st level shadow.
+ const newButtonInShadow = document.createElement("button");
+ newButtonInShadow.setAttribute("form", "nested-element");
+ nestedElement.parentNode.insertBefore(newButtonInShadow, nestedElement);
+ assert_equals(realForm.elements.length, 3, "The .elements property should have 3 elements after a new button is inserted.");
+ assert_equals(realForm.elements[0], resetButton, "The first element should be the referencing element.");
+ assert_equals(realForm.elements[1], newButtonInShadow, "The 2nd element should be the button in the shadow dom.");
+ assert_equals(realForm.elements[2], input, "The 3rd element should be the input inside the real form.");
+ }, "Reference target works with nested shadow trees.");
+ </script>
</body>
</html>
diff --git a/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html b/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html
deleted file mode 100644
index c5796e48b76..00000000000
--- a/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/common/dispatcher/dispatcher.js"></script>
-<script src="/common/utils.js"></script>
-<script src="../resources/utils.js"></script>
-<script src="resources/utils.sub.js"></script>
-<script>
- setup(() => assertSpeculationRulesIsSupported());
-
- promise_test(async t => {
- let agent = await spawnWindow(t, { protocol: 'https' });
- let nextUrl = agent.getExecutorURL({protocol: 'https', page: 2 });
- await agent.forceSinglePrefetch(nextUrl);
-
- // Open new window with url to clear cache data through Clear-Site-Data header.
- // Ensure that the cache is cleared before the navigation.
- const gotMessage = new Promise(resolve => {
- window.addEventListener('message', e => {
- resolve(e.data);
- }, {
- once: true
- });
- });
- let cache_helper = "cache_helper=" + token() + "&";
- window.open("../../clear-site-data/support/clear-site-data-cache.py?" + cache_helper + "response=single_html&cache&clear_first=all"); await gotMessage;
- await gotMessage;
-
- await agent.navigate(nextUrl);
- // Because Clear-Site-Data response header is sent, prefetches are expected
- // to be evicted.
- // The navigation to nextURL is not expected to use the prefetch cache.
- assert_not_prefetched(await agent.getRequestHeaders());
- }, "clear-site-data cache headers should prevent it from being fetched");
-</script>
diff --git a/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.tentative.https.html b/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.tentative.https.html
new file mode 100644
index 00000000000..48f6264e852
--- /dev/null
+++ b/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.tentative.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<!--
+This file is marked as "tentative" until:
+* The feature flag ClearSiteDataPrefetchPrerenderCache is enabled and
+ https://github.com/WICG/nav-speculation/issues/357 is added to the specification.
+-->
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/dispatcher/dispatcher.js"></script>
+<script src="/common/utils.js"></script>
+<script src="../resources/utils.js"></script>
+<script src="resources/utils.sub.js"></script>
+<script>
+ setup(() => assertSpeculationRulesIsSupported());
+
+ // Test that Clear-Site-Data header value "prefetchCache" clears prefetch cache
+ promise_test(async t => {
+ let agent = await spawnWindow(t, { protocol: 'https' });
+ let nextUrl = agent.getExecutorURL({protocol: 'https', page: 2 });
+ await agent.forceSinglePrefetch(nextUrl);
+
+ // Open new window with url to clear cache data through Clear-Site-Data header.
+ // Ensure that the cache is cleared before the navigation.
+ const gotMessage = new Promise(resolve => {
+ window.addEventListener('message', e => {
+ resolve(e.data);
+ }, {
+ once: true
+ });
+ });
+ window.open("/../../clear-site-data/support/clear-site-data-prefetchCache.py");
+ await gotMessage;
+
+ await agent.navigate(nextUrl);
+ // Because Clear-Site-Data response header is sent, prefetches are expected
+ // to be evicted.
+ // The navigation to nextURL is not expected to use the prefetch cache.
+ assert_not_prefetched(await agent.getRequestHeaders());
+ }, "clear-site-data prefetchCache headers should prevent it from being fetched");
+
+ // Test that Clear-Site-Data header value "cache" clears prefetch cache
+ promise_test(async t => {
+ let agent = await spawnWindow(t, { protocol: 'https' });
+ let nextUrl = agent.getExecutorURL({protocol: 'https', page: 2 });
+ await agent.forceSinglePrefetch(nextUrl);
+
+ // Open new window with url to clear cache data through Clear-Site-Data header.
+ // Ensure that the cache is cleared before the navigation.
+ const gotMessage = new Promise(resolve => {
+ window.addEventListener('message', e => {
+ resolve(e.data);
+ }, {
+ once: true
+ });
+ });
+ let cache_helper = "cache_helper=" + self.crypto.randomUUID() + "&";
+ window.open("/../../clear-site-data/support/clear-site-data-cache.py?" + cache_helper + "response=single_html&cache&clear_first=all");
+ await gotMessage;
+
+ await agent.navigate(nextUrl);
+ // Because Clear-Site-Data response header is sent, prefetches are expected
+ // to be evicted.
+ // The navigation to nextURL is not expected to use the prefetch cache.
+ assert_not_prefetched(await agent.getRequestHeaders());
+ }, "clear-site-data cache headers should prevent it from being fetched");
+</script>
diff --git a/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-different-origins.https.html b/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-different-origins.tentative.https.html
index 34b77f8bc47..db52e758750 100644
--- a/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-different-origins.https.html
+++ b/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-different-origins.tentative.https.html
@@ -1,4 +1,9 @@
<!DOCTYPE html>
+<!--
+This file is marked as "tentative" until:
+* The feature flag ClearSiteDataPrefetchPrerenderCache is enabled and
+ https://github.com/WICG/nav-speculation/issues/357 is added to the specification.
+-->
<title>clear-site-data-cache cancels prerenders</title>
<meta name="timeout" content="long">
<body>
@@ -40,8 +45,7 @@ promise_test(async t => {
once: true
});
});
- let cache_helper = "cache_helper=" + self.crypto.randomUUID() + "&";
- window.open(differentOrigin + "/../../clear-site-data/support/clear-site-data-cache.py?" + cache_helper + "response=single_html&cache&clear_first=all");
+ window.open(differentOrigin + "/../../clear-site-data/support/clear-site-data-prerenderCache.py");
await gotMessage;
// Because Clear-Site-Data response header is sent on a different origin than
diff --git a/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-same-origin.https.html b/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-same-origin.tentative.https.html
index cb253d45eaa..23d862c5130 100644
--- a/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-same-origin.https.html
+++ b/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache-same-origin.tentative.https.html
@@ -1,4 +1,9 @@
<!DOCTYPE html>
+<!--
+This file is marked as "tentative" until:
+* The feature flag ClearSiteDataPrefetchPrerenderCache is enabled and
+ https://github.com/WICG/nav-speculation/issues/357 is added to the specification.
+-->
<title>clear-site-data-cache cancels prerenders</title>
<meta name="timeout" content="long">
<body>
@@ -13,6 +18,41 @@
<script>
setup(() => assertSpeculationRulesIsSupported());
+// Test that Clear-Site-Data header value "prerenderCache" clears prerender cache
+promise_test(async t => {
+
+ const rcHelper = new RemoteContextHelper();
+ const referrerRC = await rcHelper.addWindow({
+ origin: 'HTTPS_ORIGIN'
+ }, {
+ features: 'noopener'
+ });
+ const prerenderedRC = await addPrerenderRC(referrerRC, {
+ origin: 'HTTPS_ORIGIN'
+ });
+
+ const sameOrigin = get_host_info().HTTPS_ORIGIN;
+
+ // Open new window with url to clear cache data through Clear-Site-Data header.
+ // Ensure that the cache is cleared before the navigation.
+ const gotMessage = new Promise(resolve => {
+ window.addEventListener('message', e => {
+ resolve(e.data);
+ }, {
+ once: true
+ });
+ });
+ window.open(sameOrigin + "/../../clear-site-data/support/clear-site-data-prerenderCache.py");
+ await gotMessage;
+
+ // Because Clear-Site-Data response header is sent, the existing prerender
+ // is expected to be canceled.
+ // And the navigation is expected to create another page instead of activation.
+ referrerRC.navigateTo(prerenderedRC.url);
+ assert_equals(await getActivationStart(prerenderedRC), 0);
+}, "clear-site-data prerenderCache headers should prevent it from being activated");
+
+// Test that Clear-Site-Data header value "cache" clears prerender cache
promise_test(async t => {
const rcHelper = new RemoteContextHelper();
@@ -37,7 +77,7 @@ promise_test(async t => {
});
});
let cache_helper = "cache_helper=" + self.crypto.randomUUID() + "&";
- new_window = window.open(sameOrigin + "/../../clear-site-data/support/clear-site-data-cache.py?" + cache_helper + "response=single_html&cache&clear_first=all");
+ window.open(sameOrigin + "/../../clear-site-data/support/clear-site-data-cache.py?" + cache_helper + "response=single_html&cache&clear_first=all");
await gotMessage;
// Because Clear-Site-Data response header is sent, the existing prerender
@@ -45,7 +85,7 @@ promise_test(async t => {
// And the navigation is expected to create another page instead of activation.
referrerRC.navigateTo(prerenderedRC.url);
assert_equals(await getActivationStart(prerenderedRC), 0);
-});
+}, "clear-site-data cache headers should prevent it from being activated");
</script>
</body>
</html>
diff --git a/tests/wpt/tests/streams/readable-streams/crashtests/garbage-collection.any.js b/tests/wpt/tests/streams/readable-streams/crashtests/garbage-collection.any.js
index b2ba5cd4c27..cf10f7f2e83 100644
--- a/tests/wpt/tests/streams/readable-streams/crashtests/garbage-collection.any.js
+++ b/tests/wpt/tests/streams/readable-streams/crashtests/garbage-collection.any.js
@@ -4,12 +4,64 @@
// See https://crbug.com/335506658 for details.
promise_test(async () => {
- let closed = new ReadableStream({
- pull(controller) {
- controller.enqueue('is there anybody in there?');
- }
- }).getReader().closed;
- // 3 GCs are actually required to trigger the bug at time of writing.
- for (let i = 0; i < 5; ++i)
- await garbageCollect();
+ const closed = new ReadableStream({
+ pull(controller) {
+ controller.enqueue('is there anybody in there?');
+ }
+ }).getReader().closed;
+ // 3 GCs are actually required to trigger the bug at time of writing.
+ for (let i = 0; i < 5; ++i)
+ await garbageCollect();
}, 'Garbage-collecting a stream along with its reader should not crash');
+
+
+// See https://crbug.com/390646657 for details.
+promise_test(async () => {
+ const written = new WritableStream({
+ write(chunk) {
+ return new Promise(resolve => {});
+ }
+ }).getWriter().write('just nod if you can hear me');
+ for (let i = 0; i < 5; ++i)
+ await garbageCollect();
+}, 'Garbage-collecting a stream writer with a pending write should not crash');
+
+
+promise_test(async () => {
+ const closed = new WritableStream({
+ write(chunk) { }
+ }).getWriter().closed;
+ for (let i = 0; i < 5; ++i)
+ await garbageCollect();
+}, 'Garbage-collecting a stream writer should not crash with closed promise is retained');
+
+promise_test(async () => {
+ const ready = new WritableStream({
+ write(chunk) { }
+ }, {highWaterMark: 0}).getWriter().ready;
+ for (let i = 0; i < 5; ++i)
+ await garbageCollect();
+}, 'Garbage-collecting a stream writer should not crash when backpressure is being applied');
+
+promise_test(async () => {
+ let reader = new ReadableStream({
+ pull() { }
+ }).getReader();
+ const promise = reader.read();
+ reader = null;
+ for (let i = 0; i < 5; ++i)
+ await garbageCollect();
+}, 'Garbage-collecting a stream with a pending read should not crash');
+
+promise_test(async () => {
+ let reader = new ReadableStream({
+ type: "bytes",
+ pull() { return new Promise(resolve => {}); }
+ }).getReader({mode: "byob"});
+ const promise = reader.read(new Uint8Array(42));
+ reader = null;
+ for (let i = 0; i < 5; ++i)
+ await garbageCollect();
+}, 'Garbage-collecting a stream with a pending BYOB read should not crash');
+
+
diff --git a/tests/wpt/tests/svg/embedded/attr-image-fetchpriority.html b/tests/wpt/tests/svg/embedded/attr-image-fetchpriority.html
new file mode 100644
index 00000000000..b083538a8b8
--- /dev/null
+++ b/tests/wpt/tests/svg/embedded/attr-image-fetchpriority.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<title>Fetch Priority - SVG Image element</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<svg>
+<image id=image1 fetchpriority="high"/>
+<image id=image2 fetchpriority="low"/>
+<image id=image3 fetchpriority="auto"/>
+<image id=image4 fetchpriority="xyz"/>
+<image id=image5 />
+</svg>
+
+<script>
+ test(() => {
+ assert_equals(image1.fetchPriority, "high", "high fetchPriority is a valid IDL value on the image element");
+ assert_equals(image2.fetchPriority, "low", "low fetchPriority is a valid IDL value on the image element");
+ assert_equals(image3.fetchPriority, "auto", "auto fetchPriority is a valid IDL value on the image element");
+ assert_equals(image4.fetchPriority, "auto", "invalid fetchPriority reflects as 'auto' IDL attribute on the image element");
+ assert_equals(image5.fetchPriority, "auto", "missing fetchPriority reflects as 'auto' IDL attribute on the image element");
+ }, "fetchpriority attribute on <image> elements should reflect valid IDL values");
+
+ test(() => {
+ const image = document.createElementNS("http://www.w3.org/2000/svg", "image");
+ assert_equals(image.fetchPriority, "auto");
+ }, "default fetchpriority attribute on <image> elements should be 'auto'");
+</script>
diff --git a/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-01.html b/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-01.html
new file mode 100644
index 00000000000..25765c5b93e
--- /dev/null
+++ b/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-01.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Tabbing through Non-Rendered SVG elements</title>
+<link rel="author" title="Divyansh Mangal" href="mailto:dmangal@microsoft.com">
+<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#interact-Focus">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<svg xmlns="http://www.w3.org/2000/svg">
+ <text tabindex='1' id="start" x="10" y="10">start</text>
+ <g x="30" y="10" style="display: none;">
+ <text tabindex='2' id="middle" x="30" y="10">middle</text>
+ </g>
+ <text tabindex='3' id="end" x="50" y="10">end</text>
+</svg>
+
+<script>
+ promise_test(async t => {
+ const start = document.getElementById('start');
+ const end = document.getElementById('end');
+
+ start.focus();
+ assert_equals(document.activeElement, start, "Start element should be focused initially");
+
+ // Simulate pressing the Tab key
+ await test_driver.send_keys(start, '\uE004'); // '\uE004' is the WebDriver key code for Tab
+
+ // Verify that the focus moved to the end element and middle element is skipped
+ assert_equals(document.activeElement, end, "End element should be focused after pressing Tab");
+ }, "Hidden SVG Tab focus test");
+</script>
diff --git a/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-02.html b/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-02.html
new file mode 100644
index 00000000000..fd9fd34275d
--- /dev/null
+++ b/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-02.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Tabbing through Non-Rendered SVG elements</title>
+<link rel="author" title="Divyansh Mangal" href="mailto:dmangal@microsoft.com">
+<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#interact-Focus">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<svg xmlns="http://www.w3.org/2000/svg">
+ <a href="#void" id="start">
+ <text tabindex='-1' x="10" y="10">start</text>
+ </a>
+ <g x="30" y="10" style="display: none;">
+ <a href="#void" id="middle">
+ <text tabindex='-1' x="30" y="10">middle</text>
+ </a>
+ </g>
+ <a href="#void" id="end">
+ <text tabindex='-1' x="50" y="10">end</text>
+ </a>
+</svg>
+
+<script>
+ promise_test(async t => {
+ const start = document.getElementById('start');
+ const end = document.getElementById('end');
+
+ start.focus();
+ assert_equals(document.activeElement, start, "Start element should be focused initially");
+
+ // Simulate pressing the Tab key
+ await test_driver.send_keys(start, '\uE004'); // '\uE004' is the WebDriver key code for Tab
+
+ // Verify that the focus moved to the end element and middle element is skipped
+ assert_equals(document.activeElement, end, "End element should be focused after pressing Tab");
+ }, "Hidden SVG Tab focus test");
+</script>
diff --git a/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-03.html b/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-03.html
new file mode 100644
index 00000000000..097cff57b5a
--- /dev/null
+++ b/tests/wpt/tests/svg/interact/focus-inside-hidden-svg-containers-03.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Tabbing through Non-Rendered SVG elements</title>
+<link rel="author" title="Divyansh Mangal" href="mailto:dmangal@microsoft.com">
+<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#interact-Focus">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<svg xmlns="http://www.w3.org/2000/svg">
+ <text tabindex='1' id="start" x="10" y="10">start</text>
+ <defs>
+ <text tabindex='2' id="middle" x="30" y="10">middle</text>
+ </defs>
+ <text tabindex='3' id="end" x="50" y="10">end</text>
+</svg>
+
+<script>
+ promise_test(async t => {
+ const start = document.getElementById('start');
+ const end = document.getElementById('end');
+
+ start.focus();
+ assert_equals(document.activeElement, start, "Start element should be focused initially");
+
+ // Simulate pressing the Tab key
+ await test_driver.send_keys(start, '\uE004'); // '\uE004' is the WebDriver key code for Tab
+
+ // Verify that the focus moved to the end element and middle element is skipped
+ assert_equals(document.activeElement, end, "End element should be focused after pressing Tab");
+ }, "Hidden SVG Tab focus test");
+</script>
diff --git a/tests/wpt/tests/svg/scripted/attr-script-fetchpriority.html b/tests/wpt/tests/svg/scripted/attr-script-fetchpriority.html
new file mode 100644
index 00000000000..2f73e1e59a8
--- /dev/null
+++ b/tests/wpt/tests/svg/scripted/attr-script-fetchpriority.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<title>Fetch Priority - SVG Script element</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<svg>
+<script id=script1 href="resources/script.js" fetchpriority="high"></script>
+<script id=script2 href="resources/script.js" fetchpriority="low"></script>
+<script id=script3 href="resources/script.js" fetchpriority="auto"></script>
+<script id=script4 href="resources/script.js" fetchpriority="xyz"></script>
+<script id=script5 href="resources/script.js"></script>
+</svg>
+
+<script>
+ test(() => {
+ assert_equals(script1.fetchPriority, "high", "high fetchPriority is a valid IDL value on the script element");
+ assert_equals(script2.fetchPriority, "low", "low fetchPriority is a valid IDL value on the script element");
+ assert_equals(script3.fetchPriority, "auto", "auto fetchPriority is a valid IDL value on the script element");
+ assert_equals(script4.fetchPriority, "auto", "invalid fetchPriority reflects as 'auto' IDL attribute on the script element");
+ assert_equals(script5.fetchPriority, "auto", "missing fetchPriority reflects as 'auto' IDL attribute on the script element");
+ }, "fetchpriority attribute on SVG <script> elements should reflect valid IDL values");
+
+ test(() => {
+ const script = document.createElementNS("http://www.w3.org/2000/svg", "script");
+ assert_equals(script.fetchPriority, "auto");
+ }, "default fetchpriority attribute on SVG <script> elements should be 'auto'");
+</script>
diff --git a/tests/wpt/tests/svg/styling/cx-sibling-index-crash.html b/tests/wpt/tests/svg/styling/cx-sibling-index-crash.html
new file mode 100644
index 00000000000..9fe97b12d77
--- /dev/null
+++ b/tests/wpt/tests/svg/styling/cx-sibling-index-crash.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<title>SVG Test: sibling-index() as cx property value should not crash</title>
+<link rel="help" href="https://crbug.com/407890255">
+<style>circle { cx: sibling-index(); }</style>
+<p>Pass if loading this page does not crash</p>
diff --git a/tests/wpt/tests/tools/ci/requirements_tc.txt b/tests/wpt/tests/tools/ci/requirements_tc.txt
index cb4ba194778..ada75c2f761 100644
--- a/tests/wpt/tests/tools/ci/requirements_tc.txt
+++ b/tests/wpt/tests/tools/ci/requirements_tc.txt
@@ -1,4 +1,4 @@
pygithub==2.6.1
pyyaml==6.0.1
requests==2.32.3
-taskcluster==83.5.6
+taskcluster==83.5.8
diff --git a/tests/wpt/tests/tools/requirements_tests.txt b/tests/wpt/tests/tools/requirements_tests.txt
index 833fdb3b876..ca00b8f1f98 100644
--- a/tests/wpt/tests/tools/requirements_tests.txt
+++ b/tests/wpt/tests/tools/requirements_tests.txt
@@ -2,5 +2,5 @@ httpx[http2]==0.27.2
json-e==4.7.0
jsonschema==4.17.3
pyyaml==6.0.1
-taskcluster==83.5.6
+taskcluster==83.5.8
mozterm==1.0.0
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/asyncactions.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/asyncactions.py
index 71187ee76d7..9925a4b511d 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/asyncactions.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/asyncactions.py
@@ -87,6 +87,34 @@ class BidiBluetoothSimulatePreconnectedPeripheralAction:
return await self.protocol.bidi_bluetooth.simulate_preconnected_peripheral(
context, address, name, manufacturer_data, known_service_uuids)
+
+class BidiEmulationSetGeolocationOverrideAction:
+ name = "bidi.emulation.set_geolocation_override"
+
+ def __init__(self, logger, protocol):
+ do_delayed_imports()
+ self.logger = logger
+ self.protocol = protocol
+
+ async def __call__(self, payload):
+ coordinates = payload['coordinates']
+ contexts = []
+ for context in payload["contexts"]:
+ # Context can be either a browsing context id, or a BiDi serialized window. In the latter case, the
+ # value is extracted from the serialized object.
+ if isinstance(context, str):
+ contexts.append(context)
+ elif isinstance(context, webdriver.bidi.protocol.BidiWindow):
+ contexts.append(context.browsing_context)
+ else:
+ raise ValueError("Unexpected context type: %s" % context)
+ if len(contexts) == 0:
+ raise ValueError("At least one context must be provided")
+
+ return await self.protocol.bidi_emulation.set_geolocation_override(
+ coordinates, contexts)
+
+
class BidiSessionSubscribeAction:
name = "bidi.session.subscribe"
@@ -133,5 +161,6 @@ async_actions = [
BidiBluetoothHandleRequestDevicePrompt,
BidiBluetoothSimulateAdapterAction,
BidiBluetoothSimulatePreconnectedPeripheralAction,
+ BidiEmulationSetGeolocationOverrideAction,
BidiPermissionsSetPermissionAction,
BidiSessionSubscribeAction]
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 123c89c98b2..87403c2944d 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -39,6 +39,7 @@ from .protocol import (BaseProtocolPart,
VirtualSensorProtocolPart,
BidiBluetoothProtocolPart,
BidiBrowsingContextProtocolPart,
+ BidiEmulationProtocolPart,
BidiEventsProtocolPart,
BidiPermissionsProtocolPart,
BidiScriptProtocolPart,
@@ -263,6 +264,19 @@ class WebDriverBidiScriptProtocolPart(BidiScriptProtocolPart):
await_promise=True)
+class WebDriverBidiEmulationProtocolPart(BidiEmulationProtocolPart):
+ def __init__(self, parent):
+ super().__init__(parent)
+ self.webdriver = None
+
+ def setup(self):
+ self.webdriver = self.parent.webdriver
+
+ async def set_geolocation_override(self, coordinates, contexts):
+ return await self.webdriver.bidi_session.emulation.set_geolocation_override(
+ coordinates=coordinates, contexts=contexts)
+
+
class WebDriverBidiPermissionsProtocolPart(BidiPermissionsProtocolPart):
def __init__(self, parent):
super().__init__(parent)
@@ -810,6 +824,7 @@ class WebDriverBidiProtocol(WebDriverProtocol):
enable_bidi = True
implements = [WebDriverBidiBluetoothProtocolPart,
WebDriverBidiBrowsingContextProtocolPart,
+ WebDriverBidiEmulationProtocolPart,
WebDriverBidiEventsProtocolPart,
WebDriverBidiPermissionsProtocolPart,
WebDriverBidiScriptProtocolPart,
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py
index 7630fe1f358..833dff45636 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py
@@ -445,6 +445,18 @@ class BidiPermissionsProtocolPart(ProtocolPart):
pass
+class BidiEmulationProtocolPart(ProtocolPart):
+ """Protocol part for emulation"""
+ __metaclass__ = ABCMeta
+ name = "bidi_emulation"
+
+ @abstractmethod
+ async def set_geolocation_override(self,
+ coordinates: Optional[Mapping[str, Any]],
+ contexts: List[str]) -> None:
+ pass
+
+
class BidiScriptProtocolPart(ProtocolPart):
"""Protocol part for executing BiDi scripts"""
__metaclass__ = ABCMeta
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js b/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js
index d83ba4192eb..ab8b04ba3cd 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js
@@ -261,6 +261,17 @@
'bluetooth.requestDevicePromptUpdated', on_event);
};
+ window.test_driver_internal.bidi.emulation.set_geolocation_override =
+ function (params) {
+ return create_action("bidi.emulation.set_geolocation_override", {
+ // Default to the current window.
+ contexts: [window],
+ // Default to no coordinates.
+ coordinates: null,
+ ...(params ?? {})
+ });
+ }
+
window.test_driver_internal.bidi.log.entry_added.subscribe =
function (params) {
return subscribe({
diff --git a/tests/wpt/tests/viewport-segments/viewport-segments-segments-property.https.html b/tests/wpt/tests/viewport-segments/viewport-segments-segments-property.https.html
index 852e49fa7fe..e6c9d8b4e16 100644
--- a/tests/wpt/tests/viewport-segments/viewport-segments-segments-property.https.html
+++ b/tests/wpt/tests/viewport-segments/viewport-segments-segments-property.https.html
@@ -15,8 +15,14 @@ promise_test(async (t) => {
await test_driver.clear_display_features();
});
- // When the viewport is not divided the segments property should be null.
- assert_equals(viewport.segments, null);
+ // When the viewport is not divided the segments property should return an
+ // array with one segment, the size of the viewport.
+ assert_equals(viewport.segments.length, 1);
+ let segment = viewport.segments[0];
+ assert_equals(segment.x, 0);
+ assert_equals(segment.y, 0);
+ assert_equals(segment.width, window.innerWidth);
+ assert_equals(segment.height, window.innerHeight);
// iframes do not receive segments information.
assert_equals(window.frames[0].viewport.segments, null);
@@ -88,7 +94,11 @@ promise_test(async (t) => {
});
await test_driver.clear_display_features();
assert_true(await promise);
- assert_equals(viewport.segments, null);
+ segment = viewport.segments[0];
+ assert_equals(segment.x, 0);
+ assert_equals(segment.y, 0);
+ assert_equals(segment.width, window.innerWidth);
+ assert_equals(segment.height, window.innerHeight);
// iframes do not receive segments information.
assert_equals(window.frames[0].viewport.segments, null);
diff --git a/tests/wpt/tests/viewport/viewport-segments.html b/tests/wpt/tests/viewport/viewport-segments.html
index 64f0eb9caef..cd24f2bd230 100644
--- a/tests/wpt/tests/viewport/viewport-segments.html
+++ b/tests/wpt/tests/viewport/viewport-segments.html
@@ -9,6 +9,9 @@
test(() => {
assert_true('segments' in viewport, "`segments` must be a property of viewport.");
- assert_equals(viewport.segments, null, "For a viewport not segmented, no segments must be exposed.");
+ assert_equals(viewport.segments[0].innerWidth, viewport.innerWidth,
+ "For a viewport not segmented, there should only one segment with the viewport size.");
+ assert_equals(viewport.segments[0].innerHeight, viewport.innerHeight,
+ "For a viewport not segmented, there should only one segment with the viewport size.");
});
</script>
diff --git a/tests/wpt/tests/web-animations/crashtests/sibling-index-offset-crash.html b/tests/wpt/tests/web-animations/crashtests/sibling-index-offset-crash.html
new file mode 100644
index 00000000000..812a7952738
--- /dev/null
+++ b/tests/wpt/tests/web-animations/crashtests/sibling-index-offset-crash.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<link rel="help" href="https://crbug.com/414645284">
+<div id="target"></div>
+<script>
+ target.animate([
+ { offset: "calc(20% * sibling-index())" },
+ ], 2000);
+</script>
diff --git a/tests/wpt/tests/web-animations/resources/keyframe-tests.js b/tests/wpt/tests/web-animations/resources/keyframe-tests.js
index 2bcce1ecf47..34a84f45b20 100644
--- a/tests/wpt/tests/web-animations/resources/keyframe-tests.js
+++ b/tests/wpt/tests/web-animations/resources/keyframe-tests.js
@@ -541,11 +541,6 @@ const gKeyframesTests = [
output: [keyframe(offset(0.5), { left: '10px' })],
},
{
- desc: 'a single keyframe sequence with a complex calc() offset',
- input: [{ offset: 'calc(0.5 + 0.25 * sign(100em - 1px))', left: '10px' }],
- output: [keyframe(offset(0.75), { left: '10px' })],
- },
- {
desc: 'a one property keyframe sequence with some omitted offsets',
input: [{ offset: 0.00, left: '10px' },
{ offset: 0.25, left: '20px' },
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_closed/user_prompt_closed.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_closed/user_prompt_closed.py
index fdb9e8b3ca7..8322829ebaf 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_closed/user_prompt_closed.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_closed/user_prompt_closed.py
@@ -318,7 +318,7 @@ async def test_iframe(
event = await wait_for_future_safe(on_prompt_closed)
assert event == {
- "context": new_tab["context"],
+ "context": frame["context"],
"accepted": True,
"type": "alert",
}
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py
index c24128004f7..a9051f662c8 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py
@@ -197,7 +197,7 @@ async def test_iframe(
event = await wait_for_future_safe(on_entry)
assert event == {
- "context": new_tab["context"],
+ "context": frame["context"],
"type": "alert",
"handler": "dismiss",
"message": "in iframe",
diff --git a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_geolocation_override/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_geolocation_override/invalid.py
index 79241287fbc..e804848e0be 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/emulation/set_geolocation_override/invalid.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/emulation/set_geolocation_override/invalid.py
@@ -114,6 +114,18 @@ async def test_params_coordinates_latitude_invalid_type(bidi_session, top_contex
)
+@pytest.mark.parametrize("value", [-90.1, 90.1])
+async def test_params_coordinates_latitude_invalid_value(bidi_session, top_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.emulation.set_geolocation_override(
+ contexts=[top_context["context"]],
+ coordinates=CoordinatesOptions(
+ latitude=value,
+ longitude=10,
+ ),
+ )
+
+
async def test_params_coordinates_longitude_missing(bidi_session, top_context):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.emulation.set_geolocation_override(
@@ -136,6 +148,18 @@ async def test_params_coordinates_longitude_invalid_type(bidi_session, top_conte
)
+@pytest.mark.parametrize("value", [-180.5, 180.5])
+async def test_params_coordinates_longitude_invalid_value(bidi_session, top_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.emulation.set_geolocation_override(
+ contexts=[top_context["context"]],
+ coordinates=CoordinatesOptions(
+ latitude=10,
+ longitude=value,
+ ),
+ )
+
+
@pytest.mark.parametrize("value", [False, "foo", [], {}])
async def test_params_coordinates_accuracy_invalid_type(bidi_session, top_context, value):
with pytest.raises(error.InvalidArgumentException):
@@ -149,6 +173,18 @@ async def test_params_coordinates_accuracy_invalid_type(bidi_session, top_contex
)
+async def test_params_coordinates_accuracy_invalid_value(bidi_session, top_context):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.emulation.set_geolocation_override(
+ contexts=[top_context["context"]],
+ coordinates=CoordinatesOptions(
+ latitude=10,
+ longitude=10,
+ accuracy=-1,
+ ),
+ )
+
+
@pytest.mark.parametrize("value", [False, "foo", [], {}])
async def test_params_coordinates_altitude_invalid_type(bidi_session, top_context, value):
with pytest.raises(error.InvalidArgumentException):
@@ -176,6 +212,19 @@ async def test_params_coordinates_altitude_accuracy_invalid_type(bidi_session, t
)
+async def test_params_coordinates_altitude_accuracy_invalid_value(bidi_session, top_context):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.emulation.set_geolocation_override(
+ contexts=[top_context["context"]],
+ coordinates=CoordinatesOptions(
+ latitude=10,
+ longitude=10,
+ altitude=10,
+ altitude_accuracy=-1,
+ ),
+ )
+
+
async def test_params_coordinates_altitude_accuracy_without_altitude(bidi_session, top_context):
with pytest.raises(error.InvalidArgumentException):
await bidi_session.emulation.set_geolocation_override(
@@ -201,6 +250,19 @@ async def test_params_coordinates_heading_invalid_type(bidi_session, top_context
)
+@pytest.mark.parametrize("value", [-0.5, 360, 360.5])
+async def test_params_coordinates_heading_invalid_value(bidi_session, top_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.emulation.set_geolocation_override(
+ contexts=[top_context["context"]],
+ coordinates=CoordinatesOptions(
+ latitude=10,
+ longitude=10,
+ heading=value,
+ ),
+ )
+
+
@pytest.mark.parametrize("value", [False, "foo", [], {}])
async def test_params_coordinates_speed_invalid_type(bidi_session, top_context, value):
with pytest.raises(error.InvalidArgumentException):
@@ -214,6 +276,18 @@ async def test_params_coordinates_speed_invalid_type(bidi_session, top_context,
)
+async def test_params_coordinates_speed_invalid_value(bidi_session, top_context):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.emulation.set_geolocation_override(
+ contexts=[top_context["context"]],
+ coordinates=CoordinatesOptions(
+ latitude=10,
+ longitude=10,
+ speed=-1.5,
+ ),
+ )
+
+
@pytest.mark.parametrize("value", [True, "foo", 42, {}])
async def test_params_user_contexts_invalid_type(bidi_session, value):
with pytest.raises(error.InvalidArgumentException):
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py b/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py
index 9483a707eab..e8119d29d9e 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py
@@ -396,7 +396,7 @@ async def test_page_with_cached_script_javascript(
@pytest.mark.asyncio
-async def tst_page_with_cached_javascript_module(
+async def test_page_with_cached_javascript_module(
bidi_session,
url,
inline,
diff --git a/tests/wpt/tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js b/tests/wpt/tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js
index 612003d58ea..12bfa0bd73e 100644
--- a/tests/wpt/tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js
+++ b/tests/wpt/tests/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js
@@ -33,3 +33,13 @@ promise_test(async t => {
});
await closeEventPromise;
}, 'Close event on port2 is fired when port1, which is in a different window, is explicitly closed.')
+
+promise_test(async t => {
+ const rc = await addWindow();
+ const waitForPort = expectMessagePortFromWindowWithoutStartingIt(window);
+ await createMessageChannelAndSendPortFollowedByClose(rc);
+ const port = await waitForPort;
+ const closeEventPromise = createCloseEventPromise(port);
+ port.start();
+ await closeEventPromise;
+}, 'Close event on port2 is fired when port1, in a different window, is closed during the transfer of port2.')
diff --git a/tests/wpt/tests/webmessaging/message-channels/close-event/resources/helper.js b/tests/wpt/tests/webmessaging/message-channels/close-event/resources/helper.js
index cb9ea9fe981..48744ac1c5b 100644
--- a/tests/wpt/tests/webmessaging/message-channels/close-event/resources/helper.js
+++ b/tests/wpt/tests/webmessaging/message-channels/close-event/resources/helper.js
@@ -22,6 +22,44 @@ function expectMessagePortFromWindow(window) {
}
/**
+ * Create a new promise that resolves when the window receives
+ * the MessagePort and does not start it.
+ *
+ * @param {Window} window - The window to wait for the MessagePort.
+ * @returns {Promise<MessagePort>} A promise you should await to ensure the
+ * window
+ * receives the MessagePort.
+ */
+function expectMessagePortFromWindowWithoutStartingIt(window) {
+ return new Promise(resolve => {
+ window.onmessage = e => {
+ try {
+ assert_true(e.ports[0] instanceof window.MessagePort);
+ resolve(e.ports[0]);
+ } catch (e) {
+ reject(e);
+ }
+ };
+ });
+}
+
+/**
+ * Create a new MessageChannel and transfers one of the ports to
+ * the window which opened the window with a remote context provided
+ * as an argument, and immediately closes the entangled port.
+ *
+ * @param {RemoteContextWrapper} remoteContextWrapper
+ */
+async function createMessageChannelAndSendPortFollowedByClose(remoteContextWrapper) {
+ await remoteContextWrapper.executeScript(() => {
+ const {port1, port2} = new MessageChannel();
+ port1.start();
+ window.opener.postMessage({}, '*', [port2]);
+ port1.close();
+ });
+}
+
+/**
* Create a new MessageChannel and transfers one of the ports to
* the window which opened the window with a remote context provided
* as an argument.
diff --git a/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js b/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js
index fcf144200f6..de6a5761df4 100644
--- a/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js
@@ -14,11 +14,8 @@
// MLOperand abs(MLOperand input);
-const getAbsPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getAbsPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const absTests = [
@@ -538,6 +535,62 @@ const absTests = [
}
}
}
+ },
+
+ // int8 tests
+ {
+ 'name': 'abs int8 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'absInput': {
+ 'data': [
+ // int8 range: [/* -(2**7) */ -128, /* 2**7 - 1 */ 127]
+ // abs(-128) would overflow when data type is int8
+ -127, 0, 126, 127
+ ],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'abs',
+ 'arguments': [{'input': 'absInput'}],
+ 'outputs': 'absOutput'
+ }],
+ 'expectedOutputs': {
+ 'absOutput': {
+ 'data': [127, 0, 126, 127],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int8'}
+ }
+ }
+ }
+ },
+
+ // int32 tests
+ {
+ 'name': 'abs int32 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'absInput': {
+ 'data': [
+ // int32 range: [/* -(2**31) */ -2147483648, /* 2**31 - 1 */ 2147483647]
+ // abs(-2147483648) would overflow when data type is int32
+ -2147483647, 0, 2147483646, 2147483647
+ ],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'abs',
+ 'arguments': [{'input': 'absInput'}],
+ 'outputs': 'absOutput'
+ }],
+ 'expectedOutputs': {
+ 'absOutput': {
+ 'data': [2147483647, 0, 2147483646, 2147483647],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int32'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js b/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js
index 0208e2ec605..d4192172046 100644
--- a/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js
@@ -22,50 +22,6 @@ const getConcatPrecisionTolerance = (graphResources) => {
return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
};
-const buildAndExecuteGraphWithConcat =
- async (context, builder, graphResources) => {
- const graphInputs = graphResources.inputs;
- const operator = graphResources.operators[0];
-
- const inputOperands = [];
- const inputNameArray =
- operator.arguments[0][Object.keys(operator.arguments[0])[0]];
- for (const inputName of inputNameArray) {
- const operand =
- createOperand(context, builder, inputName, graphInputs[inputName]);
- inputOperands.push(operand);
- }
-
- let outputOperand = builder[operator.name](
- inputOperands,
- operator.arguments[1][Object.keys(operator.arguments[1])[0]]);
- const outputOperandName = Object.keys(graphResources.expectedOutputs)[0];
- const expectedDescriptor =
- graphResources.expectedOutputs[outputOperandName].descriptor;
- if (!context.opSupportLimits().output.dataTypes.includes(
- expectedDescriptor.dataType)) {
- const compatibleType = findCompatibleType(
- expectedDescriptor.dataType,
- context.opSupportLimits().output.dataTypes);
- outputOperand = builder.cast(outputOperand, compatibleType);
- expectedDescriptor.castedType = compatibleType;
- }
-
- assertDescriptorsEquals(outputOperand, expectedDescriptor);
-
- const namedOutputOperand = {};
- namedOutputOperand[outputOperandName] = outputOperand;
-
- // Compile the constructed graph.
- const graph = await builder.build(namedOutputOperand);
-
- // Execute the compiled graph.
- const result = await computeGraph(
- context, graph, graphInputs, graphResources.expectedOutputs);
-
- return {result, namedOutputOperand};
-};
-
const concatTests = [
{
'name': 'concat two float32 1D constant tensors of same shape along axis 0',
@@ -2428,7 +2384,7 @@ const concatTests = [
if (navigator.ml) {
concatTests.forEach((test) => {
webnn_conformance_test(
- buildAndExecuteGraphWithConcat, getConcatPrecisionTolerance, test);
+ buildAndExecuteGraph, getConcatPrecisionTolerance, test);
});
} else {
test(() => assert_implements(navigator.ml, 'missing navigator.ml'));
diff --git a/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js b/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js
index c03afc52516..8bc10475453 100644
--- a/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js
@@ -14,11 +14,8 @@
// MLOperand neg(MLOperand input);
-const getNegPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getNegPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const negTests = [
@@ -551,6 +548,62 @@ const negTests = [
}
}
}
+ },
+
+ // int8 tests
+ {
+ 'name': 'neg int8 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'negInput': {
+ 'data': [
+ // int8 range: [/* -(2**7) */ -128, /* 2**7 - 1 */ 127]
+ // neg(-128) would overflow when data type is int8
+ -127, 0, 126, 127
+ ],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'neg',
+ 'arguments': [{'input': 'negInput'}],
+ 'outputs': 'negOutput'
+ }],
+ 'expectedOutputs': {
+ 'negOutput': {
+ 'data': [127, 0, -126, -127],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int8'}
+ }
+ }
+ }
+ },
+
+ // int32 tests
+ {
+ 'name': 'neg int32 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'negInput': {
+ 'data': [
+ // int32 range: [/* -(2**31) */ -2147483648, /* 2**31 - 1 */ 2147483647]
+ // neg(-2147483648) would overflow when data type is int32
+ -2147483647, 0, 2147483646, 2147483647
+ ],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'neg',
+ 'arguments': [{'input': 'negInput'}],
+ 'outputs': 'negOutput'
+ }],
+ 'expectedOutputs': {
+ 'negOutput': {
+ 'data': [2147483647, 0, -2147483646, -2147483647],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int32'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js b/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js
index 8f6f2246b04..3b59c3bb49d 100644
--- a/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js
@@ -558,6 +558,372 @@ const subgraphTests = [
}
}
},
+ {
+ 'name': 'quantized tanh',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 0.6811466217041016, 0.0479511022567749, 0.33355462551116943,
+ 0.19882695376873016, 0.41167140007019043, 0.07934240251779556,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'input'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'quantizedInput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInput'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInput'
+ },
+ {
+ 'name': 'tanh',
+ 'arguments': [{'input': 'dequantizedInput'}],
+ 'outputs': 'tanhOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'tanhOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedtanhOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedtanhOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 0.5921568870544434, 0.0470588281750679, 0.32156863808631897,
+ 0.19607844948768616, 0.38823533058166504, 0.0784313753247261,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'quantized sigmoid',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 0.6811466217041016, 0.0479511022567749, 0.33355462551116943,
+ 0.19882695376873016, 0.41167140007019043, 0.07934240251779556,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputScale': {
+ 'data': [0.00390625],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.00390625],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'input'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'quantizedInput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInput'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInput'
+ },
+ {
+ 'name': 'sigmoid',
+ 'arguments': [{'input': 'dequantizedInput'}],
+ 'outputs': 'sigmoidOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'sigmoidOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedsigmoidOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedsigmoidOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 0.6640625, 0.51171875, 0.58203125,
+ 0.55078125, 0.6015625, 0.51953125,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'quantized leaky relu',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 1.6811466217041016, 0.0479511022567749, 0.33355462551116943,
+ -0.1988269537687301, -0.0041167140007019, -0.0634240251779556,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputZeroPoint': {
+ 'data': [0],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [0],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'input'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'quantizedInput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInput'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInput'
+ },
+ {
+ 'name': 'leakyRelu',
+ 'arguments': [
+ {'input': 'dequantizedInput'},
+ {'options': {'alpha': 5.799162942273234}}
+ ],
+ 'outputs': 'leakyReluOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'leakyReluOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedleakyReluOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedleakyReluOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 0.49803924560546875, 0.0470588281750679, 0.3333333432674408,
+ -0.501960813999176, -0.02352941408753395, -0.364705890417099,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'quantized concat',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [
+ -0.990639865398407, -0.576785683631897, -0.32276400923728943,
+ -0.44735023379325867, -0.11028251051902771, -0.5945112705230713,
+ ],
+ 'descriptor': {shape: [3, 2], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputAScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputAZeroPoint': {
+ 'data': [127],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'inputB': {
+ 'data': [
+ 2, 27, 38,
+ ],
+ 'descriptor': {shape: [3, 1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'inputBScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputBZeroPoint': {
+ 'data': [127],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [127],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'inputA'},
+ {'scale': 'inputAScale', 'zeroPoint': 'inputAZeroPoint'}
+ ],
+ 'outputs': 'quantizedInputA'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInputA'},
+ {'scale': 'inputAScale', 'zeroPoint': 'inputAZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInputA'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'inputB'},
+ {'scale': 'inputBScale', 'zeroPoint': 'inputBZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInputB'
+ },
+ {
+ 'name': 'concat',
+ 'arguments': [
+ {
+ 'inputs': ['dequantizedInputA', 'dequantizedInputB']
+ },
+ {'axis': 1}
+ ],
+ 'outputs': 'concatOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'concatOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedConcatOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedConcatOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ -0.9921569228172302, -0.5764706134796143, -0.4901961088180542,
+ -0.32156863808631897, -0.44705885648727417, -0.3921568989753723,
+ -0.1098039299249649, -0.5960784554481506, -0.3490196168422699,
+ ],
+ 'descriptor': {shape: [3, 3], dataType: 'float32'}
+ }
+ }
+ }
+ },
];
if (navigator.ml) {
diff --git a/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js
index 16cc2a3fa67..63ef9fa9ff0 100644
--- a/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js
@@ -581,7 +581,61 @@ const reluTests = [
}
}
}
- }
+ },
+
+ // int8 tests
+ {
+ 'name': 'relu int8 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'reluInput': {
+ 'data': [
+ // int8 range: [/* -(2**7) */ -128, /* 2**7 - 1 */ 127]
+ -128, 0, 126, 127
+ ],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'relu',
+ 'arguments': [{'input': 'reluInput'}],
+ 'outputs': 'reluOutput'
+ }],
+ 'expectedOutputs': {
+ 'reluOutput': {
+ 'data': [0, 0, 126, 127],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int8'}
+ }
+ }
+ }
+ },
+
+ // int32 tests
+ {
+ 'name': 'relu int32 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'reluInput': {
+ 'data': [
+ // int32 range: [/* -(2**31) */ -2147483648, /* 2**31 - 1 */ 2147483647]
+ -2147483648, 0, 2147483646, 2147483647
+ ],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'relu',
+ 'arguments': [{'input': 'reluInput'}],
+ 'outputs': 'reluOutput'
+ }],
+ 'expectedOutputs': {
+ 'reluOutput': {
+ 'data': [0, 0, 2147483646, 2147483647],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'int32'}
+ }
+ }
+ }
+ },
];
if (navigator.ml) {
diff --git a/tests/wpt/tests/webnn/conformance_tests/sub.https.any.js b/tests/wpt/tests/webnn/conformance_tests/sub.https.any.js
index 2f2fadf7282..85b15f5a000 100644
--- a/tests/wpt/tests/webnn/conformance_tests/sub.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/sub.https.any.js
@@ -14,7 +14,16 @@
const getSubPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 1, float16: 1};
+ const toleranceValueDict = {
+ float32: 1,
+ float16: 1,
+ int8: 0,
+ uint8: 0,
+ int32: 0,
+ uint32: 0,
+ int64: 0,
+ uint64: 0
+ };
const expectedDataType =
getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
@@ -916,6 +925,208 @@ const subTests = [
}
}
}
+ },
+
+ // int8 tests
+ {
+ 'name': 'sub int8 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [
+ 73, 14, -69, -52, -75, -2, -83, 15, -62, 32, 82, -74,
+ 78, 48, -19, -85, 89, 22, 80, 97, 52, 89, -20, 99
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int8'}
+ },
+ 'inputB': {
+ 'data': [
+ -49, 40, 7, 76, -81, 59, 11, 48, 65, 27, 30, -38,
+ -49, -78, 16, 35, -28, 28, 35, -3, -57, -21, 27, 32
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'sub',
+ 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ // the range of int8 result: [-128, 127]
+ 'data': [
+ 122, -26, -76, -128, 6, -61, -94, -33, -127, 5, 52, -36,
+ 127, 126, -35, -120, 117, -6, 45, 100, 109, 110, -47, 67
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int8'}
+ }
+ }
+ }
+ },
+
+ // uint8 tests
+ {
+ 'name': 'sub uint8 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [1, 10, 100, 255],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint8'}
+ },
+ 'inputB': {
+ // b should be lesser than or equal to a, otherwise the result would
+ // overflow when testing uint8 data type
+ 'data': [1, 8, 88, 254],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'sub',
+ 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [0, 2, 12, 1],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint8'}
+ }
+ }
+ }
+ },
+
+ // int32 tests
+ {
+ 'name': 'sub int32 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [
+ 73, 14, -69, -52, -75, -2, -83, 15, -62, 32, 82, -74,
+ 78, 48, -19, -85, 89, 22, 80, 97, 52, 89, -20, 99
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int32'}
+ },
+ 'inputB': {
+ 'data': [
+ -49, 40, 7, 89, -81, 59, 11, 48, 85, 27, 30, -38,
+ -83, -86, 16, 46, -28, 28, 35, -77, -57, -58, 27, 32
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'sub',
+ 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 122, -26, -76, -141, 6, -61, -94, -33, -147, 5, 52, -36,
+ 161, 134, -35, -131, 117, -6, 45, 174, 109, 147, -47, 67
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int32'}
+ }
+ }
+ }
+ },
+
+ // uint32 tests
+ {
+ 'name': 'sub uint32 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [1, 10, 100, 1024],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint32'}
+ },
+ 'inputB': {
+ // b should be lesser than or equal to a, otherwise the result would
+ // overflow when testing uint32 data type
+ 'data': [1, 8, 88, 1000],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'sub',
+ 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [0, 2, 12, 24],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint32'}
+ }
+ }
+ }
+ },
+
+ // int64 tests
+ {
+ 'name': 'sub int64 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [
+ 73, 14, -69, -52, -75, -2, -83, 15, -62, 32, 82, -74,
+ 78, 48, -19, -85, 89, 22, 80, 97, 52, 89, -20, 99
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int64'}
+ },
+ 'inputB': {
+ 'data': [
+ -49, 40, 7, 89, -81, 59, 11, 48, 85, 27, 30, -38,
+ -83, -86, 16, 46, -28, 28, 35, -77, -57, -58, 27, 32
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'sub',
+ 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 122, -26, -76, -141, 6, -61, -94, -33, -147, 5, 52, -36,
+ 161, 134, -35, -131, 117, -6, 45, 174, 109, 147, -47, 67
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int64'}
+ }
+ }
+ }
+ },
+
+ // uint64 tests
+ {
+ 'name': 'sub uint64 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputA': {
+ 'data': [1, 10, 100, 1024],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint64'}
+ },
+ 'inputB': {
+ // b should be lesser than or equal to a, otherwise the result would
+ // overflow when testing uint64 data type
+ 'data': [1, 8, 88, 1000],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'sub',
+ 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [0, 2, 12, 24],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint64'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/resources/utils.js b/tests/wpt/tests/webnn/resources/utils.js
index d19cb7cf760..50d7911a918 100644
--- a/tests/wpt/tests/webnn/resources/utils.js
+++ b/tests/wpt/tests/webnn/resources/utils.js
@@ -10,7 +10,7 @@ const operatorToleranceDict = {
leakyRelu: {float32: 1, float16: 2},
linear: {float32: 2, float16: 2},
prelu: {float32: 1, float16: 1},
- relu: {float32: 0, float16: 0},
+ relu: {float32: 0, float16: 0, int8: 0, int32: 0},
reshape: {float32: 0, float16: 0},
sigmoid: {float32: 34, float16: 10},
softplus: {float32: 18, float16: 18},
@@ -703,6 +703,10 @@ function validateContextSupportsGraph(context, graph) {
assert(
typeof inputName === 'string',
`the inputs' item of ${operatorName} should be a string.`);
+ if (!graph.inputs[inputName]) {
+ // intermediate input
+ continue;
+ }
validateInputOrConstantDataType(
inputName, operatorSupportLimits, 'inputs');
}
@@ -788,7 +792,21 @@ const buildAndExecuteGraph = async (context, builder, graphResources) => {
for (const argument of operator.arguments) {
for (const argumentName in argument) {
if (argumentName !== 'options') {
- if (graphInputs.hasOwnProperty(argument[argumentName])) {
+ if (operator.name === 'concat' && argumentName === 'inputs') {
+ const concatInputs = [];
+ for (const inputName of argument[argumentName]) {
+ if (graphInputs.hasOwnProperty(inputName)) {
+ const operandName = inputName;
+ const operand = createOperand(
+ context, builder, operandName, graphInputs[operandName]);
+ concatInputs.push(operand);
+ } else if (intermediateOperands.hasOwnProperty(inputName)) {
+ concatInputs.push(intermediateOperands[inputName]);
+ }
+ // concatInputs.push(intermediateOperands[inputName]);
+ }
+ argumentArray.push(concatInputs);
+ } else if (graphInputs.hasOwnProperty(argument[argumentName])) {
const operandName = argument[argumentName];
const operand = createOperand(
context, builder, operandName, graphInputs[operandName]);
diff --git a/tests/wpt/tests/webrtc-stats/supported-stats.https.html b/tests/wpt/tests/webrtc-stats/supported-stats.https.html
index 677736f3cd8..81aef5f94b9 100644
--- a/tests/wpt/tests/webrtc-stats/supported-stats.https.html
+++ b/tests/wpt/tests/webrtc-stats/supported-stats.https.html
@@ -69,6 +69,7 @@ function isPropertyTestable(type, property) {
],
'inbound-rtp': [
'fecSsrc', // requires FlexFEC to be negotiated.
+ 'fecBytesReceived', // requires FlexFEC to be negotiated.
],
'media-source': [
'echoReturnLoss', // requires gUM with an audio input device.
diff --git a/tests/wpt/tests/webrtc/RTCConfiguration-iceServers.html b/tests/wpt/tests/webrtc/RTCConfiguration-iceServers.html
index aa66bfbb2bf..bc7831361ab 100644
--- a/tests/wpt/tests/webrtc/RTCConfiguration-iceServers.html
+++ b/tests/wpt/tests/webrtc/RTCConfiguration-iceServers.html
@@ -301,4 +301,28 @@
}] }));
}, `with empty urls should throw SyntaxError`);
+ test(() => {
+ const pc = new RTCPeerConnection({ iceServers: [{
+ urls: 'stun:stun1.example.net'
+ }] });
+ let config = pc.getConfiguration();
+ assert_equals(config.iceServers.length, 1);
+ pc.setConfiguration({});
+ config = pc.getConfiguration();
+ assert_equals(config.iceServers.length, 0);
+ }, `setConfiguration(config) - without iceServers removes ice servers`);
+
+ config_test(makePc => {
+ const pc = makePc({ iceServers: [...Array(32)].map((_, i) => ({
+ urls: `stun:stun${i+1}.example.net`
+ })) });
+
+ const { iceServers } = pc.getConfiguration();
+ assert_equals(iceServers.length, 32);
+
+ for (let i = 0; i < 32; i++) {
+ const server = iceServers[i];
+ assert_array_equals(server.urls, [`stun:stun${i+1}.example.net`]);
+ }
+ }, `with 32 ice servers must succeed`);
</script>
diff --git a/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver.https.html b/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver.https.html
index 3fd83a76fe2..62df4293067 100644
--- a/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver.https.html
+++ b/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver.https.html
@@ -319,18 +319,21 @@
of 16 characters. If one of the RIDs does not meet these requirements,
throw a TypeError.
*/
+
+["video", "audio"].forEach(kind => {
+
test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
assert_idl_attribute(pc, 'addTransceiver');
assert_throws_js(TypeError, () =>
- pc.addTransceiver('video', {
+ pc.addTransceiver(kind, {
sendEncodings: [{
rid: '@Invalid!'
}]
}));
- }, 'addTransceiver() with rid containing invalid non-alphanumeric characters should throw TypeError');
+ }, `addTransceiver("${kind}") with rid containing invalid non-alphanumeric characters should throw TypeError`);
test(t => {
const pc = new RTCPeerConnection();
@@ -338,22 +341,41 @@
assert_idl_attribute(pc, 'addTransceiver');
assert_throws_js(TypeError, () =>
- pc.addTransceiver('audio', {
+ pc.addTransceiver(kind, {
sendEncodings: [{
rid: 'a'.repeat(17)
}]
}));
- }, 'addTransceiver() with rid longer than 16 characters should throw TypeError');
+ }, `addTransceiver("${kind}") with rid longer than 16 characters should throw TypeError`);
+
+ test(t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ assert_idl_attribute(pc, 'addTransceiver');
+
+ assert_throws_js(TypeError, () =>
+ pc.addTransceiver(kind, {
+ sendEncodings: [{rid: 'a'}, {rid: 'a'}]
+ }));
+ }, `addTransceiver("${kind}") with duplicate rids should throw TypeError`);
test(t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
- pc.addTransceiver('audio', {
+ pc.addTransceiver(kind, {
sendEncodings: [{
rid: 'foo'
}]
});
- }, `addTransceiver() with valid rid value should succeed`);
+ }, `addTransceiver("${kind}") with valid rid value should succeed`);
+
+ test(t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ pc.addTransceiver('video', {
+ sendEncodings: [{rid: 'a'}, {rid: 'b'}]
+ });
+ }, `addTransceiver("${kind}") with multiple rid values should succeed`);
test(t => {
const pc = new RTCPeerConnection();
@@ -369,7 +391,8 @@
rid: 'foo'
}]
});
- }, `addTransceiver() with valid sendEncodings should succeed`);
+ }, `addTransceiver("${kind}") with valid sendEncodings should succeed`);
+});
/*
TODO
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html
new file mode 100644
index 00000000000..f3256106e90
--- /dev/null
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/webxr_util.js"></script>
+<script src="../../resources/webxr_math_utils.js"></script>
+<script src="../../resources/webxr_test_constants.js"></script>
+<script src="../../resources/webxr_test_asserts.js"></script>
+<script src="../../resources/webxr_test_constants_fake_depth.js"></script>
+<script src="../matchDepthViewValues.js"></script>
+
+<script>
+
+const fakeDeviceInitParams = {
+ supportedModes: ["immersive-ar"],
+ views: VALID_VIEWS,
+ supportedFeatures: ALL_FEATURES,
+ depthSensingData: DEPTH_SENSING_DATA,
+};
+
+function matchDepthViewFalsePlaceholderTest(session) {
+ // Currently we just assert that we are able to get a session when
+ // matchDepthView is false. If we got to this point, we have a session.
+ return Promise.resolve();
+}
+
+xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView is unset, `cpu-optimized`",
+ depthViewGeometryTestGenerator(/*isCpuOptimized=*/true),
+ fakeDeviceInitParams,
+ 'immersive-ar', {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['cpu-optimized'],
+ dataFormatPreference: [],
+ },
+ });
+
+xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView=true, `cpu-optimized`",
+ depthViewGeometryTestGenerator(/*isCpuOptimized=*/true),
+ fakeDeviceInitParams,
+ 'immersive-ar', {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['cpu-optimized'],
+ dataFormatPreference: [],
+ matchDepthView: true,
+ },
+ });
+
+xr_session_promise_test("Ensures session can be created when matchDepthView=false, `cpu-optimized`",
+ matchDepthViewFalsePlaceholderTest,
+ fakeDeviceInitParams,
+ 'immersive-ar', {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['cpu-optimized'],
+ dataFormatPreference: [],
+ matchDepthView: false,
+ },
+ });
+
+</script>
diff --git a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html
new file mode 100644
index 00000000000..1813ddd449e
--- /dev/null
+++ b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/webxr_util.js"></script>
+<script src="../../resources/webxr_math_utils.js"></script>
+<script src="../../resources/webxr_test_constants.js"></script>
+<script src="../../resources/webxr_test_asserts.js"></script>
+<script src="../../resources/webxr_test_constants_fake_depth.js"></script>
+<script src="../matchDepthViewValues.js"></script>
+
+<script>
+
+const fakeDeviceInitParams = {
+ supportedModes: ["immersive-ar"],
+ views: VALID_VIEWS,
+ supportedFeatures: ALL_FEATURES,
+ depthSensingData: DEPTH_SENSING_DATA,
+};
+
+function matchDepthViewFalsePlaceholderTest(session) {
+ // Currently we just assert that we are able to get a session when
+ // matchDepthView is false. If we got to this point, we have a session.
+ return Promise.resolve();
+}
+
+xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView is unset, `gpu-optimized`",
+ depthViewGeometryTestGenerator(/*isCpuOptimized=*/false),
+ fakeDeviceInitParams,
+ 'immersive-ar', {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['gpu-optimized'],
+ dataFormatPreference: [],
+ },
+ });
+
+xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView=true, `gpu-optimized`",
+ depthViewGeometryTestGenerator(/*isCpuOptimized=*/false),
+ fakeDeviceInitParams,
+ 'immersive-ar', {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['gpu-optimized'],
+ dataFormatPreference: [],
+ matchDepthView: true,
+ },
+ });
+
+xr_session_promise_test("Ensures session can be created when matchDepthView=false, `gpu-optimized`",
+ matchDepthViewFalsePlaceholderTest,
+ fakeDeviceInitParams,
+ 'immersive-ar', {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['gpu-optimized'],
+ dataFormatPreference: [],
+ matchDepthView: false,
+ },
+ });
+
+</script>
diff --git a/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js b/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js
new file mode 100644
index 00000000000..597f9734d3f
--- /dev/null
+++ b/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js
@@ -0,0 +1,31 @@
+'use strict';
+
+// import * as XrConstants from 'resources/webxr_test_constants.js'
+// import * as XrAsserts from 'resources/webxr_test_asserts.js'
+
+// TODO: Expand the WebXrTestApi to specify a viewGeometry that this can validate
+// as well.
+const depthViewGeometryTestGenerator = function(isCpuOptimized) {
+ return (session, controller, t, sessionObjects) => {
+
+ return session.requestReferenceSpace('viewer').then((viewerSpace) => new Promise((resolve) => {
+
+ const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
+
+ const rafCb = function(time, frame) {
+ const pose = frame.getViewerPose(viewerSpace);
+ for(const view of pose.views) {
+ const depthInformation = isCpuOptimized ? frame.getDepthInformation(view)
+ : glBinding.getDepthInformation(view);
+ t.step(()=> {
+ assert_matrix_approx_equals(IDENTITY_MATRIX, depthInformation.projectionMatrix);
+ assert_transform_approx_equals(IDENTITY_TRANSFORM, depthInformation.transform);
+ });
+ }
+ resolve();
+ }
+
+ session.requestAnimationFrame(rafCb);
+ })); // Promise
+ }; // Test Func
+}; // Generator Func
diff --git a/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini b/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini
index 37602dbc1f6..435cfbe0d5c 100644
--- a/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini
+++ b/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini
@@ -13,6 +13,3 @@
[WebGL test #588]
expected: FAIL
-
- [WebGL test #52]
- expected: FAIL