aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/compositing/root-element-opacity-change.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/abspos/position-absolute-013.html.ini1
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini12
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-001.html.ini209
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini450
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini273
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-attr.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-class.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-has.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-sibling.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse-during-unload.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini1
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/resource-timing/content-type-parsing.html.ini10
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/workers/dedicated-worker-from-blob-url.window.js.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json392
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini3
-rw-r--r--tests/wpt/metadata/css/compositing/root-element-opacity-change.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-flexbox/abspos/position-absolute-013.html.ini1
-rw-r--r--tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini12
-rw-r--r--tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006b.xht.ini3
-rw-r--r--tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006c.xht.ini3
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini209
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini450
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini273
-rw-r--r--tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini3
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-of-attr.html.ini2
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-of-class.html.ini2
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-of-has.html.ini2
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini2
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-of-sibling.html.ini2
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini2
-rw-r--r--tests/wpt/metadata/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-length/parsing.window.js.ini4
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini2
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini4
-rw-r--r--tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini2
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini5
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini4
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini3
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini2
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini5
-rw-r--r--tests/wpt/metadata/resource-timing/content-type-parsing.html.ini10
-rw-r--r--tests/wpt/metadata/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini2
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/017.html.ini4
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/018.html.ini4
-rw-r--r--tests/wpt/metadata/workers/dedicated-worker-from-blob-url.window.js.ini3
-rw-r--r--tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini3
-rw-r--r--tests/wpt/web-platform-tests/cookies/resources/set-cookie.py2
-rw-r--r--tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html (renamed from tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-no-overflow-crash.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html49
-rw-r--r--tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html49
-rw-r--r--tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html46
-rw-r--r--tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html51
-rw-r--r--tests/wpt/web-platform-tests/css/css-break/table/table-rowspan-001.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-cross-origin.html57
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006b.xht63
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006c.xht63
-rw-r--r--tests/wpt/web-platform-tests/css/css-view-transitions/paused-animation-at-end.html45
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr.html26
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class.html26
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has.html26
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor-ref.html13
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor.html24
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling.html26
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes-ref.html13
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes.html24
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes.html25
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-listbox-fallback-change-crash.tentative.html35
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001-ref.html18
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001.html33
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-002.html81
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001-ref.html18
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001.html33
-rw-r--r--tests/wpt/web-platform-tests/subapps/add-error.tentative.https.html14
-rw-r--r--tests/wpt/web-platform-tests/svg/struct/reftests/support/red-rect.svg3
-rw-r--r--tests/wpt/web-platform-tests/svg/struct/reftests/use-cross-origin.svg12
-rw-r--r--tests/wpt/web-platform-tests/svg/struct/reftests/use-data-url.tentative.svg7
-rw-r--r--tests/wpt/web-platform-tests/svg/struct/reftests/use-same-origin.svg6
-rw-r--r--tests/wpt/web-platform-tests/svg/struct/scripted/use-load-error-events.tentative.html4
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/__init__.py22
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/__init__.py180
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_tentative.py171
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/__init__.py0
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/network_events_tentative.py46
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/conftest.py70
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/__init__.py0
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/response_started_tentative.py285
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.js1
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.pngbin0 -> 72 bytes
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.svg1
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/__init__.py0
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/authentication.py (renamed from tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py)2
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/headers.py19
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/redirect.py (renamed from tests/wpt/web-platform-tests/webdriver/tests/support/redirect.py)0
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/status.py16
-rw-r--r--tests/wpt/web-platform-tests/webtransport/close.https.any.js9
161 files changed, 3719 insertions, 669 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
new file mode 100644
index 00000000000..968f62a2553
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
@@ -0,0 +1,3 @@
+[hit-test-floats-002.html]
+ [Hit test float]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
new file mode 100644
index 00000000000..147f062e548
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
@@ -0,0 +1,3 @@
+[hit-test-floats-005.html]
+ [Miss clipped float]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini
new file mode 100644
index 00000000000..3e5096beef3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini
@@ -0,0 +1,3 @@
+[block-in-inline-hittest-float-002.html]
+ [block-in-inline-hittest-float-002]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
deleted file mode 100644
index 7c07b71d77c..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[hit-test-anonymous-block.html]
- [Hit test beside line of text inside anonymous block]
- expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/compositing/root-element-opacity-change.html.ini b/tests/wpt/metadata-layout-2020/css/compositing/root-element-opacity-change.html.ini
new file mode 100644
index 00000000000..c51daae123f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/compositing/root-element-opacity-change.html.ini
@@ -0,0 +1,2 @@
+[root-element-opacity-change.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini
new file mode 100644
index 00000000000..eb3cf41a070
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini
@@ -0,0 +1,2 @@
+[opacity-animation-ending-correctly-002.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/abspos/position-absolute-013.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/abspos/position-absolute-013.html.ini
index f3d5a1904d9..d4f9786638e 100644
--- a/tests/wpt/metadata-layout-2020/css/css-flexbox/abspos/position-absolute-013.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/abspos/position-absolute-013.html.ini
@@ -1,5 +1,4 @@
[position-absolute-013.html]
- expected: TIMEOUT
[.flexbox 309]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini
index 3056d8ccb84..5f1ad263eb7 100644
--- a/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini
@@ -116,9 +116,6 @@
[Matching font-style: 'oblique -10deg' should prefer 'oblique 0deg 10deg' over 'oblique 40deg 50deg']
expected: FAIL
- [Matching font-style: 'oblique -20deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg']
- expected: FAIL
-
[Matching font-style: 'oblique -20deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg']
expected: FAIL
@@ -245,9 +242,6 @@
[Matching font-style: 'oblique -21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg']
expected: FAIL
- [Matching font-style: 'oblique 21deg' should prefer 'italic' over 'oblique 0deg']
- expected: FAIL
-
[Matching font-style: 'oblique 21deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg']
expected: FAIL
@@ -314,11 +308,11 @@
[Matching font-style: 'oblique 21deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg']
expected: FAIL
- [Matching font-style: 'oblique -10deg' should prefer 'oblique -50deg -40deg' over 'italic']
- expected: FAIL
-
[Matching font-weight: '399' should prefer '350 399' over '340 360']
expected: FAIL
[Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg']
expected: FAIL
+
+ [Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg']
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-001.html.ini
index 180652f75d4..7727764a576 100644
--- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-001.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-001.html.ini
@@ -53,275 +53,302 @@
[background-position length(px) / events]
expected: FAIL
- [background-color color(rgba) / values]
+ [color color(rgba) / values]
expected: FAIL
- [border-top-width length(pt) / values]
+ [font-size length(pt) / values]
expected: FAIL
- [border-top-width length(pc) / values]
+ [font-size length(pc) / values]
expected: FAIL
- [border-top-width length(px) / values]
+ [font-size length(px) / values]
expected: FAIL
- [border-top-width length(em) / values]
+ [font-size length(em) / values]
expected: FAIL
- [border-top-width length(ex) / values]
+ [font-size length(ex) / values]
expected: FAIL
- [border-top-width length(mm) / values]
+ [font-size length(mm) / values]
expected: FAIL
- [border-top-width length(cm) / values]
+ [font-size length(cm) / values]
expected: FAIL
- [border-top-width length(in) / values]
+ [font-size length(in) / values]
expected: FAIL
- [border-right-width length(pt) / values]
+ [font-size percentage(%) / values]
expected: FAIL
- [border-right-width length(pc) / values]
+ [font-weight font-weight(keyword) / values]
expected: FAIL
- [border-right-width length(px) / values]
+ [font-weight font-weight(numeric) / values]
expected: FAIL
- [border-right-width length(em) / values]
+ [line-height number(integer) / values]
expected: FAIL
- [border-right-width length(ex) / values]
+ [line-height number(decimal) / values]
expected: FAIL
- [border-right-width length(mm) / values]
+ [line-height length(pt) / values]
expected: FAIL
- [border-right-width length(cm) / values]
+ [line-height length(pc) / values]
expected: FAIL
- [border-right-width length(in) / values]
+ [line-height length(px) / values]
expected: FAIL
- [border-bottom-width length(pt) / values]
+ [line-height length(em) / values]
expected: FAIL
- [border-bottom-width length(pc) / values]
+ [line-height length(ex) / values]
expected: FAIL
- [border-bottom-width length(px) / values]
+ [line-height length(mm) / values]
expected: FAIL
- [border-bottom-width length(em) / values]
+ [line-height length(cm) / values]
expected: FAIL
- [border-bottom-width length(ex) / values]
+ [line-height length(in) / values]
expected: FAIL
- [border-bottom-width length(mm) / values]
+ [line-height percentage(%) / values]
expected: FAIL
- [border-bottom-width length(cm) / values]
+ [letter-spacing length(pt) / values]
expected: FAIL
- [border-bottom-width length(in) / values]
+ [letter-spacing length(pc) / values]
expected: FAIL
- [border-left-width length(pt) / values]
+ [letter-spacing length(px) / values]
expected: FAIL
- [border-left-width length(pc) / values]
+ [letter-spacing length(em) / values]
expected: FAIL
- [border-left-width length(px) / values]
+ [letter-spacing length(ex) / values]
expected: FAIL
- [border-left-width length(em) / values]
+ [letter-spacing length(mm) / values]
expected: FAIL
- [border-left-width length(ex) / values]
+ [letter-spacing length(cm) / values]
expected: FAIL
- [border-left-width length(mm) / values]
+ [letter-spacing length(in) / values]
expected: FAIL
- [border-left-width length(cm) / values]
+ [word-spacing length(pt) / values]
expected: FAIL
- [border-left-width length(in) / values]
+ [word-spacing length(pc) / values]
expected: FAIL
- [border-top-color color(rgba) / values]
+ [word-spacing length(px) / values]
expected: FAIL
- [border-right-color color(rgba) / values]
+ [word-spacing length(em) / values]
expected: FAIL
- [border-bottom-color color(rgba) / values]
+ [word-spacing length(ex) / values]
expected: FAIL
- [border-left-color color(rgba) / values]
+ [word-spacing length(mm) / values]
expected: FAIL
- [padding-bottom length(pt) / values]
+ [word-spacing length(cm) / values]
expected: FAIL
- [padding-bottom length(pc) / values]
+ [word-spacing length(in) / values]
expected: FAIL
- [padding-bottom length(px) / values]
+ [word-spacing percentage(%) / values]
expected: FAIL
- [padding-bottom length(em) / values]
+ [text-indent length(pt) / values]
expected: FAIL
- [color color(rgba) / values]
+ [text-indent length(pc) / values]
expected: FAIL
- [font-size length(pt) / values]
+ [text-indent length(px) / values]
expected: FAIL
- [font-size length(pc) / values]
+ [text-indent length(em) / values]
expected: FAIL
- [font-size length(px) / values]
+ [text-indent length(ex) / values]
expected: FAIL
- [font-size length(em) / values]
+ [text-indent length(mm) / values]
expected: FAIL
- [font-size length(ex) / values]
+ [text-indent length(cm) / values]
expected: FAIL
- [font-size length(mm) / values]
+ [text-indent length(in) / values]
expected: FAIL
- [font-size length(cm) / values]
+ [text-indent percentage(%) / values]
expected: FAIL
- [font-size length(in) / values]
+ [text-shadow shadow(shadow) / values]
expected: FAIL
- [font-size percentage(%) / values]
+ [padding-bottom length(ex) / values]
expected: FAIL
- [font-weight font-weight(keyword) / values]
+ [padding-bottom length(mm) / values]
expected: FAIL
- [font-weight font-weight(numeric) / values]
+ [padding-bottom length(cm) / values]
expected: FAIL
- [line-height number(integer) / values]
+ [padding-bottom length(in) / values]
expected: FAIL
- [line-height number(decimal) / values]
+ [padding-left length(pt) / values]
expected: FAIL
- [line-height length(pt) / values]
+ [padding-left length(pc) / values]
expected: FAIL
- [line-height length(pc) / values]
+ [padding-left length(px) / values]
expected: FAIL
- [line-height length(px) / values]
+ [padding-left length(em) / values]
expected: FAIL
- [line-height length(em) / values]
+ [padding-left length(ex) / values]
expected: FAIL
- [line-height length(ex) / values]
+ [padding-left length(mm) / values]
expected: FAIL
- [line-height length(mm) / values]
+ [padding-left length(cm) / values]
expected: FAIL
- [line-height length(cm) / values]
+ [padding-left length(in) / values]
expected: FAIL
- [line-height length(in) / values]
+ [padding-right length(pt) / values]
expected: FAIL
- [line-height percentage(%) / values]
+ [padding-right length(pc) / values]
expected: FAIL
- [letter-spacing length(pt) / values]
+ [padding-right length(px) / values]
expected: FAIL
- [letter-spacing length(pc) / values]
+ [padding-right length(em) / values]
expected: FAIL
- [letter-spacing length(px) / values]
+ [padding-right length(ex) / values]
expected: FAIL
- [letter-spacing length(em) / values]
+ [padding-right length(mm) / values]
expected: FAIL
- [letter-spacing length(ex) / values]
+ [padding-right length(cm) / values]
expected: FAIL
- [letter-spacing length(mm) / values]
+ [padding-right length(in) / values]
expected: FAIL
- [letter-spacing length(cm) / values]
+ [padding-top length(pt) / values]
expected: FAIL
- [letter-spacing length(in) / values]
+ [padding-top length(pc) / values]
expected: FAIL
- [word-spacing length(pt) / values]
+ [padding-top length(px) / values]
expected: FAIL
- [word-spacing length(pc) / values]
+ [padding-top length(em) / values]
expected: FAIL
- [word-spacing length(px) / values]
+ [padding-top length(ex) / values]
expected: FAIL
- [word-spacing length(em) / values]
+ [padding-top length(mm) / values]
expected: FAIL
- [word-spacing length(ex) / values]
+ [padding-top length(cm) / values]
expected: FAIL
- [word-spacing length(mm) / values]
+ [padding-top length(in) / values]
expected: FAIL
- [word-spacing length(cm) / values]
+ [margin-bottom length(pt) / values]
expected: FAIL
- [word-spacing length(in) / values]
+ [margin-bottom length(pc) / values]
expected: FAIL
- [word-spacing percentage(%) / values]
+ [margin-bottom length(px) / values]
expected: FAIL
- [text-indent length(pt) / values]
+ [margin-bottom length(em) / values]
expected: FAIL
- [text-indent length(pc) / values]
+ [margin-bottom length(ex) / values]
expected: FAIL
- [text-indent length(px) / values]
+ [margin-bottom length(mm) / values]
expected: FAIL
- [text-indent length(em) / values]
+ [margin-bottom length(cm) / values]
expected: FAIL
- [text-indent length(ex) / values]
+ [margin-bottom length(in) / values]
expected: FAIL
- [text-indent length(mm) / values]
+ [margin-left length(pt) / values]
expected: FAIL
- [text-indent length(cm) / values]
+ [margin-left length(pc) / values]
expected: FAIL
- [text-indent length(in) / values]
+ [margin-left length(px) / values]
expected: FAIL
- [text-indent percentage(%) / values]
+ [margin-left length(em) / values]
expected: FAIL
- [text-shadow shadow(shadow) / values]
+ [margin-left length(ex) / values]
+ expected: FAIL
+
+ [margin-left length(mm) / values]
+ expected: FAIL
+
+ [margin-left length(cm) / values]
+ expected: FAIL
+
+ [margin-left length(in) / values]
+ expected: FAIL
+
+ [margin-right length(pt) / values]
+ expected: FAIL
+
+ [margin-right length(pc) / values]
+ expected: FAIL
+
+ [margin-right length(px) / values]
+ expected: FAIL
+
+ [margin-right length(em) / values]
+ expected: FAIL
+
+ [margin-right length(ex) / values]
+ expected: FAIL
+
+ [margin-right length(mm) / values]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini
index 542ee41ded7..5dc6354ad55 100644
--- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini
@@ -178,3 +178,453 @@
[padding-bottom length(em) / events]
expected: FAIL
+
+ [padding-bottom length(ex) / events]
+ expected: FAIL
+
+ [padding-bottom length(mm) / events]
+ expected: FAIL
+
+ [padding-bottom length(cm) / events]
+ expected: FAIL
+
+ [padding-bottom length(in) / events]
+ expected: FAIL
+
+ [padding-left length(pt) / events]
+ expected: FAIL
+
+ [padding-left length(pc) / events]
+ expected: FAIL
+
+ [padding-left length(px) / events]
+ expected: FAIL
+
+ [padding-left length(em) / events]
+ expected: FAIL
+
+ [padding-left length(ex) / events]
+ expected: FAIL
+
+ [padding-left length(mm) / events]
+ expected: FAIL
+
+ [padding-left length(cm) / events]
+ expected: FAIL
+
+ [padding-left length(in) / events]
+ expected: FAIL
+
+ [padding-right length(pt) / events]
+ expected: FAIL
+
+ [padding-right length(pc) / events]
+ expected: FAIL
+
+ [padding-right length(px) / events]
+ expected: FAIL
+
+ [padding-right length(em) / events]
+ expected: FAIL
+
+ [padding-right length(ex) / events]
+ expected: FAIL
+
+ [padding-right length(mm) / events]
+ expected: FAIL
+
+ [padding-right length(cm) / events]
+ expected: FAIL
+
+ [padding-right length(in) / events]
+ expected: FAIL
+
+ [padding-top length(pt) / events]
+ expected: FAIL
+
+ [padding-top length(pc) / events]
+ expected: FAIL
+
+ [padding-top length(px) / events]
+ expected: FAIL
+
+ [padding-top length(em) / events]
+ expected: FAIL
+
+ [padding-top length(ex) / events]
+ expected: FAIL
+
+ [padding-top length(mm) / events]
+ expected: FAIL
+
+ [padding-top length(cm) / events]
+ expected: FAIL
+
+ [padding-top length(in) / events]
+ expected: FAIL
+
+ [margin-bottom length(pt) / events]
+ expected: FAIL
+
+ [margin-bottom length(pc) / events]
+ expected: FAIL
+
+ [margin-bottom length(px) / events]
+ expected: FAIL
+
+ [margin-bottom length(em) / events]
+ expected: FAIL
+
+ [margin-bottom length(ex) / events]
+ expected: FAIL
+
+ [margin-bottom length(mm) / events]
+ expected: FAIL
+
+ [margin-bottom length(cm) / events]
+ expected: FAIL
+
+ [margin-bottom length(in) / events]
+ expected: FAIL
+
+ [margin-left length(pt) / events]
+ expected: FAIL
+
+ [margin-left length(pc) / events]
+ expected: FAIL
+
+ [margin-left length(px) / events]
+ expected: FAIL
+
+ [margin-left length(em) / events]
+ expected: FAIL
+
+ [margin-left length(ex) / events]
+ expected: FAIL
+
+ [margin-left length(mm) / events]
+ expected: FAIL
+
+ [margin-left length(cm) / events]
+ expected: FAIL
+
+ [margin-left length(in) / events]
+ expected: FAIL
+
+ [margin-right length(pt) / events]
+ expected: FAIL
+
+ [margin-right length(pc) / events]
+ expected: FAIL
+
+ [margin-right length(px) / events]
+ expected: FAIL
+
+ [margin-right length(em) / events]
+ expected: FAIL
+
+ [margin-right length(ex) / events]
+ expected: FAIL
+
+ [margin-right length(mm) / events]
+ expected: FAIL
+
+ [margin-right length(cm) / events]
+ expected: FAIL
+
+ [margin-right length(in) / events]
+ expected: FAIL
+
+ [margin-top length(pt) / events]
+ expected: FAIL
+
+ [margin-top length(pc) / events]
+ expected: FAIL
+
+ [margin-top length(px) / events]
+ expected: FAIL
+
+ [margin-top length(em) / events]
+ expected: FAIL
+
+ [margin-top length(ex) / events]
+ expected: FAIL
+
+ [margin-top length(mm) / events]
+ expected: FAIL
+
+ [margin-top length(cm) / events]
+ expected: FAIL
+
+ [margin-top length(in) / events]
+ expected: FAIL
+
+ [height length(pt) / events]
+ expected: FAIL
+
+ [height length(pc) / events]
+ expected: FAIL
+
+ [height length(px) / events]
+ expected: FAIL
+
+ [height length(em) / events]
+ expected: FAIL
+
+ [height length(ex) / events]
+ expected: FAIL
+
+ [height length(mm) / events]
+ expected: FAIL
+
+ [height length(cm) / events]
+ expected: FAIL
+
+ [height length(in) / events]
+ expected: FAIL
+
+ [height percentage(%) / events]
+ expected: FAIL
+
+ [width length(pt) / events]
+ expected: FAIL
+
+ [width length(pc) / events]
+ expected: FAIL
+
+ [width length(px) / events]
+ expected: FAIL
+
+ [width length(em) / events]
+ expected: FAIL
+
+ [width length(ex) / events]
+ expected: FAIL
+
+ [width length(mm) / events]
+ expected: FAIL
+
+ [width length(cm) / events]
+ expected: FAIL
+
+ [width length(in) / events]
+ expected: FAIL
+
+ [width percentage(%) / events]
+ expected: FAIL
+
+ [min-height length(pt) / events]
+ expected: FAIL
+
+ [min-height length(pc) / events]
+ expected: FAIL
+
+ [min-height length(px) / events]
+ expected: FAIL
+
+ [min-height length(em) / events]
+ expected: FAIL
+
+ [min-height length(ex) / events]
+ expected: FAIL
+
+ [min-height length(mm) / events]
+ expected: FAIL
+
+ [min-height length(cm) / events]
+ expected: FAIL
+
+ [min-height length(in) / events]
+ expected: FAIL
+
+ [min-height percentage(%) / events]
+ expected: FAIL
+
+ [min-width length(pt) / events]
+ expected: FAIL
+
+ [min-width length(pc) / events]
+ expected: FAIL
+
+ [min-width length(px) / events]
+ expected: FAIL
+
+ [min-width length(em) / events]
+ expected: FAIL
+
+ [min-width length(ex) / events]
+ expected: FAIL
+
+ [min-width length(mm) / events]
+ expected: FAIL
+
+ [min-width length(cm) / events]
+ expected: FAIL
+
+ [min-width length(in) / events]
+ expected: FAIL
+
+ [min-width percentage(%) / events]
+ expected: FAIL
+
+ [max-height length(pt) / events]
+ expected: FAIL
+
+ [max-height length(pc) / events]
+ expected: FAIL
+
+ [max-height length(px) / events]
+ expected: FAIL
+
+ [max-height length(em) / events]
+ expected: FAIL
+
+ [color color(rgba) / events]
+ expected: FAIL
+
+ [font-size length(pt) / events]
+ expected: FAIL
+
+ [font-size length(pc) / events]
+ expected: FAIL
+
+ [font-size length(px) / events]
+ expected: FAIL
+
+ [font-size length(em) / events]
+ expected: FAIL
+
+ [font-size length(ex) / events]
+ expected: FAIL
+
+ [font-size length(mm) / events]
+ expected: FAIL
+
+ [font-size length(cm) / events]
+ expected: FAIL
+
+ [font-size length(in) / events]
+ expected: FAIL
+
+ [font-size percentage(%) / events]
+ expected: FAIL
+
+ [font-weight font-weight(keyword) / events]
+ expected: FAIL
+
+ [font-weight font-weight(numeric) / events]
+ expected: FAIL
+
+ [line-height number(integer) / events]
+ expected: FAIL
+
+ [line-height number(decimal) / events]
+ expected: FAIL
+
+ [line-height length(pt) / events]
+ expected: FAIL
+
+ [line-height length(pc) / events]
+ expected: FAIL
+
+ [line-height length(px) / events]
+ expected: FAIL
+
+ [line-height length(em) / events]
+ expected: FAIL
+
+ [line-height length(ex) / events]
+ expected: FAIL
+
+ [line-height length(mm) / events]
+ expected: FAIL
+
+ [line-height length(cm) / events]
+ expected: FAIL
+
+ [line-height length(in) / events]
+ expected: FAIL
+
+ [line-height percentage(%) / events]
+ expected: FAIL
+
+ [letter-spacing length(pt) / events]
+ expected: FAIL
+
+ [letter-spacing length(pc) / events]
+ expected: FAIL
+
+ [letter-spacing length(px) / events]
+ expected: FAIL
+
+ [letter-spacing length(em) / events]
+ expected: FAIL
+
+ [letter-spacing length(ex) / events]
+ expected: FAIL
+
+ [letter-spacing length(mm) / events]
+ expected: FAIL
+
+ [letter-spacing length(cm) / events]
+ expected: FAIL
+
+ [letter-spacing length(in) / events]
+ expected: FAIL
+
+ [word-spacing length(pt) / events]
+ expected: FAIL
+
+ [word-spacing length(pc) / events]
+ expected: FAIL
+
+ [word-spacing length(px) / events]
+ expected: FAIL
+
+ [word-spacing length(em) / events]
+ expected: FAIL
+
+ [word-spacing length(ex) / events]
+ expected: FAIL
+
+ [word-spacing length(mm) / events]
+ expected: FAIL
+
+ [word-spacing length(cm) / events]
+ expected: FAIL
+
+ [word-spacing length(in) / events]
+ expected: FAIL
+
+ [word-spacing percentage(%) / events]
+ expected: FAIL
+
+ [text-indent length(pt) / events]
+ expected: FAIL
+
+ [text-indent length(pc) / events]
+ expected: FAIL
+
+ [text-indent length(px) / events]
+ expected: FAIL
+
+ [text-indent length(em) / events]
+ expected: FAIL
+
+ [text-indent length(ex) / events]
+ expected: FAIL
+
+ [text-indent length(mm) / events]
+ expected: FAIL
+
+ [text-indent length(cm) / events]
+ expected: FAIL
+
+ [text-indent length(in) / events]
+ expected: FAIL
+
+ [text-indent percentage(%) / events]
+ expected: FAIL
+
+ [text-shadow shadow(shadow) / events]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini
index 242ba44bbca..793afafa0e8 100644
--- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini
@@ -52,3 +52,276 @@
[background-position length(px) / events]
expected: FAIL
+
+ [background-color color(rgba) / values]
+ expected: FAIL
+
+ [border-top-width length(pt) / values]
+ expected: FAIL
+
+ [border-top-width length(pc) / values]
+ expected: FAIL
+
+ [border-top-width length(px) / values]
+ expected: FAIL
+
+ [border-top-width length(em) / values]
+ expected: FAIL
+
+ [border-top-width length(ex) / values]
+ expected: FAIL
+
+ [border-top-width length(mm) / values]
+ expected: FAIL
+
+ [border-top-width length(cm) / values]
+ expected: FAIL
+
+ [border-top-width length(in) / values]
+ expected: FAIL
+
+ [border-right-width length(pt) / values]
+ expected: FAIL
+
+ [border-right-width length(pc) / values]
+ expected: FAIL
+
+ [border-right-width length(px) / values]
+ expected: FAIL
+
+ [border-right-width length(em) / values]
+ expected: FAIL
+
+ [border-right-width length(ex) / values]
+ expected: FAIL
+
+ [border-right-width length(mm) / values]
+ expected: FAIL
+
+ [border-right-width length(cm) / values]
+ expected: FAIL
+
+ [border-right-width length(in) / values]
+ expected: FAIL
+
+ [border-bottom-width length(pt) / values]
+ expected: FAIL
+
+ [border-bottom-width length(pc) / values]
+ expected: FAIL
+
+ [border-bottom-width length(px) / values]
+ expected: FAIL
+
+ [border-bottom-width length(em) / values]
+ expected: FAIL
+
+ [border-bottom-width length(ex) / values]
+ expected: FAIL
+
+ [border-bottom-width length(mm) / values]
+ expected: FAIL
+
+ [border-bottom-width length(cm) / values]
+ expected: FAIL
+
+ [border-bottom-width length(in) / values]
+ expected: FAIL
+
+ [border-left-width length(pt) / values]
+ expected: FAIL
+
+ [border-left-width length(pc) / values]
+ expected: FAIL
+
+ [border-left-width length(px) / values]
+ expected: FAIL
+
+ [border-left-width length(em) / values]
+ expected: FAIL
+
+ [border-left-width length(ex) / values]
+ expected: FAIL
+
+ [border-left-width length(mm) / values]
+ expected: FAIL
+
+ [border-left-width length(cm) / values]
+ expected: FAIL
+
+ [border-left-width length(in) / values]
+ expected: FAIL
+
+ [border-top-color color(rgba) / values]
+ expected: FAIL
+
+ [border-right-color color(rgba) / values]
+ expected: FAIL
+
+ [border-bottom-color color(rgba) / values]
+ expected: FAIL
+
+ [border-left-color color(rgba) / values]
+ expected: FAIL
+
+ [padding-bottom length(pt) / values]
+ expected: FAIL
+
+ [padding-bottom length(pc) / values]
+ expected: FAIL
+
+ [padding-bottom length(px) / values]
+ expected: FAIL
+
+ [padding-bottom length(em) / values]
+ expected: FAIL
+
+ [color color(rgba) / values]
+ expected: FAIL
+
+ [font-size length(pt) / values]
+ expected: FAIL
+
+ [font-size length(pc) / values]
+ expected: FAIL
+
+ [font-size length(px) / values]
+ expected: FAIL
+
+ [font-size length(em) / values]
+ expected: FAIL
+
+ [font-size length(ex) / values]
+ expected: FAIL
+
+ [font-size length(mm) / values]
+ expected: FAIL
+
+ [font-size length(cm) / values]
+ expected: FAIL
+
+ [font-size length(in) / values]
+ expected: FAIL
+
+ [font-size percentage(%) / values]
+ expected: FAIL
+
+ [font-weight font-weight(keyword) / values]
+ expected: FAIL
+
+ [font-weight font-weight(numeric) / values]
+ expected: FAIL
+
+ [line-height number(integer) / values]
+ expected: FAIL
+
+ [line-height number(decimal) / values]
+ expected: FAIL
+
+ [line-height length(pt) / values]
+ expected: FAIL
+
+ [line-height length(pc) / values]
+ expected: FAIL
+
+ [line-height length(px) / values]
+ expected: FAIL
+
+ [line-height length(em) / values]
+ expected: FAIL
+
+ [line-height length(ex) / values]
+ expected: FAIL
+
+ [line-height length(mm) / values]
+ expected: FAIL
+
+ [line-height length(cm) / values]
+ expected: FAIL
+
+ [line-height length(in) / values]
+ expected: FAIL
+
+ [line-height percentage(%) / values]
+ expected: FAIL
+
+ [letter-spacing length(pt) / values]
+ expected: FAIL
+
+ [letter-spacing length(pc) / values]
+ expected: FAIL
+
+ [letter-spacing length(px) / values]
+ expected: FAIL
+
+ [letter-spacing length(em) / values]
+ expected: FAIL
+
+ [letter-spacing length(ex) / values]
+ expected: FAIL
+
+ [letter-spacing length(mm) / values]
+ expected: FAIL
+
+ [letter-spacing length(cm) / values]
+ expected: FAIL
+
+ [letter-spacing length(in) / values]
+ expected: FAIL
+
+ [word-spacing length(pt) / values]
+ expected: FAIL
+
+ [word-spacing length(pc) / values]
+ expected: FAIL
+
+ [word-spacing length(px) / values]
+ expected: FAIL
+
+ [word-spacing length(em) / values]
+ expected: FAIL
+
+ [word-spacing length(ex) / values]
+ expected: FAIL
+
+ [word-spacing length(mm) / values]
+ expected: FAIL
+
+ [word-spacing length(cm) / values]
+ expected: FAIL
+
+ [word-spacing length(in) / values]
+ expected: FAIL
+
+ [word-spacing percentage(%) / values]
+ expected: FAIL
+
+ [text-indent length(pt) / values]
+ expected: FAIL
+
+ [text-indent length(pc) / values]
+ expected: FAIL
+
+ [text-indent length(px) / values]
+ expected: FAIL
+
+ [text-indent length(em) / values]
+ expected: FAIL
+
+ [text-indent length(ex) / values]
+ expected: FAIL
+
+ [text-indent length(mm) / values]
+ expected: FAIL
+
+ [text-indent length(cm) / values]
+ expected: FAIL
+
+ [text-indent length(in) / values]
+ expected: FAIL
+
+ [text-indent percentage(%) / values]
+ expected: FAIL
+
+ [text-shadow shadow(shadow) / values]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini
new file mode 100644
index 00000000000..f18b8d2fcf9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini
@@ -0,0 +1,3 @@
+[CaretPosition-001.html]
+ [Element at (400, 100)]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
deleted file mode 100644
index 0a6ae47d169..00000000000
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[MediaQueryList-extends-EventTarget-interop.html]
- [removeListener doesn't remove listener added with addEventListener (capture)]
- expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..72b09371038
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini
new file mode 100644
index 00000000000..b905fe70fcb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-ellipsis-in-inline-box.html]
+ [elementFromPoint-ellipsis-in-inline-box]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini
new file mode 100644
index 00000000000..a6bca7ac372
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-visibility-hidden-resizer.html]
+ [elementFromPoint on resizer area of an element with visibility:hidden]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini
deleted file mode 100644
index 3e7b0a9bc9c..00000000000
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[elementsFromPoint-iframes.html]
- [elementsFromPoint on inner documents]
- expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-attr.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-attr.html.ini
new file mode 100644
index 00000000000..e9271488bfb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-attr.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-attr.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-class.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-class.html.ini
new file mode 100644
index 00000000000..9a24925af13
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-class.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-class.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-has.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-has.html.ini
new file mode 100644
index 00000000000..f9ae9a26de4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-has.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-has.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini
new file mode 100644
index 00000000000..99b06462ef6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-in-ancestor.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-sibling.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-sibling.html.ini
new file mode 100644
index 00000000000..66fec24b0c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-of-sibling.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-sibling.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini
new file mode 100644
index 00000000000..ef48122dca4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini
@@ -0,0 +1,2 @@
+[nth-child-when-ancestor-changes.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini
new file mode 100644
index 00000000000..7879d75b5f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini
@@ -0,0 +1,2 @@
+[nth-child-when-sibling-changes.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini
index dbe03dd880c..ac656410273 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini
@@ -77,8 +77,8 @@
[Input: "Content-Length: ". Expected: 42.]
expected: FAIL
- [Input: "Content-Length: 42,42". Expected: 42.]
+ [Input: "Content-Length: 42\\r\\nContent-Length: 42". Expected: 42.]
expected: FAIL
- [Input: "Content-Length: 42\\r\\nContent-Length: 42,42". Expected: 42.]
+ [Input: "Content-Length: 30". Expected: 30.]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
index 092e3da5086..736ff6130a5 100644
--- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -7,6 +7,3 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
-
- [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
- expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini
index a3f473a9557..1f528be38ef 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini
@@ -1,4 +1,4 @@
[scroll-restoration-fragment-scrolling-cross-origin.html]
- expected: TIMEOUT
+ expected: ERROR
[Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation]
expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini
index eaebad750fe..f2dee7b3ea9 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini
@@ -1,7 +1,6 @@
[consecutive-srcdoc.html]
- expected: TIMEOUT
[changing srcdoc does a replace navigation since the URL is still about:srcdoc]
expected: FAIL
[changing srcdoc to about:srcdoc#yo then another srcdoc does two push navigations and we can navigate back]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
index 5f9a07f92f0..dc1144214ef 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
@@ -4,3 +4,6 @@
[Navigating to a different document with form submission]
expected: FAIL
+
+ [Navigating to a different document with link click]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini
index c51f1290ef5..6582f1e053b 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini
@@ -1,7 +1,7 @@
[window-open-204.html]
expected: TIMEOUT
[location.href]
- expected: TIMEOUT
+ expected: FAIL
[location.assign]
- expected: NOTRUN
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini
index 4b25ec32301..a06984505e9 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini
@@ -5,3 +5,6 @@
[Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: string completion]
expected: TIMEOUT
+
+ [Navigating an opened window with an iframe via location.href to a javascript: URL must not fire beforeunload on the iframe: undefined completion]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini
index bcda478adb1..5a245d61359 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini
@@ -1,10 +1,6 @@
[javascript-url-referrer.window.html]
- expected: TIMEOUT
[unsafe-url referrer policy used to create the starting page]
expected: FAIL
[origin referrer policy used to create the starting page]
expected: FAIL
-
- [no-referrer referrer policy used to create the starting page]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse-during-unload.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse-during-unload.html.ini
deleted file mode 100644
index f5b7b25324f..00000000000
--- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse-during-unload.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse-during-unload.html]
- expected: TIMEOUT
- [Traversing the history during unload]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 00000000000..7a5fcb79165
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,3 @@
+[traverse_the_history_5.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini
new file mode 100644
index 00000000000..4b4820d1729
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini
@@ -0,0 +1,3 @@
+[creating_browsing_context_test_01.html]
+ [first argument: absolute url]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
index 91030fe2f7f..9df06805f99 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -1,7 +1,7 @@
[embedded-opener-remove-frame.html]
- expected: CRASH
+ expected: TIMEOUT
[opener of discarded nested browsing context]
expected: FAIL
[opener of discarded auxiliary browsing context]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini b/tests/wpt/metadata-layout-2020/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini
index 2a54f2f8814..5cdcce07c65 100644
--- a/tests/wpt/metadata-layout-2020/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini
@@ -1,2 +1,2 @@
[canvas.2d.disconnected.html]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index ddd65fdcec8..16db1ea9c58 100644
--- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -1,15 +1,16 @@
[supported-elements.html]
+ expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: FAIL
+ expected: TIMEOUT
[Element with tabindex should support autofocus]
expected: FAIL
[Area element should support autofocus]
- expected: FAIL
+ expected: NOTRUN
[Host element with delegatesFocus should support autofocus]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 7d28d586f51..24903b5f66f 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,3 +1,4 @@
[iframe_sandbox_popups_escaping-1.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/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
index 31745fdcdcf..31928ad3947 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
@@ -1,4 +1,5 @@
[sandbox-top-navigation-child-special-cases.tentative.sub.window.html]
+ expected: TIMEOUT
[Allow top with user activation + user activation]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
index 7f099cec1b0..e0d30013daf 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
@@ -1,4 +1,5 @@
[htmlanchorelement_noopener.html]
+ expected: TIMEOUT
[Check that targeting of rel=noopener with a given name reuses an existing window with that name]
expected: FAIL
@@ -7,3 +8,6 @@
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL
+
+ [Check that rel=noopener with target=_self does a normal load]
+ expected: NOTRUN
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini
deleted file mode 100644
index 1181798bd79..00000000000
--- a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[async-script.html]
-
-[async-script.html?reload]
- expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini
new file mode 100644
index 00000000000..b8bdf33cb65
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini
@@ -0,0 +1,3 @@
+[DOMContentLoaded-defer.html]
+ [The end: DOMContentLoaded and defer scripts]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index 8244944df44..1053fb90051 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -4,4 +4,4 @@
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini
index dbe1def99e3..7237f5792de 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini
@@ -1,9 +1,10 @@
[promise-job-entry-different-function-realm.html]
+ expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: FAIL
+ expected: TIMEOUT
[Thenable resolution]
expected: FAIL
@@ -12,4 +13,4 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/resource-timing/content-type-parsing.html.ini b/tests/wpt/metadata-layout-2020/resource-timing/content-type-parsing.html.ini
index 31e16aada51..9342352e856 100644
--- a/tests/wpt/metadata-layout-2020/resource-timing/content-type-parsing.html.ini
+++ b/tests/wpt/metadata-layout-2020/resource-timing/content-type-parsing.html.ini
@@ -46,19 +46,19 @@
expected: FAIL
[content-type 15 : text/html;x=",text/plain]
- expected: TIMEOUT
+ expected: FAIL
[content-type 16 : text/html;",text/plain]
- expected: NOTRUN
+ expected: FAIL
[content-type 17 : text/html;",\\",text/plain]
- expected: NOTRUN
+ expected: FAIL
[content-type 18 : text/html;",\\",text/plain,";charset=GBK]
- expected: NOTRUN
+ expected: FAIL
[content-type 19 : text/html;",",text/plain]
- expected: NOTRUN
+ expected: TIMEOUT
[mime-type 1 : text/html;charset=gbk]
expected: NOTRUN
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
index 04c2032c723..39d039a0132 100644
--- a/tests/wpt/metadata-layout-2020/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
+++ b/tests/wpt/metadata-layout-2020/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
@@ -1,5 +1,5 @@
[cross-partition.https.tentative.html]
- expected: TIMEOUT
+ expected: CRASH
[BroadcastChannel messages aren't received from a cross-partition iframe]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
new file mode 100644
index 00000000000..c7946fc91b4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
@@ -0,0 +1,4 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
new file mode 100644
index 00000000000..b7b36c1d3a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
@@ -0,0 +1,4 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/workers/dedicated-worker-from-blob-url.window.js.ini b/tests/wpt/metadata-layout-2020/workers/dedicated-worker-from-blob-url.window.js.ini
deleted file mode 100644
index d0154d3e5d7..00000000000
--- a/tests/wpt/metadata-layout-2020/workers/dedicated-worker-from-blob-url.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[dedicated-worker-from-blob-url.window.html]
- [Creating a dedicated worker from a blob URL works immediately before revoking.]
- expected: FAIL
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 98bd6de61cd..c0b6ea46d20 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -328,12 +328,40 @@
]
},
"css-anchor-position": {
- "anchor-scroll-no-overflow-crash.html": [
+ "anchor-scroll-composited-scrolling-001-crash.html": [
"d8fa3821cf5660f7f382bf8aee10c9ddd625b4c1",
[
null,
{}
]
+ ],
+ "anchor-scroll-composited-scrolling-002-crash.html": [
+ "6e0af9f4dccef03b726628d21341a06ccc4ca4cd",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-scroll-composited-scrolling-003-crash.html": [
+ "046373377efe9ad7ec46fac88fa2e6126adc0e8b",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-scroll-composited-scrolling-004-crash.html": [
+ "12e7af0be4320ff50870efc11b7e9a1aa4f3ff52",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-scroll-composited-scrolling-005-crash.html": [
+ "0a4427ae921b7f3effd9b8490929c055359a1e8c",
+ [
+ null,
+ {}
+ ]
]
},
"css-animations": {
@@ -4990,6 +5018,15 @@
{}
]
]
+ },
+ "the-selectmenu-element": {
+ "selectmenu-listbox-fallback-change-crash.tentative.html": [
+ "690a98dcf3219e505d054d7ed5bc4c312fbbea4c",
+ [
+ null,
+ {}
+ ]
+ ]
}
},
"interactive-elements": {
@@ -144357,6 +144394,19 @@
{}
]
],
+ "table-rowspan-001.html": [
+ "fe431d79a7c4f4edb0c56d85f877d98764ac8ad0",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"table-section-paint-htb-ltr.html": [
"ff0eda1be83c900c256fe3ac994e16408f10f8f9",
[
@@ -188098,7 +188148,7 @@
]
],
"image-orientation-none-cross-origin.html": [
- "c8db1df5c1801eaa6e37bb6f0ee76d80824c64a3",
+ "e36c1295d31d43e48a6745021be3346838431158",
[
null,
[
@@ -211584,7 +211634,7 @@
]
],
"position-sticky-writing-modes.html": [
- "77a861e42be8b06bf4a06a66728448a4419a33cc",
+ "98f50500b8c694864c5daca6b6770e465fa4795a",
[
null,
[
@@ -225476,34 +225526,6 @@
{}
]
],
- "floats": {
- "floats-wrap-bfc-006b.xht": [
- "664edbd129e688e4a6582b211e3ecb85108cb437",
- [
- null,
- [
- [
- "/css/css-tables/floats/floats-wrap-bfc-006b-ref.xht",
- "=="
- ]
- ],
- {}
- ]
- ],
- "floats-wrap-bfc-006c.xht": [
- "88593468f9255bd4c64a18e201d42f53aed5297d",
- [
- null,
- [
- [
- "/css/css-tables/floats/floats-wrap-bfc-006c-ref.xht",
- "=="
- ]
- ],
- {}
- ]
- ]
- },
"height-distribution": {
"extra-height-given-to-all-row-groups-001.html": [
"387bfafae1c2e038b67e3d86973e1c7c6c00f67c",
@@ -295291,6 +295313,97 @@
{}
]
],
+ "nth-child-of-attr.html": [
+ "d929d6a50db02d3e34d024d83200649573ca20a4",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-of-attr-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "nth-child-of-class.html": [
+ "dc1e8cec82ed334d75c51351775fa001b3cddb4e",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-of-class-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "nth-child-of-has.html": [
+ "1a548315cc09c49bf3c5177172adf771ec0a350c",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-of-has-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "nth-child-of-in-ancestor.html": [
+ "7311c3e301155620b05cde7ffecd9d829d20618a",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-of-in-ancestor-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "nth-child-of-sibling.html": [
+ "5beaad6a58108dde8607e9940c4fb017e4056ab2",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-of-sibling-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "nth-child-when-ancestor-changes.html": [
+ "4d2b4fbce076a1ea1d651e4a86afdd0da0decf07",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-when-ancestor-changes-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "nth-child-when-sibling-changes.html": [
+ "a0025be95a2bcab29d77e4a9e1b789304fa31055",
+ [
+ null,
+ [
+ [
+ "/css/selectors/invalidation/nth-child-when-sibling-changes-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"sheet-going-away-002.html": [
"189abbe0808a613eaab0e918fe82a4982fbcfa63",
[
@@ -308458,6 +308571,21 @@
]
]
},
+ "mpadded": {
+ "mpadded-percentage-001.html": [
+ "ef2391c42b58f2c634791691d86e8949a728182b",
+ [
+ null,
+ [
+ [
+ "/mathml/presentation-markup/mpadded/mpadded-percentage-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
+ },
"mrow": {
"dynamic-mrow-like-001.html": [
"79de59feec61d42b30caa8ae1957cd319b2997de",
@@ -309117,6 +309245,19 @@
{}
]
],
+ "mspace-percentage-001.html": [
+ "758429e1db7029bbb9844523f464a1e6faec6862",
+ [
+ null,
+ [
+ [
+ "/mathml/presentation-markup/spaces/mspace-percentage-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"space-2.html": [
"640afb204fec30d4f2daacb96b6e94fdfc61c699",
[
@@ -313625,6 +313766,32 @@
{}
]
],
+ "use-cross-origin.svg": [
+ "3de069c8d15c7a95f8c25d8c364287b7033a3730",
+ [
+ null,
+ [
+ [
+ "/svg/struct/reftests/reference/green-100x100.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "use-data-url.tentative.svg": [
+ "04414030a3e65ee05314386e90e75184e8c80042",
+ [
+ null,
+ [
+ [
+ "/svg/struct/reftests/reference/green-100x100.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"use-external-resource-with-revalidation.tentative.html": [
"d899165fa9ccef15d893b599ec6a8f4e005bcb36",
[
@@ -313651,6 +313818,19 @@
{}
]
],
+ "use-same-origin.svg": [
+ "0aa1ec83afd68b3ea6022d33f6ec6f8103d99661",
+ [
+ null,
+ [
+ [
+ "/svg/struct/reftests/reference/green-100x100.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"use-svg-dimensions-override-001.svg": [
"c658adce80f82d5ce6457101ecd3b3d3f562ddd9",
[
@@ -342274,7 +342454,7 @@
[]
],
"set-cookie.py": [
- "db747bcd3bdaeb2e8391b454a0566e9bbb462278",
+ "839f350c449fb0aba3d573e155407d38039effed",
[]
],
"set.py": [
@@ -377946,7 +378126,7 @@
[]
],
"image-orientation-none-cross-origin-ref.html": [
- "1ac90177701e172fc48c9819bbaf1393905893cc",
+ "c4d72fc823f3e98d7184c0536805b6f6e8be6f7c",
[]
],
"image-orientation-none-cross-origin-svg-ref.html": [
@@ -382513,7 +382693,7 @@
[]
],
"position-sticky-writing-modes-ref.html": [
- "4bbedfbfe0aaaf68abd15a2499db6dc764b95418",
+ "d55c22d95330f030228e2591ed47aafe39d6697d",
[]
],
"reference": {
@@ -398014,6 +398194,34 @@
"a3cc6d3d8f56fd31c4b19d23af606d7c65487145",
[]
],
+ "nth-child-of-attr-ref.html": [
+ "41205174eb0ad5bfca3189f6e03912530c990f9e",
+ []
+ ],
+ "nth-child-of-class-ref.html": [
+ "7a8247c469ea86fd4e8ea32a961d4e1b0741c986",
+ []
+ ],
+ "nth-child-of-has-ref.html": [
+ "ab3931d6ef46532ca1aa4e5d25683e9d5e12ed8e",
+ []
+ ],
+ "nth-child-of-in-ancestor-ref.html": [
+ "a4e4b7fd9fc44bd189aba0423d536dcb82201a9f",
+ []
+ ],
+ "nth-child-of-sibling-ref.html": [
+ "0388fc7c5ab112271e3b2d54293765c8ad87eff0",
+ []
+ ],
+ "nth-child-when-ancestor-changes-ref.html": [
+ "8b7d32906d9c2766bc2c6d60451b84246e355d5c",
+ []
+ ],
+ "nth-child-when-sibling-changes-ref.html": [
+ "9a397529900cbb8e6248d94dccd1e52670f83ec5",
+ []
+ ],
"sheet-going-away-002-ref.html": [
"67841617736730e588f5659fd485fb09a159bd33",
[]
@@ -422669,6 +422877,12 @@
[]
]
},
+ "mpadded": {
+ "mpadded-percentage-001-ref.html": [
+ "79d7df39d00e3a7ccc29d79cad6dc73252990f75",
+ []
+ ]
+ },
"mrow": {
"dynamic-mrow-like-001-ref.html": [
"2f823ba9550d1c5a2cac2fe5b4b3bc5867a1be75",
@@ -422888,6 +423102,10 @@
"ae74024c2fcfc587ba96180aa62a9aa091e2a07b",
[]
],
+ "mspace-percentage-001-ref.html": [
+ "da4f1dd397ed81fc90196cdf65005d1580bd6024",
+ []
+ ],
"space-2-ref.html": [
"5a8b39e1898c4f8d5555ee11d5757965162780e7",
[]
@@ -433985,6 +434203,10 @@
"3f0c26c8feaf58e51ef387c972c2b772166d0fe8",
[]
],
+ "red-rect.svg": [
+ "1ee578ab6adba89df340fa643a93f63368344421",
+ []
+ ],
"sprites.svg": [
"f73b8851913f402aa41adac40360b15acbad1119",
[]
@@ -446455,7 +446677,7 @@
},
"bidi": {
"__init__.py": [
- "405c9fb7e9af79661270a5b40d2f9ee7cd038faa",
+ "6ac8c3394ce73797b351cd71acc7904075485948",
[]
],
"browsing_context": {
@@ -446572,7 +446794,7 @@
},
"network": {
"__init__.py": [
- "470fcfd11af0e1f12f35e49ac97c2aef10a7f161",
+ "dc6848c00f29d81d75e5e920a29aea20e38e3232",
[]
],
"before_request_sent": {
@@ -446581,11 +446803,39 @@
[]
]
},
+ "combined": {
+ "__init__.py": [
+ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
+ []
+ ]
+ },
+ "conftest.py": [
+ "65f0cd8911255d0112c0f29713a442c6fb852f95",
+ []
+ ],
+ "response_started": {
+ "__init__.py": [
+ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
+ []
+ ]
+ },
"support": {
"empty.html": [
"69e9da4114557b774cd78c3da64f24b49ccb03b6",
[]
],
+ "empty.js": [
+ "3918c74e446336be4151ea3bdad00f4d9e6df47a",
+ []
+ ],
+ "empty.png": [
+ "afb763ce9d1c16077df82cb7de25778cf6b643c2",
+ []
+ ],
+ "empty.svg": [
+ "158b3aac164e50a1ca5aca34daac3d45bc137e92",
+ []
+ ],
"empty.txt": [
"c6cac69265af1e1684d2e3038f8fc90b84c87e9c",
[]
@@ -447096,10 +447346,6 @@
"f5812bc8932360a68fa40237ca8a4e1b8ef2d205",
[]
],
- "authentication.py": [
- "9da4bb7be5ffb76835cd33860bf74aa1981695b6",
- []
- ],
"defaults.py": [
"64ee18b6c157488766f5c9d24f8f9dff79ff4387",
[]
@@ -447146,6 +447392,28 @@
[]
]
},
+ "http_handlers": {
+ "__init__.py": [
+ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
+ []
+ ],
+ "authentication.py": [
+ "62067dd1667cd5535d4f90d35ae21474d4481666",
+ []
+ ],
+ "headers.py": [
+ "ddae62dc6afabfaa9ceca93f5215d4afc5d002ed",
+ []
+ ],
+ "redirect.py": [
+ "f2fd1ebd51d4ad5f4ef0582510600eb3731fd2c7",
+ []
+ ],
+ "status.py": [
+ "4dc3de0a8860ea32a60e3813baad38f3678d57db",
+ []
+ ]
+ },
"http_request.py": [
"242dc9c9188708eaceccd32c9379e5c9d14fbbd4",
[]
@@ -447162,10 +447430,6 @@
"72f1cab352dec4f333aa9f5498d6115276a3f836",
[]
],
- "redirect.py": [
- "f2fd1ebd51d4ad5f4ef0582510600eb3731fd2c7",
- []
- ],
"screenshot.py": [
"374e5ed539cb4c3558b92268c4e3e370331ed98f",
[]
@@ -513773,6 +514037,13 @@
]
]
},
+ "paused-animation-at-end.html": [
+ "47db0a6fcd67450682d56de18a9d0289d62e9199",
+ [
+ null,
+ {}
+ ]
+ ],
"pseudo-computed-style-stays-in-sync-with-new-element.html": [
"103dc31930ca9db862415952139b555d715cf5ab",
[
@@ -614470,6 +614741,13 @@
null,
{}
]
+ ],
+ "mpadded-percentage-002.html": [
+ "36d1b4f389a8084966c99da94a8c553ff9f3acb7",
+ [
+ null,
+ {}
+ ]
]
},
"mrow": {
@@ -658378,7 +658656,7 @@
},
"subapps": {
"add-error.tentative.https.html": [
- "d049268af98f0e378107bf39eccc346adbac2404",
+ "c9db29b62de6599425f7157c3d50d956f1e69f48",
[
null,
{
@@ -661065,7 +661343,7 @@
]
],
"use-load-error-events.tentative.html": [
- "9cbaa0e22011a6035954762e2457ce9295f3b278",
+ "2c52072e16906575679ab654b7e901a08b5541c7",
[
null,
{}
@@ -694736,7 +695014,7 @@
},
"webtransport": {
"close.https.any.js": [
- "4501e94fbff3c29f323d82f8450ce33e7d87e2ae",
+ "d1f66751926016252ea28f60b751f069014f66e7",
[
"webtransport/close.https.any.html",
{
@@ -726504,7 +726782,25 @@
"network": {
"before_request_sent": {
"before_request_sent_tentative.py": [
- "6dbd3b1a81a75e5b24df058f3e164b8046c66323",
+ "1711f5177fe57fa2225339f5f29d70f4e04e862f",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
+ "combined": {
+ "network_events_tentative.py": [
+ "a1d5b3bf8372e6ad7f7811654bc2167c24f24757",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
+ "response_started": {
+ "response_started_tentative.py": [
+ "944d50fe88f9a9738a0137bc39901bdc25c7b320",
[
null,
{}
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
new file mode 100644
index 00000000000..968f62a2553
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
@@ -0,0 +1,3 @@
+[hit-test-floats-002.html]
+ [Hit test float]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
new file mode 100644
index 00000000000..147f062e548
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
@@ -0,0 +1,3 @@
+[hit-test-floats-005.html]
+ [Miss clipped float]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini
new file mode 100644
index 00000000000..3e5096beef3
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-float-002.html.ini
@@ -0,0 +1,3 @@
+[block-in-inline-hittest-float-002.html]
+ [block-in-inline-hittest-float-002]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
deleted file mode 100644
index 7c07b71d77c..00000000000
--- a/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[hit-test-anonymous-block.html]
- [Hit test beside line of text inside anonymous block]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/compositing/root-element-opacity-change.html.ini b/tests/wpt/metadata/css/compositing/root-element-opacity-change.html.ini
new file mode 100644
index 00000000000..c51daae123f
--- /dev/null
+++ b/tests/wpt/metadata/css/compositing/root-element-opacity-change.html.ini
@@ -0,0 +1,2 @@
+[root-element-opacity-change.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini b/tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini
new file mode 100644
index 00000000000..eb3cf41a070
--- /dev/null
+++ b/tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini
@@ -0,0 +1,2 @@
+[opacity-animation-ending-correctly-002.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos/position-absolute-013.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos/position-absolute-013.html.ini
index 2b2e0fce8eb..80111fb0236 100644
--- a/tests/wpt/metadata/css/css-flexbox/abspos/position-absolute-013.html.ini
+++ b/tests/wpt/metadata/css/css-flexbox/abspos/position-absolute-013.html.ini
@@ -1,5 +1,4 @@
[position-absolute-013.html]
- expected: TIMEOUT
[.flexbox 309]
expected: FAIL
diff --git a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini
index 2fd3035e248..26894237445 100644
--- a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini
+++ b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini
@@ -65,9 +65,6 @@
[Descriptor matching priority: Style has higher priority than weight]
expected: FAIL
- [Matching font-style: 'oblique -20deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg']
- expected: FAIL
-
[Matching font-style: 'oblique -10deg' should prefer 'oblique -5deg' over 'oblique -1deg 0deg']
expected: FAIL
@@ -254,9 +251,6 @@
[Matching font-style: 'oblique -21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg']
expected: FAIL
- [Matching font-style: 'oblique 21deg' should prefer 'italic' over 'oblique 0deg']
- expected: FAIL
-
[Matching font-style: 'oblique 21deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg']
expected: FAIL
@@ -323,11 +317,11 @@
[Matching font-style: 'oblique 21deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg']
expected: FAIL
- [Matching font-style: 'oblique -10deg' should prefer 'oblique -50deg -40deg' over 'italic']
- expected: FAIL
-
[Matching font-weight: '399' should prefer '350 399' over '340 360']
expected: FAIL
[Matching font-style: 'italic' should prefer 'oblique 0deg' over 'oblique -60deg -30deg']
expected: FAIL
+
+ [Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg']
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006b.xht.ini b/tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006b.xht.ini
deleted file mode 100644
index 56cd465576d..00000000000
--- a/tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006b.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[floats-wrap-bfc-006b.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006c.xht.ini b/tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006c.xht.ini
deleted file mode 100644
index 0d2936db90c..00000000000
--- a/tests/wpt/metadata/css/css-tables/floats/floats-wrap-bfc-006c.xht.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[floats-wrap-bfc-006c.xht]
- type: reftest
- expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini
index 180652f75d4..7727764a576 100644
--- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini
@@ -53,275 +53,302 @@
[background-position length(px) / events]
expected: FAIL
- [background-color color(rgba) / values]
+ [color color(rgba) / values]
expected: FAIL
- [border-top-width length(pt) / values]
+ [font-size length(pt) / values]
expected: FAIL
- [border-top-width length(pc) / values]
+ [font-size length(pc) / values]
expected: FAIL
- [border-top-width length(px) / values]
+ [font-size length(px) / values]
expected: FAIL
- [border-top-width length(em) / values]
+ [font-size length(em) / values]
expected: FAIL
- [border-top-width length(ex) / values]
+ [font-size length(ex) / values]
expected: FAIL
- [border-top-width length(mm) / values]
+ [font-size length(mm) / values]
expected: FAIL
- [border-top-width length(cm) / values]
+ [font-size length(cm) / values]
expected: FAIL
- [border-top-width length(in) / values]
+ [font-size length(in) / values]
expected: FAIL
- [border-right-width length(pt) / values]
+ [font-size percentage(%) / values]
expected: FAIL
- [border-right-width length(pc) / values]
+ [font-weight font-weight(keyword) / values]
expected: FAIL
- [border-right-width length(px) / values]
+ [font-weight font-weight(numeric) / values]
expected: FAIL
- [border-right-width length(em) / values]
+ [line-height number(integer) / values]
expected: FAIL
- [border-right-width length(ex) / values]
+ [line-height number(decimal) / values]
expected: FAIL
- [border-right-width length(mm) / values]
+ [line-height length(pt) / values]
expected: FAIL
- [border-right-width length(cm) / values]
+ [line-height length(pc) / values]
expected: FAIL
- [border-right-width length(in) / values]
+ [line-height length(px) / values]
expected: FAIL
- [border-bottom-width length(pt) / values]
+ [line-height length(em) / values]
expected: FAIL
- [border-bottom-width length(pc) / values]
+ [line-height length(ex) / values]
expected: FAIL
- [border-bottom-width length(px) / values]
+ [line-height length(mm) / values]
expected: FAIL
- [border-bottom-width length(em) / values]
+ [line-height length(cm) / values]
expected: FAIL
- [border-bottom-width length(ex) / values]
+ [line-height length(in) / values]
expected: FAIL
- [border-bottom-width length(mm) / values]
+ [line-height percentage(%) / values]
expected: FAIL
- [border-bottom-width length(cm) / values]
+ [letter-spacing length(pt) / values]
expected: FAIL
- [border-bottom-width length(in) / values]
+ [letter-spacing length(pc) / values]
expected: FAIL
- [border-left-width length(pt) / values]
+ [letter-spacing length(px) / values]
expected: FAIL
- [border-left-width length(pc) / values]
+ [letter-spacing length(em) / values]
expected: FAIL
- [border-left-width length(px) / values]
+ [letter-spacing length(ex) / values]
expected: FAIL
- [border-left-width length(em) / values]
+ [letter-spacing length(mm) / values]
expected: FAIL
- [border-left-width length(ex) / values]
+ [letter-spacing length(cm) / values]
expected: FAIL
- [border-left-width length(mm) / values]
+ [letter-spacing length(in) / values]
expected: FAIL
- [border-left-width length(cm) / values]
+ [word-spacing length(pt) / values]
expected: FAIL
- [border-left-width length(in) / values]
+ [word-spacing length(pc) / values]
expected: FAIL
- [border-top-color color(rgba) / values]
+ [word-spacing length(px) / values]
expected: FAIL
- [border-right-color color(rgba) / values]
+ [word-spacing length(em) / values]
expected: FAIL
- [border-bottom-color color(rgba) / values]
+ [word-spacing length(ex) / values]
expected: FAIL
- [border-left-color color(rgba) / values]
+ [word-spacing length(mm) / values]
expected: FAIL
- [padding-bottom length(pt) / values]
+ [word-spacing length(cm) / values]
expected: FAIL
- [padding-bottom length(pc) / values]
+ [word-spacing length(in) / values]
expected: FAIL
- [padding-bottom length(px) / values]
+ [word-spacing percentage(%) / values]
expected: FAIL
- [padding-bottom length(em) / values]
+ [text-indent length(pt) / values]
expected: FAIL
- [color color(rgba) / values]
+ [text-indent length(pc) / values]
expected: FAIL
- [font-size length(pt) / values]
+ [text-indent length(px) / values]
expected: FAIL
- [font-size length(pc) / values]
+ [text-indent length(em) / values]
expected: FAIL
- [font-size length(px) / values]
+ [text-indent length(ex) / values]
expected: FAIL
- [font-size length(em) / values]
+ [text-indent length(mm) / values]
expected: FAIL
- [font-size length(ex) / values]
+ [text-indent length(cm) / values]
expected: FAIL
- [font-size length(mm) / values]
+ [text-indent length(in) / values]
expected: FAIL
- [font-size length(cm) / values]
+ [text-indent percentage(%) / values]
expected: FAIL
- [font-size length(in) / values]
+ [text-shadow shadow(shadow) / values]
expected: FAIL
- [font-size percentage(%) / values]
+ [padding-bottom length(ex) / values]
expected: FAIL
- [font-weight font-weight(keyword) / values]
+ [padding-bottom length(mm) / values]
expected: FAIL
- [font-weight font-weight(numeric) / values]
+ [padding-bottom length(cm) / values]
expected: FAIL
- [line-height number(integer) / values]
+ [padding-bottom length(in) / values]
expected: FAIL
- [line-height number(decimal) / values]
+ [padding-left length(pt) / values]
expected: FAIL
- [line-height length(pt) / values]
+ [padding-left length(pc) / values]
expected: FAIL
- [line-height length(pc) / values]
+ [padding-left length(px) / values]
expected: FAIL
- [line-height length(px) / values]
+ [padding-left length(em) / values]
expected: FAIL
- [line-height length(em) / values]
+ [padding-left length(ex) / values]
expected: FAIL
- [line-height length(ex) / values]
+ [padding-left length(mm) / values]
expected: FAIL
- [line-height length(mm) / values]
+ [padding-left length(cm) / values]
expected: FAIL
- [line-height length(cm) / values]
+ [padding-left length(in) / values]
expected: FAIL
- [line-height length(in) / values]
+ [padding-right length(pt) / values]
expected: FAIL
- [line-height percentage(%) / values]
+ [padding-right length(pc) / values]
expected: FAIL
- [letter-spacing length(pt) / values]
+ [padding-right length(px) / values]
expected: FAIL
- [letter-spacing length(pc) / values]
+ [padding-right length(em) / values]
expected: FAIL
- [letter-spacing length(px) / values]
+ [padding-right length(ex) / values]
expected: FAIL
- [letter-spacing length(em) / values]
+ [padding-right length(mm) / values]
expected: FAIL
- [letter-spacing length(ex) / values]
+ [padding-right length(cm) / values]
expected: FAIL
- [letter-spacing length(mm) / values]
+ [padding-right length(in) / values]
expected: FAIL
- [letter-spacing length(cm) / values]
+ [padding-top length(pt) / values]
expected: FAIL
- [letter-spacing length(in) / values]
+ [padding-top length(pc) / values]
expected: FAIL
- [word-spacing length(pt) / values]
+ [padding-top length(px) / values]
expected: FAIL
- [word-spacing length(pc) / values]
+ [padding-top length(em) / values]
expected: FAIL
- [word-spacing length(px) / values]
+ [padding-top length(ex) / values]
expected: FAIL
- [word-spacing length(em) / values]
+ [padding-top length(mm) / values]
expected: FAIL
- [word-spacing length(ex) / values]
+ [padding-top length(cm) / values]
expected: FAIL
- [word-spacing length(mm) / values]
+ [padding-top length(in) / values]
expected: FAIL
- [word-spacing length(cm) / values]
+ [margin-bottom length(pt) / values]
expected: FAIL
- [word-spacing length(in) / values]
+ [margin-bottom length(pc) / values]
expected: FAIL
- [word-spacing percentage(%) / values]
+ [margin-bottom length(px) / values]
expected: FAIL
- [text-indent length(pt) / values]
+ [margin-bottom length(em) / values]
expected: FAIL
- [text-indent length(pc) / values]
+ [margin-bottom length(ex) / values]
expected: FAIL
- [text-indent length(px) / values]
+ [margin-bottom length(mm) / values]
expected: FAIL
- [text-indent length(em) / values]
+ [margin-bottom length(cm) / values]
expected: FAIL
- [text-indent length(ex) / values]
+ [margin-bottom length(in) / values]
expected: FAIL
- [text-indent length(mm) / values]
+ [margin-left length(pt) / values]
expected: FAIL
- [text-indent length(cm) / values]
+ [margin-left length(pc) / values]
expected: FAIL
- [text-indent length(in) / values]
+ [margin-left length(px) / values]
expected: FAIL
- [text-indent percentage(%) / values]
+ [margin-left length(em) / values]
expected: FAIL
- [text-shadow shadow(shadow) / values]
+ [margin-left length(ex) / values]
+ expected: FAIL
+
+ [margin-left length(mm) / values]
+ expected: FAIL
+
+ [margin-left length(cm) / values]
+ expected: FAIL
+
+ [margin-left length(in) / values]
+ expected: FAIL
+
+ [margin-right length(pt) / values]
+ expected: FAIL
+
+ [margin-right length(pc) / values]
+ expected: FAIL
+
+ [margin-right length(px) / values]
+ expected: FAIL
+
+ [margin-right length(em) / values]
+ expected: FAIL
+
+ [margin-right length(ex) / values]
+ expected: FAIL
+
+ [margin-right length(mm) / values]
expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini
index 542ee41ded7..5dc6354ad55 100644
--- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini
@@ -178,3 +178,453 @@
[padding-bottom length(em) / events]
expected: FAIL
+
+ [padding-bottom length(ex) / events]
+ expected: FAIL
+
+ [padding-bottom length(mm) / events]
+ expected: FAIL
+
+ [padding-bottom length(cm) / events]
+ expected: FAIL
+
+ [padding-bottom length(in) / events]
+ expected: FAIL
+
+ [padding-left length(pt) / events]
+ expected: FAIL
+
+ [padding-left length(pc) / events]
+ expected: FAIL
+
+ [padding-left length(px) / events]
+ expected: FAIL
+
+ [padding-left length(em) / events]
+ expected: FAIL
+
+ [padding-left length(ex) / events]
+ expected: FAIL
+
+ [padding-left length(mm) / events]
+ expected: FAIL
+
+ [padding-left length(cm) / events]
+ expected: FAIL
+
+ [padding-left length(in) / events]
+ expected: FAIL
+
+ [padding-right length(pt) / events]
+ expected: FAIL
+
+ [padding-right length(pc) / events]
+ expected: FAIL
+
+ [padding-right length(px) / events]
+ expected: FAIL
+
+ [padding-right length(em) / events]
+ expected: FAIL
+
+ [padding-right length(ex) / events]
+ expected: FAIL
+
+ [padding-right length(mm) / events]
+ expected: FAIL
+
+ [padding-right length(cm) / events]
+ expected: FAIL
+
+ [padding-right length(in) / events]
+ expected: FAIL
+
+ [padding-top length(pt) / events]
+ expected: FAIL
+
+ [padding-top length(pc) / events]
+ expected: FAIL
+
+ [padding-top length(px) / events]
+ expected: FAIL
+
+ [padding-top length(em) / events]
+ expected: FAIL
+
+ [padding-top length(ex) / events]
+ expected: FAIL
+
+ [padding-top length(mm) / events]
+ expected: FAIL
+
+ [padding-top length(cm) / events]
+ expected: FAIL
+
+ [padding-top length(in) / events]
+ expected: FAIL
+
+ [margin-bottom length(pt) / events]
+ expected: FAIL
+
+ [margin-bottom length(pc) / events]
+ expected: FAIL
+
+ [margin-bottom length(px) / events]
+ expected: FAIL
+
+ [margin-bottom length(em) / events]
+ expected: FAIL
+
+ [margin-bottom length(ex) / events]
+ expected: FAIL
+
+ [margin-bottom length(mm) / events]
+ expected: FAIL
+
+ [margin-bottom length(cm) / events]
+ expected: FAIL
+
+ [margin-bottom length(in) / events]
+ expected: FAIL
+
+ [margin-left length(pt) / events]
+ expected: FAIL
+
+ [margin-left length(pc) / events]
+ expected: FAIL
+
+ [margin-left length(px) / events]
+ expected: FAIL
+
+ [margin-left length(em) / events]
+ expected: FAIL
+
+ [margin-left length(ex) / events]
+ expected: FAIL
+
+ [margin-left length(mm) / events]
+ expected: FAIL
+
+ [margin-left length(cm) / events]
+ expected: FAIL
+
+ [margin-left length(in) / events]
+ expected: FAIL
+
+ [margin-right length(pt) / events]
+ expected: FAIL
+
+ [margin-right length(pc) / events]
+ expected: FAIL
+
+ [margin-right length(px) / events]
+ expected: FAIL
+
+ [margin-right length(em) / events]
+ expected: FAIL
+
+ [margin-right length(ex) / events]
+ expected: FAIL
+
+ [margin-right length(mm) / events]
+ expected: FAIL
+
+ [margin-right length(cm) / events]
+ expected: FAIL
+
+ [margin-right length(in) / events]
+ expected: FAIL
+
+ [margin-top length(pt) / events]
+ expected: FAIL
+
+ [margin-top length(pc) / events]
+ expected: FAIL
+
+ [margin-top length(px) / events]
+ expected: FAIL
+
+ [margin-top length(em) / events]
+ expected: FAIL
+
+ [margin-top length(ex) / events]
+ expected: FAIL
+
+ [margin-top length(mm) / events]
+ expected: FAIL
+
+ [margin-top length(cm) / events]
+ expected: FAIL
+
+ [margin-top length(in) / events]
+ expected: FAIL
+
+ [height length(pt) / events]
+ expected: FAIL
+
+ [height length(pc) / events]
+ expected: FAIL
+
+ [height length(px) / events]
+ expected: FAIL
+
+ [height length(em) / events]
+ expected: FAIL
+
+ [height length(ex) / events]
+ expected: FAIL
+
+ [height length(mm) / events]
+ expected: FAIL
+
+ [height length(cm) / events]
+ expected: FAIL
+
+ [height length(in) / events]
+ expected: FAIL
+
+ [height percentage(%) / events]
+ expected: FAIL
+
+ [width length(pt) / events]
+ expected: FAIL
+
+ [width length(pc) / events]
+ expected: FAIL
+
+ [width length(px) / events]
+ expected: FAIL
+
+ [width length(em) / events]
+ expected: FAIL
+
+ [width length(ex) / events]
+ expected: FAIL
+
+ [width length(mm) / events]
+ expected: FAIL
+
+ [width length(cm) / events]
+ expected: FAIL
+
+ [width length(in) / events]
+ expected: FAIL
+
+ [width percentage(%) / events]
+ expected: FAIL
+
+ [min-height length(pt) / events]
+ expected: FAIL
+
+ [min-height length(pc) / events]
+ expected: FAIL
+
+ [min-height length(px) / events]
+ expected: FAIL
+
+ [min-height length(em) / events]
+ expected: FAIL
+
+ [min-height length(ex) / events]
+ expected: FAIL
+
+ [min-height length(mm) / events]
+ expected: FAIL
+
+ [min-height length(cm) / events]
+ expected: FAIL
+
+ [min-height length(in) / events]
+ expected: FAIL
+
+ [min-height percentage(%) / events]
+ expected: FAIL
+
+ [min-width length(pt) / events]
+ expected: FAIL
+
+ [min-width length(pc) / events]
+ expected: FAIL
+
+ [min-width length(px) / events]
+ expected: FAIL
+
+ [min-width length(em) / events]
+ expected: FAIL
+
+ [min-width length(ex) / events]
+ expected: FAIL
+
+ [min-width length(mm) / events]
+ expected: FAIL
+
+ [min-width length(cm) / events]
+ expected: FAIL
+
+ [min-width length(in) / events]
+ expected: FAIL
+
+ [min-width percentage(%) / events]
+ expected: FAIL
+
+ [max-height length(pt) / events]
+ expected: FAIL
+
+ [max-height length(pc) / events]
+ expected: FAIL
+
+ [max-height length(px) / events]
+ expected: FAIL
+
+ [max-height length(em) / events]
+ expected: FAIL
+
+ [color color(rgba) / events]
+ expected: FAIL
+
+ [font-size length(pt) / events]
+ expected: FAIL
+
+ [font-size length(pc) / events]
+ expected: FAIL
+
+ [font-size length(px) / events]
+ expected: FAIL
+
+ [font-size length(em) / events]
+ expected: FAIL
+
+ [font-size length(ex) / events]
+ expected: FAIL
+
+ [font-size length(mm) / events]
+ expected: FAIL
+
+ [font-size length(cm) / events]
+ expected: FAIL
+
+ [font-size length(in) / events]
+ expected: FAIL
+
+ [font-size percentage(%) / events]
+ expected: FAIL
+
+ [font-weight font-weight(keyword) / events]
+ expected: FAIL
+
+ [font-weight font-weight(numeric) / events]
+ expected: FAIL
+
+ [line-height number(integer) / events]
+ expected: FAIL
+
+ [line-height number(decimal) / events]
+ expected: FAIL
+
+ [line-height length(pt) / events]
+ expected: FAIL
+
+ [line-height length(pc) / events]
+ expected: FAIL
+
+ [line-height length(px) / events]
+ expected: FAIL
+
+ [line-height length(em) / events]
+ expected: FAIL
+
+ [line-height length(ex) / events]
+ expected: FAIL
+
+ [line-height length(mm) / events]
+ expected: FAIL
+
+ [line-height length(cm) / events]
+ expected: FAIL
+
+ [line-height length(in) / events]
+ expected: FAIL
+
+ [line-height percentage(%) / events]
+ expected: FAIL
+
+ [letter-spacing length(pt) / events]
+ expected: FAIL
+
+ [letter-spacing length(pc) / events]
+ expected: FAIL
+
+ [letter-spacing length(px) / events]
+ expected: FAIL
+
+ [letter-spacing length(em) / events]
+ expected: FAIL
+
+ [letter-spacing length(ex) / events]
+ expected: FAIL
+
+ [letter-spacing length(mm) / events]
+ expected: FAIL
+
+ [letter-spacing length(cm) / events]
+ expected: FAIL
+
+ [letter-spacing length(in) / events]
+ expected: FAIL
+
+ [word-spacing length(pt) / events]
+ expected: FAIL
+
+ [word-spacing length(pc) / events]
+ expected: FAIL
+
+ [word-spacing length(px) / events]
+ expected: FAIL
+
+ [word-spacing length(em) / events]
+ expected: FAIL
+
+ [word-spacing length(ex) / events]
+ expected: FAIL
+
+ [word-spacing length(mm) / events]
+ expected: FAIL
+
+ [word-spacing length(cm) / events]
+ expected: FAIL
+
+ [word-spacing length(in) / events]
+ expected: FAIL
+
+ [word-spacing percentage(%) / events]
+ expected: FAIL
+
+ [text-indent length(pt) / events]
+ expected: FAIL
+
+ [text-indent length(pc) / events]
+ expected: FAIL
+
+ [text-indent length(px) / events]
+ expected: FAIL
+
+ [text-indent length(em) / events]
+ expected: FAIL
+
+ [text-indent length(ex) / events]
+ expected: FAIL
+
+ [text-indent length(mm) / events]
+ expected: FAIL
+
+ [text-indent length(cm) / events]
+ expected: FAIL
+
+ [text-indent length(in) / events]
+ expected: FAIL
+
+ [text-indent percentage(%) / events]
+ expected: FAIL
+
+ [text-shadow shadow(shadow) / events]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini
index 242ba44bbca..793afafa0e8 100644
--- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini
@@ -52,3 +52,276 @@
[background-position length(px) / events]
expected: FAIL
+
+ [background-color color(rgba) / values]
+ expected: FAIL
+
+ [border-top-width length(pt) / values]
+ expected: FAIL
+
+ [border-top-width length(pc) / values]
+ expected: FAIL
+
+ [border-top-width length(px) / values]
+ expected: FAIL
+
+ [border-top-width length(em) / values]
+ expected: FAIL
+
+ [border-top-width length(ex) / values]
+ expected: FAIL
+
+ [border-top-width length(mm) / values]
+ expected: FAIL
+
+ [border-top-width length(cm) / values]
+ expected: FAIL
+
+ [border-top-width length(in) / values]
+ expected: FAIL
+
+ [border-right-width length(pt) / values]
+ expected: FAIL
+
+ [border-right-width length(pc) / values]
+ expected: FAIL
+
+ [border-right-width length(px) / values]
+ expected: FAIL
+
+ [border-right-width length(em) / values]
+ expected: FAIL
+
+ [border-right-width length(ex) / values]
+ expected: FAIL
+
+ [border-right-width length(mm) / values]
+ expected: FAIL
+
+ [border-right-width length(cm) / values]
+ expected: FAIL
+
+ [border-right-width length(in) / values]
+ expected: FAIL
+
+ [border-bottom-width length(pt) / values]
+ expected: FAIL
+
+ [border-bottom-width length(pc) / values]
+ expected: FAIL
+
+ [border-bottom-width length(px) / values]
+ expected: FAIL
+
+ [border-bottom-width length(em) / values]
+ expected: FAIL
+
+ [border-bottom-width length(ex) / values]
+ expected: FAIL
+
+ [border-bottom-width length(mm) / values]
+ expected: FAIL
+
+ [border-bottom-width length(cm) / values]
+ expected: FAIL
+
+ [border-bottom-width length(in) / values]
+ expected: FAIL
+
+ [border-left-width length(pt) / values]
+ expected: FAIL
+
+ [border-left-width length(pc) / values]
+ expected: FAIL
+
+ [border-left-width length(px) / values]
+ expected: FAIL
+
+ [border-left-width length(em) / values]
+ expected: FAIL
+
+ [border-left-width length(ex) / values]
+ expected: FAIL
+
+ [border-left-width length(mm) / values]
+ expected: FAIL
+
+ [border-left-width length(cm) / values]
+ expected: FAIL
+
+ [border-left-width length(in) / values]
+ expected: FAIL
+
+ [border-top-color color(rgba) / values]
+ expected: FAIL
+
+ [border-right-color color(rgba) / values]
+ expected: FAIL
+
+ [border-bottom-color color(rgba) / values]
+ expected: FAIL
+
+ [border-left-color color(rgba) / values]
+ expected: FAIL
+
+ [padding-bottom length(pt) / values]
+ expected: FAIL
+
+ [padding-bottom length(pc) / values]
+ expected: FAIL
+
+ [padding-bottom length(px) / values]
+ expected: FAIL
+
+ [padding-bottom length(em) / values]
+ expected: FAIL
+
+ [color color(rgba) / values]
+ expected: FAIL
+
+ [font-size length(pt) / values]
+ expected: FAIL
+
+ [font-size length(pc) / values]
+ expected: FAIL
+
+ [font-size length(px) / values]
+ expected: FAIL
+
+ [font-size length(em) / values]
+ expected: FAIL
+
+ [font-size length(ex) / values]
+ expected: FAIL
+
+ [font-size length(mm) / values]
+ expected: FAIL
+
+ [font-size length(cm) / values]
+ expected: FAIL
+
+ [font-size length(in) / values]
+ expected: FAIL
+
+ [font-size percentage(%) / values]
+ expected: FAIL
+
+ [font-weight font-weight(keyword) / values]
+ expected: FAIL
+
+ [font-weight font-weight(numeric) / values]
+ expected: FAIL
+
+ [line-height number(integer) / values]
+ expected: FAIL
+
+ [line-height number(decimal) / values]
+ expected: FAIL
+
+ [line-height length(pt) / values]
+ expected: FAIL
+
+ [line-height length(pc) / values]
+ expected: FAIL
+
+ [line-height length(px) / values]
+ expected: FAIL
+
+ [line-height length(em) / values]
+ expected: FAIL
+
+ [line-height length(ex) / values]
+ expected: FAIL
+
+ [line-height length(mm) / values]
+ expected: FAIL
+
+ [line-height length(cm) / values]
+ expected: FAIL
+
+ [line-height length(in) / values]
+ expected: FAIL
+
+ [line-height percentage(%) / values]
+ expected: FAIL
+
+ [letter-spacing length(pt) / values]
+ expected: FAIL
+
+ [letter-spacing length(pc) / values]
+ expected: FAIL
+
+ [letter-spacing length(px) / values]
+ expected: FAIL
+
+ [letter-spacing length(em) / values]
+ expected: FAIL
+
+ [letter-spacing length(ex) / values]
+ expected: FAIL
+
+ [letter-spacing length(mm) / values]
+ expected: FAIL
+
+ [letter-spacing length(cm) / values]
+ expected: FAIL
+
+ [letter-spacing length(in) / values]
+ expected: FAIL
+
+ [word-spacing length(pt) / values]
+ expected: FAIL
+
+ [word-spacing length(pc) / values]
+ expected: FAIL
+
+ [word-spacing length(px) / values]
+ expected: FAIL
+
+ [word-spacing length(em) / values]
+ expected: FAIL
+
+ [word-spacing length(ex) / values]
+ expected: FAIL
+
+ [word-spacing length(mm) / values]
+ expected: FAIL
+
+ [word-spacing length(cm) / values]
+ expected: FAIL
+
+ [word-spacing length(in) / values]
+ expected: FAIL
+
+ [word-spacing percentage(%) / values]
+ expected: FAIL
+
+ [text-indent length(pt) / values]
+ expected: FAIL
+
+ [text-indent length(pc) / values]
+ expected: FAIL
+
+ [text-indent length(px) / values]
+ expected: FAIL
+
+ [text-indent length(em) / values]
+ expected: FAIL
+
+ [text-indent length(ex) / values]
+ expected: FAIL
+
+ [text-indent length(mm) / values]
+ expected: FAIL
+
+ [text-indent length(cm) / values]
+ expected: FAIL
+
+ [text-indent length(in) / values]
+ expected: FAIL
+
+ [text-indent percentage(%) / values]
+ expected: FAIL
+
+ [text-shadow shadow(shadow) / values]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini
new file mode 100644
index 00000000000..f18b8d2fcf9
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini
@@ -0,0 +1,3 @@
+[CaretPosition-001.html]
+ [Element at (400, 100)]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
index 8986950c7aa..758c26f2a2d 100644
--- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
@@ -1,6 +1,3 @@
[MediaQueryList-extends-EventTarget-interop.html]
[listeners are called in order they were added, ignoring capture parameter]
expected: FAIL
-
- [removeListener doesn't remove listener added with addEventListener (capture)]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..72b09371038
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini
new file mode 100644
index 00000000000..b905fe70fcb
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-ellipsis-in-inline-box.html]
+ [elementFromPoint-ellipsis-in-inline-box]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini
new file mode 100644
index 00000000000..a6bca7ac372
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-visibility-hidden-resizer.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-visibility-hidden-resizer.html]
+ [elementFromPoint on resizer area of an element with visibility:hidden]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
deleted file mode 100644
index 3e7b0a9bc9c..00000000000
--- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[elementsFromPoint-iframes.html]
- [elementsFromPoint on inner documents]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-attr.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-attr.html.ini
new file mode 100644
index 00000000000..e9271488bfb
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-attr.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-attr.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-class.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-class.html.ini
new file mode 100644
index 00000000000..9a24925af13
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-class.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-class.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-has.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-has.html.ini
new file mode 100644
index 00000000000..f9ae9a26de4
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-has.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-has.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini
new file mode 100644
index 00000000000..99b06462ef6
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-in-ancestor.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-in-ancestor.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-sibling.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-sibling.html.ini
new file mode 100644
index 00000000000..66fec24b0c9
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-of-sibling.html.ini
@@ -0,0 +1,2 @@
+[nth-child-of-sibling.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini
new file mode 100644
index 00000000000..ef48122dca4
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-when-ancestor-changes.html.ini
@@ -0,0 +1,2 @@
+[nth-child-when-ancestor-changes.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini b/tests/wpt/metadata/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini
new file mode 100644
index 00000000000..7879d75b5f6
--- /dev/null
+++ b/tests/wpt/metadata/css/selectors/invalidation/nth-child-when-sibling-changes.html.ini
@@ -0,0 +1,2 @@
+[nth-child-when-sibling-changes.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-length/parsing.window.js.ini b/tests/wpt/metadata/fetch/content-length/parsing.window.js.ini
index dbe03dd880c..ac656410273 100644
--- a/tests/wpt/metadata/fetch/content-length/parsing.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-length/parsing.window.js.ini
@@ -77,8 +77,8 @@
[Input: "Content-Length: ". Expected: 42.]
expected: FAIL
- [Input: "Content-Length: 42,42". Expected: 42.]
+ [Input: "Content-Length: 42\\r\\nContent-Length: 42". Expected: 42.]
expected: FAIL
- [Input: "Content-Length: 42\\r\\nContent-Length: 42,42". Expected: 42.]
+ [Input: "Content-Length: 30". Expected: 30.]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index 092e3da5086..736ff6130a5 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -7,6 +7,3 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
-
- [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini
index 6e9f7acf151..c8a3c8f9e68 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html.ini
@@ -1,6 +1,6 @@
[scroll-restoration-fragment-scrolling-cross-origin.html]
type: testharness
- expected: TIMEOUT
+ expected: ERROR
[Manual scroll restoration should take precedent over scrolling to fragment in cross origin navigation]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini
index eaebad750fe..f2dee7b3ea9 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html.ini
@@ -1,7 +1,6 @@
[consecutive-srcdoc.html]
- expected: TIMEOUT
[changing srcdoc does a replace navigation since the URL is still about:srcdoc]
expected: FAIL
[changing srcdoc to about:srcdoc#yo then another srcdoc does two push navigations and we can navigate back]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
index 5f9a07f92f0..dc1144214ef 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
@@ -4,3 +4,6 @@
[Navigating to a different document with form submission]
expected: FAIL
+
+ [Navigating to a different document with link click]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini
index c51f1290ef5..6582f1e053b 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-204.html.ini
@@ -1,7 +1,7 @@
[window-open-204.html]
expected: TIMEOUT
[location.href]
- expected: TIMEOUT
+ expected: FAIL
[location.assign]
- expected: NOTRUN
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini
index 4b25ec32301..a06984505e9 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.js.ini
@@ -5,3 +5,6 @@
[Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: string completion]
expected: TIMEOUT
+
+ [Navigating an opened window with an iframe via location.href to a javascript: URL must not fire beforeunload on the iframe: undefined completion]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini
index bcda478adb1..5a245d61359 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini
@@ -1,10 +1,6 @@
[javascript-url-referrer.window.html]
- expected: TIMEOUT
[unsafe-url referrer policy used to create the starting page]
expected: FAIL
[origin referrer policy used to create the starting page]
expected: FAIL
-
- [no-referrer referrer policy used to create the starting page]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini
deleted file mode 100644
index f5b7b25324f..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse-during-unload.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse-during-unload.html]
- expected: TIMEOUT
- [Traversing the history during unload]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 00000000000..7a5fcb79165
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,3 @@
+[traverse_the_history_5.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini
new file mode 100644
index 00000000000..4b4820d1729
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini
@@ -0,0 +1,3 @@
+[creating_browsing_context_test_01.html]
+ [first argument: absolute url]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
index 3613f3de8bf..3a5c1fd357c 100644
--- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
+++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -1,5 +1,5 @@
[embedded-opener-remove-frame.html]
- expected: CRASH
+ expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL
@@ -7,4 +7,4 @@
expected: FAIL
[opener of discarded auxiliary browsing context]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini b/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini
index 2a54f2f8814..5cdcce07c65 100644
--- a/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini
+++ b/tests/wpt/metadata/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected.html.ini
@@ -1,2 +1,2 @@
[canvas.2d.disconnected.html]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index d169bd2e9fa..8a926207630 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -1,4 +1,5 @@
[supported-elements.html]
+ expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
@@ -6,10 +7,10 @@
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: FAIL
+ expected: TIMEOUT
[Area element should support autofocus]
- expected: FAIL
+ expected: NOTRUN
[Host element with delegatesFocus should support autofocus]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 25d9964f057..2d3fbf0f308 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,4 +1,5 @@
[iframe_sandbox_popups_escaping-1.html]
type: testharness
+ 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/metadata/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
index 31745fdcdcf..31928ad3947 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-special-cases.tentative.sub.window.js.ini
@@ -1,4 +1,5 @@
[sandbox-top-navigation-child-special-cases.tentative.sub.window.html]
+ expected: TIMEOUT
[Allow top with user activation + user activation]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
index 071b4378add..73807cb3cc1 100644
--- a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
+++ b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
@@ -1,5 +1,6 @@
[htmlanchorelement_noopener.html]
type: testharness
+ expected: TIMEOUT
[Check that targeting of rel=noopener with a given name ignores an existing window with that name]
expected: NOTRUN
@@ -11,3 +12,6 @@
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL
+
+ [Check that rel=noopener with target=_self does a normal load]
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini
deleted file mode 100644
index 1181798bd79..00000000000
--- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[async-script.html]
-
-[async-script.html?reload]
- expected: ERROR
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
new file mode 100644
index 00000000000..b8bdf33cb65
--- /dev/null
+++ b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
@@ -0,0 +1,3 @@
+[DOMContentLoaded-defer.html]
+ [The end: DOMContentLoaded and defer scripts]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index 7d4c3a1b06d..e55f8f2ce3c 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -5,4 +5,4 @@
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini
index dbe1def99e3..7237f5792de 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini
@@ -1,9 +1,10 @@
[promise-job-entry-different-function-realm.html]
+ expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: FAIL
+ expected: TIMEOUT
[Thenable resolution]
expected: FAIL
@@ -12,4 +13,4 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini b/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini
index 31e16aada51..9342352e856 100644
--- a/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini
+++ b/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini
@@ -46,19 +46,19 @@
expected: FAIL
[content-type 15 : text/html;x=",text/plain]
- expected: TIMEOUT
+ expected: FAIL
[content-type 16 : text/html;",text/plain]
- expected: NOTRUN
+ expected: FAIL
[content-type 17 : text/html;",\\",text/plain]
- expected: NOTRUN
+ expected: FAIL
[content-type 18 : text/html;",\\",text/plain,";charset=GBK]
- expected: NOTRUN
+ expected: FAIL
[content-type 19 : text/html;",",text/plain]
- expected: NOTRUN
+ expected: TIMEOUT
[mime-type 1 : text/html;charset=gbk]
expected: NOTRUN
diff --git a/tests/wpt/metadata/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini b/tests/wpt/metadata/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
index 04c2032c723..39d039a0132 100644
--- a/tests/wpt/metadata/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
+++ b/tests/wpt/metadata/webmessaging/broadcastchannel/cross-partition.https.tentative.html.ini
@@ -1,5 +1,5 @@
[cross-partition.https.tentative.html]
- expected: TIMEOUT
+ expected: CRASH
[BroadcastChannel messages aren't received from a cross-partition iframe]
expected: FAIL
diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
new file mode 100644
index 00000000000..c7946fc91b4
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
@@ -0,0 +1,4 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
new file mode 100644
index 00000000000..b7b36c1d3a4
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
@@ -0,0 +1,4 @@
+[018.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, javascript:]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/workers/dedicated-worker-from-blob-url.window.js.ini b/tests/wpt/metadata/workers/dedicated-worker-from-blob-url.window.js.ini
deleted file mode 100644
index d0154d3e5d7..00000000000
--- a/tests/wpt/metadata/workers/dedicated-worker-from-blob-url.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[dedicated-worker-from-blob-url.window.html]
- [Creating a dedicated worker from a blob URL works immediately before revoking.]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini b/tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini
new file mode 100644
index 00000000000..77ca6b0688d
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/stylesheet_media_queries.html.ini
@@ -0,0 +1,3 @@
+[stylesheet_media_queries.html]
+ [Media queries within stylesheets]
+ expected: FAIL
diff --git a/tests/wpt/web-platform-tests/cookies/resources/set-cookie.py b/tests/wpt/web-platform-tests/cookies/resources/set-cookie.py
index db747bcd3bd..839f350c449 100644
--- a/tests/wpt/web-platform-tests/cookies/resources/set-cookie.py
+++ b/tests/wpt/web-platform-tests/cookies/resources/set-cookie.py
@@ -28,5 +28,5 @@ def main(request, response):
(b"Content-Type", b"application/json"),
(b"Set-Cookie", cookie)
]
- body = b"{}"
+ body = b"dummy value"
return headers, body
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-no-overflow-crash.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html
index d8fa3821cf5..d8fa3821cf5 100644
--- a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-no-overflow-crash.html
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html
new file mode 100644
index 00000000000..6e0af9f4dcc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-002-crash.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html class="test-wait">
+<title>Tests that anchor-scroll doesn't crash renderer when scroller's content no longer overflows</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
+
+<style>
+#scroller {
+ margin-top: 200px;
+ height: 200px;
+ overflow-y: scroll;
+}
+
+#anchor {
+ anchor-name: --a;
+}
+
+#spacer {
+ height: 400px;
+}
+
+#target {
+ position: fixed;
+ top: anchor(--a bottom);
+ left: anchor(--a left);
+ anchor-scroll: --a;
+}
+</style>
+
+<div id="scroller">
+ <div id="spacer"></div>
+ <div id="anchor">anchor</div>
+</div>
+<div id="target">target</div>
+
+<script type="module">
+const raf = () => new Promise(resolve => requestAnimationFrame(resolve));
+
+await raf();
+await raf();
+
+spacer.style.height = '0';
+
+// Force paint property update on target in the same frame
+target.style.transform = 'scale(1)';
+
+document.documentElement.classList.remove('test-wait');
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html
new file mode 100644
index 00000000000..046373377ef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html class="test-wait">
+<title>Tests that anchor-scroll doesn't crash renderer when scroller becomes non-scroller</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
+
+<style>
+#scroller {
+ margin-top: 200px;
+ height: 200px;
+ overflow-y: scroll;
+}
+
+#anchor {
+ anchor-name: --a;
+}
+
+#spacer {
+ height: 400px;
+}
+
+#target {
+ position: fixed;
+ top: anchor(--a bottom);
+ left: anchor(--a left);
+ anchor-scroll: --a;
+}
+</style>
+
+<div id="scroller">
+ <div id="spacer"></div>
+ <div id="anchor">anchor</div>
+</div>
+<div id="target">target</div>
+
+<script type="module">
+const raf = () => new Promise(resolve => requestAnimationFrame(resolve));
+
+await raf();
+await raf();
+
+scroller.style.overflowY = 'visible';
+
+// Force paint property update on target in the same frame
+target.style.transform = 'scale(1)';
+
+document.documentElement.classList.remove('test-wait');
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html
new file mode 100644
index 00000000000..12e7af0be43
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html class="test-wait">
+<title>Tests that anchor-scroll doesn't crash renderer when scroller's content no longer overflows, and target precedes scroller in DOM</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
+
+<style>
+#scroller {
+ margin-top: 200px;
+ height: 200px;
+ overflow-y: scroll;
+}
+
+#anchor {
+ anchor-name: --a;
+}
+
+#spacer {
+ height: 400px;
+}
+
+#target {
+ position: fixed;
+ top: anchor(--a bottom);
+ left: anchor(--a left);
+ anchor-scroll: --a;
+}
+</style>
+
+<div id="target">target</div>
+<div id="scroller">
+ <div id="spacer"></div>
+ <div id="anchor">anchor</div>
+</div>
+
+<script type="module">
+const raf = () => new Promise(resolve => requestAnimationFrame(resolve));
+
+await raf();
+await raf();
+
+spacer.style.height = '0';
+
+document.documentElement.classList.remove('test-wait');
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html
new file mode 100644
index 00000000000..0a4427ae921
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html class="test-wait">
+<title>Tests that anchor-scroll doesn't crash renderer with `overflow: hidden` scroller</title>
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
+
+<style>
+#scroller {
+ margin-top: 200px;
+ height: 200px;
+ overflow-y: hidden;
+}
+
+#anchor {
+ anchor-name: --a;
+}
+
+#spacer {
+ height: 400px;
+}
+
+#target {
+ position: fixed;
+ top: anchor(--a bottom);
+ left: anchor(--a left);
+ anchor-scroll: --a;
+}
+</style>
+
+<div id="scroller">
+ <div id="spacer"></div>
+ <div id="anchor">anchor</div>
+</div>
+<div id="target">target</div>
+
+<script type="module">
+const raf = () => new Promise(resolve => requestAnimationFrame(resolve));
+
+scroller.scrollTop = 100;
+
+await raf();
+await raf();
+
+scroller.scrollTop = 0;
+
+// Force paint property update on target in the same frame
+target.style.transform = 'scale(1)';
+
+document.documentElement.classList.remove('test-wait');
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-break/table/table-rowspan-001.html b/tests/wpt/web-platform-tests/css/css-break/table/table-rowspan-001.html
new file mode 100644
index 00000000000..fe431d79a7c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-break/table/table-rowspan-001.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1396218">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="columns:2; width:100px; gap:0; column-fill:auto; height:100px; background:red;">
+ <table cellpadding="0" cellspacing="0">
+ <tr>
+ <td style="width:25px; height:20px; background:green;"></td>
+ <td style="width:25px; height:20px; background:green;"></td>
+ </tr>
+ <tr>
+ <td rowspan="2" style="background:green;"></td>
+ <td style="height:20px; background:green;"></td>
+ </tr>
+ <tr>
+ <td style="height:160px; background:green;"></td>
+ </tr>
+ </table>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-cross-origin.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-cross-origin.html
index c8db1df5c18..e36c1295d31 100644
--- a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-cross-origin.html
+++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-cross-origin.html
@@ -1,5 +1,5 @@
<!DOCTYPE html>
-<html>
+<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>CSS Images Module Level 3: image-orientation: none</title>
@@ -28,20 +28,49 @@
<p>This image should rotate respecting their EXIF orientation because
image-orientation: none should be effectively ignored for opaque (cross-origin) images.</p>
<div><img id="corsImage" src="support/exif-orientation-3-lr.jpg"/></div>
- <script>
- const img = document.getElementById('corsImage')
- img.src = img.src.replace(new URL(img.src).origin, get_host_info().HTTP_REMOTE_ORIGIN)
- </script>
+
+ <p>The image should not rotate respecting their EXIF orientation because
+ image-orientation: none is specified.</p>
+ <div><img id="blobImage"/></div>
+
<p>The image should not rotate respecting their EXIF orientation because
image-orientation: none is specified.</p>
- <div><img id="blobImage" src="support/exif-orientation-3-lr.jpg"/></div>
- <script>
- fetch(img.src).then((resp) {
- return blob;
- }).then((blob) => {
- const img = document.getElementById('blobImage')
- img.src = blob;
- });
- </script>
+ <div><img id="dataImage"/></div>
</body>
+<script>
+ const testImage = 'support/exif-orientation-3-lr.jpg';
+ let sPendingImagesToLoad = 3;
+
+ function pendingImageLoaded() {
+ if (!--sPendingImagesToLoad) {
+ document.documentElement.removeAttribute('class');
+ }
+ }
+
+ const img = document.getElementById('corsImage')
+ img.onload = pendingImageLoaded;
+ img.src = img.src.replace(new URL(img.src).origin, get_host_info().HTTP_REMOTE_ORIGIN)
+
+ const blobImg = document.getElementById('blobImage');
+ fetch(testImage).then((resp) => {
+ return resp.blob();
+ }).then((blob) => {
+ blobImg.onload = pendingImageLoaded;
+ blobImg.src = URL.createObjectURL(blob);
+ });
+
+ const dataImg = document.getElementById('dataImage');
+ fetch(testImage).then((resp) => {
+ return resp.blob();
+ }).then((blob) => {
+ const reader = new FileReader();
+
+ reader.addEventListener("load", () => {
+ dataImg.onload = pendingImageLoaded;
+ dataImg.src = reader.result;
+ });
+
+ reader.readAsDataURL(blob);
+ });
+</script>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html
index 1ac90177701..c4d72fc823f 100644
--- a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-ref.html
@@ -29,5 +29,9 @@
<p>The image should not rotate respecting their EXIF orientation because
image-orientation: none is specified.</p>
<div><img src="../support/exif-orientation-3-lr.jpg"/></div>
+
+ <p>The image should not rotate respecting their EXIF orientation because
+ image-orientation: none is specified.</p>
+ <div><img src="../support/exif-orientation-3-lr.jpg"/></div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-ref.html b/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-ref.html
index 4bbedfbfe0a..d55c22d9533 100644
--- a/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes-ref.html
@@ -15,7 +15,7 @@
width: 130px;
height: 200px;
overflow: hidden;
- font: 25px/1 Ahem;
+ font: 30px/1 Ahem;
}
.contents {
diff --git a/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html b/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html
index 77a861e42be..98f50500b8c 100644
--- a/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html
+++ b/tests/wpt/web-platform-tests/css/css-position/sticky/position-sticky-writing-modes.html
@@ -21,7 +21,7 @@
width: 130px;
height: 200px;
overflow: hidden;
- font: 25px/1 Ahem;
+ font: 30px/1 Ahem;
}
.contents {
@@ -65,7 +65,7 @@ window.addEventListener('load', function() {
<div class="group">
<div id="scroller2" class="scroller" style="writing-mode: vertical-rl;">
- <div class="indicator" style="left: 60px; top: 100px;">XXX</div>
+ <div class="indicator" style="left: 55px; top: 100px;">XXX</div>
<div class="contents">
<div class="sticky" style="right: 20px;">XXX</div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006b.xht b/tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006b.xht
deleted file mode 100644
index 664edbd129e..00000000000
--- a/tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006b.xht
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head>
- <title>CSS Test: Test for flow around floats</title>
- <link rel="author" title="L. David Baron" href="https://dbaron.org/" />
- <link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" />
- <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#floats" />
- <link rel="match" href="floats-wrap-bfc-006b-ref.xht"/>
- <meta name="assert" content="The border box of a table, a block-level replaced element, or an element in the normal flow that establishes a new block formatting context (such as an element with 'overflow' other than 'visible') must not overlap any floats in the same block formatting context as the element itself." />
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="Content-Style-Type" content="text/css" />
- <style type="text/css">
-
- body { font-size: 16px; }
-
- table { margin: 0; border-spacing: 0; }
- caption, td, th { padding: 0; vertical-align: top; text-align: left; }
-
- table table caption { background: yellow; }
- table table { background: purple; }
-
- </style>
-</head>
-<body>
-
-<table width="300" style="background: aqua"><tbody><tr><td>
- <div style="float:left; clear:left; background:blue; width:150px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:145px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:140px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:135px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:130px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:125px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:120px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:115px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:110px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:105px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:100px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:95px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:90px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:85px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:80px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:75px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:70px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:65px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:60px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:55px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:50px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:45px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:40px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:35px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:30px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:25px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:20px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:15px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:10px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:5px; height:1px"></div>
- <table>
- <caption style="caption-side: left; height:30px; width: 90px;">Caption</caption>
- <tbody><tr><td><div style="height: 30px; width: 102px">Cell</div></td></tr>
- </tbody></table>
-</td></tr></tbody></table>
-
-
-
-</body></html>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006c.xht b/tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006c.xht
deleted file mode 100644
index 88593468f92..00000000000
--- a/tests/wpt/web-platform-tests/css/css-tables/floats/floats-wrap-bfc-006c.xht
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head>
- <title>CSS Test: Test for flow around floats</title>
- <link rel="author" title="L. David Baron" href="https://dbaron.org/" />
- <link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" />
- <link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#floats" />
- <link rel="match" href="floats-wrap-bfc-006c-ref.xht"/>
- <meta name="assert" content="The border box of a table, a block-level replaced element, or an element in the normal flow that establishes a new block formatting context (such as an element with 'overflow' other than 'visible') must not overlap any floats in the same block formatting context as the element itself." />
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="Content-Style-Type" content="text/css" />
- <style type="text/css">
-
- body { font-size: 16px; }
-
- table { margin: 0; border-spacing: 0; }
- caption, td, th { padding: 0; vertical-align: top; text-align: left; }
-
- table table caption { background: yellow; }
- table table { background: purple; }
-
- </style>
-</head>
-<body>
-
-<table width="300" style="background: aqua"><tbody><tr><td>
- <div style="float:left; clear:left; background:blue; width:150px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:145px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:140px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:135px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:130px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:125px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:120px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:115px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:110px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:105px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:100px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:95px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:90px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:85px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:80px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:75px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:70px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:65px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:60px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:55px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:50px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:45px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:40px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:35px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:30px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:25px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:20px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:15px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:10px; height:1px"></div>
- <div style="float:left; clear:left; background:blue; width:5px; height:1px"></div>
- <table>
- <caption style="caption-side: right; height:30px; width: 90px;">Caption</caption>
- <tbody><tr><td><div style="height: 30px; width: 102px">Cell</div></td></tr>
- </tbody></table>
-</td></tr></tbody></table>
-
-
-
-</body></html>
diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/paused-animation-at-end.html b/tests/wpt/web-platform-tests/css/css-view-transitions/paused-animation-at-end.html
new file mode 100644
index 00000000000..47db0a6fcd6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-view-transitions/paused-animation-at-end.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<title>View transitions: pause animation and set current time to the end</title>
+<link rel="help" href="https://www.w3.org/TR/css-view-transitions-1/">
+<link rel="author" href="mailto:vmpstr@chromium.org">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<style>
+:root { view-transition-name: unset; }
+#target {
+ width: 100px;
+ height: 100px;
+ contain: layout;
+ view-transition-name: target;
+}
+.one {
+ background: blue;
+}
+.two {
+ background: green;
+}
+</style>
+
+<div id=target class=one></div>
+
+<script>
+promise_test(async (t) => {
+ return new Promise((resolve, reject) => {
+ let transition = document.startViewTransition(() => {
+ target.classList.replace("one", "two");
+ });
+
+ transition.finished.then(() => reject("transition unexpectedly finished"));
+ transition.ready.then(() => {
+ document.getAnimations().forEach((animation) => {
+ animation.pause();
+ animation.currentTime = 1000;
+ });
+ step_timeout(resolve, 500);
+ });
+ });
+}, "view transition is not over if animations are paused");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr-ref.html
new file mode 100644
index 00000000000..41205174eb0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of attribute)</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div>
+ <p>Ignored</p>
+ <p>Ignored</p>
+ <p>Not ignored</p>
+ <p>Selectively ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Not ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Ignored</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr.html
new file mode 100644
index 00000000000..d929d6a50db
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-attr.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of attribute)</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-of-attr-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ p:nth-child(even of [attr="yes"]) {
+ color: green;
+ }
+</style>
+<div>
+ <p>Ignored</p>
+ <p attr="no">Ignored</p>
+ <p attr="yes">Not ignored</p>
+ <p attr="yes" id="toggler">Selectively ignored</p>
+ <p attr="yes">Not ignored</p>
+ <p attr="yes">Not ignored</p>
+ <p attr="yes">Not ignored</p>
+ <p>Ignored</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.setAttribute("attr", "no");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class-ref.html
new file mode 100644
index 00000000000..7a8247c469e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class)</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div>
+ <p>Ignored</p>
+ <p>Ignored</p>
+ <p>Not ignored</p>
+ <p>Selectively ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Not ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Ignored</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class.html
new file mode 100644
index 00000000000..dc1e8cec82e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-class.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class)</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-of-class-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ p:nth-child(even of .c) {
+ color: green;
+ }
+</style>
+<div>
+ <p>Ignored</p>
+ <p>Ignored</p>
+ <p class="c">Not ignored</p>
+ <p class="c" id="toggler">Selectively ignored</p>
+ <p class="c">Not ignored</p>
+ <p class="c">Not ignored</p>
+ <p class="c">Not ignored</p>
+ <p>Ignored</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.classList.toggle("c");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has-ref.html
new file mode 100644
index 00000000000..ab3931d6ef4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of :has(...))</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div>
+ <p>Ignored</p>
+ <p>Ignored</p>
+ <p>Not ignored</p>
+ <p>Selectively ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Not ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Ignored</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has.html
new file mode 100644
index 00000000000..1a548315cc0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-has.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of :has(...))</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-of-has-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ p:nth-child(even of :has(.c)) {
+ color: green;
+ }
+</style>
+<div>
+ <p>Ignored</p>
+ <p>Ignored</p>
+ <p>Not <span class="c">ignored</span></p>
+ <p>Selectively <span><span><span class="c" id="toggler"></span></span></span>ignored</p>
+ <p>Not <span class="c">ignored</span></p>
+ <p>Not <span class="c">ignored</span></p>
+ <p>Not <span class="c">ignored</span></p>
+ <p>Ignored</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.classList.toggle("c");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor-ref.html
new file mode 100644
index 00000000000..a4e4b7fd9fc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class) as ancestor</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div>
+ <p>Not <span style="color: green">ignored</span></p>
+ <p>Selectively <span>ignored<span></p>
+ <p>Not <span>ignored</span></p>
+ <p>Not <span style="color: green">ignored</span></p>
+ <p>Not <span>ignored</span></p>
+ <p>Ignored</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor.html
new file mode 100644
index 00000000000..7311c3e3011
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-in-ancestor.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class) as ancestor</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-of-in-ancestor-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ p:nth-child(odd of .c) span {
+ color: green;
+ }
+</style>
+<div>
+ <p class="c">Not <span>ignored</span></p>
+ <p class="c" id="toggler">Selectively <span>ignored<span></p>
+ <p class="c">Not <span>ignored</span></p>
+ <p class="c">Not <span>ignored</span></p>
+ <p class="c">Not <span>ignored</span></p>
+ <p>Ignored</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.classList.toggle("c");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling-ref.html
new file mode 100644
index 00000000000..0388fc7c5ab
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of sibling)</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div>
+ <p>Ignored</p>
+ <p>Ignored</p>
+ <p>Selectively ignored</p>
+ <p>Ignored</p>
+ <p>Not ignored</p>
+ <p>Ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Ignored</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling.html
new file mode 100644
index 00000000000..5beaad6a581
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-of-sibling.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of sibling)</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-of-sibling-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ p:nth-child(even of .a + .b) {
+ color: green;
+ }
+</style>
+<div>
+ <p>Ignored</p>
+ <p class="a" id="toggler">Ignored</p>
+ <p class="b">Selectively ignored</p>
+ <p class="a">Ignored</p>
+ <p class="b">Not ignored</p>
+ <p class="a">Ignored</p>
+ <p class="b">Not ignored</p>
+ <p class="a">Ignored</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.classList.toggle("a");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes-ref.html
new file mode 100644
index 00000000000..8b7d32906d9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class) when ancestor changes</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div id="toggler">
+ <p>Ignored</p>
+ <p>Not ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Not ignored</p>
+ <p style="color: green">Not ignored</p>
+ <p>Ignored</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes.html
new file mode 100644
index 00000000000..4d2b4fbce07
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-ancestor-changes.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class) when ancestor changes</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-when-ancestor-changes-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ .ancestor :nth-child(even of .c) {
+ color: green;
+ }
+</style>
+<div id="toggler">
+ <p>Ignored</p>
+ <p class="c">Not ignored</p>
+ <p class="c">Not ignored</p>
+ <p class="c">Not ignored</p>
+ <p class="c">Not ignored</p>
+ <p>Ignored</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.classList.toggle("ancestor");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes-ref.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes-ref.html
new file mode 100644
index 00000000000..9a397529900
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class) when sibling changes</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<div>
+ <p>Ignored</p>
+ <p>Odd; used to be green, should not be since no sibling</p>
+ <p>Even, so should not be green</p>
+ <p>Odd, but no sibling, so should not be green</p>
+ <p>Even, so should not be green</p>
+ <p>Ignored</p>
+ <p style="color: green">Odd, should be green</p>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes.html
new file mode 100644
index 00000000000..a0025be95a2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/nth-child-when-sibling-changes.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Selectors Invalidation: :nth-child(... of class) when sibling changes</title>
+<link rel="author" title="Steinar H. Gunderson" href="sesse@chromium.org">
+<link rel="match" href="nth-child-when-sibling-changes-ref.html">
+<link rel="help" href="https://w3c.github.io/csswg-drafts/selectors-4/#child-index">
+<style>
+ .sibling + :nth-child(odd of .c) {
+ color: green;
+ }
+</style>
+<div>
+ <p class="sibling" id="toggler">Ignored</p>
+ <p class="c">Odd; used to be green, should not be since no sibling</p>
+ <p class="c">Even, so should not be green</p>
+ <p class="c" class="sibling">Odd, but no sibling, so should not be green</p>
+ <p class="c">Even, so should not be green</p>
+ <p class="sibling">Ignored</p>
+ <p class="c">Odd, should be green</p>
+</div>
+<script>
+ document.documentElement.offsetTop;
+ toggler.classList.toggle("sibling");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-listbox-fallback-change-crash.tentative.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-listbox-fallback-change-crash.tentative.html
new file mode 100644
index 00000000000..690a98dcf32
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-selectmenu-element/selectmenu-listbox-fallback-change-crash.tentative.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<html class="test-wait">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1400522">
+<link rel="author" href="mailto:xiaochengh@chromium.org">
+
+<selectmenu id="selectMenu" style="position: absolute;">
+ <div slot="button">
+ <button id="b1" behavior="button"></button>
+ </div>
+ <selectmenu>
+ <div slot="button">
+ <button id="b2" behavior="button">x</button>
+ </div>
+ <div id="listbox" popover slot="listbox" behavior="listbox">
+ <option>y</option>
+ </div>
+ </selectmenu>
+</selectmenu>
+
+<script type="module">
+ const raf = () => new Promise(resolve => requestAnimationFrame(resolve));
+
+ document.querySelector('#b1').click();
+ document.querySelector('#b2').click();
+
+ document.querySelector('#selectMenu').style.top = '-25px';
+
+ await raf();
+ await raf();
+
+ document.querySelector('#selectMenu').style.top = '0px';
+
+ document.documentElement.classList.remove('test-wait');
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001-ref.html
new file mode 100644
index 00000000000..79d7df39d00
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>mpadded percentages (reference)</title>
+ <style>
+ .red {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if there is a green square with no red.</p>
+ <math display="block"
+ style="width: 200px; height: 200px; background: green">
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001.html
new file mode 100644
index 00000000000..ef2391c42b5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>mpadded percentages</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#inner-box-and-requested-parameters">
+ <meta name="assert" content="Verify that percentage values for mpadded do not use refer to the containing block">
+ <link rel="match" href="mpadded-percentage-001-ref.html">
+ <style>
+ .red {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if there is a green square with no red.</p>
+ <math display="block"
+ style="width: 200px; height: 200px; background: green">
+ <mpadded width="5%" height="10px" class="red"></mpadded>
+ <mpadded width=" 5%" height="10px" class="red"></mpadded>
+ <mpadded width="5% " height="10px" class="red"></mpadded>
+ <mpadded width="10px" height="5%" class="red"></mpadded>
+ <mpadded width="10px" height=" 5%" class="red"></mpadded>
+ <mpadded width="10px" height="5% " class="red"></mpadded>
+ <mpadded width="10px" depth="5%" class="red"></mpadded>
+ <mpadded width="10px" depth=" 5%" class="red"></mpadded>
+ <mpadded width="10px" depth="5% " class="red"></mpadded>
+ <mpadded width="10px" height="5%" depth="5%" class="red"></mpadded>
+ <mpadded width="10px" height=" 5%" depth=" 5%" class="red"></mpadded>
+ <mpadded width="10px" height="5% " depth="5% " class="red"></mpadded>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-002.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-002.html
new file mode 100644
index 00000000000..36d1b4f389a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/mpadded/mpadded-percentage-002.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title></title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#adjust-space-around-content-mpadded">
+ <meta name="assert" content="Percentage values are interpreted as the default value">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/mathml/support/feature-detection.js"></script>
+ <script src="/mathml/support/layout-comparison.js"></script>
+ <style>
+ .testedElement {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="log"></div>
+
+ <p>
+ <math>
+ <mpadded id="reference">
+ <mspace width="10px" height="20px" depth="30px"
+ style="background: blue"/>
+ </mpadded>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mpadded class="testedElement" width="200%">
+ <mspace width="10px" height="20px" depth="30px"
+ style="background: blue"/>
+ </mpadded>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mpadded class="testedElement" height="200%">
+ <mspace width="10px" height="20px" depth="30px"
+ style="background: blue"/>
+ </mpadded>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mpadded class="testedElement" depth="200%">
+ <mspace width="10px" height="20px" depth="30px"
+ style="background: blue"/>
+ </mpadded>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mpadded class="testedElement" lspace="200%">
+ <mspace width="10px" height="20px" depth="30px"
+ style="background: blue"/>
+ </mpadded>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mpadded class="testedElement" voffset="200%">
+ <mspace width="10px" height="20px" depth="30px"
+ style="background: blue"/>
+ </mpadded>
+ </math>
+ </p>
+ <script type="text/javascript">
+ Array.from(document.getElementsByClassName("testedElement")).forEach(mpadded => {
+ var reference = document.getElementById("reference");
+ const name = ["width", "depth", "height", "lspace", "voffset"].find(attr => mpadded.hasAttribute(attr));
+ const epsilon = 1;
+ test(function() {
+ assert_true(MathMLFeatureDetection.has_mspace());
+ compareLayout(mpadded, reference, epsilon);
+ }, `${name}='${mpadded.getAttribute(name)}' is interpreted as the default value`);
+ });
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001-ref.html
new file mode 100644
index 00000000000..da4f1dd397e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>mspace percentages (reference)</title>
+ <style>
+ .red {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if there is a green square with no red.</p>
+ <math display="block"
+ style="width: 200px; height: 200px; background: green">
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001.html
new file mode 100644
index 00000000000..758429e1db7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/spaces/mspace-percentage-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>mspace percentages</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#space-mspace">
+ <meta name="assert" content="Verify that percentage values for mspace do not use refer to the containing block">
+ <link rel="match" href="mspace-percentage-001-ref.html">
+ <style>
+ .red {
+ background: red;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if there is a green square with no red.</p>
+ <math display="block"
+ style="width: 200px; height: 200px; background: green">
+ <mspace width="5%" height="10px" class="red"></mspace>
+ <mspace width=" 5%" height="10px" class="red"></mspace>
+ <mspace width="5% " height="10px" class="red"></mspace>
+ <mspace width="10px" height="5%" class="red"></mspace>
+ <mspace width="10px" height=" 5%" class="red"></mspace>
+ <mspace width="10px" height="5% " class="red"></mspace>
+ <mspace width="10px" depth="5%" class="red"></mspace>
+ <mspace width="10px" depth=" 5%" class="red"></mspace>
+ <mspace width="10px" depth="5% " class="red"></mspace>
+ <mspace width="10px" height="5%" depth="5%" class="red"></mspace>
+ <mspace width="10px" height=" 5%" depth=" 5%" class="red"></mspace>
+ <mspace width="10px" height="5% " depth="5% " class="red"></mspace>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/subapps/add-error.tentative.https.html b/tests/wpt/web-platform-tests/subapps/add-error.tentative.https.html
index d049268af98..c9db29b62de 100644
--- a/tests/wpt/web-platform-tests/subapps/add-error.tentative.https.html
+++ b/tests/wpt/web-platform-tests/subapps/add-error.tentative.https.html
@@ -90,6 +90,20 @@ promise_test(async t => {
}, 'Missing user activation.');
promise_test(async t => {
+ const same_origin_url = document.location.origin + '/sub-app-';
+
+ let add_call_params = {};
+ for (let i = 0; i < 8; i++) {
+ const url = same_origin_url + i;
+ add_call_params[url] = { install_url: url };
+ }
+
+ await test_driver.bless("installing subapps", async function () {
+ await promise_rejects_dom(t, 'DataError', navigator.subApps.add(add_call_params));
+ });
+}, 'Too many subapps at once.');
+
+promise_test(async t => {
let add_call_params = {};
const url_1 = document.location.origin + '/sub-app-1';
diff --git a/tests/wpt/web-platform-tests/svg/struct/reftests/support/red-rect.svg b/tests/wpt/web-platform-tests/svg/struct/reftests/support/red-rect.svg
new file mode 100644
index 00000000000..1ee578ab6ad
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/struct/reftests/support/red-rect.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+ <rect id="red-rect" width="100" height="100" fill="red"/>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/struct/reftests/use-cross-origin.svg b/tests/wpt/web-platform-tests/svg/struct/reftests/use-cross-origin.svg
new file mode 100644
index 00000000000..3de069c8d15
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/struct/reftests/use-cross-origin.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>&#x3c;use&#x3e; with a cross-origin resource</title>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/struct.html#UseElementHrefAttribute"/>
+ <h:link rel="match" href="reference/green-100x100.svg"/>
+ <rect width="100" height="100" fill="green"/>
+ <script>
+ const svg = document.querySelector('svg');
+ const use = document.createElementNS('http://www.w3.org/2000/svg', 'use');
+ use.setAttribute('href', location.href.replace('://', '://www1.') + '/../support/red-rect.svg#red-rect');
+ svg.appendChild(use);
+ </script>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/struct/reftests/use-data-url.tentative.svg b/tests/wpt/web-platform-tests/svg/struct/reftests/use-data-url.tentative.svg
new file mode 100644
index 00000000000..04414030a3e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/struct/reftests/use-data-url.tentative.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>&#x3c;use&#x3e; with a data: URL resource</title>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/struct.html#UseElementHrefAttribute"/>
+ <h:link rel="match" href="reference/green-100x100.svg"/>
+ <rect width="100" height="100" fill="green"/>
+ <use href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxyZWN0IGlkPSJyZWQtcmVjdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InJlZCIvPgo8L3N2Zz4=#red-rect"/>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/struct/reftests/use-same-origin.svg b/tests/wpt/web-platform-tests/svg/struct/reftests/use-same-origin.svg
new file mode 100644
index 00000000000..0aa1ec83afd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/struct/reftests/use-same-origin.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>&#x3c;use&#x3e; with a same-origin resource</title>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/struct.html#UseElementHrefAttribute"/>
+ <h:link rel="match" href="reference/green-100x100.svg"/>
+ <use href="support/sprites.svg#green-rect"/>
+</svg>
diff --git a/tests/wpt/web-platform-tests/svg/struct/scripted/use-load-error-events.tentative.html b/tests/wpt/web-platform-tests/svg/struct/scripted/use-load-error-events.tentative.html
index 9cbaa0e2201..2c52072e169 100644
--- a/tests/wpt/web-platform-tests/svg/struct/scripted/use-load-error-events.tentative.html
+++ b/tests/wpt/web-platform-tests/svg/struct/scripted/use-load-error-events.tentative.html
@@ -72,7 +72,7 @@
promise_test(t => {
const svg = document.querySelector('svg');
const use = newUseElement();
- const watcher = expectEvents(t, use, ['load']);
+ const watcher = expectEvents(t, use, ['error']);
const url = getUrl('existing-data');
svg.appendChild(use).setAttribute('href', url);
return watcher;
@@ -113,7 +113,7 @@
const url = getUrl('existing-data');
svg.appendChild(use).setAttribute('href', url);
t.step_timeout(() => use.setAttribute('href', '#local'));
- return makeWatcher(svg, 'load', url);
+ return makeWatcher(svg, 'error', url);
}, document.title + ', external data: URL reference, existing, changed to local reference while loading');
promise_test(t => {
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/__init__.py
index 405c9fb7e9a..6ac8c3394ce 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/bidi/__init__.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/__init__.py
@@ -29,18 +29,36 @@ def recursive_compare(expected: Any, actual: Any) -> None:
assert expected == actual
-def any_string(actual: Any) -> None:
- assert isinstance(actual, str)
+def any_bool(actual: Any) -> None:
+ assert isinstance(actual, bool)
+
+
+def any_dict(actual: Any) -> None:
+ assert isinstance(actual, dict)
def any_int(actual: Any) -> None:
assert isinstance(actual, int)
+def any_int_or_null(actual: Any) -> None:
+ if actual is not None:
+ any_int(actual)
+
+
def any_list(actual: Any) -> None:
assert isinstance(actual, list)
+def any_string(actual: Any) -> None:
+ assert isinstance(actual, str)
+
+
+def any_string_or_null(actual: Any) -> None:
+ if actual is not None:
+ any_string(actual)
+
+
def int_interval(start: int, end: int) -> Callable[[Any], None]:
def _(actual: Any) -> None:
any_int(actual)
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/__init__.py
index 470fcfd11af..dc6848c00f2 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/__init__.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/__init__.py
@@ -1,4 +1,38 @@
-from .. import any_int, any_list, any_string, recursive_compare
+from .. import (
+ any_bool,
+ any_dict,
+ any_int,
+ any_int_or_null,
+ any_list,
+ any_string,
+ any_string_or_null,
+ recursive_compare,
+)
+
+
+def assert_cookies(request_cookies, expected_cookies):
+ assert len(request_cookies) == len(expected_cookies)
+
+ # Simple helper to find a cookie by key and value only.
+ def match_cookie(cookie, expected):
+ for key in expected:
+ if cookie[key] != expected[key]:
+ return False
+
+ return True
+
+ for cookie in expected_cookies:
+ assert (
+ next(c for c in request_cookies if match_cookie(c, cookie)) is not None
+ )
+
+
+def assert_headers(request_headers, expected_headers):
+ # The browser sets request headers, only assert that the expected headers
+ # are included in the request's headers.
+ assert len(request_headers) >= len(expected_headers)
+ for header in expected_headers:
+ assert next(h for h in request_headers if header == h) is not None
def assert_timing_info(timing_info):
@@ -22,103 +56,78 @@ def assert_timing_info(timing_info):
)
-def assert_request_data(request_data, cookies, headers, method, url):
+def assert_request_data(request_data, expected_request):
recursive_compare(
{
- "bodySize": any_int,
+ "bodySize": any_int_or_null,
"cookies": any_list,
"headers": any_list,
"headersSize": any_int,
"method": any_string,
"request": any_string,
+ "timings": any_dict,
"url": any_string,
},
request_data,
)
- if cookies is not None:
- request_cookies = request_data["cookies"]
- assert len(request_cookies) == len(cookies)
-
- # Simple helper to find a cookie by key and value only.
- def match_cookie(cookie, expected):
- for key in expected:
- if cookie[key] != expected[key]:
- return False
-
- return True
-
- for cookie in cookies:
- assert next(c for c in request_cookies if match_cookie(c, cookie)) is not None
+ assert_timing_info(request_data["timings"])
- if headers is not None:
- request_headers = request_data["headers"]
- # The browser sets request headers, only assert that the expected headers
- # are included in the request's headers.
- assert len(request_headers) >= len(headers)
- for header in headers:
- assert next(h for h in request_headers if header == h) is not None
+ if "cookies" in expected_request:
+ assert_cookies(request_data["cookies"], expected_request["cookies"])
+ # While recursive_compare tolerates missing entries in dict, arrays
+ # need to have the exact same number of items, and be in the same order.
+ # We don't want to assert all headers and cookies, so we do a custom
+ # assert for each and then delete it before using recursive_compare.
+ del expected_request["cookies"]
- if method is not None:
- assert request_data["method"] == method
+ if "headers" in expected_request:
+ assert_headers(request_data["headers"], expected_request["headers"])
+ # Remove headers before using recursive_compare, see comment for cookies
+ del expected_request["headers"]
- if url is not None:
- assert request_data["url"] == url
-
- assert_timing_info(request_data["timings"])
+ recursive_compare(expected_request, request_data)
def assert_base_parameters(
event,
context=None,
- cookies=None,
- headers=None,
is_redirect=None,
- method=None,
redirect_count=None,
- url=None,
+ expected_request=None,
):
- # Assert context
- assert isinstance(event["context"], str)
+ recursive_compare(
+ {
+ "context": any_string_or_null,
+ "navigation": any_string_or_null,
+ "isRedirect": any_bool,
+ "redirectCount": any_int,
+ "request": any_dict,
+ "timestamp": any_int,
+ },
+ event,
+ )
+
if context is not None:
assert event["context"] == context
- # Assert isRedirect
- assert isinstance(event["isRedirect"], bool)
if is_redirect is not None:
assert event["isRedirect"] == is_redirect
- # Assert redirectCount
- assert isinstance(event["redirectCount"], int)
if redirect_count is not None:
assert event["redirectCount"] == redirect_count
- # Assert navigation
- assert "navigation" in event
-
# Assert request data
- assert "request" in event
- assert_request_data(
- event["request"],
- cookies=cookies,
- headers=headers,
- method=method,
- url=url,
- )
-
- # Assert BaseParameters' timestamp
- assert isinstance(event["timestamp"], int)
+ if expected_request is not None:
+ assert_request_data(event["request"], expected_request)
def assert_before_request_sent_event(
event,
context=None,
- cookies=None,
- headers=None,
is_redirect=None,
- method=None,
redirect_count=None,
- url=None,
+ expected_request=None,
):
# Assert initiator
assert isinstance(event["initiator"], dict)
@@ -128,10 +137,57 @@ def assert_before_request_sent_event(
assert_base_parameters(
event,
context=context,
- cookies=cookies,
- headers=headers,
is_redirect=is_redirect,
- method=method,
redirect_count=redirect_count,
- url=url,
+ expected_request=expected_request,
+ )
+
+
+def assert_response_data(response_data, expected_response):
+ recursive_compare(
+ {
+ "bodySize": any_int_or_null,
+ "bytesReceived": any_int,
+ "content": {
+ "size": any_int_or_null,
+ },
+ "fromCache": any_bool,
+ "headersSize": any_int_or_null,
+ "protocol": any_string,
+ "status": any_int,
+ "statusText": any_string,
+ "url": any_string,
+ },
+ response_data,
+ )
+
+ if "headers" in expected_response:
+ assert_headers(response_data["headers"], expected_response["headers"])
+ # Remove headers before using recursive_compare, see comment for cookies
+ # in assert_request_data
+ del expected_response["headers"]
+
+ recursive_compare(expected_response, response_data)
+
+
+def assert_response_started_event(
+ event,
+ context=None,
+ is_redirect=None,
+ redirect_count=None,
+ expected_request=None,
+ expected_response=None,
+):
+ # Assert response data
+ any_dict(event["response"])
+ if expected_response is not None:
+ assert_response_data(event["response"], expected_response)
+
+ # Assert base parameters
+ assert_base_parameters(
+ event,
+ context=context,
+ is_redirect=is_redirect,
+ redirect_count=redirect_count,
+ expected_request=expected_request,
)
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_tentative.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_tentative.py
index 6dbd3b1a81a..1711f5177fe 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_tentative.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_tentative.py
@@ -1,5 +1,4 @@
import asyncio
-import json
import pytest
@@ -11,81 +10,22 @@ from .. import assert_before_request_sent_event
PAGE_EMPTY_HTML = "/webdriver/tests/bidi/network/support/empty.html"
PAGE_EMPTY_TEXT = "/webdriver/tests/bidi/network/support/empty.txt"
-PAGE_REDIRECT_HTTP_EQUIV = "/webdriver/tests/bidi/network/support/redirect_http_equiv.html"
+PAGE_REDIRECT_HTTP_EQUIV = (
+ "/webdriver/tests/bidi/network/support/redirect_http_equiv.html"
+)
PAGE_REDIRECTED_HTML = "/webdriver/tests/bidi/network/support/redirected.html"
# The following tests are marked as tentative until
# https://github.com/w3c/webdriver-bidi/pull/204 is merged.
-@pytest.fixture
-def fetch(bidi_session, top_context):
- """Perform a fetch from the page of the top level context."""
- async def fetch(url, method="GET", headers=None):
- method_arg = f"method: '{method}',"
-
- headers_arg = ""
- if headers != None:
- headers_arg = f"headers: {json.dumps(headers)},"
-
- # Wait for fetch() to resolve a response and for response.text() to
- # resolve as well to make sure the request/response is completed when
- # the helper returns.
- await bidi_session.script.evaluate(
- expression=f"""
- fetch("{url}", {{
- {method_arg}
- {headers_arg}
- }}).then(response => response.text());""",
- target=ContextTarget(top_context["context"]),
- await_promise=True,
- )
-
- return fetch
-
-
-@pytest.fixture
-async def setup_network_test(bidi_session, subscribe_events, top_context, url):
- """Navigate the current top level context to the provided url and subscribe
- to network.beforeRequestSent.
-
- Returns an `events` list in which the captured network events will be added.
- """
- remove_listener = None
-
- async def _setup_network_test(test_url=url(PAGE_EMPTY_HTML)):
- nonlocal remove_listener
-
- await bidi_session.browsing_context.navigate(
- context=top_context["context"],
- url=test_url,
- wait="complete",
- )
- events = []
- await subscribe_events(["network.beforeRequestSent"])
-
- async def on_event(method, data):
- events.append(data)
-
- remove_listener = bidi_session.add_event_listener(
- "network.beforeRequestSent", on_event
- )
-
- return events
-
- yield _setup_network_test
-
- # cleanup
- remove_listener()
-
-
@pytest.mark.asyncio
async def test_subscribe_status(bidi_session, top_context, wait_for_event, url, fetch):
await bidi_session.session.subscribe(events=["network.beforeRequestSent"])
await bidi_session.browsing_context.navigate(
context=top_context["context"],
- url=url("/webdriver/tests/bidi/network/support/empty.html"),
+ url=url(PAGE_EMPTY_HTML),
wait="complete",
)
@@ -105,14 +45,18 @@ async def test_subscribe_status(bidi_session, top_context, wait_for_event, url,
await on_before_request_sent
assert len(events) == 1
+ expected_request = {"method": "GET", "url": text_url}
assert_before_request_sent_event(
- events[0], url=text_url, method="GET", redirect_count=0, is_redirect=False
+ events[0],
+ expected_request=expected_request,
+ redirect_count=0,
+ is_redirect=False,
)
await bidi_session.session.unsubscribe(events=["network.beforeRequestSent"])
# Fetch the text url again, with an additional parameter to bypass the cache
- # check no new event is received.
+ # and check no new event is received.
await fetch(f"{text_url}?nocache")
await asyncio.sleep(0.5)
assert len(events) == 1
@@ -126,7 +70,8 @@ async def test_load_page_twice(
):
html_url = url(PAGE_EMPTY_HTML)
- events = await setup_network_test()
+ network_events = await setup_network_test(events=["network.beforeRequestSent"])
+ events = network_events["network.beforeRequestSent"]
on_before_request_sent = wait_for_event("network.beforeRequestSent")
await bidi_session.browsing_context.navigate(
@@ -137,8 +82,12 @@ async def test_load_page_twice(
await on_before_request_sent
assert len(events) == 1
+ expected_request = {"method": "GET", "url": html_url}
assert_before_request_sent_event(
- events[0], url=html_url, method="GET", redirect_count=0, is_redirect=False
+ events[0],
+ expected_request=expected_request,
+ redirect_count=0,
+ is_redirect=False,
)
@@ -160,15 +109,20 @@ async def test_request_method(
):
text_url = url(PAGE_EMPTY_TEXT)
- events = await setup_network_test()
+ network_events = await setup_network_test(events=["network.beforeRequestSent"])
+ events = network_events["network.beforeRequestSent"]
on_before_request_sent = wait_for_event("network.beforeRequestSent")
await fetch(text_url, method=method)
await on_before_request_sent
assert len(events) == 1
+ expected_request = {"method": method, "url": text_url}
assert_before_request_sent_event(
- events[0], url=text_url, method=method, redirect_count=0, is_redirect=False
+ events[0],
+ expected_request=expected_request,
+ redirect_count=0,
+ is_redirect=False,
)
@@ -178,20 +132,25 @@ async def test_request_headers(
):
text_url = url(PAGE_EMPTY_TEXT)
- events = await setup_network_test()
+
+ network_events = await setup_network_test(events=["network.beforeRequestSent"])
+ events = network_events["network.beforeRequestSent"]
on_before_request_sent = wait_for_event("network.beforeRequestSent")
await fetch(text_url, method="GET", headers={"foo": "bar"})
await on_before_request_sent
assert len(events) == 1
+ expected_request = {
+ "headers": ({"name": "foo", "value": "bar"},),
+ "method": "GET",
+ "url": text_url,
+ }
assert_before_request_sent_event(
events[0],
- url=text_url,
- method="GET",
+ expected_request=expected_request,
redirect_count=0,
is_redirect=False,
- headers=({"name": "foo", "value": "bar"},),
)
@@ -201,7 +160,9 @@ async def test_request_cookies(
):
text_url = url(PAGE_EMPTY_TEXT)
- events = await setup_network_test()
+
+ network_events = await setup_network_test(events=["network.beforeRequestSent"])
+ events = network_events["network.beforeRequestSent"]
await bidi_session.script.evaluate(
expression="document.cookie = 'foo=bar';",
@@ -214,13 +175,16 @@ async def test_request_cookies(
await on_before_request_sent
assert len(events) == 1
+ expected_request = {
+ "cookies": ({"name": "foo", "value": "bar"},),
+ "method": "GET",
+ "url": text_url,
+ }
assert_before_request_sent_event(
events[0],
- url=text_url,
- method="GET",
+ expected_request=expected_request,
redirect_count=0,
is_redirect=False,
- cookies=({"name": "foo", "value": "bar"},),
)
await bidi_session.script.evaluate(
@@ -234,27 +198,33 @@ async def test_request_cookies(
await on_before_request_sent
assert len(events) == 2
+
+ expected_request = {
+ "cookies": (
+ {"name": "foo", "value": "bar"},
+ {"name": "fuu", "value": "baz"},
+ ),
+ "method": "GET",
+ "url": text_url,
+ }
assert_before_request_sent_event(
events[1],
- url=text_url,
- method="GET",
+ expected_request=expected_request,
redirect_count=0,
is_redirect=False,
- cookies=(
- {"name": "foo", "value": "bar"},
- {"name": "fuu", "value": "baz"},
- ),
)
@pytest.mark.asyncio
-async def test_redirect(
- bidi_session, wait_for_event, url, fetch, setup_network_test
-):
+async def test_redirect(bidi_session, wait_for_event, url, fetch, setup_network_test):
text_url = url(PAGE_EMPTY_TEXT)
- redirect_url = url(f"/webdriver/tests/support/redirect.py?location={text_url}")
+ redirect_url = url(
+ f"/webdriver/tests/support/http_handlers/redirect.py?location={text_url}"
+ )
+
- events = await setup_network_test()
+ network_events = await setup_network_test(events=["network.beforeRequestSent"])
+ events = network_events["network.beforeRequestSent"]
await fetch(redirect_url, method="GET")
@@ -264,19 +234,16 @@ async def test_redirect(
await wait.until(lambda _: len(events) >= 2)
assert len(events) == 2
+ expected_request = {"method": "GET", "url": redirect_url}
assert_before_request_sent_event(
events[0],
- url=redirect_url,
- method="GET",
+ expected_request=expected_request,
redirect_count=0,
is_redirect=False,
)
+ expected_request = {"method": "GET", "url": text_url}
assert_before_request_sent_event(
- events[1],
- url=text_url,
- method="GET",
- redirect_count=1,
- is_redirect=True,
+ events[1], expected_request=expected_request, redirect_count=1, is_redirect=True
)
# Check that both requests share the same requestId
@@ -291,7 +258,9 @@ async def test_redirect_http_equiv(
http_equiv_url = url(PAGE_REDIRECT_HTTP_EQUIV)
redirected_url = url(PAGE_REDIRECTED_HTML)
- events = await setup_network_test()
+
+ network_events = await setup_network_test(events=["network.beforeRequestSent"])
+ events = network_events["network.beforeRequestSent"]
await bidi_session.browsing_context.navigate(
context=top_context["context"],
@@ -305,19 +274,19 @@ async def test_redirect_http_equiv(
await wait.until(lambda _: len(events) >= 2)
assert len(events) == 2
+ expected_request = {"method": "GET", "url": http_equiv_url}
assert_before_request_sent_event(
events[0],
- url=http_equiv_url,
- method="GET",
+ expected_request=expected_request,
redirect_count=0,
is_redirect=False,
)
# http-equiv redirect should not be considered as a redirect: redirect_count
# should be 0 and is_redirect should be false.
+ expected_request = {"method": "GET", "url": redirected_url}
assert_before_request_sent_event(
events[1],
- url=redirected_url,
- method="GET",
+ expected_request=expected_request,
redirect_count=0,
is_redirect=False,
)
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/__init__.py
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/network_events_tentative.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/network_events_tentative.py
new file mode 100644
index 00000000000..a1d5b3bf837
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/combined/network_events_tentative.py
@@ -0,0 +1,46 @@
+import asyncio
+
+import pytest
+
+from .. import assert_before_request_sent_event, assert_response_started_event
+
+PAGE_EMPTY_HTML = "/webdriver/tests/bidi/network/support/empty.html"
+PAGE_EMPTY_TEXT = "/webdriver/tests/bidi/network/support/empty.txt"
+
+# The following tests are marked as tentative until
+# https://github.com/w3c/webdriver-bidi/pull/204 is merged.
+
+
+@pytest.mark.asyncio
+async def test_same_request_id(
+ bidi_session, top_context, wait_for_event, url, setup_network_test, fetch
+):
+ network_events = await setup_network_test(
+ events=["network.beforeRequestSent", "network.responseStarted"]
+ )
+ before_request_sent_events = network_events["network.beforeRequestSent"]
+ response_started_events = network_events["network.responseStarted"]
+
+ text_url = url(PAGE_EMPTY_TEXT)
+ on_response_started = wait_for_event("network.responseStarted")
+ await fetch(text_url)
+ await on_response_started
+
+ assert len(before_request_sent_events) == 1
+ assert len(response_started_events) == 1
+ expected_request = {"method": "GET", "url": text_url}
+ assert_before_request_sent_event(
+ before_request_sent_events[0], expected_request=expected_request
+ )
+
+ expected_response = {"url": text_url}
+ assert_response_started_event(
+ response_started_events[0],
+ expected_request=expected_request,
+ expected_response=expected_response,
+ )
+
+ assert (
+ before_request_sent_events[0]["request"]["request"]
+ == response_started_events[0]["request"]["request"]
+ )
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/conftest.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/conftest.py
new file mode 100644
index 00000000000..65f0cd89112
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/conftest.py
@@ -0,0 +1,70 @@
+import json
+
+import pytest
+
+from webdriver.bidi.modules.script import ContextTarget
+
+PAGE_EMPTY_HTML = "/webdriver/tests/bidi/network/support/empty.html"
+
+
+@pytest.fixture
+def fetch(bidi_session, top_context):
+ """Perform a fetch from the page of the top level context."""
+ async def fetch(url, method="GET", headers=None):
+ method_arg = f"method: '{method}',"
+
+ headers_arg = ""
+ if headers != None:
+ headers_arg = f"headers: {json.dumps(headers)},"
+
+ # Wait for fetch() to resolve a response and for response.text() to
+ # resolve as well to make sure the request/response is completed when
+ # the helper returns.
+ await bidi_session.script.evaluate(
+ expression=f"""
+ fetch("{url}", {{
+ {method_arg}
+ {headers_arg}
+ }}).then(response => response.text());""",
+ target=ContextTarget(top_context["context"]),
+ await_promise=True,
+ )
+
+ return fetch
+
+
+@pytest.fixture
+async def setup_network_test(bidi_session, subscribe_events, top_context, url):
+ """Navigate the current top level context to the provided url and subscribe
+ to network.beforeRequestSent.
+
+ Returns an `events` dictionary in which the captured network events will be added.
+ The keys of the dictionary are network event names (eg. "network.beforeRequestSent"),
+ and the value is an array of collected events.
+ """
+ listeners = []
+
+ async def _setup_network_test(events, test_url=url(PAGE_EMPTY_HTML)):
+ nonlocal listeners
+
+ await bidi_session.browsing_context.navigate(
+ context=top_context["context"],
+ url=test_url,
+ wait="complete",
+ )
+ await subscribe_events(events)
+
+ network_events = {}
+ for event in events:
+ network_events[event] = []
+ async def on_event(method, data, event=event):
+ network_events[event].append(data)
+ listeners.append(bidi_session.add_event_listener(event, on_event))
+
+ return network_events
+
+ yield _setup_network_test
+
+ # cleanup
+ for remove_listener in listeners:
+ remove_listener()
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/__init__.py
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/response_started_tentative.py b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/response_started_tentative.py
new file mode 100644
index 00000000000..944d50fe88f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/response_started/response_started_tentative.py
@@ -0,0 +1,285 @@
+import asyncio
+import json
+
+import pytest
+
+from webdriver.bidi.modules.script import ContextTarget
+
+from tests.support.sync import AsyncPoll
+
+from ... import any_int
+from .. import assert_response_started_event
+
+PAGE_EMPTY_HTML = "/webdriver/tests/bidi/network/support/empty.html"
+PAGE_EMPTY_IMAGE = "/webdriver/tests/bidi/network/support/empty.png"
+PAGE_EMPTY_SCRIPT = "/webdriver/tests/bidi/network/support/empty.js"
+PAGE_EMPTY_SVG = "/webdriver/tests/bidi/network/support/empty.svg"
+PAGE_EMPTY_TEXT = "/webdriver/tests/bidi/network/support/empty.txt"
+
+# The following tests are marked as tentative until
+# https://github.com/w3c/webdriver-bidi/pull/204 is merged.
+
+
+@pytest.mark.asyncio
+async def test_subscribe_status(bidi_session, top_context, wait_for_event, url, fetch):
+ await bidi_session.session.subscribe(events=["network.responseStarted"])
+
+ await bidi_session.browsing_context.navigate(
+ context=top_context["context"],
+ url=url(PAGE_EMPTY_HTML),
+ wait="complete",
+ )
+
+ # Track all received network.responseStarted events in the events array
+ events = []
+
+ async def on_event(method, data):
+ events.append(data)
+
+ remove_listener = bidi_session.add_event_listener(
+ "network.responseStarted", on_event
+ )
+
+ text_url = url(PAGE_EMPTY_TEXT)
+ on_response_started = wait_for_event("network.responseStarted")
+ await fetch(text_url)
+ await on_response_started
+
+ assert len(events) == 1
+ expected_request = {"method": "GET", "url": text_url}
+ expected_response = {
+ "url": text_url,
+ "fromCache": False,
+ "mimeType": "text/plain",
+ "status": 200,
+ "statusText": "OK",
+ }
+ assert_response_started_event(
+ events[0],
+ expected_request=expected_request,
+ expected_response=expected_response,
+ redirect_count=0,
+ is_redirect=False,
+ )
+
+ await bidi_session.session.unsubscribe(events=["network.responseStarted"])
+
+ # Fetch the text url again, with an additional parameter to bypass the cache
+ # and check no new event is received.
+ await fetch(f"{text_url}?nocache")
+ await asyncio.sleep(0.5)
+ assert len(events) == 1
+
+ remove_listener()
+
+
+@pytest.mark.asyncio
+async def test_load_page_twice(
+ bidi_session, top_context, wait_for_event, url, fetch, setup_network_test
+):
+ html_url = url(PAGE_EMPTY_HTML)
+
+ network_events = await setup_network_test(events=["network.responseStarted"])
+ events = network_events["network.responseStarted"]
+
+ on_response_started = wait_for_event("network.responseStarted")
+ await bidi_session.browsing_context.navigate(
+ context=top_context["context"],
+ url=html_url,
+ wait="complete",
+ )
+ await on_response_started
+
+ assert len(events) == 1
+ expected_request = {"method": "GET", "url": html_url}
+ expected_response = {
+ "url": html_url,
+ "fromCache": False,
+ "mimeType": "text/html",
+ "status": 200,
+ "statusText": "OK",
+ "protocol": "http/1.1",
+ }
+ assert_response_started_event(
+ events[0],
+ expected_request=expected_request,
+ expected_response=expected_response,
+ redirect_count=0,
+ is_redirect=False,
+ )
+
+
+@pytest.mark.parametrize(
+ "status, status_text",
+ [
+ (101, "Switching Protocols"),
+ (200, "OK"),
+ (201, "Created"),
+ (202, "Accepted"),
+ (203, "Non-Authoritative Information"),
+ (204, "No Content"),
+ (205, "Reset Content"),
+ (206, "Partial Content"),
+ (300, "Multiple Choices"),
+ (301, "Moved Permanently"),
+ (302, "Found"),
+ (303, "See Other"),
+ (304, "Not Modified"),
+ (305, "Use Proxy"),
+ (307, "Temporary Redirect"),
+ (400, "Bad Request"),
+ (401, "Unauthorized"),
+ (402, "Payment Required"),
+ (403, "Forbidden"),
+ (404, "Not Found"),
+ (405, "Method Not Allowed"),
+ (406, "Not Acceptable"),
+ (407, "Proxy Authentication Required"),
+ (408, "Request Timeout"),
+ (409, "Conflict"),
+ (410, "Gone"),
+ (411, "Length Required"),
+ (412, "Precondition Failed"),
+ (415, "Unsupported Media Type"),
+ (417, "Expectation Failed"),
+ (500, "Internal Server Error"),
+ (501, "Not Implemented"),
+ (502, "Bad Gateway"),
+ (503, "Service Unavailable"),
+ (504, "Gateway Timeout"),
+ (505, "HTTP Version Not Supported"),
+ ],
+)
+@pytest.mark.asyncio
+async def test_response_status(
+ bidi_session, wait_for_event, url, fetch, setup_network_test, status, status_text
+):
+ status_url = url(f"/webdriver/tests/support/http_handlers/status.py?status={status}")
+
+ network_events = await setup_network_test(events=["network.responseStarted"])
+ events = network_events["network.responseStarted"]
+
+ on_response_started = wait_for_event("network.responseStarted")
+ await fetch(status_url)
+ await on_response_started
+
+ assert len(events) == 1
+ expected_request = {"method": "GET", "url": status_url}
+ expected_response = {
+ "url": status_url,
+ "fromCache": False,
+ "mimeType": "text/plain",
+ "status": status,
+ "statusText": status_text,
+ "protocol": "http/1.1",
+ }
+ assert_response_started_event(
+ events[0],
+ expected_response=expected_response,
+ redirect_count=0,
+ is_redirect=False,
+ )
+
+
+@pytest.mark.asyncio
+async def test_response_headers(
+ bidi_session, wait_for_event, url, fetch, setup_network_test
+):
+ headers_url = url(
+ "/webdriver/tests/support/http_handlers/headers.py?header=foo:bar&header=baz:biz"
+ )
+
+ network_events = await setup_network_test(events=["network.responseStarted"])
+ events = network_events["network.responseStarted"]
+
+ on_response_started = wait_for_event("network.responseStarted")
+ await fetch(headers_url, method="GET")
+ await on_response_started
+
+ assert len(events) == 1
+
+ expected_request = {"method": "GET", "url": headers_url}
+ expected_response = {
+ "url": headers_url,
+ "fromCache": False,
+ "mimeType": "text/plain",
+ "status": 200,
+ "statusText": "OK",
+ "headers": (
+ {"name": "foo", "value": "bar"},
+ {"name": "baz", "value": "biz"},
+ ),
+ "protocol": "http/1.1",
+ }
+ assert_response_started_event(
+ events[0],
+ expected_request=expected_request,
+ redirect_count=0,
+ is_redirect=False,
+ )
+
+
+@pytest.mark.parametrize(
+ "page_url, mime_type",
+ [
+ (PAGE_EMPTY_HTML, "text/html"),
+ (PAGE_EMPTY_TEXT, "text/plain"),
+ (PAGE_EMPTY_SCRIPT, "text/javascript"),
+ (PAGE_EMPTY_IMAGE, "image/png"),
+ (PAGE_EMPTY_SVG, "image/svg+xml"),
+ ],
+)
+@pytest.mark.asyncio
+async def test_response_mime_type_file(
+ bidi_session, url, wait_for_event, fetch, setup_network_test, page_url, mime_type
+):
+ network_events = await setup_network_test(events=["network.responseStarted"])
+ events = network_events["network.responseStarted"]
+
+ on_response_started = wait_for_event("network.responseStarted")
+ await fetch(url(page_url), method="GET")
+ await on_response_started
+
+ assert len(events) == 1
+
+ expected_request = {"method": "GET", "url": url(page_url)}
+ expected_response = {"url": url(page_url), "mimeType": mime_type}
+ assert_response_started_event(
+ events[0],
+ expected_request=expected_request,
+ expected_response=expected_response,
+ redirect_count=0,
+ is_redirect=False,
+ )
+
+
+@pytest.mark.asyncio
+async def test_redirect(bidi_session, wait_for_event, url, fetch, setup_network_test):
+ text_url = url(PAGE_EMPTY_TEXT)
+ redirect_url = url(f"/webdriver/tests/support/http_handlers/redirect.py?location={text_url}")
+
+ network_events = await setup_network_test(events=["network.responseStarted"])
+ events = network_events["network.responseStarted"]
+
+ await fetch(redirect_url, method="GET")
+
+ # Wait until we receive two events, one for the initial request and one for
+ # the redirection.
+ wait = AsyncPoll(bidi_session, timeout=2)
+ await wait.until(lambda _: len(events) >= 2)
+
+ assert len(events) == 2
+ expected_request = {"method": "GET", "url": redirect_url}
+ assert_response_started_event(
+ events[0],
+ expected_request=expected_request,
+ redirect_count=0,
+ is_redirect=False,
+ )
+ expected_request = {"method": "GET", "url": text_url}
+ assert_response_started_event(
+ events[1], expected_request=expected_request, redirect_count=1, is_redirect=True
+ )
+
+ # Check that both requests share the same requestId
+ assert events[0]["request"]["request"] == events[1]["request"]["request"]
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.js b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.js
new file mode 100644
index 00000000000..3918c74e446
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.js
@@ -0,0 +1 @@
+"use strict";
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.png b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.png
new file mode 100644
index 00000000000..afb763ce9d1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.svg b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.svg
new file mode 100644
index 00000000000..158b3aac164
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/bidi/network/support/empty.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"></svg>
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/__init__.py
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/authentication.py
index 9da4bb7be5f..62067dd1667 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/authentication.py
@@ -4,7 +4,7 @@ from urllib.parse import urlencode
def basic_authentication(url, username=None, password=None, protocol="http"):
query = {}
- return url("/webdriver/tests/support/authentication.py",
+ return url("/webdriver/tests/support/http_handlers/authentication.py",
query=urlencode(query),
protocol=protocol)
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/headers.py b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/headers.py
new file mode 100644
index 00000000000..ddae62dc6af
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/headers.py
@@ -0,0 +1,19 @@
+def main(request, response):
+ """Simple handler that returns a response with custom headers.
+
+ The request should define at least one "header" query parameter, with the
+ format {key}:{value}. For instance ?header=foo:bar will create a response
+ with a header with the key "foo" and the value "bar". Additional headers
+ can be set by passing more "header" query parameters.
+ """
+ response.status = 200
+ if b"header" in request.GET:
+ try:
+ headers = request.GET.get_list(b"header")
+ for header in headers:
+ header_parts = header.split(b":")
+ response.headers.set(header_parts[0], header_parts[1])
+ except ValueError:
+ pass
+
+ response.content = "HTTP Response Headers"
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/redirect.py b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/redirect.py
index f2fd1ebd51d..f2fd1ebd51d 100644
--- a/tests/wpt/web-platform-tests/webdriver/tests/support/redirect.py
+++ b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/redirect.py
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/status.py b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/status.py
new file mode 100644
index 00000000000..4dc3de0a886
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/support/http_handlers/status.py
@@ -0,0 +1,16 @@
+def main(request, response):
+ """Simple handler that returns a response with a custom status.
+
+ The request expects a "status" query parameter, which should be a number.
+ If no status is provided, status 200 will be used.
+ """
+ status = 200
+ if b"status" in request.GET:
+ try:
+ status = int(request.GET.first(b"status"))
+ except ValueError:
+ pass
+
+ response.status = status
+ response.headers.set(b"Content-Type", "text/plain")
+ response.content = "HTTP Response Status"
diff --git a/tests/wpt/web-platform-tests/webtransport/close.https.any.js b/tests/wpt/web-platform-tests/webtransport/close.https.any.js
index 4501e94fbff..d1f66751926 100644
--- a/tests/wpt/web-platform-tests/webtransport/close.https.any.js
+++ b/tests/wpt/web-platform-tests/webtransport/close.https.any.js
@@ -63,9 +63,10 @@ promise_test(async t => {
const close_info = await wt.closed;
assert_equals(close_info.closeCode, 11, 'code');
- // This should be truncated to 1023 bytes!
- const reason_truncated = 'あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあ';
- assert_equals(close_info.reason, reason_truncated, 'reason');
+ // `close_info.reason` should report the original, non-truncated reason as
+ // step 9 of https://w3c.github.io/webtransport/#dom-webtransport-close
+ // uses the original `closeInfo` to perform `Cleanup`.
+ assert_equals(close_info.reason, reason, 'reason');
await wait(10);
const data = await query(id);
@@ -73,6 +74,8 @@ promise_test(async t => {
assert_own_property(data, 'session-close-info');
const info = data['session-close-info']
+ // Server should have received truncated reason as step 6 of
+ // https://w3c.github.io/webtransport/#dom-webtransport-close specifies.
const expected_reason =
new TextDecoder().decode(
new TextEncoder().encode(reason).slice(0, 1024)).replaceAll('\ufffd', '');