]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini
index f10b4ec208d..9101c169754 100644
--- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini
+++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini
@@ -175,3 +175,6 @@
[multipart/form-data: character not in encoding in filename (formdata event)]
expected: FAIL
+
+ [multipart/form-data: Basic test (formdata event)]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini b/tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini
new file mode 100644
index 00000000000..23baefeba9a
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/forms/textfieldselection/select-event.html.ini
@@ -0,0 +1,9 @@
+[select-event.html]
+ [input type text: setSelectionRange() disconnected node]
+ expected: FAIL
+
+ [input type search: selectionStart twice in disconnected node (must fire select only once)]
+ expected: FAIL
+
+ [input type tel: selectionDirection disconnected node]
+ 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 cc18f512574..071b4378add 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
@@ -11,6 +11,3 @@
[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: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-anchor-display-none.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-anchor-display-none.tentative.html.ini
new file mode 100644
index 00000000000..1d86d9c7dbe
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/popovers/popover-anchor-display-none.tentative.html.ini
@@ -0,0 +1,3 @@
+[popover-anchor-display-none.tentative.html]
+ [Tests that a popover can be anchored to an unrendered element.]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-anchor-multicol-display.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-anchor-multicol-display.tentative.html.ini
new file mode 100644
index 00000000000..b3552cc5e58
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/popovers/popover-anchor-multicol-display.tentative.html.ini
@@ -0,0 +1,3 @@
+[popover-anchor-multicol-display.tentative.html]
+ [.target 1]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-animation-corner-cases.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-animation-corner-cases.tentative.html.ini
index a2404e2ab6a..e3e439851ae 100644
--- a/tests/wpt/metadata/html/semantics/popovers/popover-animation-corner-cases.tentative.html.ini
+++ b/tests/wpt/metadata/html/semantics/popovers/popover-animation-corner-cases.tentative.html.ini
@@ -22,3 +22,12 @@
[Capturing event listeners can't affect popover animations.]
expected: FAIL
+
+ [It should be possible to use the "beforetoggle" event handler to animate the hide]
+ expected: FAIL
+
+ [It should be possible to use the "beforetoggle" event handler to animate the hide, even when the hide is due to dialog.showModal]
+ expected: FAIL
+
+ [toggle event cannot be cancelled]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-beforetoggle-opening-event.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-beforetoggle-opening-event.tentative.html.ini
new file mode 100644
index 00000000000..8f512014973
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/popovers/popover-beforetoggle-opening-event.tentative.html.ini
@@ -0,0 +1,3 @@
+[popover-beforetoggle-opening-event.tentative.html]
+ [Ensure the `beforetoggle` event can be used to populate content before the popover renders]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-events.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-events.tentative.html.ini
index 782fe60cdde..eda100612a3 100644
--- a/tests/wpt/metadata/html/semantics/popovers/popover-events.tentative.html.ini
+++ b/tests/wpt/metadata/html/semantics/popovers/popover-events.tentative.html.ini
@@ -7,3 +7,12 @@
[Popovershow event is cancelable]
expected: FAIL
+
+ [Toggle event (listener) get properly dispatched for popovers]
+ expected: FAIL
+
+ [Toggle event (attribute) get properly dispatched for popovers]
+ expected: FAIL
+
+ [Toggle event is cancelable for the "opening" transition]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/popover-show-event.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/popover-show-event.tentative.html.ini
deleted file mode 100644
index 5fc8b7535d3..00000000000
--- a/tests/wpt/metadata/html/semantics/popovers/popover-show-event.tentative.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[popover-show-event.tentative.html]
- [Ensure the `show` event can be used to populate content before the popover renders]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/popovers/toggleevent-interface.tentative.html.ini b/tests/wpt/metadata/html/semantics/popovers/toggleevent-interface.tentative.html.ini
new file mode 100644
index 00000000000..919136e4b3c
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/popovers/toggleevent-interface.tentative.html.ini
@@ -0,0 +1,111 @@
+[toggleevent-interface.tentative.html]
+ [the event is an instance of BeforeToggleEvent]
+ expected: FAIL
+
+ [the event inherts from Event]
+ expected: FAIL
+
+ [Missing type argument]
+ expected: FAIL
+
+ [type argument is string]
+ expected: FAIL
+
+ [type argument is null]
+ expected: FAIL
+
+ [event type set to undefined]
+ expected: FAIL
+
+ [currentState has default value of empty string]
+ expected: FAIL
+
+ [currentState is readonly]
+ expected: FAIL
+
+ [newState has default value of empty string]
+ expected: FAIL
+
+ [newState is readonly]
+ expected: FAIL
+
+ [BeforeToggleEventInit argument is null]
+ expected: FAIL
+
+ [BeforeToggleEventInit argument is undefined]
+ expected: FAIL
+
+ [BeforeToggleEventInit argument is empty dictionary]
+ expected: FAIL
+
+ [currentState set to 'sample']
+ expected: FAIL
+
+ [currentState set to undefined]
+ expected: FAIL
+
+ [currentState set to null]
+ expected: FAIL
+
+ [currentState set to false]
+ expected: FAIL
+
+ [currentState set to true]
+ expected: FAIL
+
+ [currentState set to a number]
+ expected: FAIL
+
+ [currentState set to [\]]
+ expected: FAIL
+
+ [currentState set to [1, 2, 3\]]
+ expected: FAIL
+
+ [currentState set to an object]
+ expected: FAIL
+
+ [currentState set to an object with a valueOf function]
+ expected: FAIL
+
+ [BeforeToggleEventInit properties set value]
+ expected: FAIL
+
+ [BeforeToggleEventInit properties set value 2]
+ expected: FAIL
+
+ [BeforeToggleEventInit properties set value 3]
+ expected: FAIL
+
+ [BeforeToggleEventInit properties set value 4]
+ expected: FAIL
+
+ [newState set to 'sample']
+ expected: FAIL
+
+ [newState set to undefined]
+ expected: FAIL
+
+ [newState set to null]
+ expected: FAIL
+
+ [newState set to false]
+ expected: FAIL
+
+ [newState set to true]
+ expected: FAIL
+
+ [newState set to a number]
+ expected: FAIL
+
+ [newState set to [\]]
+ expected: FAIL
+
+ [newState set to [1, 2, 3\]]
+ expected: FAIL
+
+ [newState set to an object]
+ expected: FAIL
+
+ [newState set to an object with a valueOf function]
+ expected: FAIL
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
new file mode 100644
index 00000000000..2212b9d731f
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini
@@ -0,0 +1,4 @@
+[async-script.html?reload]
+ expected: ERROR
+
+[async-script.html]
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
deleted file mode 100644
index b8bdf33cb65..00000000000
--- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[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-static-import-delayed.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini
deleted file mode 100644
index 53acb938c1b..00000000000
--- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[module-static-import-delayed.html]
- [document.write in an imported module]
- expected: FAIL
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/mediasession/setactionhandler.html.ini b/tests/wpt/metadata/mediasession/setactionhandler.html.ini
index 098af5ab9a8..85d4c538b49 100644
--- a/tests/wpt/metadata/mediasession/setactionhandler.html.ini
+++ b/tests/wpt/metadata/mediasession/setactionhandler.html.ini
@@ -1,3 +1,18 @@
[setactionhandler.html]
[Test that setActionHandler() can be executed for supported actions]
expected: FAIL
+
+ [Test that setActionHandler("togglemicrophone") succeeds]
+ expected: FAIL
+
+ [Test that setActionHandler("togglecamera") succeeds]
+ expected: FAIL
+
+ [Test that setActionHandler("hangup") succeeds]
+ expected: FAIL
+
+ [Test that setActionHandler("previousslide") succeeds]
+ expected: FAIL
+
+ [Test that setActionHandler("nextslide") succeeds]
+ expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/cross-origin-non-tao-image.sub.html.ini b/tests/wpt/metadata/performance-timeline/cross-origin-non-tao-image.sub.html.ini
deleted file mode 100644
index bf332d6e372..00000000000
--- a/tests/wpt/metadata/performance-timeline/cross-origin-non-tao-image.sub.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[cross-origin-non-tao-image.sub.html]
- expected: TIMEOUT
- [lcp and fcp]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.tentative.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.tentative.window.js.ini
new file mode 100644
index 00000000000..092f09c6acc
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.tentative.window.js.ini
@@ -0,0 +1,3 @@
+[performance-navigation-timing-bfcache-reasons-stay.tentative.window.html]
+ [RemoteContextHelper navigation using BFCache]
+ expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.tentative.window.js.ini
similarity index 52%
rename from tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.window.js.ini
rename to tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.tentative.window.js.ini
index c84d73f0c79..f547a22caf3 100644
--- a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.window.js.ini
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.tentative.window.js.ini
@@ -1,3 +1,3 @@
-[performance-navigation-timing-not-bfcached.window.html]
+[performance-navigation-timing-bfcache.tentative.window.html]
[RemoteContextHelper navigation using BFCache]
expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js.ini
new file mode 100644
index 00000000000..5bf9480fc38
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js.ini
@@ -0,0 +1,3 @@
+[performance-navigation-timing-cross-origin-bfcache.tentative.window.html]
+ [RemoteContextHelper navigation using BFCache]
+ expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.tentative.window.js.ini
similarity index 50%
rename from tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.window.js.ini
rename to tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.tentative.window.js.ini
index fbdedf71393..4021b520a8e 100644
--- a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.window.js.ini
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.tentative.window.js.ini
@@ -1,3 +1,3 @@
-[performance-navigation-timing-cross-origin-bfcache.window.html]
+[performance-navigation-timing-not-bfcached.tentative.window.html]
[RemoteContextHelper navigation using BFCache]
expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-redirect-on-history.tentative.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-redirect-on-history.tentative.window.js.ini
new file mode 100644
index 00000000000..08bdc7a2a4f
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-redirect-on-history.tentative.window.js.ini
@@ -0,0 +1,3 @@
+[performance-navigation-timing-redirect-on-history.tentative.window.html]
+ [RemoteContextHelper navigation using BFCache]
+ expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini
new file mode 100644
index 00000000000..223b2dcdeed
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js.ini
@@ -0,0 +1,3 @@
+[performance-navigation-timing-same-origin-bfcache.tentative.window.html]
+ [RemoteContextHelper navigation using BFCache]
+ expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.window.js.ini
deleted file mode 100644
index 422721e6393..00000000000
--- a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.window.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[performance-navigation-timing-same-origin-bfcache.window.html]
- [RemoteContextHelper navigation using BFCache]
- expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-replace.tentative.window.js.ini b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-replace.tentative.window.js.ini
new file mode 100644
index 00000000000..a6c4590ae7a
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-replace.tentative.window.js.ini
@@ -0,0 +1,3 @@
+[performance-navigation-timing-same-origin-replace.tentative.window.html]
+ [RemoteContextHelper navigation using BFCache]
+ expected: FAIL
diff --git a/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child-one-local-grandchild.html.ini b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child-one-local-grandchild.html.ini
new file mode 100644
index 00000000000..4e0e6da5670
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child-one-local-grandchild.html.ini
@@ -0,0 +1,4 @@
+[include-frames-one-local-child-one-local-grandchild.html]
+ expected: ERROR
+ [GetEntries of a ParentFrame with one LocalFrame child and one LocalFrame grandchild]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child-one-remote-child.sub.html.ini b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child-one-remote-child.sub.html.ini
new file mode 100644
index 00000000000..bd067a13aee
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child-one-remote-child.sub.html.ini
@@ -0,0 +1,4 @@
+[include-frames-one-local-child-one-remote-child.sub.html]
+ expected: ERROR
+ [GetEntries of a ParentFrame with one RemoteFrame child and one LocalFrame child]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child.html.ini b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child.html.ini
new file mode 100644
index 00000000000..06390bd4d74
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-local-child.html.ini
@@ -0,0 +1,4 @@
+[include-frames-one-local-child.html]
+ expected: ERROR
+ [GetEntries of a Parent Frame with one LocalFrame child]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-remote-child-one-local-grandchild.sub.html.ini b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-remote-child-one-local-grandchild.sub.html.ini
new file mode 100644
index 00000000000..d972b27a9f6
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/tentative/include-frames-one-remote-child-one-local-grandchild.sub.html.ini
@@ -0,0 +1,4 @@
+[include-frames-one-remote-child-one-local-grandchild.sub.html]
+ expected: ERROR
+ [GetEntries of a ParentFrame with one RemoteFrame child and one LocalFrame grandchild]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/performance-timeline/tentative/include-frames-two-local-children.html.ini b/tests/wpt/metadata/performance-timeline/tentative/include-frames-two-local-children.html.ini
new file mode 100644
index 00000000000..07fe4a75842
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/tentative/include-frames-two-local-children.html.ini
@@ -0,0 +1,4 @@
+[include-frames-two-local-children.html]
+ expected: ERROR
+ [GetEntries of a Parent Frame with two LocalFrame children]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/referrer-policy/generic/first-meta-changed-after-second-added.http.html.ini b/tests/wpt/metadata/referrer-policy/generic/first-meta-changed-after-second-added.http.html.ini
new file mode 100644
index 00000000000..e348a3023a8
--- /dev/null
+++ b/tests/wpt/metadata/referrer-policy/generic/first-meta-changed-after-second-added.http.html.ini
@@ -0,0 +1,3 @@
+[first-meta-changed-after-second-added.http.html]
+ [document referrer policy is the value of the most recently modified should not change referrer policy]
+ expected: FAIL
diff --git a/tests/wpt/metadata/referrer-policy/generic/meta-referrer-removed-2.http.html.ini b/tests/wpt/metadata/referrer-policy/generic/meta-referrer-removed-2.http.html.ini
new file mode 100644
index 00000000000..21b5772d0d5
--- /dev/null
+++ b/tests/wpt/metadata/referrer-policy/generic/meta-referrer-removed-2.http.html.ini
@@ -0,0 +1,3 @@
+[meta-referrer-removed-2.http.html]
+ [referrer policy does not change when second is removed]
+ expected: FAIL
diff --git a/tests/wpt/metadata/referrer-policy/generic/second-meta-referrer-added-before-first.http.html.ini b/tests/wpt/metadata/referrer-policy/generic/second-meta-referrer-added-before-first.http.html.ini
new file mode 100644
index 00000000000..2799859d4f6
--- /dev/null
+++ b/tests/wpt/metadata/referrer-policy/generic/second-meta-referrer-added-before-first.http.html.ini
@@ -0,0 +1,3 @@
+[second-meta-referrer-added-before-first.http.html]
+ [document referrer policy is the value of the most recently added ]
+ 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
new file mode 100644
index 00000000000..16ee9569405
--- /dev/null
+++ b/tests/wpt/metadata/resource-timing/content-type-parsing.html.ini
@@ -0,0 +1,181 @@
+[content-type-parsing.html]
+ expected: ERROR
+ [content-type 0 : ,text/plain]
+ expected: FAIL
+
+ [content-type 1 : text/plain,]
+ expected: FAIL
+
+ [content-type 2 : text/html,text/plain]
+ expected: FAIL
+
+ [content-type 3 : text/plain;charset=gbk,text/html]
+ expected: FAIL
+
+ [content-type 4 : text/plain;charset=gbk,text/html;charset=windows-1254]
+ expected: FAIL
+
+ [content-type 5 : text/plain;charset=gbk,text/plain]
+ expected: TIMEOUT
+
+ [content-type 6 : text/plain;charset=gbk,text/plain;charset=windows-1252]
+ expected: NOTRUN
+
+ [content-type 7 : text/html;charset=gbk,text/html;x=",text/plain]
+ expected: NOTRUN
+
+ [content-type 8 : text/plain;charset=gbk;x=foo,text/plain]
+ expected: NOTRUN
+
+ [content-type 9 : text/html;charset=gbk,text/plain,text/html]
+ expected: NOTRUN
+
+ [content-type 10 : text/plain,*/*]
+ expected: NOTRUN
+
+ [content-type 11 : text/html,*/*]
+ expected: NOTRUN
+
+ [content-type 12 : */*,text/html]
+ expected: NOTRUN
+
+ [content-type 13 : text/plain,*/*;charset=gbk]
+ expected: NOTRUN
+
+ [content-type 14 : text/html,*/*;charset=gbk]
+ expected: NOTRUN
+
+ [content-type 15 : text/html;x=",text/plain]
+ expected: NOTRUN
+
+ [content-type 16 : text/html;",text/plain]
+ expected: NOTRUN
+
+ [content-type 17 : text/html;",\\",text/plain]
+ expected: NOTRUN
+
+ [content-type 18 : text/html;",\\",text/plain,";charset=GBK]
+ expected: NOTRUN
+
+ [content-type 19 : text/html;",",text/plain]
+ expected: NOTRUN
+
+ [mime-type 1 : text/html;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 2 : TEXT/HTML;CHARSET=GBK]
+ expected: NOTRUN
+
+ [mime-type 4 : text/html;charset=gbk(]
+ expected: NOTRUN
+
+ [mime-type 5 : text/html;x=(;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 7 : text/html;charset=gbk;charset=windows-1255]
+ expected: NOTRUN
+
+ [mime-type 8 : text/html;charset=();charset=GBK]
+ expected: NOTRUN
+
+ [mime-type 10 : text/html;charset =gbk]
+ expected: NOTRUN
+
+ [mime-type 11 : text/html ;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 12 : text/html; charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 13 : text/html;charset= gbk]
+ expected: NOTRUN
+
+ [mime-type 14 : text/html;charset= "gbk"]
+ expected: NOTRUN
+
+ [mime-type 16 : text/html;charset=\x0bgbk]
+ expected: NOTRUN
+
+ [mime-type 17 : text/html;charset=\x0cgbk]
+ expected: NOTRUN
+
+ [mime-type 18 : text/html;\x0bcharset=gbk]
+ expected: NOTRUN
+
+ [mime-type 19 : text/html;\x0ccharset=gbk]
+ expected: NOTRUN
+
+ [mime-type 21 : text/html;charset='gbk']
+ expected: NOTRUN
+
+ [mime-type 22 : text/html;charset='gbk]
+ expected: NOTRUN
+
+ [mime-type 23 : text/html;charset=gbk']
+ expected: NOTRUN
+
+ [mime-type 24 : text/html;charset=';charset=GBK]
+ expected: NOTRUN
+
+ [mime-type 26 : text/html;test;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 27 : text/html;test=;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 28 : text/html;';charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 29 : text/html;";charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 30 : text/html ; ; charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 31 : text/html;;;;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 32 : text/html;charset= ";charset=GBK]
+ expected: NOTRUN
+
+ [mime-type 33 : text/html;charset=";charset=foo";charset=GBK]
+ expected: NOTRUN
+
+ [mime-type 35 : text/html;charset="gbk"]
+ expected: NOTRUN
+
+ [mime-type 36 : text/html;charset="gbk]
+ expected: NOTRUN
+
+ [mime-type 37 : text/html;charset=gbk"]
+ expected: NOTRUN
+
+ [mime-type 38 : text/html;charset=" gbk"]
+ expected: NOTRUN
+
+ [mime-type 39 : text/html;charset="gbk "]
+ expected: NOTRUN
+
+ [mime-type 40 : text/html;charset="\\ gbk"]
+ expected: NOTRUN
+
+ [mime-type 41 : text/html;charset="\\g\\b\\k"]
+ expected: NOTRUN
+
+ [mime-type 42 : text/html;charset="gbk"x]
+ expected: NOTRUN
+
+ [mime-type 43 : text/html;charset="";charset=GBK]
+ expected: NOTRUN
+
+ [mime-type 44 : text/html;charset=";charset=GBK]
+ expected: NOTRUN
+
+ [mime-type 46 : text/html;charset={gbk}]
+ expected: NOTRUN
+
+ [mime-type 48 : text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk]
+ expected: NOTRUN
+
+ [mime-type 69 : text/html;test=ÿ;charset=gbk]
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/url/percent-encoding.window.js.ini b/tests/wpt/metadata/url/percent-encoding.window.js.ini
index 7c7f82336bf..47e8f02f61e 100644
--- a/tests/wpt/metadata/url/percent-encoding.window.js.ini
+++ b/tests/wpt/metadata/url/percent-encoding.window.js.ini
@@ -20,3 +20,5 @@
[Input ‾\\ with encoding iso-2022-jp]
expected: FAIL
+ [Input U+d800 with encoding windows-1252]
+ expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-setsinkid.https.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-setsinkid.https.html.ini
index 531e8148fdc..ce022303d4f 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-setsinkid.https.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-setsinkid.https.html.ini
@@ -14,3 +14,9 @@
[setSinkId() should fail with NotFoundError on an invalid device identifier.]
expected: NOTRUN
+
+ [setSinkId() should fail with InvalidStateError when calling from astopped AudioContext]
+ expected: NOTRUN
+
+ [setSinkId() should fail with InvalidStateError when calling from adetached document]
+ expected: NOTRUN
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/with-ports/018.html.ini
similarity index 100%
rename from tests/wpt/metadata/webmessaging/without-ports/018.html.ini
rename to tests/wpt/metadata/webmessaging/with-ports/018.html.ini
diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
deleted file mode 100644
index c7946fc91b4..00000000000
--- a/tests/wpt/metadata/webmessaging/without-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/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
new file mode 100644
index 00000000000..80f9a4f15b8
--- /dev/null
+++ b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
@@ -0,0 +1,2 @@
+[Worker-constructor.html]
+ expected: ERROR
diff --git a/tests/wpt/mozilla/meta/mozilla/scrollBy.html.ini b/tests/wpt/mozilla/meta/mozilla/scrollBy.html.ini
new file mode 100644
index 00000000000..f78f699f620
--- /dev/null
+++ b/tests/wpt/mozilla/meta/mozilla/scrollBy.html.ini
@@ -0,0 +1,3 @@
+[scrollBy.html]
+ [Ensure that the window.scrollBy function affects scroll position as expected]
+ expected: FAIL
diff --git a/tests/wpt/web-platform-tests/.well-known/web-identity b/tests/wpt/web-platform-tests/.well-known/web-identity
index 425ccef3f74..cba0cb331e7 100644
--- a/tests/wpt/web-platform-tests/.well-known/web-identity
+++ b/tests/wpt/web-platform-tests/.well-known/web-identity
@@ -23,6 +23,8 @@ def main(request, response):
return (532, [], "Wrong Sec-Fetch-Dest header")
if request.headers.get(b"Referer"):
return (533, [], "Should not have Referer")
+ if request.headers.get(b"Origin"):
+ return (534, [], "Should not have Origin")
return """
{{
diff --git a/tests/wpt/web-platform-tests/common/reftest-wait.js b/tests/wpt/web-platform-tests/common/reftest-wait.js
index 0a30a197f07..64fe9bfd7f5 100644
--- a/tests/wpt/web-platform-tests/common/reftest-wait.js
+++ b/tests/wpt/web-platform-tests/common/reftest-wait.js
@@ -18,3 +18,22 @@ function takeScreenshotDelayed(timeout) {
takeScreenshot();
}, timeout);
}
+
+/**
+ * Ensure that a precondition is met before waiting for a screenshot.
+ * @param {bool} condition - Fail the test if this evaluates to false
+ * @param {string} msg - Error message to write to the screenshot
+ */
+function failIfNot(condition, msg) {
+ const fail = () => {
+ (document.body || document.documentElement).textContent = `Precondition Failed: ${msg}`;
+ takeScreenshot();
+ };
+ if (!condition) {
+ if (document.readyState == "interactive") {
+ fail();
+ } else {
+ document.addEventListener("DOMContentLoaded", fail, false);
+ }
+ }
+}
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic.tentative.https.window.js
index 6bb43bcc7ee..2f463e502b3 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic.tentative.https.window.js
@@ -1,9 +1,9 @@
'use strict';
promise_test(async t => {
- await new Promise((resolve) => {
+ await new Promise((resolve, reject) => {
const observer = new PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
}, 'An active PressureObserver calls its callback at least once');
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic_async.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic_async.tentative.https.window.js
index 6397d88a6c3..e46fed315f9 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic_async.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_basic_async.tentative.https.window.js
@@ -3,9 +3,19 @@
'use strict';
+pressure_test((t, mockPressureService) => {
+ const observer = new PressureObserver(() => {
+ assert_unreached('The observer callback should not be called');
+ });
+
+ mockPressureService.setExpectedFailure(
+ new DOMException('', 'NotSupportedError'));
+ return promise_rejects_dom(t, 'NotSupportedError', observer.observe('cpu'));
+}, 'Return NotSupportedError when calling observer()');
+
pressure_test(async (t, mockPressureService) => {
const changes = await new Promise(resolve => {
- const observer = new PressureObserver(resolve, {sampleRate: 1.0});
+ const observer = new PressureObserver(resolve);
observer.observe('cpu');
mockPressureService.setPressureUpdate('critical');
mockPressureService.startPlatformCollector(/*sampleRate=*/ 1.0);
@@ -28,3 +38,22 @@ pressure_test((t, mockPressureService) => {
return new Promise(resolve => t.step_timeout(resolve, 1000));
}, 'Removing observer before observe() resolves works');
+
+pressure_test(async (t, mockPressureService) => {
+ const callbackPromises = [];
+ const observePromises = [];
+
+ for (let i = 0; i < 2; i++) {
+ callbackPromises.push(new Promise(resolve => {
+ const observer = new PressureObserver(resolve);
+ observePromises.push(observer.observe('cpu'));
+ }));
+ }
+
+ await Promise.all(observePromises);
+
+ mockPressureService.setPressureUpdate('critical');
+ mockPressureService.startPlatformCollector(/*sampleRate=*/ 1.0);
+
+ return Promise.all(callbackPromises);
+}, 'Calling observe() multiple times works');
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_detached_iframe.tentative.https.html b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_detached_iframe.tentative.https.html
index 0e03348d527..3b0a5504e53 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_detached_iframe.tentative.https.html
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_detached_iframe.tentative.https.html
@@ -16,7 +16,7 @@ test(() => {
assert_equals(undefined, frame_window.PressureObserver);
}, 'PressureObserver constructor does not exist in detached iframes');
-test(() => {
+promise_test(async t => {
const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
const frame_window = iframe.contentWindow;
@@ -29,10 +29,11 @@ test(() => {
iframe.remove();
// Calling observe() from a detached iframe should fail but not crash.
- assert_throws_dom('NotSupportedError', iframe_DOMException, () => {observer.observe('cpu');})
-}, 'PressureObserver.observe() on detached frame throws error.');
+ await promise_rejects_dom(t, 'NotSupportedError', iframe_DOMException,
+ observer.observe('cpu'));
+}, 'PressureObserver.observe() on detached frame rejects');
-test(() => {
+promise_test(async t => {
const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
const frame_window = iframe.contentWindow;
@@ -41,7 +42,7 @@ test(() => {
() => {},
{sampleRate: 1});
- observer.observe('cpu');
+ await observer.observe('cpu');
iframe.remove();
@@ -49,7 +50,35 @@ test(() => {
observer.disconnect();
}, 'PressureObserver.disconnect() on detached frame returns');
-promise_test(t => {
+promise_test(async t => {
+ const iframe = document.createElement('iframe');
+ document.body.appendChild(iframe);
+ const frame_window = iframe.contentWindow;
+
+ const observer = new frame_window.PressureObserver(
+ () => {},
+ {sampleRate: 1});
+ const iframe_DOMException = frame_window.DOMException;
+
+ // await is intentionally not used here. We want to remove the iframe while
+ // the returned Promise settles.
+ const observe_promise = observer.observe('cpu');
+ iframe.remove();
+
+ // Establish an observer and wait for changes in the main frame. This should
+ // keep the test running long enough to catch any crash from the observe()
+ // call in the removed iframe's PressureObserver.
+ const changes = await new Promise((resolve, reject) => {
+ const observer = new PressureObserver(
+ resolve, {sampleRate: 1});
+ t.add_cleanup(() => observer.disconnect());
+ observer.observe('cpu').catch(reject);
+ });
+ assert_in_array(changes[0].state, ['nominal', 'fair', 'serious', 'critical'],
+ 'cpu pressure state');
+}, 'Detaching frame while PressureObserver.observe() settles');
+
+promise_test(async t => {
const iframe = document.createElement('iframe');
document.body.appendChild(iframe);
const frame_window = iframe.contentWindow;
@@ -57,7 +86,7 @@ promise_test(t => {
assert_unreached('The observer callback should not be called');
}, {sampleRate: 1});
- observer.observe('cpu');
+ await observer.observe('cpu');
iframe.remove();
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect.tentative.https.window.js
index 3bfa30bbdab..a311d9ba3ff 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect.tentative.https.window.js
@@ -7,17 +7,17 @@ promise_test(async t => {
}, {sampleRate: 1.0});
t.add_cleanup(() => observer1.disconnect());
// Ensure that observer1's schema gets registered before observer2 starts.
- observer1.observe('cpu');
+ await observer1.observe('cpu');
observer1.disconnect();
const observer2_changes = [];
- await new Promise(resolve => {
+ await new Promise((resolve, reject) => {
const observer2 = new PressureObserver(change => {
observer2_changes.push(change);
resolve();
}, {sampleRate: 1.0});
t.add_cleanup(() => observer2.disconnect());
- observer2.observe('cpu')
+ observer2.observe('cpu').catch(reject);
});
assert_equals(
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_idempotent.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_idempotent.tentative.https.window.js
index 2dbc6dd7e19..b76e62e80e7 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_idempotent.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_idempotent.tentative.https.window.js
@@ -11,13 +11,13 @@ promise_test(async t => {
observer1.disconnect();
const observer2_changes = [];
- await new Promise(resolve => {
+ await new Promise((resolve, reject) => {
const observer2 = new PressureObserver(changes => {
observer2_changes.push(changes);
resolve();
}, {sampleRate: 1});
t.add_cleanup(() => observer2.disconnect());
- observer2.observe('cpu');
+ observer2.observe('cpu').catch(reject);
});
assert_equals(
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_immediately.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_immediately.tentative.https.window.js
index 58f824eefbb..90db9fd396e 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_immediately.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_disconnect_immediately.tentative.https.window.js
@@ -17,7 +17,7 @@ promise_test(async t => {
resolve();
}, {sampleRate: 1.0});
t.add_cleanup(() => observer2.disconnect());
- observer2.observe('cpu');
+ observer2.observe('cpu').catch(reject);
});
assert_equals(
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple.tentative.https.window.js
index 1c7c629f328..6015ae1f81b 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple.tentative.https.window.js
@@ -1,22 +1,22 @@
'use strict';
promise_test(async t => {
- const changes1_promise = new Promise(resolve => {
+ const changes1_promise = new Promise((resolve, reject) => {
const observer = new PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
- const changes2_promise = new Promise(resolve => {
+ const changes2_promise = new Promise((resolve, reject) => {
const observer = new PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
- const changes3_promise = new Promise(resolve => {
+ const changes3_promise = new Promise((resolve, reject) => {
const observer = new PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
const [changes1, changes2, changes3] =
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple_across_iframes.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple_across_iframes.tentative.https.window.js
index 54821a8c444..838b9a17a00 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple_across_iframes.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_multiple_across_iframes.tentative.https.window.js
@@ -1,10 +1,10 @@
'use strict';
promise_test(async t => {
- const changes1_promise = new Promise(resolve => {
+ const changes1_promise = new Promise((resolve, reject) => {
const observer = new PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
// iframe numbers are aligned with observer numbers. The first observer is
@@ -12,21 +12,21 @@ promise_test(async t => {
const iframe2 = document.createElement('iframe');
document.body.appendChild(iframe2);
- const changes2_promise = new Promise(resolve => {
+ const changes2_promise = new Promise((resolve, reject) => {
const observer =
new iframe2.contentWindow.PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
const iframe3 = document.createElement('iframe');
document.body.appendChild(iframe3);
- const changes3_promise = new Promise(resolve => {
+ const changes3_promise = new Promise((resolve, reject) => {
const observer =
new iframe3.contentWindow.PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
});
const [changes1, changes2, changes3] =
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_idempotent.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_idempotent.tentative.https.window.js
index 8435ac1c410..e60115fee87 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_idempotent.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_idempotent.tentative.https.window.js
@@ -1,12 +1,12 @@
'use strict';
promise_test(async t => {
- const update = await new Promise(resolve => {
+ const update = await new Promise((resolve, reject) => {
const observer = new PressureObserver(resolve, {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- observer.observe('cpu');
- observer.observe('cpu');
- observer.observe('cpu');
+ observer.observe('cpu').catch(reject);
+ observer.observe('cpu').catch(reject);
+ observer.observe('cpu').catch(reject);
});
assert_equals(typeof update[0].state, 'string');
diff --git a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_unobserve_failure.tentative.https.window.js b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_unobserve_failure.tentative.https.window.js
index 2e77f1c9c77..c32649da5c3 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_unobserve_failure.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/compute-pressure/compute_pressure_observe_unobserve_failure.tentative.https.window.js
@@ -1,12 +1,10 @@
'use strict';
-test(t => {
+promise_test(async t => {
const observer = new PressureObserver(
t.unreached_func('oops should not end up here'), {sampleRate: 1.0});
t.add_cleanup(() => observer.disconnect());
- assert_throws_js(TypeError, () => {
- observer.observe('random');
- });
+ await promise_rejects_js(t, TypeError, observer.observe('random'));
}, 'PressureObserver.observe() requires a valid source');
test(t => {
diff --git a/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-by-permissions-policy.https.html b/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-by-permissions-policy.https.html
index 5d8987bfaf3..1651f726125 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-by-permissions-policy.https.html
+++ b/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-by-permissions-policy.https.html
@@ -13,13 +13,13 @@ const cross_origin_src = get_host_info().HTTPS_REMOTE_ORIGIN + same_origin_src;
const header = 'permissions policy header "compute-pressure=*"';
const attribute = 'allow="compute-pressure" attribute';
-test(() => {
+promise_test(async () => {
try {
const observer = new PressureObserver(() => {});
- observer.observe("cpu");
+ await observer.observe("cpu");
observer.disconnect();
} catch (e) {
- assert_unreached();
+ assert_unreached("expected promise to resolve.");
}
}, `${header} allows the top-level document.`);
diff --git a/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-on-self-origin-by-permissions-policy.https.html b/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-on-self-origin-by-permissions-policy.https.html
index 6441c1f8c2a..98450b91a7a 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-on-self-origin-by-permissions-policy.https.html
+++ b/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-allowed-on-self-origin-by-permissions-policy.https.html
@@ -12,13 +12,13 @@ const same_origin_src =
const cross_origin_src = get_host_info().HTTPS_REMOTE_ORIGIN + same_origin_src;
const header = 'permissions policy header "compute-pressure=self"';
-test(() => {
+promise_test(async () => {
try {
const observer = new PressureObserver(() => {});
- observer.observe("cpu");
+ await observer.observe("cpu");
observer.disconnect();
} catch (e) {
- assert_unreached();
+ assert_unreached('expected promise to resolve.');
}
}, `${header} allows the top-level document.`);
diff --git a/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-disabled-by-permissions-policy.https.html b/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-disabled-by-permissions-policy.https.html
index 14bd3e40754..58b044247cf 100644
--- a/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-disabled-by-permissions-policy.https.html
+++ b/tests/wpt/web-platform-tests/compute-pressure/permissions-policy/compute-pressure-disabled-by-permissions-policy.https.html
@@ -13,12 +13,11 @@ const cross_origin_src = get_host_info().HTTPS_REMOTE_ORIGIN + same_origin_src;
const header = 'permissions policy header "compute-pressure=()"';
const attribute = 'allow="compute-pressure" attribute';
-test(() => {
- assert_throws_dom('NotAllowedError', () => {
- const observer = new PressureObserver(() => {});
- observer.observe("cpu");
- observer.disconnect();
- });
+promise_test(async t => {
+ const observer = new PressureObserver(
+ t.unreached_func('oops should not end up here')
+ );
+ await promise_rejects_dom(t, 'NotAllowedError', observer.observe("cpu"));
}, `${header} disallows the top-level document.`);
async_test(t => {
diff --git a/tests/wpt/web-platform-tests/content-security-policy/inheritance/history.sub.html b/tests/wpt/web-platform-tests/content-security-policy/inheritance/history.sub.html
index 6ebd679a280..5ea6abe8fb3 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/inheritance/history.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/inheritance/history.sub.html
@@ -133,7 +133,7 @@
// Closing fails sometimes on Firefox:
// https://bugzilla.mozilla.org/show_bug.cgi?id=1698093
- t.add_cleanup(() => { try { popup.close(); } catch {} });
+ t.add_cleanup(() => { popup.close(); });
// Perform a real navigation in the popup. This is needed because the
// initial empty document is not stored in history (so there is no way of
diff --git a/tests/wpt/web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html b/tests/wpt/web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html
index e99699410e0..f702e6eb9d6 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html
@@ -8,119 +8,108 @@
diff --git a/tests/wpt/web-platform-tests/credential-management/support/fedcm/accounts.py b/tests/wpt/web-platform-tests/credential-management/support/fedcm/accounts.py
index f645dfda4c7..088ce5967cd 100644
--- a/tests/wpt/web-platform-tests/credential-management/support/fedcm/accounts.py
+++ b/tests/wpt/web-platform-tests/credential-management/support/fedcm/accounts.py
@@ -7,6 +7,8 @@ def main(request, response):
return (532, [], "Wrong Sec-Fetch-Dest header")
if request.headers.get(b"Referer"):
return (533, [], "Should not have Referer")
+ if request.headers.get(b"Origin"):
+ return (534, [], "Should not have Origin")
return """
{
diff --git a/tests/wpt/web-platform-tests/credential-management/support/fedcm/client_metadata.py b/tests/wpt/web-platform-tests/credential-management/support/fedcm/client_metadata.py
index d81cd96c67a..e6f6a776329 100644
--- a/tests/wpt/web-platform-tests/credential-management/support/fedcm/client_metadata.py
+++ b/tests/wpt/web-platform-tests/credential-management/support/fedcm/client_metadata.py
@@ -10,8 +10,10 @@ def main(request, response):
return (531, [], "Wrong Accept")
if request.headers.get(b"Sec-Fetch-Dest") != b"webidentity":
return (532, [], "Wrong Sec-Fetch-Dest header")
- if not request.headers.get(b"Referer"):
- return (533, [], "Missing Referer")
+ if request.headers.get(b"Referer"):
+ return (533, [], "Should not have Referer")
+ if not request.headers.get(b"Origin"):
+ return (534, [], "Missing Origin")
counter = request.server.stash.take(keys.CLIENT_METADATA_COUNTER_KEY)
try:
diff --git a/tests/wpt/web-platform-tests/credential-management/support/fedcm/manifest.py b/tests/wpt/web-platform-tests/credential-management/support/fedcm/manifest.py
index a125c2e391f..3e72faf75a4 100644
--- a/tests/wpt/web-platform-tests/credential-management/support/fedcm/manifest.py
+++ b/tests/wpt/web-platform-tests/credential-management/support/fedcm/manifest.py
@@ -7,6 +7,8 @@ def main(request, response):
return (532, [], "Wrong Sec-Fetch-Dest header")
if request.headers.get(b"Referer"):
return (533, [], "Should not have Referer")
+ if request.headers.get(b"Origin"):
+ return (534, [], "Should not have Origin")
return """
{
diff --git a/tests/wpt/web-platform-tests/credential-management/support/fedcm/token.py b/tests/wpt/web-platform-tests/credential-management/support/fedcm/token.py
index 2f5e807b6e0..867dab9592f 100644
--- a/tests/wpt/web-platform-tests/credential-management/support/fedcm/token.py
+++ b/tests/wpt/web-platform-tests/credential-management/support/fedcm/token.py
@@ -9,14 +9,16 @@ def main(request, response):
return (533, [], "Wrong Accept")
if request.headers.get(b"Sec-Fetch-Dest") != b"webidentity":
return (500, [], "Wrong Sec-Fetch-Dest header")
- if not request.headers.get(b"Referer"):
- return (534, [], "Missing Referer")
+ if request.headers.get(b"Referer"):
+ return (534, [], "Should not have Referer")
+ if not request.headers.get(b"Origin"):
+ return (535, [], "Missing Origin")
if not request.POST.get(b"client_id"):
- return (535, [], "Missing 'client_id' POST parameter")
+ return (536, [], "Missing 'client_id' POST parameter")
if not request.POST.get(b"account_id"):
- return (536, [], "Missing 'account_id' POST parameter")
+ return (537, [], "Missing 'account_id' POST parameter")
if not request.POST.get(b"disclosure_text_shown"):
- return (537, [], "Missing 'disclosure_text_shown' POST parameter")
+ return (538, [], "Missing 'disclosure_text_shown' POST parameter")
return "{\"token\": \"token\"}"
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-001.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-001.html
index a42db257444..68e62e54790 100644
--- a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-001.html
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-001.html
@@ -42,11 +42,13 @@
height: 100px;
}
-
-
-
-
-
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-001.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-001.html
new file mode 100644
index 00000000000..c96f6eef558
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-001.html
@@ -0,0 +1,50 @@
+
+Top-layer element can anchor to non-top-layer absolutely positioned element
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-002.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-002.html
new file mode 100644
index 00000000000..e626e6b9356
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-002.html
@@ -0,0 +1,50 @@
+
+Top-layer element can anchor to non-top-layer fixed positioned element
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-003.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-003.html
new file mode 100644
index 00000000000..39f3c362c7b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-003.html
@@ -0,0 +1,51 @@
+
+Top-layer element can anchor to preceeding top-layer absolutely positioned element
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-004.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-004.html
new file mode 100644
index 00000000000..8e189e0e7b7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-004.html
@@ -0,0 +1,51 @@
+
+Top-layer element can anchor to preceeding top-layer fixed positioned element
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-005.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-005.html
new file mode 100644
index 00000000000..d9e4fa86e10
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-005.html
@@ -0,0 +1,51 @@
+
+Non-top-layer element cannot anchor to top-layer element
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-006.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-006.html
new file mode 100644
index 00000000000..5f5cd67a1d7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-006.html
@@ -0,0 +1,51 @@
+
+Top-layer element cannot anchor to succeeding top-layer element
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-ref.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-ref.html
new file mode 100644
index 00000000000..dc7f77f2b34
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-top-layer-ref.html
@@ -0,0 +1,34 @@
+
+Tests anchor positioning with top-layer elements
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-writing-modes-002.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-writing-modes-002.html
index 691271289a8..834835ef214 100644
--- a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-writing-modes-002.html
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-position-writing-modes-002.html
@@ -3,7 +3,7 @@
-
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html
new file mode 100644
index 00000000000..e51f675fffe
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html
@@ -0,0 +1,62 @@
+
+
+Tests position fallback with rtl scroller
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html
new file mode 100644
index 00000000000..ae212f91908
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html
@@ -0,0 +1,73 @@
+
+Tests position fallback with bottom-up scroller
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html
new file mode 100644
index 00000000000..0227fa753ef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html
@@ -0,0 +1,75 @@
+
+Tests position fallback with scrollers with mixed writing modes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html
new file mode 100644
index 00000000000..3dedd4d7e68
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html
@@ -0,0 +1,63 @@
+
+
+Tests position fallback with rtl scroller and vertical-rl OOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/position-fallback-002.html b/tests/wpt/web-platform-tests/css/css-anchor-position/position-fallback-002.html
new file mode 100644
index 00000000000..52c964609bd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/position-fallback-002.html
@@ -0,0 +1,61 @@
+
+Tests that overflowing the inset-modified containing block triggers position fallback
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/position-fallback-cascade-layer-reorder.html b/tests/wpt/web-platform-tests/css/css-anchor-position/position-fallback-cascade-layer-reorder.html
new file mode 100644
index 00000000000..ec1a64205c5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/position-fallback-cascade-layer-reorder.html
@@ -0,0 +1,72 @@
+
+Tests that @position-fallback rules are reordered by cascade layers
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-anchor-position/support/test-common.js b/tests/wpt/web-platform-tests/css/css-anchor-position/support/test-common.js
new file mode 100644
index 00000000000..5ef7a951b42
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-anchor-position/support/test-common.js
@@ -0,0 +1,27 @@
+// Asserts that the anchored element is at the top/bottom/left/right of the
+// anchor.
+function assert_fallback_position(anchored, anchor, direction) {
+ let anchoredRect = anchored.getBoundingClientRect();
+ let anchorRect = anchor.getBoundingClientRect();
+ let message = `Anchored element should be at the ${direction} of anchor`;
+ switch (direction) {
+ case 'top':
+ assert_equals(anchoredRect.bottom, anchorRect.top, message);
+ return;
+ case 'bottom':
+ assert_equals(anchoredRect.top, anchorRect.bottom, message);
+ return;
+ case 'left':
+ assert_equals(anchoredRect.right, anchorRect.left, message);
+ return;
+ case 'right':
+ assert_equals(anchoredRect.left, anchorRect.right, message);
+ return;
+ default:
+ assert_unreached('unsupported direction');
+ }
+}
+
+async function waitUntilNextAnimationFrame() {
+ return new Promise(resolve => requestAnimationFrame(resolve));
+}
diff --git a/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-invalid.html b/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-invalid.html
index 52e42a2e2b6..1569497bb6a 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-invalid.html
+++ b/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-invalid.html
@@ -13,7 +13,7 @@
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand.html b/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand.html
new file mode 100644
index 00000000000..f09f0a948ca
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-delay-shorthand.html
@@ -0,0 +1,103 @@
+
+animation-delay shorthand
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-shorthand.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-shorthand.tentative.html
new file mode 100644
index 00000000000..ac3613cf825
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/parsing/animation-shorthand.tentative.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-break/flexbox/increase-fragmentainer-size-flex-item-trailing-margin.html b/tests/wpt/web-platform-tests/css/css-break/flexbox/increase-fragmentainer-size-flex-item-trailing-margin.html
new file mode 100644
index 00000000000..94845449fbf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-break/flexbox/increase-fragmentainer-size-flex-item-trailing-margin.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+Test passes if there is a filled green square and no red.
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-break/increase-fragmentainer-size-tall-border.html b/tests/wpt/web-platform-tests/css/css-break/increase-fragmentainer-size-tall-border.html
new file mode 100644
index 00000000000..b7e716b23c4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-break/increase-fragmentainer-size-tall-border.html
@@ -0,0 +1,13 @@
+
+
+
+
+Test passes if there is a filled green square and no red.
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-cascade/all-prop-revert-layer.html b/tests/wpt/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
index b031e76c1a6..c0a3ba74ace 100644
--- a/tests/wpt/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
+++ b/tests/wpt/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
@@ -16,6 +16,8 @@
alt: "a";
animation-composition: add;
animation-delay: 123s;
+ animation-delay-start: 123s;
+ animation-delay-end: 456s;
animation-direction: reverse;
animation-duration: 123s;
animation-fill-mode: both;
diff --git a/tests/wpt/web-platform-tests/css/css-color/animation/color-interpolation.html b/tests/wpt/web-platform-tests/css/css-color/animation/color-interpolation.html
index fd3d426bafd..7bda888a0b4 100644
--- a/tests/wpt/web-platform-tests/css/css-color/animation/color-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-color/animation/color-interpolation.html
@@ -99,10 +99,10 @@ test_interpolation({
}, [
{at: -0.3, expect: 'oklab(0 0 0)'},
{at: 0, expect: 'oklab(0 0 0)'},
- {at: 0.3, expect: 'oklab(30 0 0)'},
- {at: 0.6, expect: 'oklab(60 0 0)'},
- {at: 1, expect: 'oklab(100 0 0)'},
- {at: 1.5, expect: 'oklab(150 0 0)'},
+ {at: 0.3, expect: 'oklab(0.3 0 0)'},
+ {at: 0.6, expect: 'oklab(0.6 0 0)'},
+ {at: 1, expect: 'oklab(1 0 0)'},
+ {at: 1.5, expect: 'oklab(1.5 0 0)'},
]);
test_interpolation({
@@ -112,10 +112,10 @@ test_interpolation({
}, [
{at: -0.3, expect: 'oklab(0 0 0)'},
{at: 0, expect: 'oklab(0 0 0)'},
- {at: 0.3, expect: 'oklab(30 0 0)'},
- {at: 0.6, expect: 'oklab(60 0 0)'},
- {at: 1, expect: 'oklab(100 0 0)'},
- {at: 1.5, expect: 'oklab(150 0 0)'},
+ {at: 0.3, expect: 'oklab(0.3 0 0)'},
+ {at: 0.6, expect: 'oklab(0.6 0 0)'},
+ {at: 1, expect: 'oklab(1 0 0)'},
+ {at: 1.5, expect: 'oklab(1.5 0 0)'},
]);
test_interpolation({
@@ -125,9 +125,9 @@ test_interpolation({
}, [
{at: -0.3, expect: 'oklab(0 0 0)'},
{at: 0, expect: 'oklab(0 0 0)'},
- {at: 0.3, expect: 'oklab(30 0 0)'},
- {at: 0.6, expect: 'oklab(60 0 0)'},
- {at: 1, expect: 'oklab(100 0 0)'},
- {at: 1.5, expect: 'oklab(150 0 0)'},
+ {at: 0.3, expect: 'oklab(0.3 0 0)'},
+ {at: 0.6, expect: 'oklab(0.6 0 0)'},
+ {at: 1, expect: 'oklab(1 0 0)'},
+ {at: 1.5, expect: 'oklab(1.5 0 0)'},
]);
diff --git a/tests/wpt/web-platform-tests/css/css-color/deprecated-sameas-018.html b/tests/wpt/web-platform-tests/css/css-color/deprecated-sameas-018.html
index 9f9071635ea..11e3e3a1bd6 100644
--- a/tests/wpt/web-platform-tests/css/css-color/deprecated-sameas-018.html
+++ b/tests/wpt/web-platform-tests/css/css-color/deprecated-sameas-018.html
@@ -16,4 +16,4 @@
Test passes if you see a square, not two rectangles of different colors; and no red.
-
\ No newline at end of file
+