diff options
154 files changed, 1870 insertions, 600 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 deleted file mode 100644 index f64b45fea6b..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-002.html] - [Hit test float] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini deleted file mode 100644 index f29da48a2a0..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-003.html] - [Miss float below something else] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini deleted file mode 100644 index baa9f1a7541..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-005.html] - [Miss clipped float] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini index a2abfbb3e90..7c466cf783f 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -2,39 +2,12 @@ [[data-expected-height\] 1] expected: FAIL - [[data-expected-height\] 10] - expected: FAIL - [[data-expected-height\] 3] expected: FAIL [[data-expected-height\] 2] expected: FAIL - [[data-expected-height\] 5] - expected: FAIL - - [[data-expected-height\] 4] - expected: FAIL - [[data-expected-height\] 7] expected: FAIL - [[data-expected-height\] 6] - expected: FAIL - - [[data-expected-height\] 9] - expected: FAIL - - [[data-expected-height\] 8] - expected: FAIL - - [[data-expected-height\] 13] - expected: FAIL - - [[data-expected-height\] 12] - expected: FAIL - - [[data-expected-height\] 11] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini deleted file mode 100644 index e5010b774b5..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexitem-stretch-range.html] - 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-iframes.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini index 171592fc08f..6ef8bb1049f 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -2,3 +2,6 @@ [elementsFromPoint on the root document for points in iframe elements] expected: FAIL + [elementsFromPoint on inner documents] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini new file mode 100644 index 00000000000..ee77d05167d --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-001.html.ini @@ -0,0 +1,2 @@ +[backdrop-filters-grayscale-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini new file mode 100644 index 00000000000..c0ac1d5055e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-002.html.ini @@ -0,0 +1,2 @@ +[backdrop-filters-grayscale-002.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini new file mode 100644 index 00000000000..7e2330ecc85 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/filter-effects/backdrop-filters-grayscale-003.html.ini @@ -0,0 +1,2 @@ +[backdrop-filters-grayscale-003.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini new file mode 100644 index 00000000000..7b5c3027187 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/filter-effects/effect-reference-convolve-error-001.html.ini @@ -0,0 +1,2 @@ +[effect-reference-convolve-error-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini new file mode 100644 index 00000000000..180e39f034b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/filter-effects/filters-drop-shadow-001.html.ini @@ -0,0 +1,2 @@ +[filters-drop-shadow-001.html] + 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 e3aa2c0f5fb..b3d30b5580b 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 @@ -312,27 +312,18 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] - expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL [<iframe>: combined response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] - expected: FAIL - - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] - expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] expected: FAIL [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html */*] 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 a63e414f43a..87c807a49ff 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,3 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata-layout-2020/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-layout-2020/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-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_3.html.ini new file mode 100644 index 00000000000..51f8272a6de --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_3.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini new file mode 100644 index 00000000000..8e2b6af33d8 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -0,0 +1,8 @@ +[embedded-opener-remove-frame.html] + expected: TIMEOUT + [opener of discarded nested browsing context] + expected: FAIL + + [opener of discarded auxiliary browsing context] + expected: TIMEOUT + 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 f4f994c5d6f..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: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini new file mode 100644 index 00000000000..178680e5d14 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini @@ -0,0 +1,2 @@ +[script-onerror-insertion-point-2.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini new file mode 100644 index 00000000000..3e7da9f9a61 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini @@ -0,0 +1,4 @@ +[2d.text.draw.fill.maxWidth.fontface.html] + [fillText works on @font-face fonts] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini new file mode 100644 index 00000000000..b857906dd86 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini @@ -0,0 +1,4 @@ +[2d.text.draw.fill.maxWidth.fontface.worker.html] + [fillText works on @font-face fonts] + 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 86a5be6e204..659d83f0afc 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 @@ -44,3 +44,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 38772 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 15790.\n\t[15790\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-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 42287 more errors.\n\tMax AbsError of 1.9900983572006226e+0 at index of 41022.\n\t[41022\]\t-9.9751412868499756e-1\t9.9258422851562500e-1\t1.9900983572006226e+0\t2.0049667323212912e+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 + 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 004169c5c1e..b8b6960bbd7 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 @@ -77,3 +77,6 @@ [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\]\t-1.0346872832000000e+10\t5.6332010030746460e-1\t1.0346872832563320e+10\t1.8367661347280018e+10\t9.0957000000000003e-5\n\t[31081\]\t4.5699145518560934e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 1.0346872832563320e+10 at index of 31080.\n\tMax RelError of 1.8367661347280018e+10 at index of 31080.\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.1879997299240753e-31\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5617870207630095e-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 31080.\n] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini index 10dda3a6659..6d92f8835c6 100644 --- a/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini +++ b/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini @@ -1,7 +1,8 @@ [shared-worker-in-data-url-context.window.html] + expected: TIMEOUT [Create a shared worker in a data url frame] - expected: FAIL + expected: TIMEOUT [Create a data url shared worker in a data url frame] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 6c672ba3c9a..d16e86f65bf 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -179185,6 +179185,19 @@ {} ] ], + "preserve3d-overflow-percent.html": [ + "1c4962001e3f5f55c2a671f43abe217454cc2ae5", + [ + null, + [ + [ + "/common/blank.html", + "!=" + ] + ], + {} + ] + ], "rotate": { "svg-rotate-3args-002.html": [ "5906a2f4041319143b926f75af321b714f66d39b", @@ -202665,13 +202678,39 @@ {} ] ], - "backdrop-filters-grayscale.html": [ - "925c83cd027c1398544d4f6aa7e996f1b14fdac7", + "backdrop-filters-grayscale-001.html": [ + "75fe110b823b6b1e5068af9c75e0ad6e154beb21", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html", + "==" + ] + ], + {} + ] + ], + "backdrop-filters-grayscale-002.html": [ + "971bed88d3abe3b8239e1fc2e47864c8b22a7911", [ null, [ [ - "/css/filter-effects/backdrop-filters-grayscale-ref.html", + "/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html", + "==" + ] + ], + {} + ] + ], + "backdrop-filters-grayscale-003.html": [ + "816846df2a6254f4271f09ee9e273c74d561c4d3", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html", "==" ] ], @@ -203055,6 +203094,45 @@ {} ] ], + "dynamic-filter-changes-001.html": [ + "e2a28a3fe45ba90ad512e47b8756a01680b36511", + [ + null, + [ + [ + "/css/filter-effects/reference/dynamic-filter-changes-001-ref.html", + "==" + ] + ], + {} + ] + ], + "effect-reference-after-001.html": [ + "e8bbc787df5ddd047df3e393d8e07b17c2f95fc9", + [ + null, + [ + [ + "/css/filter-effects/reference/effect-reference-after-001-ref.html", + "==" + ] + ], + {} + ] + ], + "effect-reference-convolve-error-001.html": [ + "11922ef83a4b53e5706d183c9253f83a93d7d128", + [ + null, + [ + [ + "/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html", + "==" + ] + ], + {} + ] + ], "fecolormatrix-type.html": [ "5d003f7f9c5175edfa869567d2fe69b95160644d", [ @@ -203328,6 +203406,19 @@ {} ] ], + "filter-url-to-non-existent-filter-001.html": [ + "6351c903f029ce2325326a177801cdd31af4505d", + [ + null, + [ + [ + "/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html", + "==" + ] + ], + {} + ] + ], "filtered-block-is-container.html": [ "6f99f364e638028098ae10319290e8bf2a9a9457", [ @@ -203380,13 +203471,26 @@ {} ] ], - "filters-drop-shadow.html": [ - "b54851322b111e2a9bd3cba53ca57fab7f93f3ae", + "filters-drop-shadow-001.html": [ + "81fa0cb2ad1bab60976b1d3e844f741f9c143467", + [ + null, + [ + [ + "/css/filter-effects/reference/filters-drop-shadow-001-ref.html", + "==" + ] + ], + {} + ] + ], + "filters-drop-shadow-002.html": [ + "e9eca4da04a02f7311f3805737797258551e111d", [ null, [ [ - "/css/filter-effects/filters-drop-shadow-ref.html", + "/css/filter-effects/reference/filters-drop-shadow-002-ref.html", "==" ] ], @@ -285573,7 +285677,7 @@ [] ], "flexitem-stretch-range-ref.html": [ - "e941a157be0f93da78dfdaedf2c2d701b1bf31f8", + "01c617698e26960960be4210fd726ce102e188bc", [] ], "floated-flexitem-ref.html": [ @@ -302489,7 +302593,7 @@ "properties": { "resources": { "testsuite.js": [ - "27042c787a1bfc3d3ad1d70f91de8aa09433001f", + "0ec25662c2392d4d80b1c67c19eacc3dc138bae0", [] ] } @@ -306863,10 +306967,6 @@ "7978fec4d492b90d9a159ffa07dd4bc05a87f4e2", [] ], - "backdrop-filters-grayscale-ref.html": [ - "eb403f16a0030aca22fefbf919daa987aaa2ee50", - [] - ], "backdrop-filters-hue-rotate-ref.html": [ "c70f6bcf9e315f2a9d39b3a564649d2f2d6b7e5d", [] @@ -307055,10 +307155,6 @@ "aa6c12e33b5bc3779c9a49ee3c9edd69ffe2ed8f", [] ], - "filters-drop-shadow-ref.html": [ - "3776a006095dd3ec5b9ea826e3260c91469711b6", - [] - ], "filters-grayscale-001-ref.html": [ "e219a55d33e234f0ed58a45c1175ca66e01b335a", [] @@ -307080,6 +307176,42 @@ [] ], "reference": { + "backdrop-filters-grayscale-001-ref.html": [ + "eb403f16a0030aca22fefbf919daa987aaa2ee50", + [] + ], + "backdrop-filters-grayscale-002-ref.html": [ + "b241017d17b414944c82240ef756c87c582af9f4", + [] + ], + "backdrop-filters-grayscale-003-ref.html": [ + "9ce975c1ef631dc4e8e59c35fcacf6d9c7483b58", + [] + ], + "dynamic-filter-changes-001-ref.html": [ + "699d57c2a8c087c25079232a443a6e2b72c1e79e", + [] + ], + "effect-reference-after-001-ref.html": [ + "cbcff3fa444c580acc67640ce330edcf898aeeb2", + [] + ], + "effect-reference-convolve-error-001-ref.html": [ + "f718ea6abfbab54333ba674ff0dcd320d8672bcd", + [] + ], + "filter-url-to-non-existent-filter-001-ref.html": [ + "c1aeed8c441e6f72c6faa893d64ae30bdacbec06", + [] + ], + "filters-drop-shadow-001-ref.html": [ + "3776a006095dd3ec5b9ea826e3260c91469711b6", + [] + ], + "filters-drop-shadow-002-ref.html": [ + "4227e8cb140e13cbb88a6b1cc366b32b57c2f923", + [] + ], "filters-opacity-001-ref.html": [ "17d891ee707c36b7d404d9836060d7bb9275e841", [] @@ -307210,6 +307342,10 @@ "8b4b25364e0ffbe09e563e13b567fa57330e48d5", [] ], + "reference.png": [ + "68641b76771abf086dc213b353ac2088fffb931a", + [] + ], "ruler-h-50%.png": [ "cf2eea6b438a11503a89414cbb2f9f1fde55df0c", [] @@ -328814,7 +328950,7 @@ [] ], "mathml-fragments.js": [ - "8376ccf375def30bec02e4226ea189140efcbe65", + "7e2113e95bf549155c9b30a6ca60a365fc384768", [] ], "operator-dictionary.js": [ @@ -330064,7 +330200,7 @@ [] ], "tests2d.yaml": [ - "846dc8b3eedc80171b4ea103b936eaa863b81d6c", + "4ff765bdd7990c70f72c0876cc648f62611bc596", [] ] } @@ -345309,7 +345445,7 @@ [] ], "helpers.js": [ - "27abaaf4766c4a2fe85f1034be8df9145b712f75", + "c355d0586257b802c3f4a401c7ddedad16c860f9", [] ], "resources": { @@ -346276,6 +346412,12 @@ [] ] }, + "simulcast": { + "simulcast.js": [ + "ed08ddca44866367bd66ea3b5a7c3a6f58a85f03", + [] + ] + }, "third_party": { "README.md": [ "56a2295dd103db76836d17fa513f56d09891c586", @@ -381020,6 +381162,20 @@ null, {} ] + ], + "revert-val-004.html": [ + "6a7046c0e467896d8eb76efe7f4ae06409dc288a", + [ + null, + {} + ] + ], + "revert-val-005.html": [ + "7295605d4bb6e4ce875b57c0e58b7294422a0096", + [ + null, + {} + ] ] }, "css-color": { @@ -382535,7 +382691,7 @@ ] ], "overflow-auto-006.html": [ - "4fda7effa7204a9edbf0fc15580c8eec252c6b94", + "be0f8f19abb0b675af648fbd54799ed60d6ab32f", [ null, {} @@ -383601,7 +383757,7 @@ ] ], "forced-color-adjust-invalid.html": [ - "6329305a9ce381adbee2f4d82409214d7a3c2fbe", + "464b07298467e6b9ed82e8c90cf815f4fcc3b9b5", [ null, {} @@ -388825,7 +388981,7 @@ ] ], "property-cascade.html": [ - "5f0b7eb50c21397e0fe2995dd242fa454f78ca7c", + "bb50213d5ce171b98b3569e2fd39fcc3b3b22abb", [ null, {} @@ -388873,6 +389029,13 @@ {} ] ], + "registered-property-revert.html": [ + "3d0473ea4397fab0440355a11eb0bff941a50323", + [ + null, + {} + ] + ], "self-utils.html": [ "b770c86c38269656d77c3e382d3fe0391cdd8cd0", [ @@ -399093,7 +399256,7 @@ ] ], "will-change-invalid.html": [ - "83710ddbce4d05105afac38416f1ce0f343f937c", + "aa99676b3f98d28d6c327ad771f4cd0b35a37a74", [ null, {} @@ -406410,6 +406573,13 @@ {} ] ], + "move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html": [ + "41e012a62e9617f372f85d0a0cedefe8ad42fbd6", + [ + null, + {} + ] + ], "non-html-document.html": [ "ffd2e6f59464c56fac6694856978192ed03a199c", [ @@ -435292,6 +435462,13 @@ {} ] ], + "image-parse-url-base.html": [ + "f8201c4948be8df1132c602afb134b71ebd75768", + [ + null, + {} + ] + ], "img.complete.html": [ "d8d5a84eb7998044fb24847cc0ac5a1185b82bb6", [ @@ -435398,7 +435575,7 @@ ] ], "relevant-mutations.html": [ - "8b8ce7dfe980967ab8153651f83e6dfba7fb1af5", + "db9a7eecc1141ef0a215c3aaadb280eb2d9acbe5", [ null, { @@ -447062,6 +447239,13 @@ {} ] ], + "margin-003.html": [ + "5f0dbf4cc0edcdb406d53f74d55afa500865e392", + [ + null, + {} + ] + ], "padding-001.html": [ "afcd930452655f2265cf5929c28200e0668a3cc4", [ @@ -461150,182 +461334,182 @@ ] ], "2d.text.draw.align.center.html": [ - "4a395296bf05d2352a3ec881551d181bf4a5865a", + "3dfd54b34806d2e8c6576214dd5e68b18bebbbda", [ null, {} ] ], "2d.text.draw.align.center.worker.js": [ - "e252bd4c2029a18a0f1a515c1c62b2e1b6ea2c98", + "41df11ce275e424181368f9745ea5fd598dc7145", [ "offscreen-canvas/text/2d.text.draw.align.center.worker.html", {} ] ], "2d.text.draw.align.end.ltr.html": [ - "0db1858dffb0b9b62b49b6dbb84c4c27870d1813", + "9048f3c9110c1e0852847051d3dce75f2d466bfa", [ null, {} ] ], "2d.text.draw.align.end.ltr.worker.js": [ - "c059df58e60c3c1398e1c33d962ab4940859b4cc", + "8566b5b93051f2f7143acb1494f11f2296d1978a", [ "offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.html", {} ] ], "2d.text.draw.align.end.rtl.html": [ - "9f8f8c464263c43f37d02421a2b9a4755d0940b3", + "db7586cabdc71e43103b8adb30ab0ccd223a8d2f", [ null, {} ] ], "2d.text.draw.align.end.rtl.worker.js": [ - "89011c3691b2f3e82032df0bdcc5588cfe07451e", + "be8462689d4d4f2ff90613c4ebb2fbb2960e6a14", [ "offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.html", {} ] ], "2d.text.draw.align.left.html": [ - "a57aa95073c66fd421e5a5fdf21f1ff43620eb60", + "ce394fb2293f42ca69d802131c834cf9055980b8", [ null, {} ] ], "2d.text.draw.align.left.worker.js": [ - "90964286fa39384cc946aae206b722ef5d48e805", + "f224b958a417f2645e82e9ed26105e91b05a13f6", [ "offscreen-canvas/text/2d.text.draw.align.left.worker.html", {} ] ], "2d.text.draw.align.right.html": [ - "087b379c519ef5b9bb9b3ec6692398ce60ab1d81", + "aeb26b5e07e1b83a30ef52418697e010f878d06b", [ null, {} ] ], "2d.text.draw.align.right.worker.js": [ - "1af5da343f914a08fc54a29faf247d7ad69c8e9a", + "80cf656bd4623d9dba2f49466d03ec90d14507d4", [ "offscreen-canvas/text/2d.text.draw.align.right.worker.html", {} ] ], "2d.text.draw.align.start.ltr.html": [ - "72af4d3ab25c1c0c4f3a947d46f8927b218f8f53", + "ee4f15178b6d2415196522fcc3124320aa99aba8", [ null, {} ] ], "2d.text.draw.align.start.ltr.worker.js": [ - "eb98a053b5cb3936791b1007bfaa3e8b69892f3d", + "c1ac7de15a3ab484545b26553015b2da558db43e", [ "offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.html", {} ] ], "2d.text.draw.align.start.rtl.html": [ - "ab4179a5296f6527750e1a7d5fbe9a4dbb02f4c5", + "33408f3c910d4a82e83d8f603f00b44014fc0725", [ null, {} ] ], "2d.text.draw.align.start.rtl.worker.js": [ - "585ad732f31c2bf77fba3d42e92be79e64f053e1", + "c01e3c4c6b8d4c0d9ce85f8d54b7a1284f9c2305", [ "offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.html", {} ] ], "2d.text.draw.baseline.alphabetic.html": [ - "c64bf9d49973a9b64c8ab3940812aacd20f0352b", + "fa93666c783de20631ab7d92a1704fad754cb1a6", [ null, {} ] ], "2d.text.draw.baseline.alphabetic.worker.js": [ - "3112e118d305443fe996ded9e6228b313360031c", + "d234d3e4f5e707a46c506854610c63b583bf9011", [ "offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.html", {} ] ], "2d.text.draw.baseline.bottom.html": [ - "f5381e3a61c2245657013f54282b1979d2a1f53e", + "ffdc84d54ec96bcaa6b51a82cd6e4cf6ff9bedf4", [ null, {} ] ], "2d.text.draw.baseline.bottom.worker.js": [ - "e8e75fa11af359b352f60efaea2667b4a31c73af", + "0dc46e7ccb042b808ea72d2c833f611e116397d1", [ "offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.html", {} ] ], "2d.text.draw.baseline.hanging.html": [ - "3dc426b792c7162f8c2f013d3ee7453133603942", + "38d44158b768e6100baba0d6b525d95ccbbe3dee", [ null, {} ] ], "2d.text.draw.baseline.hanging.worker.js": [ - "de79c40997c1d4c46bdabf83bebbcdb6b7f103e0", + "c1030c8a5aa9b4a1ad68ec995fa1bb7fc4863892", [ "offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.html", {} ] ], "2d.text.draw.baseline.ideographic.html": [ - "df3f17df2cd9c9c23f845ef578ac7d20421d1901", + "fb1aad2b934d0d6c9647e7a87e05b38913a3cc06", [ null, {} ] ], "2d.text.draw.baseline.ideographic.worker.js": [ - "b4f2770a70f978aa287e63b997139995499ec777", + "f3ca4a1d5a8713dd00bafa8b05e14531a95410ff", [ "offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.html", {} ] ], "2d.text.draw.baseline.middle.html": [ - "cf1a28d9a264ed782980bfea0043951bebfb4edd", + "0a7f356f8e99e46dafb8192a310d608447b6100c", [ null, {} ] ], "2d.text.draw.baseline.middle.worker.js": [ - "9b644c87ac06a37008be8294989b61b0722a3a0f", + "800d6023d492ceda2675049171a42d4641c098ee", [ "offscreen-canvas/text/2d.text.draw.baseline.middle.worker.html", {} ] ], "2d.text.draw.baseline.top.html": [ - "19ebb86517b73c3c1f3c29019a2f30d023f8eee3", + "b9c6d1e57c2cbae0939ba980ce10febdf33b8ff8", [ null, {} ] ], "2d.text.draw.baseline.top.worker.js": [ - "5e886571aaef788cb5e7a9a4b0fcb5f2d4f37ed5", + "1079f146a328cb9aea8f07a2b290be5632beddf6", [ "offscreen-canvas/text/2d.text.draw.baseline.top.worker.html", {} @@ -461346,28 +461530,28 @@ ] ], "2d.text.draw.fill.maxWidth.bound.html": [ - "0dfb4269c92931ee71fbb286a14003e6acd97a3b", + "ef942c013bfa35f27b598fa86aef1f36ef7f6eba", [ null, {} ] ], "2d.text.draw.fill.maxWidth.bound.worker.js": [ - "0b1fe8514a01c579e2b4ceb534455961d0e623ee", + "8300b221894cea0b04f024d490a4b16d180d02c3", [ "offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.html", {} ] ], "2d.text.draw.fill.maxWidth.fontface.html": [ - "f14ca8c02c7ffedd64eb7dc6996429722704697a", + "8a8d68fd2dbf7e0f5ea14c38c0a680f49038b9ca", [ null, {} ] ], "2d.text.draw.fill.maxWidth.fontface.worker.js": [ - "96a3979f5bab6e885bf60961bce60e0a322a692d", + "dfcacffba1203ace267da46f659eb75053386435", [ "offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.html", {} @@ -461430,126 +461614,126 @@ ] ], "2d.text.draw.fontface.html": [ - "285b6e387ecae23ba1e9391b2ca150e500cd8aab", + "f0273f66c2c6cb7300cee750fd22a1c04abf245e", [ null, {} ] ], "2d.text.draw.fontface.notinpage.html": [ - "d9d9708de8dbb80c66ead186add9431f5420c790", + "55b1e71adbe2e9b9a73e5e5b0ee37c71536eb786", [ null, {} ] ], "2d.text.draw.fontface.notinpage.worker.js": [ - "33b9929442168ef7297020134e3954d1fd799bb8", + "d7132bb8befa6c3847047c06b79d445adbe99e95", [ "offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.html", {} ] ], "2d.text.draw.fontface.repeat.html": [ - "ee204a002baa7c7297080dfae8d7e38d8fd6cb60", + "3448c241c8bf7dacd3202a5e7abe959a14a69f13", [ null, {} ] ], "2d.text.draw.fontface.repeat.worker.js": [ - "f278469a6b8acc591d35803bbf6de0c035ac7d38", + "d5774654161aa2fea5a4824e09331d89a9b6be62", [ "offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.html", {} ] ], "2d.text.draw.fontface.worker.js": [ - "eeadc01c74b17bb9cca0942faf3f6f01e10eb3d7", + "2bef1267d87cc5b18e81351aa8e89fd84583422f", [ "offscreen-canvas/text/2d.text.draw.fontface.worker.html", {} ] ], "2d.text.draw.space.basic.html": [ - "a9daf1df14f128255dcb9645cbe600a88de2df82", + "108e7a6b74fdbdf5aedb09a3057afa82ae27d759", [ null, {} ] ], "2d.text.draw.space.basic.worker.js": [ - "b14c246e4014c1b3915165dd44b5ac566d402d3a", + "18d01b82fb2ec670ffc2518de26b3a5fdc8eb44a", [ "offscreen-canvas/text/2d.text.draw.space.basic.worker.html", {} ] ], "2d.text.draw.space.collapse.end.html": [ - "cd11c29baf3c68a1fd014b85edab6cdf942c7448", + "7489fe62341e6f8b031644f3449757571443d281", [ null, {} ] ], "2d.text.draw.space.collapse.end.worker.js": [ - "7b40c640543a94c9f6066cec2c3cbc4381f98752", + "10670f056889b3eceaaa21eafac0e85901c5b735", [ "offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.html", {} ] ], "2d.text.draw.space.collapse.nonspace.html": [ - "1924626c53517989a00f17e327e8066d3124f8cf", + "3241ac7557df61ccbba28a0c7a661013dcbb3bbb", [ null, {} ] ], "2d.text.draw.space.collapse.nonspace.worker.js": [ - "f13bcc931fc795cf7787abf4d119a872033057e1", + "04627cd233189a3b7e8228a6bb000ce3a79c98c7", [ "offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.html", {} ] ], "2d.text.draw.space.collapse.other.html": [ - "586ae37025f7d5e338cf6458da900ae12595236c", + "1afde6d0d4ebc3bdccef687b0b88b46fa03ba737", [ null, {} ] ], "2d.text.draw.space.collapse.other.worker.js": [ - "0f88a4412bc4827eedfb6cb92874686e7e8f91fc", + "375b18421a08afd4b76ad41f7bf9a9d5b0df4a3b", [ "offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.html", {} ] ], "2d.text.draw.space.collapse.space.html": [ - "ac0d0b4e5986f538c7cba0c396880b2c23c38d3b", + "621d052e55c29bce9b9b51188883c045d97094dc", [ null, {} ] ], "2d.text.draw.space.collapse.space.worker.js": [ - "2ff1ba55637d69af9a203b5fe2ac9bcec07e2c5f", + "0e367af4e2497b1cf655d020a5307af8aff07020", [ "offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.html", {} ] ], "2d.text.draw.space.collapse.start.html": [ - "a9e1f5a47df80d803f03d3b75d7fd817afc9a5af", + "3b86a0a1b429067e4d5af62c01a659ce09447ec0", [ null, {} ] ], "2d.text.draw.space.collapse.start.worker.js": [ - "a9a8cc277835bed200f525a1d52fc1080e2acb5b", + "81c6a571a0ad27735721ad4dd1db40a75b50828d", [ "offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.html", {} @@ -463625,10 +463809,12 @@ ] ], "two-ids.https.html": [ - "630f07280790e0631fe1c2e795194bd541ffee72", + "da9ab2e951171050bba0b91557657d1c953824b9", [ null, - {} + { + "timeout": "long" + } ] ] } @@ -465592,7 +465778,7 @@ ] ], "pointerevent_pointercapture-in-custom-element.html": [ - "e8f143b309f2dbdda19c90e1aef1865ecf889f47", + "6f7c9058d676091788c7f1e3cad961bad54eb2c8", [ null, { @@ -465601,7 +465787,7 @@ ] ], "pointerevent_pointercapture-in-shadow-dom.html": [ - "8279665f97b0ee522b9bd5710d5ec5ad677df85a", + "94636231a6f2a53ffcb3478fea225067b636265f", [ null, { @@ -489031,7 +489217,7 @@ ] ], "svglength-additive-by-8.html": [ - "c61cb65ebd923f82d3c44ae00328e4712d214019", + "459fc7382a596292d913ab9643be6b32a32726e2", [ null, {} @@ -490047,14 +490233,14 @@ ] ], "stroke-dasharray-invalid.svg": [ - "0c356b6433955588c7b0ed32d9ff8c2eab4c7619", + "53a9640c8ffbcb2ec511ea808f02574e934e07b8", [ null, {} ] ], "stroke-dasharray-valid.svg": [ - "e47ebc62a1296f75c42af980b85073ebe135605b", + "9326118ceb886c64c936a0dbbf789b87f7302391", [ null, {} @@ -490068,14 +490254,14 @@ ] ], "stroke-dashoffset-invalid.svg": [ - "64e2eec764a13bab403172a1568d085d745033d2", + "2040355e2282a59d95a5ace4e1114b0cd14c4741", [ null, {} ] ], "stroke-dashoffset-valid.svg": [ - "f34774e68d7afa7a336ed7cbd30b44695451d74d", + "fe7ba12c8870a556b7fd66d74bb18bc5cbf84cf4", [ null, {} @@ -490187,14 +490373,14 @@ ] ], "stroke-width-invalid.svg": [ - "0d3f63d077f29a0a36f6443164dc7f24421a3f62", + "2111e376ac4000096cd13e939ecce1cb652e805f", [ null, {} ] ], "stroke-width-valid.svg": [ - "f90781284dcf54b2e864e0607ae3e880a40531e1", + "1ee0449afae675b84f1118875ae21c3c7aee67cc", [ null, {} @@ -500697,7 +500883,17 @@ ] ], "getcredential-passing.https.html": [ - "c5237d2cda27e573ee591e95fdad92fae06e56a7", + "1af35aa9cb14327d3d1d4ea660b7380d6b0f65bd", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "getcredential-rk-passing.https.html": [ + "8c0254fee4258478e5920c30f693c84e07cfcb2e", [ null, { @@ -502809,7 +503005,16 @@ null, {} ] - ] + ], + "simulcast": { + "basic.https.html": [ + "ae2e7eec11b85bb0f5b0444e6e6cf7123e7e26e0", + [ + null, + {} + ] + ] + } }, "webrtc-extensions": { "RTCRtpParameters-maxFramerate.html": [ 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 deleted file mode 100644 index f64b45fea6b..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-002.html] - [Hit test float] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini deleted file mode 100644 index f29da48a2a0..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-003.html] - [Miss float below something else] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini deleted file mode 100644 index baa9f1a7541..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-005.html] - [Miss clipped float] - expected: FAIL - diff --git a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini index 94a3570d26b..076c791cd3d 100644 --- a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -8,6 +8,9 @@ [[data-expected-height\] 3] expected: FAIL - [[data-expected-height\] 4] + [[data-expected-height\] 1] + expected: FAIL + + [[data-expected-height\] 2] expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini b/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini deleted file mode 100644 index e5010b774b5..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flexitem-stretch-range.html] - 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-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini index 171592fc08f..6ef8bb1049f 100644 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -2,3 +2,6 @@ [elementsFromPoint on the root document for points in iframe elements] expected: FAIL + [elementsFromPoint on inner documents] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini new file mode 100644 index 00000000000..ee77d05167d --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-001.html.ini @@ -0,0 +1,2 @@ +[backdrop-filters-grayscale-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini new file mode 100644 index 00000000000..c0ac1d5055e --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-002.html.ini @@ -0,0 +1,2 @@ +[backdrop-filters-grayscale-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini new file mode 100644 index 00000000000..7e2330ecc85 --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale-003.html.ini @@ -0,0 +1,2 @@ +[backdrop-filters-grayscale-003.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini deleted file mode 100644 index 2bc222e8e5e..00000000000 --- a/tests/wpt/metadata/css/filter-effects/backdrop-filters-grayscale.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[backdrop-filters-grayscale.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini b/tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini new file mode 100644 index 00000000000..7b5c3027187 --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/effect-reference-convolve-error-001.html.ini @@ -0,0 +1,2 @@ +[effect-reference-convolve-error-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini b/tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini new file mode 100644 index 00000000000..180e39f034b --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/filters-drop-shadow-001.html.ini @@ -0,0 +1,2 @@ +[filters-drop-shadow-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini b/tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini deleted file mode 100644 index f2f0dfffb8d..00000000000 --- a/tests/wpt/metadata/css/filter-effects/filters-drop-shadow.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[filters-drop-shadow.html] - type: reftest - 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 81b31a1596f..0d56c1a0b15 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,27 +312,18 @@ [fetch(): separate response Content-Type: text/plain ] expected: NOTRUN - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] - expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL [<iframe>: combined response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] - expected: FAIL - - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] - expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] expected: FAIL [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html */*] 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 61682d248e2..30e1b851fd4 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,3 @@ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL - [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/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_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini new file mode 100644 index 00000000000..51f8272a6de --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_3.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini index c757b400205..fd369192a02 100644 --- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini +++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -1,5 +1,5 @@ [embedded-opener-remove-frame.html] - expected: CRASH + expected: TIMEOUT [opener and "removed" embedded documents] expected: FAIL 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 e440b1e38c6..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: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini new file mode 100644 index 00000000000..178680e5d14 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini @@ -0,0 +1,2 @@ +[script-onerror-insertion-point-2.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini new file mode 100644 index 00000000000..3e7da9f9a61 --- /dev/null +++ b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html.ini @@ -0,0 +1,4 @@ +[2d.text.draw.fill.maxWidth.fontface.html] + [fillText works on @font-face fonts] + expected: FAIL + diff --git a/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini new file mode 100644 index 00000000000..b857906dd86 --- /dev/null +++ b/tests/wpt/metadata/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js.ini @@ -0,0 +1,4 @@ +[2d.text.draw.fill.maxWidth.fontface.worker.html] + [fillText works on @font-face fonts] + 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 a012bab4355..b4279e25e58 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 @@ -113,3 +113,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 38772 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 15790.\n\t[15790\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-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 42287 more errors.\n\tMax AbsError of 1.9900983572006226e+0 at index of 41022.\n\t[41022\]\t-9.9751412868499756e-1\t9.9258422851562500e-1\t1.9900983572006226e+0\t2.0049667323212912e+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 + 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 059fadbd2df..cb0e30a2ee1 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 @@ -308,3 +308,6 @@ [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\]\t-1.0346872832000000e+10\t5.6332010030746460e-1\t1.0346872832563320e+10\t1.8367661347280018e+10\t9.0957000000000003e-5\n\t[31081\]\t4.5699145518560934e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 1.0346872832563320e+10 at index of 31080.\n\tMax RelError of 1.8367661347280018e+10 at index of 31080.\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.1879997299240753e-31\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5617870207630095e-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 31080.\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini index 10dda3a6659..6d92f8835c6 100644 --- a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini +++ b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini @@ -1,7 +1,8 @@ [shared-worker-in-data-url-context.window.html] + expected: TIMEOUT [Create a shared worker in a data url frame] - expected: FAIL + expected: TIMEOUT [Create a data url shared worker in a data url frame] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html new file mode 100644 index 00000000000..6a7046c0e46 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-004.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<title>CSS Cascade: using 'revert' with the 'all' property</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + div { + display: inline; + } + .revert { + all: revert; + } +</style> +<div id=div></div> +<script> + test(function() { + let cs = getComputedStyle(div); + assert_equals(cs.display, 'inline'); + div.className = 'revert'; + assert_equals(cs.display, 'block'); + }, 'The revert keyword works with the all property'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html new file mode 100644 index 00000000000..7295605d4bb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-005.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<title>CSS Cascade: 'revert' in css-logical properties</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #h1_physical { + margin: 0px; + margin: revert; + } + #h1_logical { + margin: 0px; + margin-inline-start: revert; + margin-inline-end: revert; + margin-block-start: revert; + margin-block-end: revert; + } +</style> +<h1 id=h1_physical></h1> +<h1 id=h1_logical></h1> +<h1 id=ref></h1> +<script> + test(function() { + let actual = getComputedStyle(h1_physical).marginTop; + let expected = getComputedStyle(ref).marginTop; + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(expected, '0px'); + assert_equals(actual, expected); + }, 'The revert keyword works with physical properties'); + + test(function() { + let actual = getComputedStyle(h1_logical).marginTop; + let expected = getComputedStyle(ref).marginTop; + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(expected, '0px'); + assert_equals(actual, expected); + }, 'The revert keyword works with logical properties'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html b/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html index 4fda7effa72..be0f8f19abb 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/overflow-auto-006.html @@ -42,14 +42,6 @@ <div class="overflow"><div style="width: 100px; height: 20px"></div></div> </div> -<div class="flexbox vertical to-be-checked" check-height check-accounts-scrollbar> - <div class="overflow"><div style="width: 100px; height: 20px"></div></div> -</div> - -<div class="flexbox row-reverse vertical to-be-checked" check-height check-accounts-scrollbar> - <div class="overflow"><div style="width: 100px; height: 20px"></div></div> -</div> - <div class="flexbox to-be-checked" check-height check-accounts-scrollbar> <div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div> </div> @@ -66,14 +58,6 @@ <div class="overflow align-self-baseline"><div style="width: 100px; height: 20px"></div></div> </div> -<div class="inline-flexbox column to-be-checked" check-width check-accounts-scrollbar> - <div class="overflow"><div style="width: 20px; height: 100px"></div></div> -</div> - -<div class="inline-flexbox column-reverse to-be-checked" check-width check-accounts-scrollbar> - <div class="overflow"><div style="width: 20px; height: 100px"></div></div> -</div> - <div class="inline-flexbox column vertical to-be-checked" check-width check-accounts-scrollbar> <div class="overflow"><div style="width: 20px; height: 100px"></div></div> </div> @@ -82,14 +66,6 @@ <div class="overflow"><div style="width: 20px; height: 100px"></div></div> </div> -<div class="inline-flexbox column to-be-checked" check-width check-accounts-scrollbar> - <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div> -</div> - -<div class="inline-flexbox column-reverse to-be-checked" check-width check-accounts-scrollbar> - <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div> -</div> - <div class="inline-flexbox column vertical to-be-checked" check-width> <div class="overflow align-self-baseline"><div style="width: 20px; height: 100px"></div></div> </div> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html index e941a157be0..01c617698e2 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html @@ -3,7 +3,7 @@ <body> <p>When stretching a range input, the thumb should be centered vertically.</p> <div style="height: 200px;"> - <input type="range" style="width: 100%; height: 100%; margin: 0;"> + <input type="range" style="width: 100%; height: 100%; margin: 0; box-sizing: border-box;"> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html b/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html index 6329305a9ce..464b0729846 100644 --- a/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-forced-color-adjust/parsing/forced-color-adjust-invalid.html @@ -10,6 +10,5 @@ test_invalid_value("forced-color-adjust", "none none"); test_invalid_value("forced-color-adjust", "none auto"); test_invalid_value("forced-color-adjust", "1"); - test_invalid_value("forced-color-adjust", "revert"); test_invalid_value("forced-color-adjust", "default"); </script> diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html index 5f0b7eb50c2..bb50213d5ce 100644 --- a/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html +++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/property-cascade.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#the-registerproperty-function" /> -<meta name="assert" content="Verifies that registering a propety does not affect the cascade" /> +<meta name="assert" content="Verifies that registering a property does not affect the cascade" /> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html new file mode 100644 index 00000000000..3d0473ea439 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1" /> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #parent { + --inherited: 10px; + --non-inherited: 10px; + } + #child { + --inherited: 20px; + --non-inherited: 20px; + --inherited: revert; + --non-inherited: revert; + } +</style> +<div id=parent> + <div id=child> + </div> +</div> +<script> + +CSS.registerProperty({ + name: "--inherited", + syntax: "<length>", + initialValue: "0px", + inherits: true +}); + +CSS.registerProperty({ + name: "--non-inherited", + syntax: "<length>", + initialValue: "0px", + inherits: false +}); + +test(function(){ + let cs = getComputedStyle(child); + assert_equals(cs.getPropertyValue('--inherited'), '10px'); +}, 'Inherited registered custom property can be reverted'); + +test(function(){ + let cs = getComputedStyle(child); + assert_equals(cs.getPropertyValue('--non-inherited'), '0px'); +}, 'Non-inherited registered custom property can be reverted'); + +</script> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html b/tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html new file mode 100644 index 00000000000..1c4962001e3 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-transforms/preserve3d-overflow-percent.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Overflow with preserve-3d and percentage-transformed parent is computed using the right reference box</title> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#transform-style-property"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1626840"> +<link rel="mismatch" href="/common/blank.html"> +<style> +:root { + overflow: hidden; +} +body { + margin: 0; + font-size: 28px; +} +#map { + width: 100%; + height: 100%; + backface-visibility: hidden; +} +.floor { + width: 100%; + height: 100vh; +} +.skew { + height: 20em; + width: 20em; + position: relative; + left: 50%; + top: calc(50% + 1.5em); + transform-origin: 0% 0%; + transform: rotateX(45deg) rotateZ(-45deg) translateX(-50%) translateY(-50%); + transform-style: preserve-3d; +} +.cylinder { + position: absolute; + background-color: green; + transform-style: preserve-3d; + width: 7em; + height: 7em; + transform: translateZ(1em); +} +</style> +<div id="map"> + <div class="floor"> + <div class="skew" style="width: 13em; height: 47em; left: calc(50% + 0em); top: calc(50% + 0.5em);"> + <div class="cylinder" style="left: calc(1.5em + 0em); top: calc(38em + 0em);"></div> + </div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js index 27042c787a1..0ec25662c23 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js @@ -33,6 +33,10 @@ const gCssWideKeywordsExamples = [ description: 'unset keyword', input: new CSSKeywordValue('initial') }, + { + description: 'revert keyword', + input: new CSSKeywordValue('revert') + }, ]; const gVarReferenceExamples = [ diff --git a/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html b/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html index 83710ddbce4..aa99676b3f9 100644 --- a/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-will-change/parsing/will-change-invalid.html @@ -22,6 +22,7 @@ test_invalid_value("will-change", "contents, auto"); test_invalid_value("will-change", "transform, initial"); test_invalid_value("will-change", "transform, inherit"); test_invalid_value("will-change", "transform, unset"); +test_invalid_value("will-change", "transform, revert"); test_invalid_value("will-change", "transform, default"); // will-change additionally excludes the following from <custom-ident> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html new file mode 100644 index 00000000000..75fe110b823 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<title>CSS Backdrop Filters: Grayscale(50%)</title> +<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#supported-filter-functions"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=831485"> +<link rel="match" href="reference/backdrop-filters-grayscale-001-ref.html"> +<meta name="assert" content="Check that backdrop-filter works with grayscale(50%)."/> +<style> +.square { + position: absolute; + width: 100px; + height: 100px; + top: 100px; + left: 100px; + background: blue; +} + +.filt { + backdrop-filter: grayscale(50%); + position: absolute; + width: 200px; + height: 200px; + top: 50px; + left: 50px; +} + +.greenbox { + position: absolute; + width: 50px; + height: 50px; + top: 75px; + left: 75px; + background: green; +} +</style> +<p>You should see a dark blue rectangle with a green box.</p> +<div class="square"></div> +<div class="filt"> + <div class="greenbox"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html new file mode 100644 index 00000000000..971bed88d3a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Backdrop Filters: Grayscale(100%) with transparent background color</title> +<link rel="author" title="Hendrik Wagenaar" href="mailto:hendrikw@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#supported-filter-functions"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=497522"> +<link rel="match" href="reference/backdrop-filters-grayscale-002-ref.html"> +<meta name="assert" content="Check that backdrop-filter works with grayscale(100%) and a transparent background color."/> + +<style> +div { + width: 100px; + height: 100px; + position: absolute; +} + +.background_object { + left: 10px; + top: 10px; + background: orange; +} + +.grayscale_backdrop { + left: 60px; + top: 60px; + background: #fff0; + backdrop-filter: grayscale(100%); +} +</style> +</head> + +<body> + <div class="background_object"></div> + <div class="grayscale_backdrop"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html new file mode 100644 index 00000000000..816846df2a6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Backdrop Filters: Grayscale(100%) with no background</title> +<link rel="author" title="Jay Dasika" href="mailto:jaydasika@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#supported-filter-functions"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=527452"> +<link rel="match" href="reference/backdrop-filters-grayscale-003-ref.html"> +<meta name="assert" content="Check that backdrop-filter works with grayscale(100%) and no background."/> + +<style> +div { + width: 100px; + height: 100px; + position: absolute; +} + +.background_object { + left: 10px; + top: 10px; + background: orange; +} + +.grayscale_backdrop { + left: 60px; + top: 60px; + backdrop-filter: grayscale(100%); +} +</style> +</head> + +<body> + <div class="background_object"></div> + <div class="grayscale_backdrop"></div> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html b/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html deleted file mode 100644 index 925c83cd027..00000000000 --- a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<title>CSS Backdrop Filters Animation: Grayscale</title> -<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org"> -<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> -<link rel="match" href="backdrop-filters-grayscale-ref.html"> -<style> - .square { - position: absolute; - width: 100px; - height: 100px; - top: 100px; - left: 100px; - background: blue; - } - .filt { - backdrop-filter: grayscale(50%); - position: absolute; - width: 200px; - height: 200px; - top: 50px; - left: 50px; - } - .greenbox { - position: absolute; - width: 50px; - height: 50px; - top: 75px; - left: 75px; - background: green; - } -</style> -<p>You should see a dark blue rectangle with a green box.</p> -<div class="square"></div> -<div class="filt"> - <div class="greenbox"></div> -</div> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html b/tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html new file mode 100644 index 00000000000..e2a28a3fe45 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title>CSS Filters: dynamic filter changes on images with will-change: transform</title> +<link rel="author" title="Noel Gordon" href="mailto:noel@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=405803"> +<link rel="match" href="reference/dynamic-filter-changes-001-ref.html"> +<meta name="assert" content="A filtered image should be visible after adding a filter to an image with will-change: transform."/> + +<style> +.filter { + filter: invert(100%); +} +</style> + +<script src="/common/reftest-wait.js"></script> +<script> +function load(element) { + element.classList.add('filter'); + takeScreenshotDelayed(0); +} +</script> + +<body> + <img style="will-change: transform" onload="load(this)" src="/images/green-256x256.png"> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html new file mode 100644 index 00000000000..e8bbc787df5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-after-001.html @@ -0,0 +1,17 @@ +<!doctype html> +<title>SVG Filters: feColorMatrix filter</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feColorMatrixElement"> +<link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=90405"> +<link rel="match" href="reference/effect-reference-after-001-ref.html"> +<meta name="assert" content="Check that a reference filter with forward references work"/> +<body> +<img style="filter: url(#MyFilter);" src="support/reference.png"> +<svg width="0px" height="0px"> + <defs> + <filter id="MyFilter"> + <feColorMatrix type="hueRotate" values="180"/> + </filter> + </defs> +</svg> +</body> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html new file mode 100644 index 00000000000..11922ef83a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/effect-reference-convolve-error-001.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<title>SVG Filters: feConvolveMatrix filter</title> +<link rel="author" title="Fredrik Söderquist" href="mailto:fs@opera.com"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feConvolveMatrixElement"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#ColorInterpolationFiltersProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feColorMatrixElement"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=533457"> +<link rel="match" href="reference/effect-reference-convolve-error-001-ref.html"> +<meta name="assert" content="feConvolveMatrix without a kernelMatrix acts as a pass through filter"/> +<div style="width: 100px; height: 100px; background-color: red; filter: url(#f)"></div> +<svg height="0"> + <filter id="f" x="0" y="0" width="1" height="1"> + <feConvolveMatrix/> + <feColorMatrix values="1 0 0 0 0, + 0 1 0 0 0.5, + 0 0 1 0 0, + 0 0 0 1 1" + color-interpolation-filters="sRGB"/> + </filter> +</svg> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html b/tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html new file mode 100644 index 00000000000..6351c903f02 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<title>CSS Filters: url() with non-existent filter reference</title> +<link rel="author" title="Justin Novosad" href="mailto:junov@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty"> +<link rel="help" href="https://drafts.csswg.org/css-values-4/#local-urls"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=419429"> +<link rel="match" href="reference/filter-url-to-non-existent-filter-001-ref.html"> +<meta name="assert" content="Tests that a non-existent filter reference is gracefully ignored."/> + +<marquee> + <li style="filter: url(#foo); color: white"></li> +</marquee> +<!-- Test passes by not crashing --> +<p>PASS</p> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow.html b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-001.html index b54851322b1..81fa0cb2ad1 100644 --- a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow.html +++ b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-001.html @@ -6,7 +6,7 @@ <link rel="reviewer" title="Dirk Schulze" href="mailto:dschulze@adobe.com"> <link rel="help" href="https://www.w3.org/TR/filter-effects-1/#funcdef-filter-drop-shadow"> <link rel="help" href="http://www.w3.org/TR/filter-effects-1/#dropshadowEquivalent"> - <link rel="match" href="filters-drop-shadow-ref.html"> + <link rel="match" href="reference/filters-drop-shadow-001-ref.html"> <meta name="flags" content=""> <meta name="assert" content="This test verifies that the drop-shadow shorthand works. Green box with green shadow. The shadows appear 10px down and 20px right under the Green box. The red box must not appear under the Green box."> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html new file mode 100644 index 00000000000..e9eca4da04a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-002.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<title>CSS Filters: drop-shadow filter on element with clipped children</title> +<link rel="author" title="Stephen White" href="mailto:senorblanco@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-1/#FilterProperty"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=350411"> +<link rel="match" href="reference/filters-drop-shadow-002-ref.html"> +<meta name="assert" content="Check that clipping gets correctly applied on children of a container with a drop-shadow filter in effect."/> + +<style> +.container { + filter: drop-shadow(5px 5px 5px black); +} +.circle-mask { + border-radius: 80px; + overflow: hidden; + width: 100px; + height: 100px; + position: absolute; +} +.green-box { + width: 100px; + height: 100px; + background-color: green; +} +</style> +<div class="container"> + <div class="circle-mask"> + <div class="green-box"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html index eb403f16a00..eb403f16a00 100644 --- a/tests/wpt/web-platform-tests/css/filter-effects/backdrop-filters-grayscale-ref.html +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html new file mode 100644 index 00000000000..b241017d17b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-002-ref.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> +<style> +div { + width: 100px; + height: 100px; + position: absolute; +} + +.background_object { + left: 10px; + top: 10px; + background: orange; +} + +.grayscale { + left: 60px; + top: 60px; + width: 50px; + height: 50px; + background: #ACACAC; +} +</style> +</head> +<body> + <div class="background_object"></div> + <div class="grayscale"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html new file mode 100644 index 00000000000..9ce975c1ef6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/backdrop-filters-grayscale-003-ref.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> +<style> +div { + width: 100px; + height: 100px; + position: absolute; +} + +.background_object { + left: 10px; + top: 10px; + background: orange; +} + +.grayscale { + left: 60px; + top: 60px; + width: 50px; + height: 50px; + background: #ACACAC; +} +</style> +</head> +<body> + <div class="background_object"></div> + <div class="grayscale"></div> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html new file mode 100644 index 00000000000..699d57c2a8c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/dynamic-filter-changes-001-ref.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> +<style> + .filter { + transform: translateZ(0); + filter: invert(100%); + } +</style> + +<!-- There should be a bright pink box on this page --> +<body> + <img class="filter" src="/images/green-256x256.png"> +</body> + +</html> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html new file mode 100644 index 00000000000..cbcff3fa444 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-after-001-ref.html @@ -0,0 +1,12 @@ +<!doctype html> +<html> + <body> + <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="0px" height="0px"> + <defs> + <filter id="MyFilter"> + <feColorMatrix type="hueRotate" values="180"/> + </filter> + </defs> + </svg><img style="filter: url(#MyFilter);" src="../support/reference.png"> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html new file mode 100644 index 00000000000..f718ea6abfb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/effect-reference-convolve-error-001-ref.html @@ -0,0 +1,2 @@ +<!DOCTYPE html> +<div style="width: 100px; height: 100px; background-color: green"></div> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html new file mode 100644 index 00000000000..c1aeed8c441 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/filter-url-to-non-existent-filter-001-ref.html @@ -0,0 +1,5 @@ +<!DOCTYPE html> +<marquee> + <li style="color: white"></li> +</marquee> +<p>PASS</p> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-001-ref.html index 3776a006095..3776a006095 100644 --- a/tests/wpt/web-platform-tests/css/filter-effects/filters-drop-shadow-ref.html +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html new file mode 100644 index 00000000000..4227e8cb140 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/filters-drop-shadow-002-ref.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<style> +.container { + filter: drop-shadow(5px 5px 5px black); +} +.circle-mask { + border-radius: 80px; + overflow: hidden; + width: 100px; + height: 100px; +} +.green-box { + width: 100px; + height: 100px; + background-color: green; +} +</style> +<div class="container"> + <div class="circle-mask"> + <div class="green-box"></div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png b/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png Binary files differnew file mode 100644 index 00000000000..68641b76771 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/support/reference.png diff --git a/tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html b/tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html new file mode 100644 index 00000000000..41e012a62e9 --- /dev/null +++ b/tests/wpt/web-platform-tests/editing/other/move-inserted-node-from-DOMNodeInserted-during-exec-command-insertHTML.html @@ -0,0 +1,27 @@ +<!doctype html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div contenteditable> +<p id="p1"><br></p> +<p id="p2"></p> +</div> +<script> +"use strict"; +let editor = document.querySelector("[contenteditable]"); +let p1 = document.getElementById("p1"); +let p2 = document.getElementById("p2"); +p1.addEventListener("DOMNodeInserted", event => { + if (event.target.localName === "i") { + p2.appendChild(event.target); + } +}); +document.getSelection().collapse(p1, 0); +document.execCommand("insertHTML", false, + "<b>bold1</b><i>italic1</i><b>bold2</b><i>italic2</i>"); +test(function () { + assert_in_array(p1.innerHTML, ["<b>bold1</b><b>bold2</b><br>", "<b>bold1</b><b>bold2</b>"]); +}, "First <p> element should have only <b> elements"); +test(function () { + assert_equals(p2.innerHTML, "<i>italic1</i><i>italic2</i>"); +}, "Second <p> element should have only <i> elements"); +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html new file mode 100644 index 00000000000..f8201c4948b --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-parse-url-base.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> + <title>Image load parses URL after microtask runs</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<body> +<img id="img"> +<script> +const t = async_test("An image request's parsed URL should be affected by a " + + "dynamically-inserted <base>, if it was inserted before " + + "the image request microtask runs"); + +t.step(() => { + const elm = document.getElementById('img'); + elm.src = 'resources/image.png'; + elm.onload = t.unreached_func("The image should have failed to load, as " + + "the request URL should be affected by the " + + "<base> element"); + elm.onerror = t.step_func_done(); + + const base = document.createElement("base"); + base.setAttribute("href", "bogus/"); + document.head.appendChild(base); +}); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html index 8b8ce7dfe98..db9a7eecc11 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html @@ -31,6 +31,7 @@ <img crossorigin=use-credentials data-desc="crossorigin use-credentials to absent, src absent"> <img crossorigin=use-credentials data-desc="crossorigin use-credentials to empty, src absent"> <img crossorigin=use-credentials data-desc="crossorigin use-credentials to anonymous, src absent"> +<img crossorigin=use-credentials data-desc="crossorigin use-credentials to invalid, src absent"> <img src="/images/green-2x2.png" data-desc="crossorigin absent to empty, src already set"> <img src="/images/green-2x2.png" data-desc="crossorigin absent to anonymous, src already set"> @@ -42,6 +43,7 @@ <img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to absent, src already set"> <img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to empty, src already set"> <img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to anonymous, src already set"> +<img src="/images/green-2x2.png" crossorigin=use-credentials data-desc="crossorigin use-credentials to invalid, src already set"> <img src="/images/green-2x2.png" data-desc="inserted into picture"><picture></picture> @@ -220,6 +222,10 @@ onload = function() { img.crossOrigin = 'anonymous'; }, 'timeout'); + t('crossorigin use-credentials to invalid, src absent', function(img) { + img.crossOrigin = 'foobar'; + }, 'timeout'); + // When src is set, changing the crossorigin attribute state MUST generate // events. @@ -263,6 +269,10 @@ onload = function() { img.crossOrigin = 'anonymous'; }, 'load'); + t('crossorigin use-credentials to invalid, src already set', function(img) { + img.crossOrigin = 'foobar'; + }, 'load'); + t('inserted into picture', function(img) { img.nextSibling.appendChild(img); }, 'load'); diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html new file mode 100644 index 00000000000..5f0dbf4cc0e --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-003.html @@ -0,0 +1,93 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>margin</title> +<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#layout-algorithms"> +<meta name="assert" content="Verify that margin is taken into account on children."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/mathml/support/feature-detection.js"></script> +<script src="/mathml/support/mathml-fragments.js"></script> +<script src="/mathml/support/layout-comparison.js"></script> +<script> + var epsilon = 1; + + setup({ explicit_done: true }); + window.addEventListener("load", runTests); + + function runTests() { + + for (tag in MathMLFragments) { + if (!FragmentHelper.isValidChildOfMrow(tag) || + FragmentHelper.isEmpty(tag) || + FragmentHelper.isTokenElement(tag) || + tag == "semantics" || + tag == "maction" || + tag == "mtable") + continue; + + test(function() { + assert_true(MathMLFeatureDetection[`has_${tag}`](), `${tag} is supported`); + + document.body.insertAdjacentHTML("beforeend", `<hr/><div>\ +<div style="display: inline-block; border: 1px dashed blue;"><math>${MathMLFragments[tag]}</math></div><br/>\ +<div style="display: inline-block; border: 1px dashed green;"><math>${MathMLFragments[tag]}</math></div>\ +</div>`); + + var div = document.body.lastElementChild; + var elementShrinkWrapContainer = div.firstElementChild; + var element = elementShrinkWrapContainer.firstElementChild.firstElementChild; + var elementContainer = div.firstElementChild; + var referenceShrinkWrapContainer = div.lastElementChild; + var reference = referenceShrinkWrapContainer.firstElementChild.firstElementChild; + + FragmentHelper.forceNonEmptyElement(element); + FragmentHelper.forceNonEmptyElement(reference); + + var mspaceWidth = 20, mspaceHeight = 40, mspaceDepth = 30; + var marginLeft = 10, marginRight = 15, marginTop = 20, marginBottom = 25; + Array.from(element.children).forEach(mrow => { + mrow.outerHTML = `<mspace width="${mspaceWidth}px" height="${mspaceHeight}px" depth='${mspaceDepth}px' style='background: blue; margin-left: ${marginLeft}px; margin-right: ${marginRight}px; margin-top: ${marginTop}px; margin-bottom: ${marginBottom}px;'></mspace>`; + }); + + Array.from(reference.children).forEach(mrow => { + mrow.outerHTML = `<mspace width="${marginLeft+mspaceWidth+marginRight}px" height="${mspaceHeight+marginTop}px" depth='${mspaceDepth+marginBottom}px' style='background: green;'></mspace>`; + }); + + // Compare sizes. + compareSize(element, reference, epsilon); + + // Compare children positions. + var elementBox = element.getBoundingClientRect(); + var referenceBox = reference.getBoundingClientRect(); + for (var i = 0; i < element.children.length; i++) { + var childBox = element.children[i].getBoundingClientRect(); + var referenceChildBox = reference.children[i].getBoundingClientRect(); + assert_approx_equals(childBox.width + marginLeft + marginRight, referenceChildBox.width, epsilon, "inline size (child ${i})"); + assert_approx_equals(childBox.height + marginTop + marginBottom, referenceChildBox.height, epsilon, "block size (child ${i})"); + + assert_approx_equals(childBox.left - marginLeft - elementBox.left, + referenceChildBox.left - referenceBox.left, + epsilon, + `inline position (child ${i})`); + assert_approx_equals(childBox.top - marginTop - elementBox.top, + referenceChildBox.top - referenceBox.top, + epsilon, + `block position (child ${i})`); + } + + // Compare preferred widths. + assert_approx_equals(elementShrinkWrapContainer.offsetWidth, referenceShrinkWrapContainer.offsetWidth, epsilon, "preferred width"); + + }, `Margin properties on the children of ${tag}`); + } + + done(); + } +</script> +</head> +<body> + <div id="log"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js index 8376ccf375d..7e2113e95bf 100644 --- a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js +++ b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js @@ -132,6 +132,14 @@ var FragmentHelper = { tag == "mtd"); }, + isTokenElement: function(tag) { + return (tag == "mi" || + tag == "mtext" || + tag == "mo" || + tag == "mn" || + tag == "ms") + }, + isEmpty: function(tag) { return tag === "mspace" || tag == "mprescripts" || tag == "none"; }, diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html index 4a395296bf0..3dfd54b3480 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js index e252bd4c202..41df11ce275 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.center.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html index 0db1858dffb..9048f3c9110 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js index c059df58e60..8566b5b9305 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.ltr.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html index 9f8f8c46426..db7586cabdc 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js index 89011c3691b..be8462689d4 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.end.rtl.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html index a57aa95073c..ce394fb2293 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js index 90964286fa3..f224b958a41 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.left.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html index 087b379c519..aeb26b5e07e 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js index 1af5da343f9..80cf656bd46 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.right.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html index 72af4d3ab25..ee4f15178b6 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js index eb98a053b5c..c1ac7de15a3 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.ltr.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html index ab4179a5296..33408f3c910 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js index 585ad732f31..c01e3c4c6b8 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.align.start.rtl.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html index c64bf9d4997..fa93666c783 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js index 3112e118d30..d234d3e4f5e 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.alphabetic.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html index f5381e3a61c..ffdc84d54ec 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js index e8e75fa11af..0dc46e7ccb0 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.bottom.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html index 3dc426b792c..38d44158b76 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js index de79c40997c..c1030c8a5aa 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.hanging.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html index df3f17df2cd..fb1aad2b934 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js index b4f2770a70f..f3ca4a1d5a8 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.ideographic.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html index cf1a28d9a26..0a7f356f8e9 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js index 9b644c87ac0..800d6023d49 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.middle.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html index 19ebb86517b..b9c6d1e57c2 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js index 5e886571aae..1079f146a32 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.baseline.top.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html index 0dfb4269c92..ef942c013bf 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js index 0b1fe8514a0..8300b221894 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.bound.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html index f14ca8c02c7..8a8d68fd2db 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#f00'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js index 96a3979f5ba..dfcacffba12 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fill.maxWidth.fontface.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#f00'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html index 285b6e387ec..f0273f66c2c 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '67px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html index d9d9708de8d..55b1e71adbe 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '67px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js index 33b99294421..d7132bb8bef 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.notinpage.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '67px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html index ee204a002ba..3448c241c8b 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.html @@ -20,13 +20,16 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.font = '67px CanvasTest'; -ctx.fillStyle = '#0f0'; -ctx.fillText('AA', 0, 50); -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); ctx.fillText('AA', 0, 50); _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2); _assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2); diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js index f278469a6b8..d5774654161 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.repeat.worker.js @@ -16,13 +16,16 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.fillStyle = '#f00'; -ctx.fillRect(0, 0, 100, 50); -ctx.font = '67px CanvasTest'; -ctx.fillStyle = '#0f0'; -ctx.fillText('AA', 0, 50); -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); ctx.fillText('AA', 0, 50); _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2); _assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2); diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js index eeadc01c74b..2bef1267d87 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.fontface.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '67px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html index a9daf1df14f..108e7a6b74f 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js index b14c246e401..18d01b82fb2 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.basic.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html index cd11c29baf3..7489fe62341 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js index 7b40c640543..10670f05688 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.end.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html index 1924626c535..3241ac7557d 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js index f13bcc931fc..04627cd2331 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.nonspace.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html index 586ae37025f..1afde6d0d4e 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js index 0f88a4412bc..375b18421a0 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.other.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html index ac0d0b4e598..621d052e55c 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js index 2ff1ba55637..0e367af4e24 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.space.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html index a9e1f5a47df..3b86a0a1b42 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.html @@ -20,9 +20,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js index a9a8cc27783..81c6a571a0a 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js +++ b/tests/wpt/web-platform-tests/offscreen-canvas/text/2d.text.draw.space.collapse.start.worker.js @@ -16,9 +16,12 @@ t.step(function() { var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); -ctx.font = '50px CanvasTest'; -new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { +var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); +let fonts = (self.fonts ? self.fonts : document.fonts); +f.load(); +fonts.add(f); +fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml b/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml index 846dc8b3eed..4ff765bdd79 100644 --- a/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml +++ b/tests/wpt/web-platform-tests/offscreen-canvas/tools/tests2d.yaml @@ -10273,9 +10273,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#f00'; @@ -10294,9 +10297,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10314,9 +10320,12 @@ fonts: - CanvasTest code: | - ctx.font = '67px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10336,13 +10345,16 @@ - CanvasTest fonthack: 0 code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.font = '67px CanvasTest'; - ctx.fillStyle = '#0f0'; - ctx.fillText('AA', 0, 50); - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + ctx.font = '67px CanvasTest'; + ctx.fillStyle = '#0f0'; + ctx.fillText('AA', 0, 50); ctx.fillText('AA', 0, 50); @assert pixel 5,5 ==~ 0,255,0,255; @assert pixel 95,5 ==~ 0,255,0,255; @@ -10359,9 +10371,12 @@ - CanvasTest fonthack: 0 code: | - ctx.font = '67px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '67px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10380,9 +10395,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10404,9 +10422,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10428,9 +10449,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10451,9 +10475,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10474,9 +10501,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10497,9 +10527,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10521,9 +10554,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10545,9 +10581,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10570,9 +10609,12 @@ - CanvasTest canvas: width="100" height="50" dir="ltr" code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10596,9 +10638,12 @@ - CanvasTest canvas: width="100" height="50" dir="rtl" code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10621,9 +10666,12 @@ - CanvasTest canvas: width="100" height="50" dir="ltr" code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10647,9 +10695,12 @@ - CanvasTest canvas: width="100" height="50" dir="rtl" code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10671,9 +10722,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10696,9 +10750,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10715,9 +10772,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10734,9 +10794,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10753,9 +10816,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10772,9 +10838,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; @@ -10791,9 +10860,12 @@ fonts: - CanvasTest code: | - ctx.font = '50px CanvasTest'; - new Promise(function(resolve) { step_timeout(resolve, 500); }) - .then(function() { + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + let fonts = (self.fonts ? self.fonts : document.fonts); + f.load(); + fonts.add(f); + fonts.ready.then(function() { + ctx.font = '50px CanvasTest'; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; diff --git a/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html b/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html index 630f0728079..da9ab2e9511 100644 --- a/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html +++ b/tests/wpt/web-platform-tests/origin-policy/ids/two-ids.https.html @@ -1,6 +1,7 @@ <!DOCTYPE HTML> <meta charset="utf-8"> <title>Origin policy second "ids" member must take precedence</title> +<meta name=timeout content=long> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="../resources/origin-policy-test-runner.js"></script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html index e8f143b309f..6f7c9058d67 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-custom-element.html @@ -48,59 +48,58 @@ <wc-wc id="wc-wc"></wc-wc> <div id="log"></div> <script> - var logDiv = document.getElementById("log"); - function logMessage(message){ - var log = document.createElement("div"); - var messageNode = document.createTextNode(message); - log.appendChild(messageNode); - logDiv.appendChild(log); - } - var events = []; - - var content = document.getElementById("wc-wc") - .shadowRoot.getElementById("content"); - - content.addEventListener("pointerdown", function(e){ - content.setPointerCapture(e.pointerId); - events.push("pointerdown@content"); - }); - content.addEventListener("gotpointercapture", function(e){ - logMessage("Pointer was captured by custom element's Shadow DOM!"); - events.push("gotpointercapture@content"); - }); - content.addEventListener("pointerup", function(e){ - content.releasePointerCapture(e.pointerId); - events.push("pointerup@content"); - }); - content.addEventListener("lostpointercapture", function(e){ - logMessage("Pointer was released by custom element's Shadow DOM!"); - events.push("lostpointercapture@content"); - if(window.promise_test && wc_shadow_dom_test){ - wc_shadow_dom_test.step(function(){ - assert_array_equals(events, ["pointerdown@content", - "gotpointercapture@content", "pointerup@content", - "lostpointercapture@content"]); - resolve_test(); - wc_shadow_dom_test.done(); - }); + function onLoad(){ + var logDiv = document.getElementById("log"); + function logMessage(message){ + var log = document.createElement("div"); + var messageNode = document.createTextNode(message); + log.appendChild(messageNode); + logDiv.appendChild(log); } - }); + var events = []; - var wc_shadow_dom_test = null; - var resolve_test = null; - var reject_test = null; + var content = document.getElementById("wc-wc") + .shadowRoot.getElementById("content"); - function cleanup(){ - events = []; - shadow_dom_test = null; - resolve_test = null; - reject_test = null; - } + content.addEventListener("pointerdown", function(e){ + content.setPointerCapture(e.pointerId); + events.push("pointerdown@content"); + }); + content.addEventListener("gotpointercapture", function(e){ + logMessage("Pointer was captured by custom element's Shadow DOM!"); + events.push("gotpointercapture@content"); + }); + content.addEventListener("pointerup", function(e){ + content.releasePointerCapture(e.pointerId); + events.push("pointerup@content"); + }); + content.addEventListener("lostpointercapture", function(e){ + logMessage("Pointer was released by custom element's Shadow DOM!"); + events.push("lostpointercapture@content"); + if(window.promise_test && wc_shadow_dom_test){ + wc_shadow_dom_test.step(function(){ + assert_array_equals(events, ["pointerdown@content", + "gotpointercapture@content", "pointerup@content", + "lostpointercapture@content"]); + resolve_test(); + }); + } + }); - function onLoad(){ + var wc_shadow_dom_test = null; + var resolve_test = null; + var reject_test = null; + + function cleanup(){ + events = []; + shadow_dom_test = null; + resolve_test = null; + reject_test = null; + } if(window.promise_test){ - promise_test(function(t){ - return new Promise(function(resolve, reject){ + promise_test(async function(t){ + var actions_promise; + return new Promise(async function(resolve, reject){ wc_shadow_dom_test = t; resolve_test = resolve; reject_test = reject; @@ -109,11 +108,14 @@ }); var contentRect = content.getBoundingClientRect(); var actions = new test_driver.Actions(); - var actions_promise = actions - .pointerMove(contentRect.x, contentRect.y) - .pointerDown({button: actions.ButtonType.LEFT}) - .pointerUp({button: actions.ButtonType.LEFT}) - .send(); + actions_promise = actions + .pointerMove(Math.ceil(contentRect.x), Math.ceil(contentRect.y)) + .pointerDown({button: actions.ButtonType.LEFT}) + .pointerUp({button: actions.ButtonType.LEFT}) + .send(); + }).then(async()=>{ + await actions_promise; + t.done(); }); }, "PointerCapture works for custom element Shadow DOM."); } diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html index 8279665f97b..94636231a6f 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-in-shadow-dom.html @@ -34,64 +34,64 @@ <div id="shadowhost"></div> <div id="log"></div> <script> - var logDiv = document.getElementById("log"); - function logMessage(message){ - var log = document.createElement("div"); - var messageNode = document.createTextNode(message); - log.appendChild(messageNode); - logDiv.appendChild(log); - } - var events = []; + function onLoad(){ + var logDiv = document.getElementById("log"); + function logMessage(message){ + var log = document.createElement("div"); + var messageNode = document.createTextNode(message); + log.appendChild(messageNode); + logDiv.appendChild(log); + } + var events = []; - var host = document.getElementById("shadowhost"); - var shadowRoot = host.attachShadow({mode: "open"}); - var template = document.getElementById("template"); - var node = template.content.cloneNode(true); - shadowRoot.appendChild(node); + var host = document.getElementById("shadowhost"); + var shadowRoot = host.attachShadow({mode: "open"}); + var template = document.getElementById("template"); + var node = template.content.cloneNode(true); + shadowRoot.appendChild(node); - var content = host.shadowRoot.getElementById("content"); + var content = host.shadowRoot.getElementById("content"); - content.addEventListener("pointerdown", function(e){ - content.setPointerCapture(e.pointerId); - events.push("pointerdown@content"); - }); - content.addEventListener("gotpointercapture", function(e){ - logMessage("Pointer was captured by Shadow DOM!"); - events.push("gotpointercapture@content"); - }); - content.addEventListener("pointerup", function(e){ - content.releasePointerCapture(e.pointerId); - events.push("pointerup@content"); - }); - content.addEventListener("lostpointercapture", function(e){ - logMessage("Pointer was released by Shadow DOM!"); - events.push("lostpointercapture@content"); - if(window.promise_test && shadow_dom_test){ - shadow_dom_test.step(function(){ - assert_array_equals(events, ["pointerdown@content", - "gotpointercapture@content", "pointerup@content", - "lostpointercapture@content"]); - resolve_test(); - shadow_dom_test.done(); - }); - } - }); + content.addEventListener("pointerdown", function(e){ + content.setPointerCapture(e.pointerId); + events.push("pointerdown@content"); + }); + content.addEventListener("gotpointercapture", function(e){ + logMessage("Pointer was captured by Shadow DOM!"); + events.push("gotpointercapture@content"); + }); + content.addEventListener("pointerup", function(e){ + content.releasePointerCapture(e.pointerId); + events.push("pointerup@content"); + }); + content.addEventListener("lostpointercapture", function(e){ + logMessage("Pointer was released by Shadow DOM!"); + events.push("lostpointercapture@content"); + if(window.promise_test && shadow_dom_test){ + shadow_dom_test.step(function(){ + assert_array_equals(events, ["pointerdown@content", + "gotpointercapture@content", "pointerup@content", + "lostpointercapture@content"]); + resolve_test(); + }); + } + }); - var shadow_dom_test = null; - var resolve_test = null; - var reject_test = null; + var shadow_dom_test = null; + var resolve_test = null; + var reject_test = null; - function cleanup(){ - events = []; - shadow_dom_test = null; - resolve_test = null; - reject_test = null; - } + function cleanup(){ + events = []; + shadow_dom_test = null; + resolve_test = null; + reject_test = null; + } - function onLoad(){ if(window.promise_test){ - promise_test(function(t){ - return new Promise(function(resolve, reject){ + promise_test(async function(t){ + var actions_promise; + return new Promise(async function(resolve, reject){ shadow_dom_test = t; resolve_test = resolve; reject_test = reject; @@ -100,11 +100,14 @@ }); var contentRect = content.getBoundingClientRect(); var actions = new test_driver.Actions(); - var actions_promise = actions - .pointerMove(contentRect.x, contentRect.y) - .pointerDown({button: actions.ButtonType.LEFT}) - .pointerUp({button: actions.ButtonType.LEFT}) - .send(); + actions_promise = actions + .pointerMove(Math.ceil(contentRect.x), Math.ceil(contentRect.y)) + .pointerDown({button: actions.ButtonType.LEFT}) + .pointerUp({button: actions.ButtonType.LEFT}) + .send(); + }).then(async ()=>{ + await actions_promise; + t.done(); }); }, "PointerCapture works for Shadow DOM element."); } diff --git a/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html b/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html index c61cb65ebd9..459fc7382a5 100644 --- a/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html +++ b/tests/wpt/web-platform-tests/svg/animations/svglength-additive-by-8.html @@ -13,8 +13,8 @@ <!-- an1: Change width from 10 to 50 in 4s --> <!-- an2: Change width from 10 to 100 in 4s starting at 5s --> <rect width="10" height="100" fill="green"> - <animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="calc(4% + 8)" begin="0s" dur="4s"/> - <animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="calc(10% + 10)" begin="5s" dur="4s"/> + <animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="calc(4% + 8px)" begin="0s" dur="4s"/> + <animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="calc(10% + 10px)" begin="5s" dur="4s"/> </rect> </svg> @@ -73,4 +73,4 @@ smil_async_test((t) => { window.animationStartsImmediately = true; -</script>
\ No newline at end of file +</script> diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg index 0c356b64339..53a9640c8ff 100644 --- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg +++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-invalid.svg @@ -17,6 +17,9 @@ test_invalid_value("stroke-dasharray", "auto"); test_invalid_value("stroke-dasharray", "none 10px"); test_invalid_value("stroke-dasharray", "20px / 30px"); test_invalid_value("stroke-dasharray", "-40px"); +test_invalid_value("stroke-dasharray", "calc(2px + 3)"); +test_invalid_value("stroke-dasharray", "calc(10% + 5)"); +test_invalid_value("stroke-dasharray", "calc(40 + calc(3px + 6%))"); ]]></script> </svg> diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg index e47ebc62a12..9326118ceb8 100644 --- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg +++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dasharray-valid.svg @@ -23,6 +23,9 @@ test_valid_value("stroke-dasharray", "calc(2em + 3ex)"); test_valid_value("stroke-dasharray", "10pt 20% 30pc 40in", "10pt, 20%, 30pc, 40in"); test_valid_value("stroke-dasharray", "10vmin, 20vmax, 30em, 40ex"); test_valid_value("stroke-dasharray", "0, 5", ["0, 5", "0px, 5px"]); // Edge/Safari serialize numbers as lengths. +test_valid_value("stroke-dasharray", "calc(3)"); +test_valid_value("stroke-dasharray", "calc(2 + 1)", "calc(3)"); +test_valid_value("stroke-dasharray", "calc(2 + (7 - 5))", "calc(4)"); ]]></script> </svg> diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg index 64e2eec764a..2040355e228 100644 --- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg +++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-invalid.svg @@ -17,6 +17,9 @@ test_invalid_value("stroke-dashoffset", "auto"); test_invalid_value("stroke-dashoffset", "-10.px"); test_invalid_value("stroke-dashoffset", "30deg"); test_invalid_value("stroke-dashoffset", "40px 50%"); +test_invalid_value("stroke-dashoffset", "calc(2px + 3)"); +test_invalid_value("stroke-dashoffset", "calc(10% + 5)"); +test_invalid_value("stroke-dashoffset", "calc(40 + calc(3px + 6%))"); ]]></script> </svg> diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg index f34774e68d7..fe7ba12c887 100644 --- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg +++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-dashoffset-valid.svg @@ -19,6 +19,9 @@ test_valid_value("stroke-dashoffset", "-20%"); test_valid_value("stroke-dashoffset", "30", "30px"); test_valid_value("stroke-dashoffset", "40Q", "40q"); test_valid_value("stroke-dashoffset", "calc(2em + 3ex)"); +test_valid_value("stroke-dashoffset", "calc(3)"); +test_valid_value("stroke-dashoffset", "calc(2 + 1)", "calc(3)"); +test_valid_value("stroke-dashoffset", "calc(2 + (7 - 5))", "calc(4)"); ]]></script> </svg> diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg index 0d3f63d077f..2111e376ac4 100644 --- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg +++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-invalid.svg @@ -17,6 +17,9 @@ test_invalid_value("stroke-width", "auto"); test_invalid_value("stroke-width", "10px 20px"); test_invalid_value("stroke-width", "-1px"); test_invalid_value("stroke-width", "-10%"); +test_invalid_value("stroke-width", "calc(2px + 3)"); +test_invalid_value("stroke-width", "calc(10% + 5)"); +test_invalid_value("stroke-width", "calc(40 + calc(3px + 6%))"); ]]></script> </svg> diff --git a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg index f90781284dc..1ee0449afae 100644 --- a/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg +++ b/tests/wpt/web-platform-tests/svg/painting/parsing/stroke-width-valid.svg @@ -20,6 +20,9 @@ test_valid_value("stroke-width", "calc(2em + 3ex)"); test_valid_value("stroke-width", "4%"); test_valid_value("stroke-width", "5vmin"); test_valid_value("stroke-width", "calc(50% + 60px)"); +test_valid_value("stroke-width", "calc(3)"); +test_valid_value("stroke-width", "calc(2 + 1)", "calc(3)"); +test_valid_value("stroke-width", "calc(2 + (7 - 5))", "calc(4)"); ]]></script> </svg> diff --git a/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html b/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html index c5237d2cda2..1af35aa9cb1 100644 --- a/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html +++ b/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html @@ -34,10 +34,6 @@ standardSetup(function() { .addCredential(credPromise) .runTest("passing credentials.get() with rpId (hostname)"); - // allowCredentials - new GetCredentialsTest({path: "options.publicKey.allowCredentials", value: undefined}) - .runTest("no credential specified"); - // authnr selection user verification new GetCredentialsTest({path: "options.publicKey.userVerification", value: undefined}) .addCredential(credPromise) diff --git a/tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html b/tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html new file mode 100644 index 00000000000..8c0254fee42 --- /dev/null +++ b/tests/wpt/web-platform-tests/webauthn/getcredential-rk-passing.https.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WebAuthn credential.get() Resident Key Passing Tests</title> +<meta name="timeout" content="long"> +<link rel="help" href="hhttps://w3c.github.io/webauthn/#resident-credential"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src=helpers.js></script> +<body></body> +<script> +standardSetup(function() { + "use strict"; + + // create a resident key credential + var credPromise = createCredential({ + options: { + publicKey: { + authenticatorSelection: { + requireResidentKey: true, + } + } + } + }); + + // empty allowCredential should find the requireResidentKey: true credential + new GetCredentialsTest({path: "options.publicKey.allowCredentials", value: []}) + .addCredential(credPromise) + .setIsResidentKeyTest(true) + .runTest("empty allowCredentials"); + + // undefined allowCredential should be equivalent to empty + new GetCredentialsTest({path: "options.publicKey.allowCredentials", value: undefined}) + .addCredential(credPromise) + .setIsResidentKeyTest(true) + .runTest("undefined allowCredentials"); +}, { + // browsers may not allow resident key credential creation without uv + protocol: "ctap2", + hasResidentKey: true, + hasUserVerification: true, + isUserVerified: true, +}); + +/* JSHINT */ +/* globals standardSetup, GetCredentialsTest, createCredential */ +</script> diff --git a/tests/wpt/web-platform-tests/webauthn/helpers.js b/tests/wpt/web-platform-tests/webauthn/helpers.js index 27abaaf4766..c355d058625 100644 --- a/tests/wpt/web-platform-tests/webauthn/helpers.js +++ b/tests/wpt/web-platform-tests/webauthn/helpers.js @@ -35,6 +35,10 @@ var createCredentialDefaultArgs = { alg: cose_alg_ECDSA_w_SHA256, }], + authenticatorSelection: { + requireResidentKey: false, + }, + timeout: 60000, // 1 minute excludeCredentials: [] // No excludeList } @@ -420,6 +424,9 @@ class GetCredentialsTest extends TestCase { this.credentialPromiseList = []; + // set to true to pass an empty allowCredentials list to credentials.get + this.isResidentKeyTest = false; + // enable the constructor to modify the default testObject // would prefer to do this in the super class, but have to call super() before using `this.*` if (arguments.length) { @@ -464,7 +471,9 @@ class GetCredentialsTest extends TestCase { type: "public-key" }; }); - this.testObject.options.publicKey.allowCredentials = idList; + if (!this.isResidentKeyTest) { + this.testObject.options.publicKey.allowCredentials = idList; + } // return super.test(desc); }) .catch((err) => { @@ -476,6 +485,11 @@ class GetCredentialsTest extends TestCase { validatePublicKeyCredential(ret); validateAuthenticatorAssertionResponse(ret.response); } + + setIsResidentKeyTest(isResidentKeyTest) { + this.isResidentKeyTest = isResidentKeyTest; + return this; + } } /** @@ -535,12 +549,17 @@ function validateAuthenticatorAssertionResponse(assert) { // TODO: parseAuthenticatorData() and make sure flags are correct } -function standardSetup(cb) { +function standardSetup(cb, options = {}) { // Setup an automated testing environment if available. - window.test_driver.add_virtual_authenticator({ + let authenticatorArgs = { protocol: "ctap1/u2f", - transport: "usb" - }).then(authenticator => { + transport: "usb", + hasResidentKey: false, + hasUserVerification: false, + isUserVerified: false, + }; + extendObject(authenticatorArgs, options); + window.test_driver.add_virtual_authenticator(authenticatorArgs).then(authenticator => { cb(); // XXX add a subtest to clean up the virtual authenticator since // testharness does not support waiting for promises on cleanup. diff --git a/tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html b/tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html new file mode 100644 index 00000000000..ae2e7eec11b --- /dev/null +++ b/tests/wpt/web-platform-tests/webrtc/simulcast/basic.https.html @@ -0,0 +1,56 @@ +<!doctype html> +<meta charset=utf-8> +<title>RTCPeerConnection Simulcast Tests</title> +<script src="../third_party/sdp/sdp.js"></script> +<script src="simulcast.js"></script> +<script src="../RTCPeerConnection-helper.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +promise_test(async t => { + const rids = [0, 1, 2]; + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + + exchangeIceCandidates(pc1, pc2); + + const metadataToBeLoaded = []; + pc2.ontrack = (e) => { + const stream = e.streams[0]; + const v = document.createElement('video'); + v.autoplay = true; + v.srcObject = stream; + v.id = stream.id + metadataToBeLoaded.push(new Promise((resolve) => { + v.addEventListener('loadedmetadata', () => { + resolve(); + }); + })); + }; + + // use getUserMedia as getNoiseStream does not have enough entropy to ramp-up. + const stream = await navigator.mediaDevices.getUserMedia({video: {width: 1280, height: 720}}); + t.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); + pc1.addTransceiver(stream.getVideoTracks()[0], { + streams: [stream], + sendEncodings: rids.map(rid => {rid}), + }); + + const offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer), + await pc2.setRemoteDescription({ + type: 'offer', + sdp: swapRidAndMidExtensionsInSimulcastOffer(offer, rids), + }); + const answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription({ + type: 'answer', + sdp: swapRidAndMidExtensionsInSimulcastAnswer(answer, pc1.localDescription, rids), + }); + assert_equals(metadataToBeLoaded.length, 3); + return Promise.all(metadataToBeLoaded); +}, 'Basic simulcast setup with three spatial layers'); +</script> diff --git a/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js b/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js new file mode 100644 index 00000000000..ed08ddca448 --- /dev/null +++ b/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js @@ -0,0 +1,77 @@ +'use strict'; +/* Helper functions to munge SDP and split the sending track into + * separate tracks on the receiving end. This can be done in a number + * of ways, the one used here uses the fact that the MID and RID header + * extensions which are used for packet routing share the same wire + * format. The receiver interprets the rids from the sender as mids + * which allows receiving the different spatial resolutions on separate + * m-lines and tracks. + */ +const extensionsToFilter = [ + 'urn:ietf:params:rtp-hdrext:sdes:mid', + 'urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id', + 'urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id', +]; + +function swapRidAndMidExtensionsInSimulcastOffer(offer, rids) { + const sections = SDPUtils.splitSections(offer.sdp); + const dtls = SDPUtils.getDtlsParameters(sections[1], sections[0]); + const ice = SDPUtils.getIceParameters(sections[1], sections[0]); + const rtpParameters = SDPUtils.parseRtpParameters(sections[1]); + + // The gist of this hack is that rid and mid have the same wire format. + const rid = rtpParameters.headerExtensions.find(ext => ext.uri === 'urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id'); + rtpParameters.headerExtensions = rtpParameters.headerExtensions.filter(ext => { + return !extensionsToFilter.includes(ext.uri); + }); + // This tells the other side that the RID packets are actually mids. + rtpParameters.headerExtensions.push({id: rid.id, uri: 'urn:ietf:params:rtp-hdrext:sdes:mid', direction: 'sendrecv'}); + + // Filter rtx as we have no way to (re)interpret rrid. + // Not doing this makes probing use RTX, it's not understood and ramp-up is slower. + rtpParameters.codecs = rtpParameters.codecs.filter(c => c.name.toUpperCase() !== 'RTX'); + + let sdp = SDPUtils.writeSessionBoilerplate() + + SDPUtils.writeDtlsParameters(dtls, 'actpass') + + SDPUtils.writeIceParameters(ice) + + 'a=group:BUNDLE ' + rids.join(' ') + '\r\n'; + const baseRtpDescription = SDPUtils.writeRtpDescription('video', rtpParameters); + rids.forEach(rid => { + sdp += baseRtpDescription + + 'a=mid:' + rid + '\r\n' + + 'a=msid:rid-' + rid + ' rid-' + rid + '\r\n'; + }); + return sdp; +} + +function swapRidAndMidExtensionsInSimulcastAnswer(answer, localDescription, rids) { + const sections = SDPUtils.splitSections(answer.sdp); + const dtls = SDPUtils.getDtlsParameters(sections[1], sections[0]); + const ice = SDPUtils.getIceParameters(sections[1], sections[0]); + const rtpParameters = SDPUtils.parseRtpParameters(sections[1]); + + rtpParameters.headerExtensions = rtpParameters.headerExtensions.filter(ext => { + return !extensionsToFilter.includes(ext.uri); + }); + const localMid = SDPUtils.getMid(SDPUtils.splitSections(localDescription.sdp)[1]); + let sdp = SDPUtils.writeSessionBoilerplate() + + SDPUtils.writeDtlsParameters(dtls, 'active') + + SDPUtils.writeIceParameters(ice) + + 'a=group:BUNDLE ' + localMid + '\r\n'; + sdp += SDPUtils.writeRtpDescription('video', rtpParameters); + sdp += 'a=mid:' + localMid + '\r\n'; + + rids.forEach(rid => { + sdp += 'a=rid:' + rid + ' recv\r\n'; + }); + sdp += 'a=simulcast:recv ' + rids.join(';') + '\r\n'; + + // Re-add headerextensions we filtered. + const headerExtensions = SDPUtils.parseRtpParameters(SDPUtils.splitSections(localDescription.sdp)[1]).headerExtensions; + headerExtensions.forEach(ext => { + if (extensionsToFilter.includes(ext.uri)) { + sdp += 'a=extmap:' + ext.id + ' ' + ext.uri + '\r\n'; + } + }); + return sdp; +} |