]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini
new file mode 100644
index 00000000000..8f6f663ba61
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-subpixel.html.ini
@@ -0,0 +1,3 @@
+[elementFromPoint-subpixel.html]
+ [Hit test top left corner of box]
+ 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 dc1144214ef..5f9a07f92f0 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,6 +4,3 @@
[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/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 a06984505e9..7391c19ce91 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
@@ -4,7 +4,16 @@
expected: NOTRUN
[Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: string completion]
- expected: TIMEOUT
+ expected: NOTRUN
[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
+ expected: NOTRUN
+
+ [Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: undefined completion]
+ expected: TIMEOUT
+
+ [Navigating an iframe via location.href to a javascript: URL must not fire beforeunload: string completion]
+ expected: NOTRUN
+
+ [Navigating an iframe via src="" to a javascript: URL after insertion must not fire beforeunload: string completion]
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini
index 78240a2f463..8ae58f9f1e2 100644
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini
@@ -16,3 +16,6 @@
[D83D DE0D set in href="" targeting a frame and clicked]
expected: FAIL
+
+ [DE0D 0041 set in href="" targeting a frame and clicked]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini
deleted file mode 100644
index 4ecd6d9f753..00000000000
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[navigation-unload-cross-origin.sub.window.html]
- [Cross-origin navigation started from unload handler must be ignored]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini
deleted file mode 100644
index 7dc346632a4..00000000000
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[navigation-unload-same-origin.window.html]
- [Same-origin navigation started from unload handler must be ignored]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html.ini
deleted file mode 100644
index d993e8dcc42..00000000000
--- a/tests/wpt/metadata/html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[pageload-image-in-popup.html]
- [The document for a standalone media file should have one child in the body.]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
new file mode 100644
index 00000000000..ba0aed26689
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
@@ -0,0 +1,3 @@
+[traverse_the_history_1.html]
+ [Multiple history traversals from the same task]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_write_onload_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_write_onload_1.html.ini
deleted file mode 100644
index 02bd301a7ca..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_write_onload_1.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[traverse_the_history_write_onload_1.html]
- [Traverse the history when a history entry is written in the load event]
- 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..8acae84e1e4 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
@@ -9,7 +10,7 @@
expected: FAIL
[Area element should support autofocus]
- expected: FAIL
+ expected: TIMEOUT
[Host element with delegatesFocus should support autofocus]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/media_fragment_seek.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/media_fragment_seek.html.ini
deleted file mode 100644
index 09c049e4b58..00000000000
--- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/media_fragment_seek.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[media_fragment_seek.html]
- [Video should seek to time specified in media fragment syntax]
- 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..e5994e21efc 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: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index eacbe5794ea..fe55ddae3f1 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-3.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: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 6f7461b9472..f9138fb999a 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index 6bec7a732b8..76e34322dca 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html]
type: testharness
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: FAIL
+ expected: NOTRUN
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/dynamic-markup-insertion/document-write/module-delayed.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html.ini
new file mode 100644
index 00000000000..fc0233f5241
--- /dev/null
+++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html.ini
@@ -0,0 +1,3 @@
+[module-delayed.html]
+ [async document.write in a module]
+ 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 8845054116d..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
@@ -3,3 +3,6 @@
expected: TIMEOUT
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
+
+ [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
+ 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/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
index 1d71471b73c..4a48dd15a9d 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
@@ -1,7 +1,6 @@
[promise-rejection-events.html]
- expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
- expected: TIMEOUT
+ expected: FAIL
[unhandledrejection: from createImageBitmap which is UA triggered]
expected: FAIL
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 49b17a921b5..71ca4ed5411 100644
--- a/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini
+++ b/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini
@@ -94,10 +94,10 @@
expected: FAIL
[mime-type 16 : text/html;charset=\x0bgbk]
- expected: TIMEOUT
+ expected: FAIL
[mime-type 17 : text/html;charset=\x0cgbk]
- expected: NOTRUN
+ expected: TIMEOUT
[mime-type 18 : text/html;\x0bcharset=gbk]
expected: NOTRUN
diff --git a/tests/wpt/metadata/resource-timing/cors-preflight.any.js.ini b/tests/wpt/metadata/resource-timing/cors-preflight.any.js.ini
index 69f259ca0f2..86d4d9daf1b 100644
--- a/tests/wpt/metadata/resource-timing/cors-preflight.any.js.ini
+++ b/tests/wpt/metadata/resource-timing/cors-preflight.any.js.ini
@@ -1,7 +1,6 @@
[cors-preflight.any.html]
- expected: ERROR
[PerformanceResourceTiming sizes fetch with preflight test]
- expected: TIMEOUT
+ expected: FAIL
[cors-preflight.any.worker.html]
diff --git a/tests/wpt/metadata/wasm/jsapi/functions/entry.html.ini b/tests/wpt/metadata/wasm/jsapi/functions/entry.html.ini
index 2ab19558726..145d4a8fe37 100644
--- a/tests/wpt/metadata/wasm/jsapi/functions/entry.html.ini
+++ b/tests/wpt/metadata/wasm/jsapi/functions/entry.html.ini
@@ -1,7 +1,6 @@
[entry.html]
- expected: TIMEOUT
[Start function]
- expected: TIMEOUT
+ expected: FAIL
[Sanity check: this all works as expected synchronously]
expected: FAIL
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/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
deleted file mode 100644
index c7946fc91b4..00000000000
--- a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[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/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini b/tests/wpt/metadata/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini
new file mode 100644
index 00000000000..aa6c9e5b826
--- /dev/null
+++ b/tests/wpt/metadata/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini
@@ -0,0 +1,4 @@
+[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html]
+ expected: TIMEOUT
+ [StorageKey: test 3P about:blank window opened from a 3P iframe]
+ expected: TIMEOUT
diff --git a/tests/wpt/mozilla/meta/css/iframe/simple_inline_width_height.html.ini b/tests/wpt/mozilla/meta/css/iframe/simple_inline_width_height.html.ini
deleted file mode 100644
index 271afd4b8cd..00000000000
--- a/tests/wpt/mozilla/meta/css/iframe/simple_inline_width_height.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[simple_inline_width_height.html]
- expected: TIMEOUT
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/mozilla/meta/mozilla/scrollBy.html.ini b/tests/wpt/mozilla/meta/mozilla/scrollBy.html.ini
deleted file mode 100644
index f78f699f620..00000000000
--- a/tests/wpt/mozilla/meta/mozilla/scrollBy.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[scrollBy.html]
- [Ensure that the window.scrollBy function affects scroll position as expected]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta/mozilla/task_queue_throttling.any.js.ini b/tests/wpt/mozilla/meta/mozilla/task_queue_throttling.any.js.ini
deleted file mode 100644
index 6ef3d276974..00000000000
--- a/tests/wpt/mozilla/meta/mozilla/task_queue_throttling.any.js.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[task_queue_throttling.any.html]
- [Throttling the performance timeline task queue.]
- expected: FAIL
-
-
-[task_queue_throttling.any.worker.html]
diff --git a/tests/wpt/web-platform-tests/css/css-break/table/cell-large-bottom-padding-crash.html b/tests/wpt/web-platform-tests/css/css-break/table/cell-large-bottom-padding-crash.html
new file mode 100644
index 00000000000..e87df1fe7a2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-break/table/cell-large-bottom-padding-crash.html
@@ -0,0 +1,6 @@
+
+
+
+
+
boo
+
diff --git a/tests/wpt/web-platform-tests/css/css-color/parsing/color-valid-relative-color.html b/tests/wpt/web-platform-tests/css/css-color/parsing/color-valid-relative-color.html
index 3222ea8c306..a463f7f3c86 100644
--- a/tests/wpt/web-platform-tests/css/css-color/parsing/color-valid-relative-color.html
+++ b/tests/wpt/web-platform-tests/css/css-color/parsing/color-valid-relative-color.html
@@ -613,7 +613,7 @@
test_valid_value(`color`, `lch(from var(--color) calc(l / 2) c h)`);
// Example 13.
- test_valid_value(`color`, `rgb(from var(--color) calc(r * .3 + g * .59 + b * .11) calc(r * .3 + g * .59 + b * .11) calc(r * .3 + g * .59 + b * .11))`, `rgb(from var(--color) calc(r * 0.3 + g * 0.59 + b * 0.11) calc(r * 0.3 + g * 0.59 + b * 0.11) calc(r * 0.3 + g * 0.59 + b * 0.11))`);
+ test_valid_value(`color`, `rgb(from var(--color) calc(r * .3 + g * .59 + b * .11) calc(r * .3 + g * .59 + b * .11) calc(r * .3 + g * .59 + b * .11))`);
test_valid_value(`color`, `lch(from var(--color) l 0 h)`);
// Example 14.
diff --git a/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html
index f533f3dfa59..36a79532a9a 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html
@@ -31,9 +31,10 @@ test(() => {
dialog.close();
dialog.showModal();
- // Even though the element with `content-visibility: auto` is offscreen
- // it should be considered relevant content because it is now in the top
- // layer.
- assert_equals(inner.getBoundingClientRect().height, 200);
+ // Even though the element with `content-visibility: auto` has an ancestor
+ // in the top layer, this element is not in the top layer list (although
+ // it's in the top layer stacking context). This means it should not be
+ // relevant to the user, because it is nevertheless not onscreen.
+ assert_equals(inner.getBoundingClientRect().height, 100);
});
diff --git a/tests/wpt/web-platform-tests/css/css-rhythm/block-step-size-establishes-independent-formatting-context-list-item.html b/tests/wpt/web-platform-tests/css/css-rhythm/block-step-size-establishes-independent-formatting-context-list-item.html
new file mode 100644
index 00000000000..301ae3e9a2f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-rhythm/block-step-size-establishes-independent-formatting-context-list-item.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html b/tests/wpt/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html
index c286837969d..8f59d51ada8 100644
--- a/tests/wpt/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html
+++ b/tests/wpt/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html
@@ -9,7 +9,7 @@
Perspective with different transforms can have small anti-aliasing
pixel differences, so the test should fuzzy patch to the ref.
-->
-
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-variables/variable-cssText.html b/tests/wpt/web-platform-tests/css/css-variables/variable-cssText.html
index 8e725622c90..27183eae34c 100644
--- a/tests/wpt/web-platform-tests/css/css-variables/variable-cssText.html
+++ b/tests/wpt/web-platform-tests/css/css-variables/variable-cssText.html
@@ -23,6 +23,7 @@
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/transform-origin-view-transition-group.html b/tests/wpt/web-platform-tests/css/css-view-transitions/transform-origin-view-transition-group.html
new file mode 100644
index 00000000000..17a8218b769
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-view-transitions/transform-origin-view-transition-group.html
@@ -0,0 +1,58 @@
+
+
+View transitions: validates that transform-origin value is default for view-transition-group
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements.html
new file mode 100644
index 00000000000..d620f767882
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html
index c80534af9d1..88051f57394 100644
--- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html
+++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html
@@ -9,7 +9,6 @@
-
Pop up
@@ -53,59 +52,6 @@
setup({ explicit_done: true });
window.onload = () => {
const outsideElement = document.getElementById('outside');
- function assertPopoverVisibility(popover, isPopover, expectedVisibility, message) {
- const isVisible = isElementVisible(popover);
- assert_equals(isVisible, expectedVisibility,`${message}: Expected this element to be ${expectedVisibility ? "visible" : "not visible"}`);
- // Check other things related to being visible or not:
- if (isVisible) {
- assert_not_equals(window.getComputedStyle(popover).display,'none');
- assert_equals(popover.matches(':open'),isPopover,`${message}: Visible popovers should match :open`);
- assert_false(popover.matches(':closed'),`${message}: Visible popovers and *all* non-popovers should *not* match :closed`);
- } else {
- assert_equals(window.getComputedStyle(popover).display,'none',`${message}: Non-showing popovers should have display:none`);
- assert_false(popover.matches(':open'),`${message}: Non-showing popovers should *not* match :open`);
- assert_true(popover.matches(':closed'),`${message}: Non-showing popovers should match :closed`);
- }
- }
- function assertIsFunctionalPopover(popover) {
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'A popover should start out hidden');
- popover.showPopover();
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After showPopover(), a popover should be visible');
- assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a showing popover should throw InvalidStateError');
- popover.hidePopover();
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After hidePopover(), a popover should be hidden');
- assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a hidden popover should throw InvalidStateError');
- popover.togglePopover();
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover() on hidden popover, it should be visible');
- popover.togglePopover();
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover() on visible popover, it should be hidden');
- popover.togglePopover(/*force=*/true);
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover(true) on hidden popover, it should be visible');
- popover.togglePopover(/*force=*/true);
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover(true) on visible popover, it should be visible');
- popover.togglePopover(/*force=*/false);
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover(false) on visible popover, it should be hidden');
- popover.togglePopover(/*force=*/false);
- assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover(false) on hidden popover, it should be hidden');
- const parent = popover.parentElement;
- popover.remove();
- assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a disconnected popover should throw InvalidStateError');
- assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a disconnected popover should throw InvalidStateError');
- assert_throws_dom("InvalidStateError",() => popover.togglePopover(),'Calling hidePopover on a disconnected popover should throw InvalidStateError');
- parent.appendChild(popover);
- }
- function assertNotAPopover(nonPopover) {
- // If the non-popover element nonetheless has a 'popover' attribute, it should
- // be invisible. Otherwise, it should be visible.
- const expectVisible = !nonPopover.hasAttribute('popover');
- assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'A non-popover should start out visible');
- assert_throws_dom("NotSupportedError",() => nonPopover.showPopover(),'Calling showPopover on a non-popover should throw NotSupported');
- assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling showPopover on a non-popover should leave it visible');
- assert_throws_dom("NotSupportedError",() => nonPopover.hidePopover(),'Calling hidePopover on a non-popover should throw NotSupported');
- assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling hidePopover on a non-popover should leave it visible');
- assert_throws_dom("NotSupportedError",() => nonPopover.togglePopover(),'Calling togglePopover on a non-popover should throw NotSupported');
- assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling togglePopover on a non-popover should leave it visible');
- }
// Start with the provided examples:
Array.from(document.getElementById('popovers').children).forEach(popover => {
@@ -119,25 +65,6 @@ window.onload = () => {
}, `The element ${nonPopover.outerHTML} should *not* behave as a popover.`);
});
- // Then loop through all HTML5 elements that render a box by default:
- let elementsThatDontRender = ['audio','base','br','datalist','dialog','embed','head','link','meta','noscript','param','rp','script','slot','style','template','title','wbr'];
- const elements = HTML5_ELEMENTS.filter(el => !elementsThatDontRender.includes(el));
- elements.forEach(tag => {
- test((t) => {
- const element = document.createElement(tag);
- element.setAttribute('popover','auto');
- document.body.appendChild(element);
- t.add_cleanup(() => element.remove());
- assertIsFunctionalPopover(element);
- }, `A <${tag} popover> element should behave as a popover.`);
- test((t) => {
- const element = document.createElement(tag);
- document.body.appendChild(element);
- t.add_cleanup(() => element.remove());
- assertNotAPopover(element);
- }, `A <${tag}> element should *not* behave as a popover.`);
- });
-
function createPopover(t) {
const popover = document.createElement('div');
document.body.appendChild(popover);
diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/resources/popover-utils.js b/tests/wpt/web-platform-tests/html/semantics/popovers/resources/popover-utils.js
index 404b893bf03..9c6ba77549b 100644
--- a/tests/wpt/web-platform-tests/html/semantics/popovers/resources/popover-utils.js
+++ b/tests/wpt/web-platform-tests/html/semantics/popovers/resources/popover-utils.js
@@ -114,3 +114,59 @@ function popoverHintSupported() {
testElement.popover = 'hint';
return testElement.popover === 'hint';
}
+
+function assertPopoverVisibility(popover, isPopover, expectedVisibility, message) {
+ const isVisible = isElementVisible(popover);
+ assert_equals(isVisible, expectedVisibility,`${message}: Expected this element to be ${expectedVisibility ? "visible" : "not visible"}`);
+ // Check other things related to being visible or not:
+ if (isVisible) {
+ assert_not_equals(window.getComputedStyle(popover).display,'none');
+ assert_equals(popover.matches(':open'),isPopover,`${message}: Visible popovers should match :open`);
+ assert_false(popover.matches(':closed'),`${message}: Visible popovers and *all* non-popovers should *not* match :closed`);
+ } else {
+ assert_equals(window.getComputedStyle(popover).display,'none',`${message}: Non-showing popovers should have display:none`);
+ assert_false(popover.matches(':open'),`${message}: Non-showing popovers should *not* match :open`);
+ assert_true(popover.matches(':closed'),`${message}: Non-showing popovers should match :closed`);
+ }
+}
+
+function assertIsFunctionalPopover(popover) {
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'A popover should start out hidden');
+ popover.showPopover();
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After showPopover(), a popover should be visible');
+ assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a showing popover should throw InvalidStateError');
+ popover.hidePopover();
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After hidePopover(), a popover should be hidden');
+ assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a hidden popover should throw InvalidStateError');
+ popover.togglePopover();
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover() on hidden popover, it should be visible');
+ popover.togglePopover();
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover() on visible popover, it should be hidden');
+ popover.togglePopover(/*force=*/true);
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover(true) on hidden popover, it should be visible');
+ popover.togglePopover(/*force=*/true);
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover(true) on visible popover, it should be visible');
+ popover.togglePopover(/*force=*/false);
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover(false) on visible popover, it should be hidden');
+ popover.togglePopover(/*force=*/false);
+ assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover(false) on hidden popover, it should be hidden');
+ const parent = popover.parentElement;
+ popover.remove();
+ assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a disconnected popover should throw InvalidStateError');
+ assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a disconnected popover should throw InvalidStateError');
+ assert_throws_dom("InvalidStateError",() => popover.togglePopover(),'Calling hidePopover on a disconnected popover should throw InvalidStateError');
+ parent.appendChild(popover);
+}
+
+function assertNotAPopover(nonPopover) {
+ // If the non-popover element nonetheless has a 'popover' attribute, it should
+ // be invisible. Otherwise, it should be visible.
+ const expectVisible = !nonPopover.hasAttribute('popover');
+ assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'A non-popover should start out visible');
+ assert_throws_dom("NotSupportedError",() => nonPopover.showPopover(),'Calling showPopover on a non-popover should throw NotSupported');
+ assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling showPopover on a non-popover should leave it visible');
+ assert_throws_dom("NotSupportedError",() => nonPopover.hidePopover(),'Calling hidePopover on a non-popover should throw NotSupported');
+ assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling hidePopover on a non-popover should leave it visible');
+ assert_throws_dom("NotSupportedError",() => nonPopover.togglePopover(),'Calling togglePopover on a non-popover should throw NotSupported');
+ assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling togglePopover on a non-popover should leave it visible');
+}
diff --git a/tests/wpt/web-platform-tests/mediasession/mediametadata.html b/tests/wpt/web-platform-tests/mediasession/mediametadata.html
index ff00e54ee7c..f87e71d9690 100644
--- a/tests/wpt/web-platform-tests/mediasession/mediametadata.html
+++ b/tests/wpt/web-platform-tests/mediasession/mediametadata.html
@@ -212,7 +212,7 @@ promise_test(async t => {
assert_equals(artwork.length, URLs.length);
for (let i = 0 ; i < artwork.length ; ++i) {
- assert_equals(artwork[i].src, new URL(URLs[i], document.URL).href);
+ assert_equals(artwork[i].src, new URL(URLs[i], subframe.contentDocument.URL).href);
}
}, 'Test that the base URL of MediaImage is the base URL of entry setting object');
diff --git a/tests/wpt/web-platform-tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html b/tests/wpt/web-platform-tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html
index c4990ff5f9d..549cbf55d88 100644
--- a/tests/wpt/web-platform-tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html
+++ b/tests/wpt/web-platform-tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html
@@ -17,119 +17,58 @@ div.box {
-
-
diff --git a/tests/wpt/web-platform-tests/serial/getPorts/reject_opaque_origin.https.html.headers b/tests/wpt/web-platform-tests/serial/getPorts/reject_opaque_origin.https.html.headers
deleted file mode 100644
index 1efcf8c226f..00000000000
--- a/tests/wpt/web-platform-tests/serial/getPorts/reject_opaque_origin.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Content-Security-Policy: sandbox allow-scripts
diff --git a/tests/wpt/web-platform-tests/serial/getPorts/sandboxed_iframe.https.window.js b/tests/wpt/web-platform-tests/serial/getPorts/sandboxed_iframe.https.window.js
deleted file mode 100644
index 8fae11ccfe5..00000000000
--- a/tests/wpt/web-platform-tests/serial/getPorts/sandboxed_iframe.https.window.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-let iframe = document.createElement('iframe');
-
-promise_test(async () => {
- await new Promise(resolve => {
- iframe.src = '../resources/open-in-iframe.html';
- iframe.sandbox.add('allow-scripts');
- iframe.allow = 'serial';
- document.body.appendChild(iframe);
- iframe.addEventListener('load', resolve);
- });
-
- await new Promise(resolve => {
- iframe.contentWindow.postMessage({type: 'GetPorts'}, '*');
-
- window.addEventListener('message', (messageEvent) => {
- assert_equals('Success', messageEvent.data);
- resolve();
- });
- });
-}, 'GetPorts from a sandboxed iframe is valid.');
diff --git a/tests/wpt/web-platform-tests/serial/requestPort/reject_opaque_origin.https.html b/tests/wpt/web-platform-tests/serial/requestPort/reject_opaque_origin.https.html
deleted file mode 100644
index ade8ae7392e..00000000000
--- a/tests/wpt/web-platform-tests/serial/requestPort/reject_opaque_origin.https.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
diff --git a/tests/wpt/web-platform-tests/serial/requestPort/reject_opaque_origin.https.html.headers b/tests/wpt/web-platform-tests/serial/requestPort/reject_opaque_origin.https.html.headers
deleted file mode 100644
index 1efcf8c226f..00000000000
--- a/tests/wpt/web-platform-tests/serial/requestPort/reject_opaque_origin.https.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Content-Security-Policy: sandbox allow-scripts
diff --git a/tests/wpt/web-platform-tests/serial/requestPort/sandboxed_iframe.https.window.js b/tests/wpt/web-platform-tests/serial/requestPort/sandboxed_iframe.https.window.js
deleted file mode 100644
index 6e169510a0b..00000000000
--- a/tests/wpt/web-platform-tests/serial/requestPort/sandboxed_iframe.https.window.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-let iframe = document.createElement('iframe');
-
-promise_test(async () => {
- await new Promise(resolve => {
- iframe.src = '../resources/open-in-iframe.html';
- iframe.sandbox.add('allow-scripts');
- iframe.allow = 'serial';
- document.body.appendChild(iframe);
- iframe.addEventListener('load', resolve);
- });
-
- await new Promise(resolve => {
- iframe.contentWindow.postMessage({type: 'RequestPort'}, '*');
-
- window.addEventListener('message', (messageEvent) => {
- // The failure message of no device chosen is expected. The point here is
- // to validate not failing because of a sandboxed iframe.
- assert_equals(
- 'FAIL: NotFoundError: Failed to execute \'requestPort\' on \'Serial\': No port selected by the user.',
- messageEvent.data);
- resolve();
- });
- });
-}, 'RequestPort from a sandboxed iframe is valid.');
diff --git a/tests/wpt/web-platform-tests/serial/resources/open-in-iframe.html b/tests/wpt/web-platform-tests/serial/resources/open-in-iframe.html
deleted file mode 100644
index 9bf8beb66aa..00000000000
--- a/tests/wpt/web-platform-tests/serial/resources/open-in-iframe.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-