diff options
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> |