aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/flex-item-contains-strict.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/flex-minimum-size-002.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-002.html.ini37
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini (renamed from tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini)2
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini (renamed from tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini)2
-rw-r--r--tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini12
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini6
-rw-r--r--tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/metadata/MANIFEST.json211
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flex-item-contains-strict.html.ini13
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flex-minimum-size-002.html.ini13
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-002.html.ini37
-rw-r--r--tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini2
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini3
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini2
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini4
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini4
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini12
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini3
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini6
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini2
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/018.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/credential-management/otpcredential-get-basics.https.html78
-rw-r--r--tests/wpt/web-platform-tests/credential-management/otpcredential-iframe.https.html41
-rw-r--r--tests/wpt/web-platform-tests/credential-management/support/README.md30
-rw-r--r--tests/wpt/web-platform-tests/credential-management/support/otpcredential-helper.js65
-rw-r--r--tests/wpt/web-platform-tests/credential-management/support/otpcredential-iframe.html35
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/columns-center-with-margins-001.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-item-contains-strict.html56
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-020.html13
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-021.html13
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-002.html80
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-011.html13
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-012.html13
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html74
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-001.html93
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-002.html101
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/justify-content_space-between-002.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-002.html66
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/reference/columns-center-with-margins-001-ref.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-overflow-auto-001-ref.html70
-rw-r--r--tests/wpt/web-platform-tests/css/css-sizing/replaced-fractional-height-from-aspect-ratio.html18
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webxr.idl2
-rw-r--r--tests/wpt/web-platform-tests/lint.whitelist3
-rw-r--r--tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html35
-rw-r--r--tests/wpt/web-platform-tests/resources/chromium/mock-sms-receiver.js51
-rw-r--r--tests/wpt/web-platform-tests/svg/text/reftests/text-display-contents-crash.html25
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb8
-rw-r--r--tests/wpt/web-platform-tests/webaudio/js/helpers.js32
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html205
76 files changed, 1744 insertions, 114 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
new file mode 100644
index 00000000000..f64b45fea6b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-002.html]
+ [Hit test float]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
new file mode 100644
index 00000000000..8efb7024ae4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
@@ -0,0 +1,4 @@
+[hit-test-anonymous-block.html]
+ [Hit test beside line of text inside anonymous block]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-item-contains-strict.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-item-contains-strict.html.ini
new file mode 100644
index 00000000000..8cb1cbd4a77
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-item-contains-strict.html.ini
@@ -0,0 +1,13 @@
+[flex-item-contains-strict.html]
+ [.inline-flex 5]
+ expected: FAIL
+
+ [.inline-flex 6]
+ expected: FAIL
+
+ [.inline-flex 1]
+ expected: FAIL
+
+ [.inline-flex 2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-minimum-size-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-minimum-size-002.html.ini
new file mode 100644
index 00000000000..d473487df51
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-minimum-size-002.html.ini
@@ -0,0 +1,13 @@
+[flex-minimum-size-002.html]
+ [.flexbox, .inline-flexbox 1]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 6]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 5]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 4]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini
new file mode 100644
index 00000000000..732e9591a8b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini
@@ -0,0 +1,4 @@
+[flex-outer-flexbox-column-recalculate-height-on-resize-001.html]
+ [.OuterFlexbox 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-001.html.ini
new file mode 100644
index 00000000000..af4cb6d07b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-001.html.ini
@@ -0,0 +1,2 @@
+[flexbox-overflow-auto-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-002.html.ini
new file mode 100644
index 00000000000..7160fed03bf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-overflow-auto-002.html.ini
@@ -0,0 +1,37 @@
+[flexbox-overflow-auto-002.html]
+ [.flexbox, .inline-flexbox 11]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 10]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 3]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 2]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 1]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 14]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 6]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 5]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 4]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 13]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 9]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 12]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini
index e35a452a186..70a00a101f6 100644
--- a/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini
@@ -1,2 +1,2 @@
[no-transition-from-ua-to-blocking-stylesheet.html]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index c884dc82eab..628b1fab770 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,6 +2,3 @@
[listeners are called when <iframe> is resized]
expected: FAIL
- [listeners are called correct number of times]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
index 23c61ede1a1..c131078eace 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
@@ -17,6 +17,3 @@
[test the top of layer]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
new file mode 100644
index 00000000000..e181af5397f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
@@ -0,0 +1,4 @@
+[elementsFromPoint-invalid-cases.html]
+ [The root element is the last element returned for otherwise empty queries within the viewport]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
index 38b59947089..970f8a5db8f 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
@@ -318,18 +318,15 @@
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" text/plain]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
- expected: FAIL
-
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
index d2df9b78483..5c001592859 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
@@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
+ [separate text/javascript;charset=windows-1252 error text/javascript]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
index a639f15230c..2023a855086 100644
--- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [Content-Type-Options%3A%20nosniff]
+ [X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
index 51f8272a6de..75d75b4cda2 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_3.html]
+[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
index 51f8272a6de..385376c7321 100644
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_3.html]
+[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
index c12c0f8ae48..6852d7663de 100644
--- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
@@ -1,4 +1,8 @@
[skip-document-with-fragment.html]
+ expected: TIMEOUT
[Autofocus elements in iframed documents with URL fragments should be skipped.]
expected: FAIL
+ [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index af14e19a466..f45aaafe1c5 100644
--- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -1,20 +1,16 @@
[supported-elements.html]
- expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: NOTRUN
+ expected: FAIL
[Element with tabindex should support autofocus]
- expected: TIMEOUT
+ expected: FAIL
[Area element should support autofocus]
- expected: NOTRUN
+ expected: FAIL
[Host element with delegatesFocus should support autofocus]
- expected: NOTRUN
-
- [Non-HTMLElement should not support autofocus]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index 0fbc49ea1c1..7a36937927c 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html]
- expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
index 26d293f0ea2..6a7b53a4ddd 100644
--- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
+++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
@@ -26,3 +26,6 @@
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42288 more errors.\n\tMax AbsError of 1.9999794363975525e+0 at index of 37272.\n\t[37272\]\t9.9997943639755249e-1\t-1.0000000000000000e+0\t1.9999794363975525e+0\t1.9999794363975525e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
expected: FAIL
+ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44035 more errors.\n\tMax AbsError of 1.9962286949157715e+0 at index of 40997.\n\t[40997\]\t9.9879217147827148e-1\t-9.9743652343750000e-1\t1.9962286949157715e+0\t2.0013591321441684e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index c4742e254ce..51640b2c3fa 100644
--- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -47,3 +47,9 @@
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t9.4118863344192505e-3\t5.6332010030746460e-1\t5.5390821397304535e-1\t9.8329211698769103e-1\t9.0957000000000003e-5\n\t[31081\]\t4.5570226059843051e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31081.\n]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t1.4359352462633979e-7\t5.6332010030746460e-1\t5.6331995671393997e-1\t9.9999974509426426e-1\t9.0957000000000003e-5\n\t[31081\]\t4.5774815635634474e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31081.\n]
+ expected: FAIL
+
+ [X SNR (45.01863990741345 dB) is not greater than or equal to 85.58. Got 45.01863990741345.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini
new file mode 100644
index 00000000000..8b769e56b5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini
@@ -0,0 +1,2 @@
+[audioworklet-audioparam-iterable.https.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
deleted file mode 100644
index 663a1f8fa30..00000000000
--- a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[018.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, javascript:]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index a761347d4e4..04028557181 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -427,6 +427,17 @@
{}
]
]
+ },
+ "text": {
+ "reftests": {
+ "text-display-contents-crash.html": [
+ "04b6a7e7cf8c6714f6c51c75ef6355102089428e",
+ [
+ null,
+ {}
+ ]
+ ]
+ }
}
}
},
@@ -131493,6 +131504,19 @@
{}
]
],
+ "columns-center-with-margins-001.html": [
+ "c0863127e96e366d2471c4f00bf40f8a03aced4d",
+ [
+ null,
+ [
+ [
+ "/css/css-flexbox/reference/columns-center-with-margins-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"columns-center-with-margins-and-wrap-001.html": [
"7bdc28776b6c4d2671fa4c696920b56f3fa363f4",
[
@@ -132886,6 +132910,32 @@
{}
]
],
+ "flex-minimum-height-flex-items-020.html": [
+ "dad3b6479685107439fb0bf37ebd21538a7abc6e",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "flex-minimum-height-flex-items-021.html": [
+ "ed8d1d425180615aa0f5193f891c1c313438f79c",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"flex-minimum-width-flex-items-001.xht": [
"cd18483ba414160c46e30bc282dec0c2fcd2f418",
[
@@ -133016,6 +133066,45 @@
{}
]
],
+ "flex-minimum-width-flex-items-011.html": [
+ "0eb6c5fa49c4d5d4ac331a8ba6f194f53d717451",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "flex-minimum-width-flex-items-012.html": [
+ "2ce9129eb1100bcbb94b5849d734af0bdd3c8ee1",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "flex-minimum-width-flex-items-013.html": [
+ "6ee9ed10b5663b381f0238096117e8d70ca0347b",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"flex-order.html": [
"be24b2817e232b7ad7fc936b7b22787591d3d9db",
[
@@ -133354,6 +133443,19 @@
{}
]
],
+ "flexbox-overflow-auto-001.html": [
+ "ee5a1afffbe04a9adf779fd5e590ed76167a431e",
+ [
+ null,
+ [
+ [
+ "/css/css-flexbox/reference/flexbox-overflow-auto-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"flexbox_absolute-atomic.html": [
"dae6b3e43ea71f3795508dd0ca4b243d4510c383",
[
@@ -263496,6 +263598,10 @@
[]
],
"support": {
+ "README.md": [
+ "cacd959d02629b3f665ee51eb65b8b5a4115a49c",
+ []
+ ],
"echoing-nester.html": [
"d4f5899da7894749a51039f9d5bf3b8bfd680570",
[]
@@ -263504,6 +263610,14 @@
"476f32688f91cede949edf2a1e650ef573525bd7",
[]
],
+ "otpcredential-helper.js": [
+ "d5a7eb8c4715f08031933391b953ac32b43443d1",
+ []
+ ],
+ "otpcredential-iframe.html": [
+ "37fe6e1cd891b3f1c4500a0c09b0f6d2c603bccf",
+ []
+ ],
"passwordcredential-get.html": [
"0ec584d73d1f6d8626efe4c7190e5160fe527286",
[]
@@ -284851,6 +284965,10 @@
"d56fe356dcbb6ce87414a2075b5f47c515628016",
[]
],
+ "columns-center-with-margins-001-ref.html": [
+ "4c8f69c8a738fd3736408be342d81aa318d33902",
+ []
+ ],
"columns-center-with-margins-and-wrap-001-ref.html": [
"415a36f42dec838b3419b80d0d9b5fc2f536808e",
[]
@@ -284927,6 +285045,10 @@
"413b5909fea7c8468db08d23eb7644a8d713a7bc",
[]
],
+ "flexbox-overflow-auto-001-ref.html": [
+ "ace792e456c12f40e52ae50d51d05fd6a449a628",
+ []
+ ],
"flexbox_quirks_body-ref.html": [
"164784fbd30859888b63069d9813eb5a104eb999",
[]
@@ -327292,7 +327414,7 @@
[]
],
"webxr.idl": [
- "1b005c3cdb39667e55875d31a53f574ac8d388e3",
+ "5f5320c205598b2c8cec340326686f6589d14984",
[]
],
"worklets.idl": [
@@ -327477,7 +327599,7 @@
]
},
"lint.whitelist": [
- "65494c70cfbf446011b404b5b657564b2ec61e35",
+ "7c282eefeabda7c3ce73e40f794123710219cf36",
[]
],
"loading": {
@@ -332178,6 +332300,10 @@
"ce2b968391343339a9958100f564fa73d5c01509",
[]
],
+ "mock-sms-receiver.js": [
+ "c4aa9a86f2c8a15303f96cc9859b2ec146eb2f58",
+ []
+ ],
"mojo_bindings.js": [
"70f6cad5e5f06f4f64a0fd4cdcd693fcea12bb78",
[]
@@ -336830,7 +336956,7 @@
[]
],
"safari-technology-preview.rb": [
- "1bf9d5df0b3307665bf36c158fb963d2656d202d",
+ "5f8d6806107d8abd7418ae022e59a1af9da1632f",
[]
],
"system_info.yml": [
@@ -344173,7 +344299,7 @@
[]
],
"helpers.js": [
- "fbbfc8e00444dce1440fdbe8e28e11c5b064ce3d",
+ "3819d12769898a3e2462ab06a35e5046d25f14f3",
[]
],
"worklet-recorder.js": [
@@ -377214,6 +377340,20 @@
}
]
],
+ "otpcredential-get-basics.https.html": [
+ "aca48227ce839afcc805c02b18e3d3dcde50f31e",
+ [
+ null,
+ {}
+ ]
+ ],
+ "otpcredential-iframe.https.html": [
+ "8af17b599612e3750f3094270be8e9cd9a109290",
+ [
+ null,
+ {}
+ ]
+ ],
"passwordcredential-framed-get.sub.https.html": [
"d86c6e09c70874f06714c9cde0b63a2cef959f69",
[
@@ -380916,6 +381056,13 @@
{}
]
],
+ "flex-item-contains-strict.html": [
+ "25849cc64b2f10cf2d319e1a2f750f32d64359b5",
+ [
+ null,
+ {}
+ ]
+ ],
"flex-minimum-height-flex-items-009.html": [
"718386af02069fa1a3fff0ee5aaa10415ef4b23a",
[
@@ -380937,6 +381084,27 @@
{}
]
],
+ "flex-minimum-size-002.html": [
+ "c2eea80ca5b79818f6b7a9a36ab1ff64826b5218",
+ [
+ null,
+ {}
+ ]
+ ],
+ "flex-outer-flexbox-column-recalculate-height-on-resize-001.html": [
+ "0b0b5b4d4e5a9e8011d7fdee87cce9caba5fa241",
+ [
+ null,
+ {}
+ ]
+ ],
+ "flexbox-overflow-auto-002.html": [
+ "d69b297ef7301cfb46ea725d99aaa0f9dac3e126",
+ [
+ null,
+ {}
+ ]
+ ],
"flexbox_first-letter.html": [
"dbbb03d524e165de213fe66dbe6598ece5c94b07",
[
@@ -381527,6 +381695,13 @@
{}
]
],
+ "justify-content_space-between-002.html": [
+ "fde1a7312408d02fe3843452585de2ee660ae6f7",
+ [
+ null,
+ {}
+ ]
+ ],
"order_value.html": [
"ca9af99b939f77835933ccc76de5185b656f5977",
[
@@ -381534,6 +381709,13 @@
{}
]
],
+ "overflow-auto-002.html": [
+ "2bb04a2604076d0883c1322e60015316f6f34b10",
+ [
+ null,
+ {}
+ ]
+ ],
"parsing": {
"flex-basis-computed.html": [
"549c9bf7053fac57c5dd11eedbf0fddebd324ea7",
@@ -462653,13 +462835,6 @@
{}
]
],
- "fcp-overflow.html": [
- "d7cc34663b7f846055ff5a6ca1d07fc1b4677464",
- [
- null,
- {}
- ]
- ],
"fcp-pseudo-element-display.html": [
"50fd626e899940ba2d6d19344df41111feafd6f8",
[
@@ -498403,6 +498578,13 @@
{}
]
],
+ "audioworklet-audioparam-iterable.https.html": [
+ "9e93f48ab878c5f9208dae7a6d2278cd98ab4529",
+ [
+ null,
+ {}
+ ]
+ ],
"audioworklet-audioparam-size.https.html": [
"9578b268815a89d31457df8cdd7a088e9df13c7c",
[
@@ -534522,6 +534704,13 @@
null,
{}
]
+ ],
+ "replaced-fractional-height-from-aspect-ratio.html": [
+ "d97c3f133ebec02ce5569e95826ab3237b7559c7",
+ [
+ null,
+ {}
+ ]
]
},
"css-text": {
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
new file mode 100644
index 00000000000..f64b45fea6b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-002.html]
+ [Hit test float]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
new file mode 100644
index 00000000000..8efb7024ae4
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
@@ -0,0 +1,4 @@
+[hit-test-anonymous-block.html]
+ [Hit test beside line of text inside anonymous block]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/flex-item-contains-strict.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-item-contains-strict.html.ini
new file mode 100644
index 00000000000..8cb1cbd4a77
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/flex-item-contains-strict.html.ini
@@ -0,0 +1,13 @@
+[flex-item-contains-strict.html]
+ [.inline-flex 5]
+ expected: FAIL
+
+ [.inline-flex 6]
+ expected: FAIL
+
+ [.inline-flex 1]
+ expected: FAIL
+
+ [.inline-flex 2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-002.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-002.html.ini
new file mode 100644
index 00000000000..d473487df51
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-002.html.ini
@@ -0,0 +1,13 @@
+[flex-minimum-size-002.html]
+ [.flexbox, .inline-flexbox 1]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 6]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 5]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 4]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini
new file mode 100644
index 00000000000..732e9591a8b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html.ini
@@ -0,0 +1,4 @@
+[flex-outer-flexbox-column-recalculate-height-on-resize-001.html]
+ [.OuterFlexbox 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-001.html.ini b/tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-001.html.ini
new file mode 100644
index 00000000000..af4cb6d07b7
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-001.html.ini
@@ -0,0 +1,2 @@
+[flexbox-overflow-auto-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-002.html.ini b/tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-002.html.ini
new file mode 100644
index 00000000000..7160fed03bf
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/flexbox-overflow-auto-002.html.ini
@@ -0,0 +1,37 @@
+[flexbox-overflow-auto-002.html]
+ [.flexbox, .inline-flexbox 11]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 10]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 3]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 2]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 1]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 14]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 6]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 5]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 4]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 13]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 9]
+ expected: FAIL
+
+ [.flexbox, .inline-flexbox 12]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini
index e35a452a186..70a00a101f6 100644
--- a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini
@@ -1,2 +1,2 @@
[no-transition-from-ua-to-blocking-stylesheet.html]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index c884dc82eab..628b1fab770 100644
--- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,6 +2,3 @@
[listeners are called when <iframe> is resized]
expected: FAIL
- [listeners are called correct number of times]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
index 5733d536fd3..85e94926cb3 100644
--- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
@@ -21,6 +21,3 @@
[test the top of layer]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
new file mode 100644
index 00000000000..e181af5397f
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
@@ -0,0 +1,4 @@
+[elementsFromPoint-invalid-cases.html]
+ [The root element is the last element returned for otherwise empty queries within the viewport]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index c5b96e4e9a9..56b8b7287d7 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -318,18 +318,15 @@
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" text/plain]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
- expected: FAIL
-
- [<iframe>: combined response Content-Type: text/html */*]
+ [<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index d2df9b78483..5c001592859 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
+ [separate text/javascript;charset=windows-1252 error text/javascript]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index 369bf4d4fa4..70efd28ddfc 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
- [Content-Type-Options%3A%20nosniff]
+ [X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
new file mode 100644
index 00000000000..75d75b4cda2
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_2.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
new file mode 100644
index 00000000000..385376c7321
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_4.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
index c12c0f8ae48..6852d7663de 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini
@@ -1,4 +1,8 @@
[skip-document-with-fragment.html]
+ expected: TIMEOUT
[Autofocus elements in iframed documents with URL fragments should be skipped.]
expected: FAIL
+ [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
+ expected: TIMEOUT
+
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 8b743f36e1d..6b68e9094e4 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,20 +1,16 @@
[supported-elements.html]
- expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Element with tabindex should support autofocus]
- expected: TIMEOUT
+ expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
- expected: NOTRUN
+ expected: FAIL
[Area element should support autofocus]
- expected: NOTRUN
+ expected: FAIL
[Host element with delegatesFocus should support autofocus]
- expected: NOTRUN
-
- [Non-HTMLElement should not support autofocus]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index 71edac2c5ed..dc856a3d5a3 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
- expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
index 7352e669e67..362a159fe53 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini
@@ -95,3 +95,6 @@
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42288 more errors.\n\tMax AbsError of 1.9999794363975525e+0 at index of 37272.\n\t[37272\]\t9.9997943639755249e-1\t-1.0000000000000000e+0\t1.9999794363975525e+0\t1.9999794363975525e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
expected: FAIL
+ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44035 more errors.\n\tMax AbsError of 1.9962286949157715e+0 at index of 40997.\n\t[40997\]\t9.9879217147827148e-1\t-9.9743652343750000e-1\t1.9962286949157715e+0\t2.0013591321441684e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index b1a8af43fbb..61ca6a63105 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -278,3 +278,9 @@
[X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t9.4118863344192505e-3\t5.6332010030746460e-1\t5.5390821397304535e-1\t9.8329211698769103e-1\t9.0957000000000003e-5\n\t[31081\]\t4.5570226059843051e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31081.\n]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t1.4359352462633979e-7\t5.6332010030746460e-1\t5.6331995671393997e-1\t9.9999974509426426e-1\t9.0957000000000003e-5\n\t[31081\]\t4.5774815635634474e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31081.\n]
+ expected: FAIL
+
+ [X SNR (45.01863990741345 dB) is not greater than or equal to 85.58. Got 45.01863990741345.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini
new file mode 100644
index 00000000000..8b769e56b5d
--- /dev/null
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html.ini
@@ -0,0 +1,2 @@
+[audioworklet-audioparam-iterable.https.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
deleted file mode 100644
index 663a1f8fa30..00000000000
--- a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[018.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, javascript:]
- expected: TIMEOUT
-
diff --git a/tests/wpt/web-platform-tests/credential-management/otpcredential-get-basics.https.html b/tests/wpt/web-platform-tests/credential-management/otpcredential-get-basics.https.html
new file mode 100644
index 00000000000..aca48227ce8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/credential-management/otpcredential-get-basics.https.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<link rel="help" href="https://github.com/WICG/WebOTP">
+<title>Tests OTPCredential</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="./support/otpcredential-helper.js"></script>
+<script>
+'use strict';
+
+promise_test(async t => {
+ await expect(receive).andReturn(async () => {
+ return {status: Status.kSuccess, otp: "ABC"};
+ });
+
+ let cred = await navigator.credentials.get({otp: {transport: ["sms"]}});
+
+ assert_equals(cred.code, "ABC");
+}, 'Basic usage');
+
+promise_test(async t => {
+ await expect(receive).andReturn(async () => {
+ return {status: Status.kSuccess, otp: "ABC"};
+ });
+ await expect(receive).andReturn(async () => {
+ return {status: Status.kSuccess, otp: "ABC2"};
+ });
+
+ let sms1 = navigator.credentials.get({otp: {transport: ["sms"]}});
+ let sms2 = navigator.credentials.get({otp: {transport: ["sms"]}});
+
+ let cred2= await sms2;
+ let cred1 = await sms1;
+
+ assert_equals(cred1.code, "ABC");
+ assert_equals(cred2.code, "ABC2");
+}, 'Handle multiple requests in different order.');
+
+promise_test(async t => {
+ await expect(receive).andReturn(async () => {
+ return {status: Status.kCancelled};
+ });
+ await expect(receive).andReturn(async () => {
+ return {status: Status.kSuccess, otp: "success"};
+ });
+
+ let cancelled_sms = navigator.credentials.get({otp: {transport: ["sms"]}});
+ let successful_sms = navigator.credentials.get({otp: {transport: ["sms"]}});
+
+ let successful_cred = await successful_sms;
+ assert_equals(successful_cred.code, "success");
+
+ try {
+ await cancelled_sms;
+ assert_unreached('Expected AbortError to be thrown.');
+ } catch (error) {
+ assert_equals(error.name, "AbortError");
+ }
+}, 'Handle multiple requests with success and error.');
+
+promise_test(async t => {
+ await expect(receive).andReturn(async () => {
+ return {status: Status.kCancelled};
+ });
+
+ await promise_rejects_dom(t, 'AbortError', navigator.credentials.get(
+ {otp: {transport: ["sms"]}}));
+}, 'Deal with cancelled requests');
+
+promise_test(async t => {
+ const controller = new AbortController();
+ const signal = controller.signal;
+
+ controller.abort();
+ await promise_rejects_dom(t, 'AbortError', navigator.credentials.get(
+ {otp: {transport: ["sms"]}, signal: signal}));
+}, 'Should abort request');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/credential-management/otpcredential-iframe.https.html b/tests/wpt/web-platform-tests/credential-management/otpcredential-iframe.https.html
new file mode 100644
index 00000000000..8af17b59961
--- /dev/null
+++ b/tests/wpt/web-platform-tests/credential-management/otpcredential-iframe.https.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<div id=log>
+<script>
+'use strict';
+
+const host = get_host_info();
+const remoteBaseURL =
+ host.HTTPS_REMOTE_ORIGIN +
+ window.location.pathname.replace(/\/[^\/]*$/, '/');
+const localBaseURL =
+ host.HTTPS_ORIGIN +
+ window.location.pathname.replace(/\/[^\/]*$/, '/');
+
+promise_test(async t => {
+ const messageWatcher = new EventWatcher(t, window, "message");
+ var iframe = document.createElement("iframe");
+ iframe.src = localBaseURL + "support/otpcredential-iframe.html";
+
+ document.body.appendChild(iframe);
+
+ const message = await messageWatcher.wait_for("message");
+ assert_equals(message.data.result, "Pass");
+ assert_equals(message.data.code, "ABC123");
+
+}, "Test OTPCredential enabled in same origin iframes");
+
+promise_test(async t => {
+ const messageWatcher = new EventWatcher(t, window, "message");
+ var iframe = document.createElement("iframe");
+ iframe.src = remoteBaseURL + "support/otpcredential-iframe.html"
+ document.body.appendChild(iframe);
+
+ const message = await messageWatcher.wait_for("message");
+ assert_equals(message.data.result, "Fail");
+ assert_equals(message.data.errorType, "NotAllowedError");
+
+}, "Test OTPCredential disabled in cross origin iframes");
+</script>
diff --git a/tests/wpt/web-platform-tests/credential-management/support/README.md b/tests/wpt/web-platform-tests/credential-management/support/README.md
new file mode 100644
index 00000000000..cacd959d026
--- /dev/null
+++ b/tests/wpt/web-platform-tests/credential-management/support/README.md
@@ -0,0 +1,30 @@
+# CredentialManagement Testing
+
+## OTPCredential Testing
+
+In this test suite `otpcredential-helper.js` is a testing framework that enables
+engines to test OTPCredential by intercepting the connection between the browser
+and the underlying operating system and mock its behavior.
+
+Usage:
+
+1. Include `<script src="./support/otpcredential-helper.js"></script>` in your
+test
+2. Set expectations
+```
+await expect(receive).andReturn(() => {
+ // mock behavior
+})
+```
+3. Call `navigator.credentials.get({otp: {transport: ["sms"]}})`
+4. Verify results
+
+The mocking API is browser agnostic and is designed such that other engines
+could implement it too.
+
+Here are the symbols that are exposed to tests that need to be implemented
+per engine:
+
+- function receive(): the main/only function that can be mocked
+- function expect(): the main/only function that enables us to mock it
+- enum State {kSuccess, kTimeout}: allows you to mock success/failures
diff --git a/tests/wpt/web-platform-tests/credential-management/support/otpcredential-helper.js b/tests/wpt/web-platform-tests/credential-management/support/otpcredential-helper.js
new file mode 100644
index 00000000000..d5a7eb8c471
--- /dev/null
+++ b/tests/wpt/web-platform-tests/credential-management/support/otpcredential-helper.js
@@ -0,0 +1,65 @@
+'use strict';
+
+// These tests rely on the User Agent providing an implementation of
+// the sms retriever.
+//
+// In Chromium-based browsers this implementation is provided by a polyfill
+// in order to reduce the amount of test-only code shipped to users. To enable
+// these tests the browser must be run with these options:
+// // --enable-blink-features=MojoJS,MojoJSTest
+
+async function loadChromiumResources() {
+ if (!window.MojoInterfaceInterceptor) {
+ // Do nothing on non-Chromium-based browsers or when the Mojo bindings are
+ // not present in the global namespace.
+ return;
+ }
+
+ const resources = [
+ '/gen/layout_test_data/mojo/public/js/mojo_bindings_lite.js',
+ '/gen/mojo/public/mojom/base/time.mojom-lite.js',
+ '/gen/third_party/blink/public/mojom/sms/sms_receiver.mojom-lite.js',
+ '/resources/chromium/mock-sms-receiver.js',
+ ];
+
+ await Promise.all(resources.map(path => {
+ const script = document.createElement('script');
+ script.src = path;
+ script.async = false;
+ const promise = new Promise((resolve, reject) => {
+ script.onload = resolve;
+ script.onerror = reject;
+ });
+ document.head.appendChild(script);
+ return promise;
+ }));
+
+ Status.kSuccess = blink.mojom.SmsStatus.kSuccess;
+ Status.kTimeout = blink.mojom.SmsStatus.kTimeout;
+ Status.kCancelled = blink.mojom.SmsStatus.kCancelled;
+};
+
+const Status = {};
+
+async function create_sms_provider() {
+ if (typeof SmsProvider === 'undefined') {
+ await loadChromiumResources();
+ }
+ if (typeof SmsProvider == 'undefined') {
+ throw new Error('Mojo testing interface is not available.');
+ }
+ return new SmsProvider();
+}
+
+function receive() {
+ throw new Error("expected to be overriden by tests");
+}
+
+function expect(call) {
+ return {
+ async andReturn(callback) {
+ const mock = await create_sms_provider();
+ mock.pushReturnValuesForTesting(call.name, callback);
+ }
+ }
+}
diff --git a/tests/wpt/web-platform-tests/credential-management/support/otpcredential-iframe.html b/tests/wpt/web-platform-tests/credential-management/support/otpcredential-iframe.html
new file mode 100644
index 00000000000..37fe6e1cd89
--- /dev/null
+++ b/tests/wpt/web-platform-tests/credential-management/support/otpcredential-iframe.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<script src="./otpcredential-helper.js"></script>
+<script>
+'use strict';
+
+// Loading otpcredential-iframe.html in the test will make an OTPCredentials
+// call on load, and trigger a postMessage upon completion.
+//
+// message {
+// string result: "Pass" | "Fail"
+// string code: credentials.code
+// string errorType: error.name
+// }
+
+// Intercept successful calls and return mocked value.
+(async function() {
+ await expect(receive).andReturn(() => {
+ return Promise.resolve({
+ status: Status.kSuccess,
+ otp: "ABC123",
+ });
+ });
+}());
+
+window.onload = async () => {
+ try {
+ const credentials =
+ await navigator.credentials.get({otp: {transport: ["sms"]}});
+ window.parent.postMessage({result: "Pass", code: credentials.code}, '*');
+ } catch (error) {
+ window.parent.postMessage({result: "Fail", errorType: error.name}, '*');
+ }
+}
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/columns-center-with-margins-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/columns-center-with-margins-001.html
new file mode 100644
index 00000000000..c0863127e96
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/columns-center-with-margins-001.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>CSS Flexbox: Change to auto-margin items in column flexbox</title>
+<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#valdef-flex-direction-column">
+<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#propdef-align-self">
+<link rel="match" href="reference/columns-center-with-margins-001-ref.html">
+<meta name="assert" content="This test ensures that auto margins for column flows are correctly calculated"/>
+<link href="support/flexbox.css" rel="stylesheet">
+ <style>
+ .flexbox {
+ border: 1px solid black;
+ width: 400px;
+ height: 200px;
+ }
+ .item1 {
+ margin: 0 auto;
+ background: lightblue;
+ }
+ .item1v {
+ margin: auto 0;
+ background: lightblue;
+ }
+ .item2 {
+ background: lime;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if the flex items are properly centered in each column</p>
+ <div class="flexbox column">
+ <div class="item1">centeredWithMargins</div>
+ <div class="item2 align-self-center">centeredWithAlignSelf</div>
+ </div>
+ <div style="writing-mode: vertical-lr;">
+ <div class="flexbox column">
+ <div class="item1v">centeredWithMargins</div>
+ <div class="item2 align-self-center">centeredWithAlignSelf</div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-item-contains-strict.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-item-contains-strict.html
new file mode 100644
index 00000000000..25849cc64b2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-item-contains-strict.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<title>CSS Flexbox: 'contain' property strict value</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain/#contain-property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#align-items-property">
+<meta name="assert" content="This test ensures that the strict value of the 'contain'
+property in combination with mixing of 'display' inline-flex value, 'align-items' flex-start
+value, column direction works properly.">
+<style>
+.inline-flex {
+ display: inline-flex;
+ outline: solid;
+ background: red;
+}
+</style>
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+
+<body onload="checkLayout('.inline-flex')">
+<p>Stretched:</p>
+<div class="inline-flex" style="display: inline-flex; flex-direction: column;" data-expected-width="0" data-expected-height="0">
+ <div style="contain: strict;" data-expected-width="0" data-expected-height="0">Column</div>
+</div>
+
+<div class="inline-flex" data-expected-width="0" data-expected-height="0">
+ <div style="contain: strict;" data-expected-width="0" data-expected-height="0">Row</div>
+</div>
+
+<div class="inline-flex" style="display: inline-flex; flex-direction: column;" data-expected-width="30" data-expected-height="30">
+ <div style="contain: strict; width: 30px; height: 30px;" data-expected-width="30" data-expected-height="30">Column</div>
+</div>
+
+<div class="inline-flex" style="display: inline-flex;" data-expected-width="30" data-expected-height="30">
+ <div style="contain: strict; width: 30px; height: 30px;" data-expected-width="30" data-expected-height="30">Row</div>
+</div>
+
+
+<p>Flex-start:</p>
+<div class="inline-flex" style="flex-direction: column; align-items: flex-start;" data-expected-width="0" data-expected-height="0">
+ <div style="contain: strict;" data-expected-width="0" data-expected-height="0">Column</div>
+</div>
+
+<div class="inline-flex" style="align-items: flex-start;" data-expected-width="0" data-expected-height="0">
+ <div style="contain: strict;" data-expected-width="0" data-expected-height="0">Row</div>
+</div>
+
+<div class="inline-flex" style="flex-direction: column; align-items: flex-start;" data-expected-width="30" data-expected-height="30">
+ <div style="contain: strict; width: 30px; height: 30px;" data-expected-width="30" data-expected-height="30">Column</div>
+</div>
+
+<div class="inline-flex" style="align-items: flex-start;" data-expected-width="30" data-expected-height="30">
+ <div style="contain: strict; width: 30px; height: 30px;" data-expected-width="30" data-expected-height="30">Row</div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-020.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-020.html
new file mode 100644
index 00000000000..dad3b647968
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-020.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Flex transferred minimum height</title>
+<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#transferred-size-suggestion" />
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
+<meta name="assert" content="min-height: auto honors transferred size suggestion">
+
+<p>Test passes if there is a filled green square.</p>
+
+<div style="width:100px; height: 50px; background: green;"></div>
+<div style="display: flex; flex-direction: column; height: 0px">
+ <img src="support/300x150-green.png" style="width: 100px">
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-021.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-021.html
new file mode 100644
index 00000000000..ed8d1d42518
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-021.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Flex transferred minimum height</title>
+<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#transferred-size-suggestion" />
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
+<meta name="assert" content="min-height: auto honors transferred size suggestion subject to cross axis min/max sizes">
+
+<p>Test passes if there is a filled green square.</p>
+
+<div style="width:100px; height: 50px; background: green;"></div>
+<div style="display: flex; flex-direction: column; height: 0px">
+ <img src="support/300x150-green.png" style="width: 0px; min-width: 100px;">
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-002.html
new file mode 100644
index 00000000000..c2eea80ca5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-002.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<title>CSS Flexbox: flexbox with min-size: auto</title>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-basis-property">
+<link rel="bookmark" href="https://crbug.com/426898">
+<link href="support/flexbox.css" rel="stylesheet">
+<meta name="assert" content="Flexbox with min-size: auto is handled correctly.">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+
+<style>
+.flexbox {
+ width: 10px;
+ height: 10px;
+ background-color: grey;
+}
+
+.item {
+ background-color: red;
+ margin: 5px;
+}
+
+.child {
+ height: 100px;
+ width: 100px;
+ background-color: green;
+}
+
+.width-20 {
+ width: 20px;
+}
+
+.flex-basis-20 {
+ flex-basis: 20px;
+}
+
+</style>
+
+<body onload="checkLayout('.flexbox, .inline-flexbox');">
+<div id=log></div>
+
+<div class="flexbox" data-expected-width="10">
+ <div class="item" data-expected-width="100">
+ <div class="child" data-expected-width="100"></div>
+ </div>
+</div>
+
+<div class="flexbox column" data-expected-height="10">
+ <div class="item" data-expected-height="100">
+ <div class="child" data-expected-height="100"></div>
+ </div>
+</div>
+
+<div class="inline-flexbox column" data-expected-height="110">
+ <div class="item flex-basis-20" data-expected-height="100">
+ <div class="child" data-expected-height="100"></div>
+ </div>
+</div>
+
+<div class="flexbox" data-expected-width="10">
+ <div class="item width-20" data-expected-width="20">
+ <div class="child" data-expected-width="100"></div>
+ </div>
+</div>
+
+<div class="flexbox" data-expected-width="10">
+ <div class="item flex-basis-20" data-expected-width="100">
+ <div class="child" data-expected-width="100"></div>
+ </div>
+</div>
+
+<div class="inline-flexbox" data-expected-width="110">
+ <div class="item flex-basis-20" data-expected-width="100">
+ <div class="child" data-expected-width="100"></div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-011.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-011.html
new file mode 100644
index 00000000000..0eb6c5fa49c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-011.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Flex transferred minimum width</title>
+<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#transferred-size-suggestion" />
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
+<meta name="assert" content="min-width: auto honors transferred size suggestion">
+
+<p>Test passes if there is a filled green square.</p>
+
+<div style="width:100px; height: 50px; background: green;"></div>
+<div style="display: flex; width: 0px"> <!-- width:0 makes items shrink to min-width -->
+ <img src="support/300x150-green.png" style="height: 50px">
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-012.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-012.html
new file mode 100644
index 00000000000..2ce9129eb11
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-012.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<title>Flex transferred minimum width</title>
+<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#transferred-size-suggestion" />
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
+<meta name="assert" content="min-width: auto honors transferred size suggestion subject to cross axis min/max sizes">
+
+<p>Test passes if there is a filled green square.</p>
+
+<div style="width:100px; height: 50px; background: green;"></div>
+<div style="display: flex; width: 0px"> <!-- width:0 makes items shrink to min-width -->
+ <img src="support/300x150-green.png" style="height: 2000px; max-height: 50px">
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html
new file mode 100644
index 00000000000..6ee9ed10b56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<title>Flex transferred minimum width</title>
+<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="min-width: auto ignores transferred size suggestion when item has a definite main size">
+
+<style>
+#reference-overlapped-red {
+ position: absolute;
+ background-color: red;
+ width: 100px;
+ height: 100px;
+ z-index: -1;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-red"></div>
+<div style="width:100px; height: 75px; background: green;"></div>
+<div style="display: flex; width: 0px">
+ <!--
+ content size suggestion is 300px.
+ specified size suggestion is 100px.
+ transferred size suggestion is 50px, but that is ignored because there is a
+ specified size. The ignoring is from the spec text that says,
+ (capitalization added):
+
+ In general, the content-based minimum size of a flex item is the smaller of
+ its content size suggestion and its specified size suggestion. However, if
+ the box has an aspect ratio AND NO specified size, its content-based
+ minimum size is the smaller of its content size suggestion and its
+ transferred size suggestion.
+
+ So here the content-based minimum size is min(300, 100) = 100.
+ -->
+ <img src="support/300x150-green.png" style="height: 25px; width: 100px;">
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html
new file mode 100644
index 00000000000..0b0b5b4d4e5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-outer-flexbox-column-recalculate-height-on-resize-001.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Flexbox: height resizing with flex-direction: column</title>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
+<link rel="help" href="https://crbug.com/527039">
+<meta name="assert" content="This test checks that resizing the height of a layout with two nested flexboxes using 'flex-direction: column' correctly recalculates the outer box's height." />
+
+<style>
+body,
+html {
+ height: 100%;
+}
+
+.OuterFlexbox {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+}
+
+.InnerFlexbox {
+ display: flex;
+ flex-direction: column;
+ max-height: 100%;
+ outline: 1px blue solid;
+}
+
+.InnerFlexbox-body {
+ flex: 1 1 auto;
+ overflow-y: hidden;
+}
+</style>
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+
+<body onload="update()">
+
+<div class="OuterFlexbox" data-expected-height="250">
+ <div class="InnerFlexbox" data-expected-height="250">
+ <div class="InnerFlexbox-body" data-expected-height="250">
+ <ul>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ <li>Suspendisse eu nunc lectus. Curabitur.</li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+<script>
+function update() {
+ document.body.offsetHeight;
+ document.body.style.height = '50px';
+ document.body.offsetHeight;
+ document.body.style.height = '250px';
+ document.body.offsetHeight;
+ checkLayout('.OuterFlexbox');
+}
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-001.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-001.html
new file mode 100644
index 00000000000..ee5a1afffbe
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-001.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Flexbox: overflow:auto support.</title>
+<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow">
+<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#classic-scrollbars">
+<link rel="match" href="reference/flexbox-overflow-auto-001-ref.html">
+<meta name="assert" content="This test ensures that flexbox with 'overflow: auto' is supported, including in combination with different writing-mode and flex-direction values."/>
+<style>
+.test-row {
+ display: flex;
+ margin-bottom: 5px;
+}
+.test-row > div {
+ flex: none;
+}
+
+.container {
+ margin-right: 5px;
+ border: 5px solid lightgreen;
+ width: 100px;
+}
+
+.horizontal-tb {
+ writing-mode: horizontal-tb;
+}
+
+.vertical-rl {
+ writing-mode: vertical-rl;
+}
+
+.vertical-lr {
+ writing-mode: vertical-lr;
+}
+
+.row {
+ flex-direction: row;
+}
+
+.row-reverse {
+ flex-direction: row-reverse;
+}
+
+.column {
+ flex-direction: column;
+}
+
+.column-reverse {
+ flex-direction: column-reverse;
+}
+
+.flexbox {
+ border: 0 solid pink;
+ display: flex;
+ height: 100px;
+ width: 100px;
+ overflow: auto;
+}
+
+.flexbox > div {
+ width: 200px;
+ height: 200px;
+ background: radial-gradient(at right 60%, red, yellow, green);
+ flex: none;
+}
+
+</style>
+<body>
+ <p>Scrollbars should work in all the flexboxes.</p>
+</body>
+<script>
+var writingModes = ['horizontal-tb', 'vertical-rl', 'vertical-lr'];
+var flexDirections = ['row', 'column', 'row-reverse', 'column-reverse'];
+var testContents = '';
+writingModes.forEach(function(writingMode) {
+ testContents += "<div class='test-row'>";
+ flexDirections.forEach(function(flexDirection) {
+ var containerClass = 'container ' + writingMode;
+ var flexboxClass = 'flexbox ' + flexDirection;
+ testContents +=
+ "<div class='" + containerClass + "'>" +
+ "<div class='" + flexboxClass + "'>" +
+ "<div></div>" +
+ "</div>" +
+ "</div>";
+ });
+ testContents += "</div>";
+});
+
+document.body.innerHTML += testContents;
+
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-002.html
new file mode 100644
index 00000000000..d69b297ef73
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-overflow-auto-002.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Flexbox: Height with overflow: auto.</title>
+<link href="support/flexbox.css" rel="stylesheet">
+<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
+<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#classic-scrollbars">
+<meta name="assert" content="This test ensures that flexbox with 'flex-direction: row|row-reverse' and a flex item child with 'overflow: auto' has the proper height."/>
+<style>
+.flexbox {
+ border: 5px solid green;
+ position: relative;
+ width: 50px;
+}
+
+.inline-flexbox {
+ border: 5px solid green;
+ position: relative;
+ height: 50px;
+}
+
+.overflow {
+ border: 1px solid red;
+ overflow: auto;
+ min-width: 0;
+ min-height: 0;
+}
+
+.vertical {
+ writing-mode: vertical-rl;
+}
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.flexbox, .inline-flexbox')">
+<div id=log></div>
+<div class="flexbox" data-expected-height="47">
+ <div class="overflow"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox row-reverse" data-expected-height="47">
+ <div class="overflow"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox vertical" data-expected-height="47">
+ <div class="overflow"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox row-reverse vertical" data-expected-height="47">
+ <div class="overflow"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox" data-expected-height="47">
+ <div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox row-reverse" data-expected-height="47">
+ <div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox vertical" data-expected-height="32">
+ <div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="flexbox row-reverse vertical" data-expected-height="32">
+ <div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div>
+</div>
+
+<div class="inline-flexbox column" data-expected-width="47">
+ <div class="overflow"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column-reverse" data-expected-width="47">
+ <div class="overflow"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column vertical" data-expected-width="47">
+ <div class="overflow"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column-reverse vertical" data-expected-width="47">
+ <div class="overflow"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column" data-expected-width="47">
+ <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column-reverse" data-expected-width="47">
+ <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column vertical" data-expected-width="32">
+ <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
+</div>
+
+<div class="inline-flexbox column-reverse vertical" data-expected-width="32">
+ <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div>
+</div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/justify-content_space-between-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/justify-content_space-between-002.html
new file mode 100644
index 00000000000..fde1a731240
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/justify-content_space-between-002.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<title>CSS Flexbox: justify-content: space-between on the last item of a column</title>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#justify-content-property">
+<link rel="bookmark" href="https://crbug.com/690024">
+<meta name="assert" content="This test checks when processing the last item on a column we should not add justify-content space to the row height.">
+<style>
+.flexbox {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ min-height: 500px;
+}
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('.flexbox')">
+<div class="flexbox" data-expected-height="500">
+ <div>First item</div>
+ <div>Second item</div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-002.html
new file mode 100644
index 00000000000..2bb04a26040
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-002.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+<title>CSS Flexbox: correct width for non-overflowing content with flex-direction: column</title>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
+<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#overflow-properties">
+<link rel="help" href="https://crbug.com/580586">
+<meta name="assert" content="This test checks that no unnecessary extra horizontal space is considered for vertical scrollbars for non-overflowing content using flex-direction: column." />
+
+<style>
+body {
+ height: 200vh;
+}
+
+section {
+ height: 400px;
+ display: flex;
+ flex-direction: column;
+}
+
+.side-menu {
+ border: 1px solid black;
+ width: 200px;
+ display: flex;
+ flex-direction: column;
+}
+
+.box-body {
+ height: 1000px;
+ flex: 1 1 0%;
+ display: flex;
+ min-height: 0px;
+}
+
+.list {
+ list-style: none;
+ padding: 0;
+ overflow: auto;
+ flex: 1 1 0;
+}
+
+li {
+ height: 20px;
+ background-color: red;
+}
+</style>
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+<body onload="checkLayout('section')">
+
+<div id=log></div>
+
+<section>
+ <div class="box-body">
+ <div class="side-menu">
+ <ul class="list">
+ <li data-expected-width="200">
+ </li>
+ </ul>
+ </div>
+ <div style="height: 1000px;"></div>
+ </div>
+</section>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/columns-center-with-margins-001-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/columns-center-with-margins-001-ref.html
new file mode 100644
index 00000000000..4c8f69c8a73
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/columns-center-with-margins-001-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link href="../support/flexbox.css" rel="stylesheet">
+ <style>
+ .flexbox {
+ border: 1px solid black;
+ width: 400px;
+ height: 200px;
+ }
+ .item1 {
+ background: lightblue;
+ }
+ .item2 {
+ background: lime;
+ }
+ </style>
+</head>
+<body>
+ <p>The test passes if the flex items are properly centered in each column</p>
+ <div class="flexbox column">
+ <div class="item1 align-self-center">centeredWithMargins</div>
+ <div class="item2 align-self-center">centeredWithAlignSelf</div>
+ </div>
+ <div style="writing-mode: vertical-lr;">
+ <div class="flexbox column">
+ <div class="item1 align-self-center">centeredWithMargins</div>
+ <div class="item2 align-self-center">centeredWithAlignSelf</div>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-overflow-auto-001-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-overflow-auto-001-ref.html
new file mode 100644
index 00000000000..ace792e456c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-overflow-auto-001-ref.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+.test-row {
+ display: flex;
+ margin-bottom: 5px;
+}
+.test-row > div {
+ flex: none;
+}
+
+.container {
+ margin-right: 5px;
+ border: 5px solid lightgreen;
+ width: 100px;
+}
+
+.flexbox {
+ display: block;
+ height: 100px;
+ width: 100px;
+ overflow: auto;
+}
+
+.flexbox > div {
+ width: 200px;
+ height: 200px;
+ background: radial-gradient(at right 60%, red, yellow, green);
+}
+</style>
+</head>
+<body>
+ <p>Scrollbars should work in all the flexboxes.</p>
+</body>
+<script>
+var results = [
+ 'left top', 'left top', 'right top', 'left bottom',
+ 'right top', 'right top', 'right bottom', 'left top',
+ 'left top', 'left top', 'left bottom', 'right top'];
+
+var testContents = '';
+for (var i = 0; i < results.length; ++i) {
+ if (!(i % 4))
+ testContents += "<div class='test-row'>";
+
+ var containerClass = 'container ' + results[i];
+ testContents +=
+ "<div class='" + containerClass + "'>" +
+ "<div class='flexbox'>" +
+ "<div></div>" +
+ "</div>" +
+ "</div>";
+ if (i % 4 == 3)
+ testContents += "</div>";
+}
+
+document.body.innerHTML += testContents;
+
+Array.prototype.forEach.call(document.querySelectorAll(".right"), function(element) {
+ element.firstChild.scrollLeft = 1000;
+});
+
+Array.prototype.forEach.call(document.querySelectorAll(".bottom"), function(element) {
+ element.firstChild.scrollTop = 1000;
+});
+
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-sizing/replaced-fractional-height-from-aspect-ratio.html b/tests/wpt/web-platform-tests/css/css-sizing/replaced-fractional-height-from-aspect-ratio.html
new file mode 100644
index 00000000000..d97c3f133eb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-sizing/replaced-fractional-height-from-aspect-ratio.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1052370" >
+<meta name="assert" content="When determining the size of a replaced element, if it has an aspect ratio of 1/1 then the final height should be exactly equal to its width." />
+<script src="../../resources/check-layout.js"></script>
+<style>
+canvas {
+ float: left;
+ background: green;
+}
+</style>
+<div style="position: relative; width: 254px; zoom: 0.8;">
+ <canvas style="width: 30%;" width="1" height="1"></canvas>
+ <canvas style="width: 30%;" width="708" height="708"></canvas>
+ <canvas id="target" style="width: 60%;" width="2" height="1" data-offset-x="0"></canvas>
+</div>
+<script>
+checkLayout('#target');
+</script>
diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl
index 1b005c3cdb3..5f5320c2055 100644
--- a/tests/wpt/web-platform-tests/interfaces/webxr.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl
@@ -258,7 +258,7 @@ interface XRReferenceSpaceEvent : Event {
dictionary XRReferenceSpaceEventInit : EventInit {
required XRReferenceSpace referenceSpace;
- XRRigidTransform transform;
+ XRRigidTransform? transform = null;
};
dictionary XRPermissionDescriptor: PermissionDescriptor {
diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist
index 65494c70cfb..7c282eefeab 100644
--- a/tests/wpt/web-platform-tests/lint.whitelist
+++ b/tests/wpt/web-platform-tests/lint.whitelist
@@ -322,6 +322,7 @@ SET TIMEOUT: acid/acid3/test.html
*: css/tools/w3ctestlib/*
*: resources/webidl2/*
*: tools/*
+*: */third_party/*
# Build system virtualenv
*: css/tools/_virtualenv/*
@@ -689,7 +690,7 @@ WEB-PLATFORM.TEST:web-bundle/resources/wbn/*.wbn
# https://github.com/web-platform-tests/wpt/issues/16455
# Please consult with ecosystem-infra@chromium.org before adding more.
MISSING DEPENDENCY: idle-detection/interceptor.https.html
-MISSING DEPENDENCY: sms/resources/helper.js
+MISSING DEPENDENCY: credential-management/support/otpcredential-helper.js
MISSING DEPENDENCY: web-nfc/resources/nfc-helpers.js
MISSING DEPENDENCY: shape-detection/resources/shapedetection-helpers.js
MISSING DEPENDENCY: webxr/resources/webxr_util.js
diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html
deleted file mode 100644
index d7cc34663b7..00000000000
--- a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-overflow.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<head>
-<title>Performance Paint Timing Test: FCP with element clipped with overflow</title>
-<style>
- #main {
- width: 100px;
- height: 100px;
- overflow: hidden;
- display: none;
- }
-
- /* contentful class is defined in test_fcp script. */
- #main.contentful {
- display: block;
- }
-
- #text {
- top: 10000px;
- position: relative;
- }
-</style>
-</head>
-<body>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../resources/utils.js"></script>
-<div id="main">
- <div id="text">HELLO</div>
-</div>
-<script>
- test_fcp("First contentful paint fires even when element is hidden due to overflow.")
-</script>
-</body>
-
-</html>
diff --git a/tests/wpt/web-platform-tests/resources/chromium/mock-sms-receiver.js b/tests/wpt/web-platform-tests/resources/chromium/mock-sms-receiver.js
new file mode 100644
index 00000000000..c4aa9a86f2c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resources/chromium/mock-sms-receiver.js
@@ -0,0 +1,51 @@
+'use strict';
+
+const SmsProvider = (() => {
+
+ class MockSmsReceiver {
+
+ constructor() {
+ this.mojoReceiver_ = new blink.mojom.SmsReceiverReceiver(this);
+
+ this.interceptor_ =
+ new MojoInterfaceInterceptor(blink.mojom.SmsReceiver.$interfaceName);
+
+ this.interceptor_.oninterfacerequest = (e) => {
+ this.mojoReceiver_.$.bindHandle(e.handle);
+ }
+ this.interceptor_.start();
+
+ this.returnValues_ = {};
+ }
+
+ async receive() {
+ let call = this.returnValues_.receive ?
+ this.returnValues_.receive.shift() : null;
+ if (!call)
+ return;
+ return call();
+ }
+
+ async abort() {};
+
+ pushReturnValuesForTesting(callName, value) {
+ this.returnValues_[callName] = this.returnValues_[callName] || [];
+ this.returnValues_[callName].push(value);
+ return this;
+ }
+ }
+
+ const mockSmsReceiver = new MockSmsReceiver();
+
+ class SmsProviderChromium {
+ constructor() {
+ Object.freeze(this); // Make it immutable.
+ }
+
+ pushReturnValuesForTesting(callName, callback) {
+ mockSmsReceiver.pushReturnValuesForTesting(callName, callback);
+ }
+ }
+
+ return SmsProviderChromium;
+})();
diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-display-contents-crash.html b/tests/wpt/web-platform-tests/svg/text/reftests/text-display-contents-crash.html
new file mode 100644
index 00000000000..04b6a7e7cf8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-display-contents-crash.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<title>Crash with dynamic creation of absolutely positioned element under display: contents in svg:text.</title>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1611848">
+<style>
+* {
+ position: absolute;
+}
+</style>
+<script>
+ function start () {
+ const text = document.getElementById('text')
+
+ const div = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')
+ div.style.display = "contents";
+
+ const another = document.createElementNS('http://www.w3.org/2000/svg', 'whatevs')
+ text.appendChild(div);
+ document.documentElement.getBoundingClientRect();
+ div.appendChild(another);
+ }
+
+ document.addEventListener('DOMContentLoaded', start)
+</script>
+<svg>
+ <text id='text'>
diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb
index 1bf9d5df0b3..5f8d6806107 100644
--- a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb
+++ b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb
@@ -1,10 +1,10 @@
cask 'safari-technology-preview' do
if MacOS.version <= :mojave
- version '102,061-84687-20200304-286a8fe8-5a00-41ba-9dba-2c42e047ffb1'
- sha256 '2e048fec4a470f5b5d9cffc359ba967bee02cf3cf121e5ea16812077adc5ba60'
+ version '103,061-90754-20200325-37467264-9c34-454c-be4a-1cb87e93c62c'
+ sha256 'f2175a2ca69152b6c1067d47b56d464b0ba0c71323a76137b488a8088a25f44c'
else
- version '102,061-84666-20200304-c2d165f2-2aec-41b2-86ef-0a9407608e2c'
- sha256 'ef9e9ea8990bb63936216fcdf93720b854366d158cad3daf5b812f841f7b5d99'
+ version '103,061-90752-20200325-cc5192c4-619a-45b4-83b5-70a1bed8c912'
+ sha256 '846f2c9e7ebcc293f01ea36c8e1184e2d1bfb985eb3a590fc7c730c40e10a4b6'
end
url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg"
diff --git a/tests/wpt/web-platform-tests/webaudio/js/helpers.js b/tests/wpt/web-platform-tests/webaudio/js/helpers.js
index fbbfc8e0044..3819d127698 100644
--- a/tests/wpt/web-platform-tests/webaudio/js/helpers.js
+++ b/tests/wpt/web-platform-tests/webaudio/js/helpers.js
@@ -216,3 +216,35 @@ function runTest(name)
runTestFunction();
}
+
+// Simpler than audit.js, but still logs the message. Requires
+// `setup("explicit_done": true)` if testing code that runs after the "load"
+// event.
+function equals(a, b, msg) {
+ test(function() {
+ assert_equals(a, b);
+ }, msg);
+}
+function is_true(a, msg) {
+ test(function() {
+ assert_true(a);
+ }, msg);
+}
+
+// This allows writing AudioWorkletProcessor code in the same file as the rest
+// of the test, for quick one off AudioWorkletProcessor testing.
+function URLFromScriptsElements(ids)
+{
+ var scriptTexts = [];
+ for (let id of ids) {
+
+ const e = document.querySelector("script#"+id)
+ if (!e) {
+ throw id+" is not the id of a <script> tag";
+ }
+ scriptTexts.push(e.innerText);
+ }
+ const blob = new Blob(scriptTexts, {type: "application/javascript"});
+
+ return URL.createObjectURL(blob);
+}
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html
new file mode 100644
index 00000000000..9e93f48ab87
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <title>
+ Test get parameterDescriptor as various iterables
+ </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/webaudio/js/helpers.js"></script>
+ </head>
+
+ <body>
+ <script id="params">
+ // A series of AudioParamDescriptors, copied one by one into various iterable
+ // data structures. This is used by both the processor side and the main
+ // thread side, so is in a different script tag.
+ const PARAMS = [
+ {
+ name: "a control-rate parameter",
+ defaultValue: 0.5,
+ minValue: 0,
+ maxValue: 1,
+ automationRate: "a-rate",
+ },
+ {
+ name: "你好",
+ defaultValue: 2.5,
+ minValue: 0,
+ maxValue: 7,
+ automationRate: "a-rate",
+ },
+ {
+ name: "🎶",
+ defaultValue: 8.5,
+ minValue: 0,
+ maxValue: 11115,
+ automationRate: "k-rate",
+ },
+ ];
+ </script>
+ <script id="processors" type="worklet">
+ registerProcessor("set",
+ class SetParamProcessor extends AudioWorkletProcessor {
+ static get parameterDescriptors() {
+ var s = new Set();
+ s.add(PARAMS[0]);
+ s.add(PARAMS[1]);
+ s.add(PARAMS[2]);
+ return s;
+ }
+ constructor() { super(); }
+ process() {
+ }
+ });
+
+ registerProcessor("array",
+ class ArrayParamProcessor extends AudioWorkletProcessor {
+ static get parameterDescriptors() {
+ return PARAMS;
+ }
+ constructor() { super(); }
+ process() { }
+ });
+
+ function* gen() {
+ yield PARAMS[0];
+ yield PARAMS[1];
+ yield PARAMS[2];
+ }
+ registerProcessor("generator",
+ class GeneratorParamProcessor extends AudioWorkletProcessor {
+ static get parameterDescriptors() {
+ return gen();
+ }
+ constructor() { super(); }
+ process() { }
+ });
+ // Test a processor that has a get parameterDescriptors, but it returns
+ // something that is not iterable.
+ try {
+ registerProcessor("invalid",
+ class InvalidParamProcessor extends AudioWorkletProcessor {
+ static get parameterDescriptors() {
+ return 4;
+ }
+ constructor() { super(); }
+ process() { }
+ });
+ throw "This should not have been reached.";
+ } catch (e) {
+ // unclear how to signal success here, but we can signal failure in the
+ // developer console
+ if (e.name != "TypeError") {
+ throw "This should be TypeError";
+ }
+ }
+ // Test a processor that has a get parameterDescriptors, with a duplicate
+ // param name something that is not iterable.
+ try {
+ registerProcessor("duplicate-param-name",
+ class DuplicateParamProcessor extends AudioWorkletProcessor {
+ static get parameterDescriptors() {
+ var p = {
+ name: "a",
+ defaultValue: 1,
+ minValue: 0,
+ maxValue: 1,
+ automationRate: "k-rate",
+ };
+ return [p,p];
+ }
+ constructor() { super(); }
+ process() { }
+ });
+ throw "This should not have been reached.";
+ } catch (e) {
+ // unclear how to signal success here, but we can signal failure in the
+ // developer console
+ if (e.name != "NotSupportedError") {
+ throw "This should be NotSupportedError";
+ }
+ }
+ // Test a processor that has a no get parameterDescriptors.
+ try {
+ registerProcessor("no-params",
+ class NoParamProcessor extends AudioWorkletProcessor {
+ constructor() { super(); }
+ process() { }
+ });
+ } catch (e) {
+ throw "Construction should have worked.";
+ }
+ </script>
+ <script>
+ setup({ explicit_done: true });
+ // Mangle the PARAMS object into a map that has the same shape as what an
+ // AudioWorkletNode.parameter property would
+ var PARAMS_MAP = new Map();
+ for (var param of PARAMS) {
+ var o = param;
+ var name = o.name;
+ delete o.name;
+ PARAMS_MAP.set(name, o);
+ }
+
+ // This compares `lhs` and `rhs`, that are two maplike with the same shape
+ // as PARAMS_MAP.
+ function compare(testname, lhs, rhs) {
+ equals(lhs.size, rhs.size, "Map match in size for " + testname);
+ var i = 0;
+ for (var [k, v] of lhs) {
+ is_true(rhs.has(k), testname + ": " + k + " exists in both maps");
+ var vrhs = rhs.get(k);
+ ["defaultValue", "minValue", "maxValue", "automationRate"].forEach(
+ paramKey => {
+ equals(
+ v[paramKey],
+ vrhs[paramKey],
+ `Values for ${k}.${paramKey} match for ${testname}`
+ );
+ }
+ );
+ }
+ }
+ var ac = new AudioContext();
+ var url = URLFromScriptsElements(["params", "processors"]);
+ ac.audioWorklet
+ .addModule(url)
+ .then(() => {
+ ["set", "array", "generator"].forEach(iterable => {
+ test(() => {
+ var node = new AudioWorkletNode(ac, iterable);
+ compare(iterable, node.parameters, PARAMS_MAP);
+ }, `Creating an AudioWorkletNode with a ${iterable} for
+ parameter descriptor worked`);
+ });
+ })
+ .then(function() {
+ test(function() {
+ assert_throws_dom("InvalidStateError", function() {
+ new AudioWorkletNode(ac, "invalid");
+ });
+ }, `Attempting to create an AudioWorkletNode with an non
+ iterable for parameter descriptor should not work`);
+ })
+ .then(function() {
+ test(() => {
+ new AudioWorkletNode(ac, "no-params");
+ }, `Attempting to create an AudioWorkletNode from a processor
+ that does not have a parameterDescriptors getter should work`);
+ })
+ .then(function() {
+ test(function() {
+ assert_throws_dom("InvalidStateError", function() {
+ new AudioWorkletNode(ac, "duplicate-param-name");
+ });
+ }, `Attempting to create an AudioWorkletNode with two parameter
+ descriptor with the same name should not work`);
+ }).then(function() {
+ done();
+ });
+ </script>
+ </body>
+</html>