aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2018-09-17 21:32:16 -0400
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2018-09-17 22:59:59 -0400
commit141a52794b9583f636cfa2076b8f3ee95ad459e3 (patch)
tree99291117da52c605cae514b6cd1f13ffc4372071
parente98cd07910a97b26ce5c5609d7140714db947566 (diff)
downloadservo-141a52794b9583f636cfa2076b8f3ee95ad459e3.tar.gz
servo-141a52794b9583f636cfa2076b8f3ee95ad459e3.zip
Update web-platform-tests to revision 8f8ff0e2a61f2a24996404921fe853cb1fd9b432
-rw-r--r--tests/wpt/metadata/MANIFEST.json280
-rw-r--r--tests/wpt/metadata/css/css-images/multiple-position-color-stop-conic.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/multiple-position-color-stop-linear.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/multiple-position-color-stop-radial.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-values/calc-integer.html.ini19
-rw-r--r--tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini1
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini3
-rw-r--r--tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html.ini40
-rw-r--r--tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html.ini2
-rw-r--r--tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini7
-rw-r--r--tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini283
-rw-r--r--tests/wpt/metadata/url/urlencoded-parser.any.js.ini11
-rw-r--r--tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini1
-rw-r--r--tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js68
-rw-r--r--tests/wpt/web-platform-tests/background-fetch/get.https.window.js3
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html22
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html18
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-allowed.sub.html23
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html17
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-self.sub.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-023.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-025.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-027.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-size-041.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-021-ref.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-023-ref.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-025-ref.html13
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-027-ref.html41
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-linear.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-radial.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/support/100x100-blue-green.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-properties-values-api/unit-cycles.html59
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/calc-integer.html58
-rwxr-xr-xtests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh2
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html31
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html34
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html13
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html16
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html20
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html20
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/goal-parameter.htm138
-rw-r--r--tests/wpt/web-platform-tests/interfaces/payment-handler.idl9
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html62
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html11
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html70
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html98
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html10
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/unit/test-return-restrictions.html155
-rw-r--r--tests/wpt/web-platform-tests/resources/testharness.js17
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/run.py23
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py2
-rw-r--r--tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html2
58 files changed, 1613 insertions, 274 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 0c1e05dbb22..1d79dee1bd2 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -13579,6 +13579,12 @@
{}
]
],
+ "pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html": [
+ [
+ "/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html",
+ {}
+ ]
+ ],
"pointerevents/extension/pointerevent_pointerrawmove-manual.html": [
[
"/pointerevents/extension/pointerevent_pointerrawmove-manual.html",
@@ -14023,6 +14029,18 @@
{}
]
],
+ "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [
+ [
+ "/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html",
+ {}
+ ]
+ ],
+ "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [
+ [
+ "/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html",
+ {}
+ ]
+ ],
"pointerlock/mouse_buttons_back_forward-manual.html": [
[
"/pointerlock/mouse_buttons_back_forward-manual.html",
@@ -110562,7 +110580,7 @@
"/css/css-contain/contain-size-023.html",
[
[
- "/css/css-contain/reference/contain-size-021-ref.html",
+ "/css/css-contain/reference/contain-size-023-ref.html",
"=="
]
],
@@ -110574,7 +110592,7 @@
"/css/css-contain/contain-size-025.html",
[
[
- "/css/css-contain/reference/contain-size-021-ref.html",
+ "/css/css-contain/reference/contain-size-025-ref.html",
"=="
]
],
@@ -110586,7 +110604,7 @@
"/css/css-contain/contain-size-027.html",
[
[
- "/css/css-contain/reference/contain-size-021-ref.html",
+ "/css/css-contain/reference/contain-size-027-ref.html",
"=="
]
],
@@ -110598,7 +110616,7 @@
"/css/css-contain/contain-size-041.html",
[
[
- "/css/css-contain/reference/contain-size-021-ref.html",
+ "/css/css-contain/reference/contain-size-025-ref.html",
"=="
]
],
@@ -122733,6 +122751,42 @@
{}
]
],
+ "css/css-images/multiple-position-color-stop-conic.html": [
+ [
+ "/css/css-images/multiple-position-color-stop-conic.html",
+ [
+ [
+ "/css/css-images/support/100x100-blue-green.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-images/multiple-position-color-stop-linear.html": [
+ [
+ "/css/css-images/multiple-position-color-stop-linear.html",
+ [
+ [
+ "/css/css-images/support/100x100-blue-green.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-images/multiple-position-color-stop-radial.html": [
+ [
+ "/css/css-images/multiple-position-color-stop-radial.html",
+ [
+ [
+ "/css/css-images/support/100x100-blue-green.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-images/tiled-gradients.html": [
[
"/css/css-images/tiled-gradients.html",
@@ -185845,6 +185899,18 @@
{}
]
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html": [
+ [
+ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html",
+ [
+ [
+ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-none-rendering.html": [
[
"/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-none-rendering.html",
@@ -185893,6 +185959,18 @@
{}
]
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html": [
+ [
+ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html",
+ [
+ [
+ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/rendering/non-replaced-elements/the-hr-element-0/align.html": [
[
"/html/rendering/non-replaced-elements/the-hr-element-0/align.html",
@@ -247859,6 +247937,21 @@
{}
]
],
+ "css/css-contain/reference/contain-size-023-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/css-contain/reference/contain-size-025-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/css-contain/reference/contain-size-027-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-contain/reference/contain-size-051-ref.html": [
[
{}
@@ -258544,6 +258637,11 @@
{}
]
],
+ "css/css-images/support/100x100-blue-green.html": [
+ [
+ {}
+ ]
+ ],
"css/css-images/support/1x1-green.gif": [
[
{}
@@ -288574,6 +288672,11 @@
{}
]
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html": [
+ [
+ {}
+ ]
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-none-rendering-ref.html": [
[
{}
@@ -288599,6 +288702,11 @@
{}
]
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html": [
+ [
+ {}
+ ]
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/no-red-ref.html": [
[
{}
@@ -295694,6 +295802,11 @@
{}
]
],
+ "pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html": [
+ [
+ {}
+ ]
+ ],
"pointerevents/resources/pointerevent_attributes_hoverable_pointers-iframe.html": [
[
{}
@@ -299429,6 +299542,11 @@
{}
]
],
+ "resources/test/tests/unit/test-return-restrictions.html": [
+ [
+ {}
+ ]
+ ],
"resources/test/tox.ini": [
[
{}
@@ -327632,6 +327750,12 @@
{}
]
],
+ "content-security-policy/connect-src/connect-src-websocket-self.sub.html": [
+ [
+ "/content-security-policy/connect-src/connect-src-websocket-self.sub.html",
+ {}
+ ]
+ ],
"content-security-policy/connect-src/connect-src-xmlhttprequest-allowed.sub.html": [
[
"/content-security-policy/connect-src/connect-src-xmlhttprequest-allowed.sub.html",
@@ -340176,6 +340300,12 @@
{}
]
],
+ "css/css-values/calc-integer.html": [
+ [
+ "/css/css-values/calc-integer.html",
+ {}
+ ]
+ ],
"css/css-values/calc-rounding-001.html": [
[
"/css/css-values/calc-rounding-001.html",
@@ -359876,6 +360006,18 @@
{}
]
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html": [
+ [
+ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html",
+ {}
+ ]
+ ],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html": [
+ [
+ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html",
+ {}
+ ]
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-text-align.html": [
[
"/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-text-align.html",
@@ -365822,12 +365964,6 @@
{}
]
],
- "html/semantics/scripting-1/the-script-element/goal-parameter.htm": [
- [
- "/html/semantics/scripting-1/the-script-element/goal-parameter.htm",
- {}
- ]
- ],
"html/semantics/scripting-1/the-script-element/historical.html": [
[
"/html/semantics/scripting-1/the-script-element/historical.html",
@@ -440534,7 +440670,7 @@
"testharness"
],
"background-fetch/fetch.https.window.js": [
- "b730c8909de945e01059ec4de9bcb39a2f9b8b41",
+ "70dacd717a0aac009c708c1157dcfe5149a6a069",
"testharness"
],
"background-fetch/get-ids.https.window.js": [
@@ -440542,7 +440678,7 @@
"testharness"
],
"background-fetch/get.https.window.js": [
- "e4dd16cacd2e65a607854988e36b620ec4f1e301",
+ "cd1dc3a6c49264d2cbf5ccc9e499b5f98b36d8cb",
"testharness"
],
"background-fetch/idlharness.https.any.js": [
@@ -459714,11 +459850,11 @@
"testharness"
],
"content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html": [
- "3025e8a571a5dbcc016d831e590e5df45b20416e",
+ "8922d99e0392fa6a4ecd30663981208d88e33d1f",
"testharness"
],
"content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html": [
- "9b08365cec961473754beb5592ab7573376b6a0d",
+ "df8a9a1e3db136aaa43c62e8629ff46b1c230dfa",
"testharness"
],
"content-security-policy/connect-src/connect-src-eventsource-redirect-to-blocked.sub.html": [
@@ -459726,11 +459862,15 @@
"testharness"
],
"content-security-policy/connect-src/connect-src-websocket-allowed.sub.html": [
- "6216444e08ec3555089e5536fc58eff913bec548",
+ "4263d97fe2dfbb9e2a0f0851c07798d40a5671a9",
"testharness"
],
"content-security-policy/connect-src/connect-src-websocket-blocked.sub.html": [
- "249c7a346a4e2bddab6d97f546ec6eeafab7623d",
+ "02c52837bb8bd5cbc26f54f899fe25b5d68bd561",
+ "testharness"
+ ],
+ "content-security-policy/connect-src/connect-src-websocket-self.sub.html": [
+ "6db324ea0e70350b1781b036afc14cc37f588dfc",
"testharness"
],
"content-security-policy/connect-src/connect-src-xmlhttprequest-allowed.sub.html": [
@@ -529710,7 +529850,7 @@
"reftest"
],
"css/css-contain/contain-layout-independent-formatting-context-002.html": [
- "a7e8baed56db08e70c1c536cacd971d3885002b0",
+ "8491e3d28f90f09beb4121eed411d1a3e122284b",
"reftest"
],
"css/css-contain/contain-layout-independent-formatting-context-003.html": [
@@ -529982,19 +530122,19 @@
"reftest"
],
"css/css-contain/contain-size-023.html": [
- "ce795c6402dab0f7e8c5482eb8a670d0afdd7456",
+ "a5492094e8ff437c2496927da3cef551cab738f0",
"reftest"
],
"css/css-contain/contain-size-025.html": [
- "5cce18c3bfd4f41988bcfcce4a49848ceeb44acb",
+ "bb17fe2e15f077d357251793c0f31fe2601d49a0",
"reftest"
],
"css/css-contain/contain-size-027.html": [
- "266402cb31406fc3f44831e5536a074e6afa5918",
+ "ed4bb24c9b0718c3b5f81425016d9e43076f4bfc",
"reftest"
],
"css/css-contain/contain-size-041.html": [
- "44069a0c69b43a7588a89bf127ac9de436710a10",
+ "333a2ceebf99ec6041cad12f68328a5542646169",
"reftest"
],
"css/css-contain/contain-size-042.html": [
@@ -530234,13 +530374,25 @@
"support"
],
"css/css-contain/reference/contain-size-021-ref.html": [
- "de9cea10501b0014169e8260737f11e387270394",
+ "639daa8437239e6d9cf74bcb5af82755b9e2cdbb",
"support"
],
"css/css-contain/reference/contain-size-022-ref.html": [
"3ca9ac9ee4d4edd11249af01607c450b88ee8998",
"support"
],
+ "css/css-contain/reference/contain-size-023-ref.html": [
+ "1073100b0cecdb56cb59687ca63bdccdbee9ec1f",
+ "support"
+ ],
+ "css/css-contain/reference/contain-size-025-ref.html": [
+ "de9cea10501b0014169e8260737f11e387270394",
+ "support"
+ ],
+ "css/css-contain/reference/contain-size-027-ref.html": [
+ "ce4c699dc1b5811aaa689b14ab4781ae0c51acd4",
+ "support"
+ ],
"css/css-contain/reference/contain-size-051-ref.html": [
"07455aaed22aef0b4e6d303185a33929053b6c15",
"support"
@@ -545777,6 +545929,18 @@
"6643bb918b5f79ce72d3f16ec999d675e04f59d3",
"support"
],
+ "css/css-images/multiple-position-color-stop-conic.html": [
+ "d1608c0cfe8baa967cb1bdb6cb47b4635bf009b1",
+ "reftest"
+ ],
+ "css/css-images/multiple-position-color-stop-linear.html": [
+ "2e1f9ed7be488a6c6fa68f4bc4252524ddab82b2",
+ "reftest"
+ ],
+ "css/css-images/multiple-position-color-stop-radial.html": [
+ "74e25df788b0736f687f5f6394c31437cc834f57",
+ "reftest"
+ ],
"css/css-images/parsing/gradient-position-invalid.html": [
"63ac09fc17ede201f4008f68d5b6c626bbe5f238",
"testharness"
@@ -545825,6 +545989,10 @@
"b9dab78b518138272a1e29a6a2690d13f3e208e1",
"testharness"
],
+ "css/css-images/support/100x100-blue-green.html": [
+ "e4f35c3e430cc2994709f6805576d1fe2c1f9cf3",
+ "support"
+ ],
"css/css-images/support/1x1-green.gif": [
"e023d92c7ad04264d06196d47a5edd828a7f71db",
"support"
@@ -549950,7 +550118,7 @@
"testharness"
],
"css/css-properties-values-api/unit-cycles.html": [
- "b5c996a442984ee8f2b8fd9a61e41bf7d194799a",
+ "d65348543c4145bbd693aac67372390bfd91fc11",
"testharness"
],
"css/css-properties-values-api/url-resolution.html": [
@@ -569309,6 +569477,10 @@
"4b7d7c87034184a38a708dcc4c6fe19b47b12220",
"reftest"
],
+ "css/css-values/calc-integer.html": [
+ "821dac4048961cdff3eae329b02566310f75eb1f",
+ "testharness"
+ ],
"css/css-values/calc-invalid-range-clamping.html": [
"a88416a2c2da6532084dc77ded1d3d5ac15e120e",
"reftest"
@@ -587202,7 +587374,7 @@
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh": [
- "01adb1b8f4ec5dc7294dd3beb0feebd1ee740ca8",
+ "75f00e6d0a6860e3361e1fdf56777e5125849a9d",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/text-decor-3/reftest.list": [
@@ -606801,6 +606973,10 @@
"7bd2cedb1b6771398c808d1b7c8f68840bfb9b6f",
"reftest"
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html": [
+ "61ad4ed4c9445a3c035f85db7ab0928cbb11b91a",
+ "testharness"
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-shadow-dom.html": [
"3b46eb03c6c41bc616ebcc85bc6d635496e5eeed",
"support"
@@ -606821,6 +606997,10 @@
"c11b466669665a29fc4f33b4bbc14c6b5598d545",
"reftest"
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html": [
+ "29df29d17778a9d3d592c5e942f093a44f419b3c",
+ "testharness"
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-text-align.html": [
"01483bf8ad3cee01272ba36bc0ffaf73c1b12cad",
"testharness"
@@ -606841,6 +607021,14 @@
"4e9539179739a3690aab276f2ba98c25bd4dfe9b",
"testharness"
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html": [
+ "e0528855df0705fb9c13461f30e7d8c2dd7fbc21",
+ "support"
+ ],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html": [
+ "957eca57350eebb6a773dc784b6f701e5327b02d",
+ "reftest"
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-none-rendering-ref.html": [
"e6eff47e53c7a40e973b7f9dc298af2343f59941",
"support"
@@ -606897,6 +607085,14 @@
"5f27ca5c299de72c6e8aab9275fcf70b3c4246a3",
"testharness"
],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html": [
+ "004ce42129c4652d1f9e75f7953f3e74e98d0fb5",
+ "support"
+ ],
+ "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html": [
+ "7b9495946e20d47aaf9fc32692f3663343280e26",
+ "reftest"
+ ],
"html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend.html": [
"1cda91f32baf119b8dd827275a3ba8b10c484084",
"testharness"
@@ -612925,10 +613121,6 @@
"ca7fdba71f164c0a1e7c195675497b02f2e0a0a5",
"support"
],
- "html/semantics/scripting-1/the-script-element/goal-parameter.htm": [
- "fe4d6759b91b09da5a6c7bb0b53095315d10d4a9",
- "testharness"
- ],
"html/semantics/scripting-1/the-script-element/historical.html": [
"1f1a91228c2174773243163e5b588e56c2c74fc1",
"testharness"
@@ -617406,7 +617598,7 @@
"support"
],
"interfaces/payment-handler.idl": [
- "b19a7302dbacaf8ef425e568d5d5409b4b2811d5",
+ "5648ae33457dcdcd2f0eca90d69fbe1a5fac3d5b",
"support"
],
"interfaces/payment-method-basic-card.idl": [
@@ -629817,12 +630009,16 @@
"43d0aa5d38b2ac65b5100c9ba8fa2b794ffd03ee",
"testharness"
],
+ "pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html": [
+ "6efded85b4562bd960a4b5e584e68984a1ce6316",
+ "manual"
+ ],
"pointerevents/extension/pointerevent_pointerrawmove-manual.html": [
"0c4ccf9ad48d49c62b3d138845dfa3ac631a8e4e",
"manual"
],
"pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html": [
- "30fff15bd92f536de826b7ef98419b6a30284d41",
+ "970355863bb7d6affb0b50289af75b98cfccbb57",
"manual"
],
"pointerevents/extension/pointerevent_touch-action-pan-down-css_touch-manual.html": [
@@ -630145,10 +630341,22 @@
"d8dbeaae172dfd6314341c55ef1fa3b9945f60fc",
"manual"
],
+ "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [
+ "80c01d61c8f906364fea0497d32cbd44ad8fdd3f",
+ "manual"
+ ],
+ "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [
+ "b2fadbfe05f7efcc674f2b4cac61a15a67560597",
+ "manual"
+ ],
"pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [
"627af3b61cad74bb112558169b1e66f6a24b1129",
"support"
],
+ "pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html": [
+ "b7cc7068e96c7dbbf7f8ffa9e5ce9bd1ce63686f",
+ "support"
+ ],
"pointerevents/resources/pointerevent_attributes_hoverable_pointers-iframe.html": [
"5e55868282ce5ce549f1d32092839f05bd43aba7",
"support"
@@ -639573,6 +639781,10 @@
"df9e1239a2ec48dd8b489fb7001a5295e334f963",
"support"
],
+ "resources/test/tests/unit/test-return-restrictions.html": [
+ "8472ba9c9ed3f0baed605813fad1717769875759",
+ "support"
+ ],
"resources/test/tox.ini": [
"d3a30f870a1572d4423ae99f64c67d63afa345da",
"support"
@@ -639606,7 +639818,7 @@
"support"
],
"resources/testharness.js": [
- "85e211ff60ae559d7ff39994c33a2f05056e1ef2",
+ "352e8b76266b7f5ce3e17278721b55a0fe80a505",
"support"
],
"resources/testharness.js.headers": [
@@ -654014,7 +654226,7 @@
"support"
],
"tools/wpt/run.py": [
- "a1e5637bf1dede2abc0d46814746281b0bbea35e",
+ "21dc7c8e9777f2c5ff1734b5b9ba5970b2ce978b",
"support"
],
"tools/wpt/testfiles.py": [
@@ -654398,7 +654610,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/executorwebdriver.py": [
- "127c909e810a26f5d16b268061981c63ee837bb6",
+ "6dde7191ec6059e80a9ad15f96a0eba0573d9b56",
"support"
],
"tools/wptrunner/wptrunner/executors/executorwebkit.py": [
@@ -657718,7 +657930,7 @@
"testharness"
],
"web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html": [
- "0bcff3bc972181127279f226f8d6a3421cd864b1",
+ "60ea1850fc5c15ea91c075d8929d8a3dce2b4f89",
"testharness"
],
"web-animations/timing-model/animations/setting-the-timeline-of-an-animation.html": [
diff --git a/tests/wpt/metadata/css/css-images/multiple-position-color-stop-conic.html.ini b/tests/wpt/metadata/css/css-images/multiple-position-color-stop-conic.html.ini
new file mode 100644
index 00000000000..7897d70c1a1
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/multiple-position-color-stop-conic.html.ini
@@ -0,0 +1,2 @@
+[multiple-position-color-stop-conic.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/multiple-position-color-stop-linear.html.ini b/tests/wpt/metadata/css/css-images/multiple-position-color-stop-linear.html.ini
new file mode 100644
index 00000000000..b3e0af9f675
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/multiple-position-color-stop-linear.html.ini
@@ -0,0 +1,2 @@
+[multiple-position-color-stop-linear.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/multiple-position-color-stop-radial.html.ini b/tests/wpt/metadata/css/css-images/multiple-position-color-stop-radial.html.ini
new file mode 100644
index 00000000000..1d178cb5280
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/multiple-position-color-stop-radial.html.ini
@@ -0,0 +1,2 @@
+[multiple-position-color-stop-radial.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini
index b07393a05bc..decfd130b16 100644
--- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini
@@ -71,3 +71,6 @@
[bottom intermediate]
expected: FAIL
+ [outline-width end]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/calc-integer.html.ini b/tests/wpt/metadata/css/css-values/calc-integer.html.ini
new file mode 100644
index 00000000000..4909ec02758
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/calc-integer.html.ini
@@ -0,0 +1,19 @@
+[calc-integer.html]
+ [Accepts numbers, and rounds]
+ expected: FAIL
+
+ [Rounds down if fractional part is < 0.5]
+ expected: FAIL
+
+ [Basic division works]
+ expected: FAIL
+
+ [Operation between <integer> and <number> works]
+ expected: FAIL
+
+ [Only rounds at the end of the conversion]
+ expected: FAIL
+
+ [Rounds up if fractional part is >= 0.5]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini b/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini
index 3951cd266d5..0d630fb814a 100644
--- a/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini
+++ b/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini
@@ -1,4 +1,5 @@
[fetch-in-iframe.html]
+ expected: CRASH
[Untitled]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
deleted file mode 100644
index 87b07c3e670..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_1.html]
- [Multiple history traversals from the same task]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 00000000000..dc2e45516de
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_5.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
index 9579b42287e..20865f493ec 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -30,6 +30,3 @@
[Set HTTP URL frame location.protocol to data]
expected: FAIL
- [Set HTTP URL frame location.protocol to x]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html.ini
new file mode 100644
index 00000000000..671b5e9012f
--- /dev/null
+++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html.ini
@@ -0,0 +1,40 @@
+[legend-align-justify-self.html]
+ [<fieldset><legend align="cEnTeR">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="right">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset dir="rtl"><legend dir="rtl">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="left ">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset dir="rtl"><legend dir="ltr">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend dir="ltr">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="left">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="center">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend>x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="rIgHt">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="justify">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend align="lEfT">x</legend></fieldset>]
+ expected: FAIL
+
+ [<fieldset><legend dir="rtl">x</legend></fieldset>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html.ini
new file mode 100644
index 00000000000..a0802cf17f3
--- /dev/null
+++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html.ini
@@ -0,0 +1,2 @@
+[legend-block-margins.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html.ini
new file mode 100644
index 00000000000..062aec5955f
--- /dev/null
+++ b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html.ini
@@ -0,0 +1,2 @@
+[legend-tall.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
deleted file mode 100644
index 9e522297c94..00000000000
--- a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[toggleEvent.html]
- [Calling open twice on 'details' fires only one toggle event]
- expected: FAIL
-
- [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini b/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini
new file mode 100644
index 00000000000..c7e9c7434f5
--- /dev/null
+++ b/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini
@@ -0,0 +1,283 @@
+[limited-quirks.html]
+ [top: -\\31 .5]
+ expected: FAIL
+
+ [bottom: -1A]
+ expected: FAIL
+
+ [bottom: -1a]
+ expected: FAIL
+
+ [top: @1]
+ expected: FAIL
+
+ [top: "1a"]
+ expected: FAIL
+
+ [top: @a]
+ expected: FAIL
+
+ [bottom: "1"]
+ expected: FAIL
+
+ [bottom: -/**/1]
+ expected: FAIL
+
+ [top: +/**/1]
+ expected: FAIL
+
+ [bottom: @1a]
+ expected: FAIL
+
+ [top: 1\\31 ]
+ expected: FAIL
+
+ [top: url('1')]
+ expected: FAIL
+
+ [bottom: -\\31 ]
+ expected: FAIL
+
+ [top: calc(1)]
+ expected: FAIL
+
+ [top: \\31 ]
+ expected: FAIL
+
+ [bottom: +1\\31 ]
+ expected: FAIL
+
+ [bottom: 1\\31 .5]
+ expected: FAIL
+
+ [bottom: #0001]
+ expected: FAIL
+
+ [top: calc(2 * 2px)]
+ expected: FAIL
+
+ [bottom: 1a]
+ expected: FAIL
+
+ [bottom: A]
+ expected: FAIL
+
+ [bottom: #01]
+ expected: FAIL
+
+ [top: +\\31 .5]
+ expected: FAIL
+
+ [bottom: #1]
+ expected: FAIL
+
+ [top: -/**/1]
+ expected: FAIL
+
+ [bottom: +\\31 .5]
+ expected: FAIL
+
+ [bottom: \\31 ]
+ expected: FAIL
+
+ [bottom: calc(1)]
+ expected: FAIL
+
+ [top: #001]
+ expected: FAIL
+
+ [top: +\\31 ]
+ expected: FAIL
+
+ [bottom: +\\31 ]
+ expected: FAIL
+
+ [top: +1.5]
+ expected: FAIL
+
+ [top: +1\\31 ]
+ expected: FAIL
+
+ [bottom: @a]
+ expected: FAIL
+
+ [bottom: @1]
+ expected: FAIL
+
+ [top: #1]
+ expected: FAIL
+
+ [top: 1a]
+ expected: FAIL
+
+ [bottom: +1a]
+ expected: FAIL
+
+ [bottom: +1A]
+ expected: FAIL
+
+ [bottom: "a"]
+ expected: FAIL
+
+ [top: #00001]
+ expected: FAIL
+
+ [bottom: -1\\31 .5]
+ expected: FAIL
+
+ [top: "1"]
+ expected: FAIL
+
+ [bottom: 1.5]
+ expected: FAIL
+
+ [bottom: -\\31 .5]
+ expected: FAIL
+
+ [bottom: url('1')]
+ expected: FAIL
+
+ [bottom: -1.5]
+ expected: FAIL
+
+ [top: \\31 .5]
+ expected: FAIL
+
+ [bottom: "1a"]
+ expected: FAIL
+
+ [bottom: calc(2 * 2px)]
+ expected: FAIL
+
+ [bottom: +1\\31 .5]
+ expected: FAIL
+
+ [bottom: 1\\31 ]
+ expected: FAIL
+
+ [bottom: +/**/1]
+ expected: FAIL
+
+ [bottom: #00001]
+ expected: FAIL
+
+ [top: url(1)]
+ expected: FAIL
+
+ [bottom: #001]
+ expected: FAIL
+
+ [top: +1\\31 .5]
+ expected: FAIL
+
+ [top: -1a]
+ expected: FAIL
+
+ [top: -1A]
+ expected: FAIL
+
+ [bottom: url(1)]
+ expected: FAIL
+
+ [top: a]
+ expected: FAIL
+
+ [top: A]
+ expected: FAIL
+
+ [top: #000001]
+ expected: FAIL
+
+ [top: 1]
+ expected: FAIL
+
+ [top: 1\\31 .5]
+ expected: FAIL
+
+ [bottom: a]
+ expected: FAIL
+
+ [bottom: 1]
+ expected: FAIL
+
+ [bottom: +1]
+ expected: FAIL
+
+ [bottom: #000001]
+ expected: FAIL
+
+ [bottom: +a]
+ expected: FAIL
+
+ [bottom: +A]
+ expected: FAIL
+
+ [top: 1.5]
+ expected: FAIL
+
+ [top: +A]
+ expected: FAIL
+
+ [top: +a]
+ expected: FAIL
+
+ [top: +1]
+ expected: FAIL
+
+ [top: -1.5]
+ expected: FAIL
+
+ [top: -1\\31 .5]
+ expected: FAIL
+
+ [top: +1a]
+ expected: FAIL
+
+ [top: +1A]
+ expected: FAIL
+
+ [top: @1a]
+ expected: FAIL
+
+ [bottom: \\31 .5]
+ expected: FAIL
+
+ [top: "a"]
+ expected: FAIL
+
+ [top: #01]
+ expected: FAIL
+
+ [bottom: +1.5]
+ expected: FAIL
+
+ [bottom: -A]
+ expected: FAIL
+
+ [bottom: -a]
+ expected: FAIL
+
+ [bottom: -1\\31 ]
+ expected: FAIL
+
+ [top: #0001]
+ expected: FAIL
+
+ [bottom: -1]
+ expected: FAIL
+
+ [top: -\\31 ]
+ expected: FAIL
+
+ [top: -A]
+ expected: FAIL
+
+ [top: -a]
+ expected: FAIL
+
+ [top: -1]
+ expected: FAIL
+
+ [top: -1\\31 ]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/url/urlencoded-parser.any.js.ini b/tests/wpt/metadata/url/urlencoded-parser.any.js.ini
index 45160d1be12..d8250b97409 100644
--- a/tests/wpt/metadata/url/urlencoded-parser.any.js.ini
+++ b/tests/wpt/metadata/url/urlencoded-parser.any.js.ini
@@ -14,6 +14,12 @@
[request.formData() with input: a=b&c=d&]
expected: FAIL
+ [request.formData() with input: _charset_=windows-1252&test=%C2x]
+ expected: FAIL
+
+ [response.formData() with input: _charset_=windows-1252&test=%C2x]
+ expected: FAIL
+
[urlencoded-parser.any.worker.html]
[response.formData() with input: a=b&c=d]
@@ -25,9 +31,6 @@
[request.formData() with input: _charset_=windows-1252&test=%C2x]
expected: FAIL
- [response.formData() with input: a=b&c=d&]
- expected: FAIL
-
- [response.formData() with input: &&&a=b&&&&c=d&]
+ [request.formData() with input: a=b&c=d]
expected: FAIL
diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
index f806a845a2a..9d72f08e38e 100644
--- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
+++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
@@ -1,6 +1,5 @@
[005.html]
type: testharness
- expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL
diff --git a/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js b/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js
index b730c8909de..70dacd717a0 100644
--- a/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js
+++ b/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js
@@ -5,6 +5,9 @@
// Covers basic functionality provided by BackgroundFetchManager.fetch().
// https://wicg.github.io/background-fetch/#background-fetch-manager-fetch
+const wait = milliseconds =>
+ new Promise(resolve => step_timeout(resolve, milliseconds));
+
promise_test(async test => {
// 6.3.1.9.2: If |registration|’s active worker is null, then reject promise
// with a TypeError and abort these steps.
@@ -12,16 +15,16 @@ promise_test(async test => {
const scope = 'service_workers/' + location.pathname;
const serviceWorkerRegistration =
- await service_worker_unregister_and_register(test, script, scope);
+ await service_worker_unregister_and_register(test, script, scope);
assert_equals(
- serviceWorkerRegistration.active, null,
- 'There must not be an activated worker');
+ serviceWorkerRegistration.active, null,
+ 'There must not be an activated worker');
await promise_rejects(
- test, new TypeError(),
- serviceWorkerRegistration.backgroundFetch.fetch(
- uniqueId(), ['resources/feature-name.txt']),
+ test, new TypeError(),
+ serviceWorkerRegistration.backgroundFetch.fetch(
+ uniqueId(), ['resources/feature-name.txt']),
'fetch() must reject on pending and installing workers');
}, 'Background Fetch requires an activated Service Worker');
@@ -30,26 +33,26 @@ backgroundFetchTest(async (test, backgroundFetch) => {
// 6.3.1.6: If |requests| is empty, then return a promise rejected with a
// TypeError.
await promise_rejects(
- test, new TypeError(), backgroundFetch.fetch(uniqueId(), []),
- 'Empty sequences are treated as NULL');
+ test, new TypeError(), backgroundFetch.fetch(uniqueId(), []),
+ 'Empty sequences are treated as NULL');
// 6.3.1.7.1: Let |internalRequest| be the request of the result of invoking
// the Request constructor with |request|. If this throws an
// exception, return a promise rejected with the exception.
await promise_rejects(
- test, new TypeError(),
- backgroundFetch.fetch(uniqueId(), 'https://user:pass@domain/secret.txt'),
- 'Exceptions thrown in the Request constructor are rethrown');
+ test, new TypeError(),
+ backgroundFetch.fetch(uniqueId(), 'https://user:pass@domain/secret.txt'),
+ 'Exceptions thrown in the Request constructor are rethrown');
// 6.3.1.7.2: If |internalRequest|’s mode is "no-cors", then return a
// promise rejected with a TypeError.
{
const request =
- new Request('resources/feature-name.txt', {mode: 'no-cors'});
+ new Request('resources/feature-name.txt', {mode: 'no-cors'});
await promise_rejects(
- test, new TypeError(), backgroundFetch.fetch(uniqueId(), request),
- 'Requests must not be in no-cors mode');
+ test, new TypeError(), backgroundFetch.fetch(uniqueId(), request),
+ 'Requests must not be in no-cors mode');
}
}, 'Argument verification is done for BackgroundFetchManager.fetch()');
@@ -67,7 +70,7 @@ backgroundFetchTest(async (test, backgroundFetch) => {
backgroundFetchTest(async (test, backgroundFetch) => {
const registrationId = uniqueId();
const registration =
- await backgroundFetch.fetch(registrationId, 'resources/feature-name.txt');
+ await backgroundFetch.fetch(registrationId, 'resources/feature-name.txt');
assert_equals(registration.id, registrationId);
assert_equals(registration.uploadTotal, 0);
@@ -75,6 +78,7 @@ backgroundFetchTest(async (test, backgroundFetch) => {
assert_equals(registration.downloadTotal, 0);
assert_equals(registration.result, '');
assert_equals(registration.failureReason, '');
+ assert_true(registration.recordsAvailable);
// Skip `downloaded`, as the transfer may have started already.
const {type, eventRegistration, results} = await getMessageFromServiceWorker();
@@ -97,15 +101,15 @@ backgroundFetchTest(async (test, backgroundFetch) => {
// Very large download total that will definitely exceed the quota.
const options = {downloadTotal: Number.MAX_SAFE_INTEGER};
await promise_rejects(
- test, 'QUOTA_EXCEEDED_ERR',
- backgroundFetch.fetch(registrationId, 'resources/feature-name.txt', options),
- 'This fetch should have thrown a quota exceeded error');
+ test, 'QUOTA_EXCEEDED_ERR',
+ backgroundFetch.fetch(registrationId, 'resources/feature-name.txt', options),
+ 'This fetch should have thrown a quota exceeded error');
}, 'Background Fetch that exceeds the quota throws a QuotaExceededError');
backgroundFetchTest(async (test, backgroundFetch) => {
const registration = await backgroundFetch.fetch(
- 'my-id', ['resources/feature-name.txt', 'resources/feature-name.txt']);
+ 'my-id', ['resources/feature-name.txt', 'resources/feature-name.txt']);
const {type, eventRegistration, results} = await getMessageFromServiceWorker();
assert_equals('backgroundfetchsuccess', type);
@@ -125,8 +129,8 @@ backgroundFetchTest(async (test, backgroundFetch) => {
backgroundFetchTest(async (test, backgroundFetch) => {
const request =
- new Request('resources/feature-name.txt',
- {method: 'POST', body: 'TestBody'});
+ new Request('resources/feature-name.txt',
+ {method: 'POST', body: 'TestBody'});
const registration = await backgroundFetch.fetch('my-id', request);
@@ -145,3 +149,25 @@ backgroundFetchTest(async (test, backgroundFetch) => {
}
}, 'Fetches can have requests with a body');
+
+backgroundFetchTest(async (test, backgroundFetch) => {
+ const registrationId = uniqueId();
+ const registration =
+ await backgroundFetch.fetch(registrationId, 'resources/feature-name.txt');
+ assert_true(registration.recordsAvailable);
+
+ const {type, eventRegistration, results} = await getMessageFromServiceWorker();
+ assert_equals('backgroundfetchsuccess', type);
+ assert_equals(results.length, 1);
+
+ // Wait for up to 5 seconds for the |eventRegistration|'s recordsAvailable
+ // flag to be set to false, which happens after the successful invocation
+ // of the ServiceWorker event has finished.
+ for (let i = 0; i < 50; ++i) {
+ if (!registration.recordsAvailable)
+ break;
+ await wait(100);
+ }
+
+ assert_false(registration.recordsAvailable);
+}, 'recordsAvailable is false after onbackgroundfetchsuccess finishes execution.'); \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/background-fetch/get.https.window.js b/tests/wpt/web-platform-tests/background-fetch/get.https.window.js
index e4dd16cacd2..cd1dc3a6c49 100644
--- a/tests/wpt/web-platform-tests/background-fetch/get.https.window.js
+++ b/tests/wpt/web-platform-tests/background-fetch/get.https.window.js
@@ -43,6 +43,7 @@ backgroundFetchTest(async (test, backgroundFetch) => {
assert_equals(registration.downloadTotal, 1234);
assert_equals(registration.result, '');
assert_equals(registration.failureReason, '');
+ assert_true(registration.recordsAvailable);
// Skip `downloaded`, as the transfer may have started already.
const secondRegistration = await backgroundFetch.get(registrationId);
@@ -52,6 +53,8 @@ backgroundFetchTest(async (test, backgroundFetch) => {
assert_equals(secondRegistration.uploadTotal, registration.uploadTotal);
assert_equals(secondRegistration.uploaded, registration.uploaded);
assert_equals(secondRegistration.downloadTotal, registration.downloadTotal);
+ assert_equals(secondRegistration.failureReason, registration.failureReason);
+ assert_equals(secondRegistration.recordsAvailable, registration.recordsAvailable);
// While the transfer might have started, both BackgroundFetchRegistration
// objects should have the latest progress values.
diff --git a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html
index 3025e8a571a..8922d99e039 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html
@@ -7,23 +7,31 @@
<title>connect-src-eventsource-allowed</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src='../support/logTest.sub.js?logs=["Pass"]'></script>
+ <script src='../support/logTest.sub.js?logs=["allowed"]'></script>
<script src="../support/alertAssert.sub.js?alerts=[]"></script>
</head>
<body>
<script>
window.addEventListener('securitypolicyviolation', function(e) {
- log("FAIL");
+ log("allowed");
});
-
+
try {
- var es = new EventSource("http://{{host}}:{{ports[http][0]}}/content-security-policy/connect-src/resources/simple-event-stream");
- log("Pass");
+ var es = new EventSource("http://{{domains[www1]}}:{{ports[http][0]}}/content-security-policy/connect-src/resources/simple-event-stream");
+ // Firefox and Chrome don't throw an exception and takes some time to close async
+ if (es.readyState == EventSource.CONNECTING) {
+ setTimeout( function() {
+ es.readyState != EventSource.CLOSED ? log("allowed") : log("blocked");
+ }, 1000);
+ } else if (es.readyState == EventSource.CLOSED) {
+ log("blocked");
+ } else {
+ log("allowed");
+ }
} catch (e) {
- log("Fail");
+ log("blocked");
}
-
</script>
<div id="log"></div>
</body>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html
index 9b08365cec9..df8a9a1e3db 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html
@@ -7,7 +7,7 @@
<title>connect-src-eventsource-blocked</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src='../support/logTest.sub.js?logs=["Pass","violated-directive=connect-src"]'></script>
+ <script src='../support/logTest.sub.js?logs=["blocked","violated-directive=connect-src"]'></script>
<script src="../support/alertAssert.sub.js?alerts=[]"></script>
</head>
@@ -16,21 +16,21 @@
window.addEventListener('securitypolicyviolation', function(e) {
log("violated-directive=" + e.violatedDirective);
});
-
+
try {
- var es = new EventSource("http://www1.{{host}}:{{ports[http][0]}}/content-security-policy/connect-src/resources/simple-event-stream");
- // Firefox doesn't throw an exception and takes some time to close async
+ var es = new EventSource("http://{{domains[www1]}}:{{ports[http][0]}}/content-security-policy/connect-src/resources/simple-event-stream");
+ // Firefox and Chrome don't throw an exception and takes some time to close async
if (es.readyState == EventSource.CONNECTING) {
setTimeout( function() {
- es.readyState != EventSource.CLOSED ? log("Fail") : log("Pass");
- }, 2);
+ es.readyState != EventSource.CLOSED ? log("allowed") : log("blocked");
+ }, 1000);
} else if (es.readyState == EventSource.CLOSED) {
- log("Pass");
+ log("blocked");
} else {
- log("Fail");
+ log("allowed");
}
} catch (e) {
- log("Pass");
+ log("blocked");
}
</script>
<div id="log"></div>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-allowed.sub.html b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-allowed.sub.html
index 6216444e08e..4263d97fe2d 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-allowed.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-allowed.sub.html
@@ -2,26 +2,31 @@
<html>
<head>
- <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
- <meta http-equiv="Content-Security-Policy" content="connect-src 'self' ws://127.0.0.1:8880; script-src 'self' 'unsafe-inline';">
- <title>connect-src-websocket-allowed</title>
+ <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncraciws.-->
+ <meta http-equiv="Content-Security-Policy" content="connect-src 'self' ws://{{domains[www1]}}:{{ports[http][0]}}/echo; script-src 'self' 'unsafe-inline';">
+ <title>connect-src-websocket-blocked</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src='../support/logTest.sub.js?logs=["Pass"]'></script>
+ <script src='../support/logTest.sub.js?logs=["allowed"]'></script>
<script src="../support/alertAssert.sub.js?alerts=[]"></script>
</head>
<body>
<script>
window.addEventListener('securitypolicyviolation', function(e) {
- log("Fail");
+ log("violated-directive=" + e.violatedDirective);
});
-
+
try {
- var ws = new WebSocket("ws://127.0.0.1:8880/echo");
- log("Pass");
+ var ws = new WebSocket("ws://{{domains[www1]}}:{{ports[http][0]}}/echo");
+
+ if (ws.readyState == WebSocket.CLOSING || ws.readyState == WebSocket.CLOSED) {
+ log("blocked");
+ } else {
+ log("allowed");
+ }
} catch (e) {
- log("Fail");
+ log("blocked");
}
</script>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html
index 249c7a346a4..02c52837bb8 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html
@@ -2,12 +2,12 @@
<html>
<head>
- <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
- <meta http-equiv="Content-Security-Policy" content="connect-src 'self' ws://127.0.0.1:8880; script-src 'self' 'unsafe-inline';">
+ <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncraciws.-->
+ <meta http-equiv="Content-Security-Policy" content="connect-src 'self'; script-src 'self' 'unsafe-inline';">
<title>connect-src-websocket-blocked</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src='../support/logTest.sub.js?logs=["Pass","violated-directive=connect-src"]'></script>
+ <script src='../support/logTest.sub.js?logs=["blocked","violated-directive=connect-src"]'></script>
<script src="../support/alertAssert.sub.js?alerts=[]"></script>
</head>
@@ -18,10 +18,15 @@
});
try {
- var ws = new WebSocket("ws://localhost:8880/echo");
- log("Fail");
+ var ws = new WebSocket("ws://{{domains[www1]}}:{{ports[http][0]}}/echo");
+
+ if (ws.readyState == WebSocket.CLOSING || ws.readyState == WebSocket.CLOSED) {
+ log("blocked");
+ } else {
+ log("allowed");
+ }
} catch (e) {
- log("Pass");
+ log("blocked");
}
</script>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-self.sub.html b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-self.sub.html
new file mode 100644
index 00000000000..6db324ea0e7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/connect-src/connect-src-websocket-self.sub.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta http-equiv="Content-Security-Policy" content="connect-src 'self'; script-src 'self' 'unsafe-inline';">
+ <title>connect-src-websocket-blocked</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src='../support/logTest.sub.js?logs=["allowed", "allowed"]'></script>
+ <script src="../support/alertAssert.sub.js?alerts=[]"></script>
+</head>
+
+<body>
+ <script>
+ window.addEventListener('securitypolicyviolation', function(e) {
+ log("violated-directive=" + e.violatedDirective);
+ });
+
+ try {
+ var ws = new WebSocket("ws://{{host}}:{{location[port]}}/echo");
+
+ if (ws.readyState == WebSocket.CLOSING || ws.readyState == WebSocket.CLOSED) {
+ log("blocked");
+ } else {
+ log("allowed");
+ }
+ } catch (e) {
+ log("blocked");
+ }
+
+ try {
+ var wss = new WebSocket("wss://{{host}}:{{location[port]}}/echo");
+
+ if (wss.readyState == WebSocket.CLOSING || wss.readyState == WebSocket.CLOSED) {
+ log("blocked");
+ } else {
+ log("allowed");
+ }
+ } catch (e) {
+ log("blocked");
+ }
+
+ </script>
+ <div id="log"></div>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002.html b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002.html
index a7e8baed56d..8491e3d28f9 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002.html
@@ -13,7 +13,7 @@
</style>
<p>Test passes if it has the same output than the reference.</p>
<div class="wrapper">
- <span style="display: inline-block; margin: 1em 0; contain: layout;">
+ <span style="display: inline-block; margin: 1em 0; vertical-align: top; contain: layout;">
<div style="margin: 1em 0;">This text should have 2em top and bottom margins (margins do not collapse).</div>
</span>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-023.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-023.html
index ce795c6402d..a5492094e8f 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/contain-size-023.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-023.html
@@ -6,7 +6,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-size">
- <link rel="match" href="reference/contain-size-021-ref.html">
+ <link rel="match" href="reference/contain-size-023-ref.html">
<meta content="This test checks that when laying out an inline-block element with 'contain: size', the inline-block element must be treated as if it would have no contents. In this test, the inline-block element has text and no in-flow block descendant." name="assert">
<meta name="flags" content="">
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-025.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-025.html
index 5cce18c3bfd..bb17fe2e15f 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/contain-size-025.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-025.html
@@ -6,7 +6,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-size">
- <link rel="match" href="reference/contain-size-021-ref.html">
+ <link rel="match" href="reference/contain-size-025-ref.html">
<meta content="This test checks that when laying out an inline-block element with 'contain: size', the inline-block element must be treated as if it would have no contents. In this test, the inline-block element has 2 in-flow block descendants made of images." name="assert">
<meta name="flags" content="">
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-027.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-027.html
index 266402cb314..ed4bb24c9b0 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/contain-size-027.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-027.html
@@ -6,7 +6,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-size">
- <link rel="match" href="reference/contain-size-021-ref.html">
+ <link rel="match" href="reference/contain-size-027-ref.html">
<meta content="This test checks that when laying out an inline-block element with 'contain: size', the inline-block element must be treated as if it would have no contents. In this test, the inline-block element has 2 in-flow block descendants made of text." name="assert">
<meta name="flags" content="">
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-041.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-041.html
index 44069a0c69b..333a2ceebf9 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/contain-size-041.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-041.html
@@ -6,7 +6,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-size">
- <link rel="match" href="reference/contain-size-021-ref.html">
+ <link rel="match" href="reference/contain-size-025-ref.html">
<meta content="This test checks that when laying out an inline replaced element with 'contain: size', the inline replaced element must be treated as having an intrinsic width and height of 0." name="assert">
<meta name="flags" content="">
diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-021-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-021-ref.html
index de9cea10501..639daa84372 100644
--- a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-021-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-021-ref.html
@@ -1,13 +1,31 @@
<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Reference file</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+ div.inline-block {
+ display: inline-block;
+ height: 100px;
+ width: 100px;
+ }
- <meta charset="UTF-8">
+ div#blue-test {
+ background-color: blue;
+ padding: 50px;
+ box-sizing: border-box;
+ }
- <title>CSS Reference Test</title>
+ div#orange-reference {
+ background-color: orange;
+ }
+</style>
- <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+<p>This test passes if the painted blue area is <strong>exactly as wide as</strong> the orange square.
- <p>This test passes if the painted blue area is <strong>exactly as wide as</strong> the orange square.
+<div>
+ <div id="blue-test" class="inline-block"><img src="../support/blue50wBy46h.png" alt="Image download support must be enabled"></div>
+</div>
- <div><img src="../support/swatch-blue.png" width="100" height="100" alt="Image download support must be enabled"></div>
-
- <div><img src="../support/swatch-orange.png" width="100" height="100" alt="Image download support must be enabled"></div>
+<div>
+ <div id="orange-reference" class="inline-block"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-023-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-023-ref.html
new file mode 100644
index 00000000000..1073100b0ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-023-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Reference file</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+ div.inline-block {
+ display: inline-block;
+ height: 100px;
+ width: 100px;
+ }
+
+ div#blue-test {
+ background-color: blue;
+ color: transparent;
+ font-size: 100px;
+ padding: 50px;
+ box-sizing: border-box;
+ }
+
+ div#orange-reference {
+ background-color: orange;
+ }
+</style>
+
+<p>This test passes if the painted blue area is <strong>exactly as wide as</strong> the orange square.
+
+<div>
+ <div id="blue-test" class="inline-block">B</div>
+</div>
+
+<div>
+ <div id="orange-reference" class="inline-block"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-025-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-025-ref.html
new file mode 100644
index 00000000000..de9cea10501
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-025-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Reference Test</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+
+ <p>This test passes if the painted blue area is <strong>exactly as wide as</strong> the orange square.
+
+ <div><img src="../support/swatch-blue.png" width="100" height="100" alt="Image download support must be enabled"></div>
+
+ <div><img src="../support/swatch-orange.png" width="100" height="100" alt="Image download support must be enabled"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-027-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-027-ref.html
new file mode 100644
index 00000000000..ce4c699dc1b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-027-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Reference file</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<style>
+ div.inline-block {
+ display: inline-block;
+ height: 100px;
+ width: 100px;
+ }
+
+ div#blue-test {
+ background-color: blue;
+ color: transparent;
+ font-size: 50px;
+ line-height: 1;
+ padding: 50px;
+ box-sizing: border-box;
+ }
+
+ div#orange-reference {
+ background-color: orange;
+ }
+
+ span {
+ display: block;
+ }
+</style>
+
+<p>This test passes if the painted blue area is <strong>exactly as wide as</strong> the orange square.
+
+<div>
+ <div id="blue-test" class="inline-block">
+ <span>B</span>
+ <span>L</span>
+ </div>
+</div>
+
+<div>
+ <div id="orange-reference" class="inline-block"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html b/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html
new file mode 100644
index 00000000000..d1608c0cfe8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>Conic gradient with a two position color stop</title>
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#color-stop-syntax">
+<meta name="assert" content="A color stop with two positions create a hard transition">
+<link rel="match" href="support/100x100-blue-green.html">
+<style>
+#target {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ background-image: conic-gradient(green 0% 180deg, blue 180deg);
+}
+</style>
+<div id="target"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-linear.html b/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-linear.html
new file mode 100644
index 00000000000..2e1f9ed7be4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-linear.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>Linear gradient with a two position color stop</title>
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#color-stop-syntax">
+<meta name="assert" content="A color stop with two positions create a hard transition">
+<link rel="match" href="support/100x100-blue-green.html">
+<style>
+#target {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ background-image: linear-gradient(to right, blue 0% 50%, green 50%);
+}
+</style>
+<div id="target"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-radial.html b/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-radial.html
new file mode 100644
index 00000000000..74e25df788b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/multiple-position-color-stop-radial.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<title>Radial gradient with a two position color stop</title>
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#color-stop-syntax">
+<meta name="assert" content="A color stop with two positions create a hard transition">
+<link rel="match" href="support/100x100-blue-green.html">
+<style>
+#target {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ background-image: radial-gradient(ellipse 50px 10000px at 0px 50px, blue 0% 50px, green 50px);
+}
+</style>
+<div id="target"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-images/support/100x100-blue-green.html b/tests/wpt/web-platform-tests/css/css-images/support/100x100-blue-green.html
new file mode 100644
index 00000000000..e4f35c3e430
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/support/100x100-blue-green.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<div style="width: 50px; height: 100px; background-color: green; border-left: 50px solid blue"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/unit-cycles.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/unit-cycles.html
index b5c996a4429..d65348543c4 100644
--- a/tests/wpt/web-platform-tests/css/css-properties-values-api/unit-cycles.html
+++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/unit-cycles.html
@@ -18,14 +18,29 @@
register_length('--font-size-ex');
register_length('--font-size-ch');
register_length('--font-size-px');
+ register_length('--font-size-em-via-var');
+ register_length('--font-size-rem-via-var');
+ register_length('--font-size-ex-via-var');
+ register_length('--font-size-ch-via-var');
</script>
<style>
+ :root {
+ --unregistered-em: 10em;
+ --unregistered-rem: 10rem;
+ --unregistered-ex: 10ex;
+ --unregistered-ch: 10ch;
+ }
+
:root, #target {
--font-size-em: 2em;
--font-size-rem: 2rem;
--font-size-ex: 2ex;
--font-size-ch: 2ch;
--font-size-px: 42px;
+ --font-size-em-via-var: var(--unregistered-em);
+ --font-size-rem-via-var: var(--unregistered-rem);
+ --font-size-ex-via-var: var(--unregistered-ex);
+ --font-size-ch-via-var: var(--unregistered-ch);
}
#target {
@@ -40,8 +55,13 @@
// Compute a dimension (e.g. 1em) given a certain fontSize.
function compute_dimension(dimension, fontSize, element = ref) {
- element.style = `font-size: ${fontSize}; margin-bottom: ${dimension};`;
- return getComputedStyle(element).marginBottom;
+ try {
+ element.attributeStyleMap.set('font-size', fontSize);
+ element.attributeStyleMap.set('margin-bottom', dimension);
+ return getComputedStyle(element).marginBottom;
+ } finally {
+ element.attributeStyleMap.clear();
+ }
}
function assert_property_equals(name, value, element = target) {
@@ -51,6 +71,11 @@
let unsetFontSize = compute_dimension('1em', 'unset');
+ add_result_callback(function(){
+ target.attributeStyleMap.clear();
+ document.documentElement.attributeStyleMap.clear();
+ });
+
test(function() {
target.style = 'font-size: var(--font-size-px);';
assert_property_equals('font-size', '42px');
@@ -84,10 +109,9 @@
test(function() {
let root = document.documentElement;
- root.style = 'font-size: var(--font-size-rem);';
let expected1rem = compute_dimension('1rem', 'unset', root);
let expected2rem = compute_dimension('2rem', 'unset', root);
- root.style = 'font-size: unset;';
+ root.style = 'font-size: var(--font-size-rem);';
assert_property_equals('font-size', expected1rem, root);
assert_property_equals('--font-size-rem', expected2rem, root);
}, 'Lengths with rem units may not be referenced from font-size on root element');
@@ -119,4 +143,31 @@
root.style = 'font-size: unset;';
}, 'Fallback triggered when rem unit cycle is detected on root element');
+ test(function() {
+ target.style = 'font-size: var(--font-size-em-via-var);';
+ assert_property_equals('font-size', unsetFontSize);
+ assert_property_equals('--font-size-em-via-var', compute_dimension('10em', 'unset'));
+ }, 'Lengths with em units are detected via var references');
+
+ test(function() {
+ target.style = 'font-size: var(--font-size-ex-via-var);';
+ assert_property_equals('font-size', unsetFontSize);
+ assert_property_equals('--font-size-ex-via-var', compute_dimension('10ex', 'unset'));
+ }, 'Lengths with ex units are detected via var references');
+
+ test(function() {
+ target.style = 'font-size: var(--font-size-ch-via-var);';
+ assert_property_equals('font-size', unsetFontSize);
+ assert_property_equals('--font-size-ch-via-var', compute_dimension('10ch', 'unset'));
+ }, 'Lengths with ch units are detected via var references');
+
+ test(function() {
+ let root = document.documentElement;
+ let expected1rem = compute_dimension('1rem', 'unset', root);
+ let expected10rem = compute_dimension('10rem', 'unset', root);
+ root.style = 'font-size: var(--font-size-rem-via-var);';
+ assert_property_equals('font-size', expected1rem, root);
+ assert_property_equals('--font-size-rem-via-var', expected10rem, root);
+ }, 'Lengths with rem units are detected via var references');
+
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/calc-integer.html b/tests/wpt/web-platform-tests/css/css-values/calc-integer.html
new file mode 100644
index 00000000000..821dac40489
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/calc-integer.html
@@ -0,0 +1,58 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Tests: calc() and division for integers</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-range">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2337">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="test"></div>
+<script>
+const TESTS = [
+ {
+ specified: "calc(2)",
+ computed: "2",
+ description: "Sanity",
+ },
+ {
+ specified: "calc(4 / 2)",
+ computed: "2",
+ description: "Basic division works",
+ },
+ {
+ specified: "calc(1 / 2)",
+ computed: "1",
+ description: "Rounds up if fractional part is >= 0.5",
+ },
+ {
+ specified: "calc(0.5)",
+ computed: "1",
+ description: "Accepts numbers, and rounds",
+ },
+ {
+ specified: "calc(6 / 2.0)",
+ computed: "3",
+ description: "Operation between <integer> and <number> works",
+ },
+ {
+ specified: "calc(1 / 3)",
+ computed: "0",
+ description: "Rounds down if fractional part is < 0.5",
+ },
+ {
+ specified: "calc(calc(1 / 3) * 3)",
+ computed: "1",
+ description: "Only rounds at the end of the conversion",
+ }
+];
+
+const testElement = document.getElementById("test");
+for (const { specified, computed, description } of TESTS) {
+ test(function() {
+ testElement.style.zIndex = "42"; // Just something that we know it's valid and makes tests not rely on order.
+ testElement.style.zIndex = specified;
+ assert_equals(getComputedStyle(testElement).zIndex, computed);
+ }, description);
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh
index 01adb1b8f4e..75f00e6d0a6 100755
--- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh
+++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/sync-tests.sh
@@ -22,7 +22,7 @@ else
fi
rsync -avz --delete --filter=". ./sync-tests-filter" "$MOZTREE"/layout/reftests/w3c-css/submitted/ ./
-sed -i -e 's/^\(\(fails\|needs-focus\|random\|skip\|asserts\|slow\|require-or\|silentfail\|pref\|test-pref\|ref-pref\|fuzzy\)[^ ]* *\?\)\+//;/^default-preferences /d;s/ \?# \?\(TC: \)\?[bB]ug.*//;s/ # Initial mulet triage:.*//' $(find . -name reftest.list)
+sed -i -e 's/^\(\(fails\|needs-focus\|random\|skip\|asserts\|slow\|require-or\|silentfail\|pref\|test-pref\|ref-pref\|fuzzy\)[^ ]* *\?\)\+//;/^default-preferences /d;s/ \?# \?\(TC: \)\?[bB]ug.*//' $(find . -name reftest.list)
sed -i -e 's/-moz-crisp-edges/pixelated/g;s/-moz-min-content/min-content/g;s/-moz-max-content/max-content/g' $(find . -regex ".*\.\(xht\|xhtml\|html\|css\)")
git add -A .
git commit -m"Sync Mozilla CSS tests as of https://hg.mozilla.org/mozilla-central/rev/$MOZREV ." -e .
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html
new file mode 100644
index 00000000000..61ad4ed4c94
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-percentage-padding.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<title>fieldset percentage padding</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+ body { margin: 0; }
+ .outer { width: 500px; position: relative; }
+ fieldset { width: 100px; padding: 10%; margin: 0; border: none; }
+ .overflow { overflow: auto; }
+</style>
+<div class=outer>
+ <fieldset>
+ <div id=no-overflow>x</div>
+ </fieldset>
+</div>
+<div class=outer>
+ <fieldset class=overflow>
+ <div id=with-overflow>x</div>
+ </fieldset>
+</div>
+<script>
+const noOverflow = document.getElementById('no-overflow');
+const withOverflow = document.getElementById('with-overflow');
+for (const div of [noOverflow, withOverflow]) {
+ test(() => {
+ assert_equals(div.offsetLeft, 50, "offsetLeft");
+ assert_equals(div.clientWidth, 100, "clientWidth");
+ assert_equals(div.offsetTop, 50, "offsetTop");
+ }, div.id);
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html
new file mode 100644
index 00000000000..29df29d1777
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-align-justify-self.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<title>legend align to justify-self</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<fieldset><legend>x</legend></fieldset>
+<fieldset><legend align=left>x</legend></fieldset>
+<fieldset><legend align=center>x</legend></fieldset>
+<fieldset><legend align=right>x</legend></fieldset>
+<fieldset><legend align=lEfT>x</legend></fieldset>
+<fieldset><legend align=cEnTeR>x</legend></fieldset>
+<fieldset><legend align=rIgHt>x</legend></fieldset>
+<!-- invalid values -->
+<fieldset><legend align=justify>x</legend></fieldset>
+<fieldset><legend align="left ">x</legend></fieldset>
+<!-- dir -->
+<fieldset><legend dir=ltr>x</legend></fieldset>
+<fieldset><legend dir=rtl>x</legend></fieldset>
+<fieldset dir=rtl><legend dir=ltr>x</legend></fieldset>
+<fieldset dir=rtl><legend dir=rtl>x</legend></fieldset>
+<script>
+for (const fieldset of document.querySelectorAll('fieldset')) {
+ test(() => {
+ const legend = fieldset.firstChild;
+ const align = legend.align.toLowerCase();
+ let expected = 'auto';
+ switch (align) {
+ case 'left': expected = 'left'; break;
+ case 'center': expected = 'center'; break;
+ case 'right': expected = 'right'; break;
+ }
+ assert_equals(getComputedStyle(legend).justifySelf, expected);
+ }, `${fieldset.outerHTML}`)
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html
new file mode 100644
index 00000000000..e0528855df0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins-ref.html
@@ -0,0 +1,13 @@
+<!doctype html>
+<title>Reference for legend block margins</title>
+<style>
+body { margin: 0; }
+.fieldset { margin: 2em 1em 1em 1em; border: 1em solid green; }
+.legend { position: absolute; margin-top: -1em; margin-left: 1em; background: white; height: 1em; }
+.inner { margin: 2em 1em 1em 1em; height: 1em; }
+</style>
+<p>There should be no red.</p>
+<div class=fieldset>
+ <div class=legend>X</div>
+ <div class=inner>Y</div>
+</div>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html
new file mode 100644
index 00000000000..957eca57350
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-block-margins.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<title>legend block margins</title>
+<link rel=match href=legend-block-margins-ref.html>
+<style>
+ body { margin: 0; }
+ fieldset { margin: 1em; border: 1em solid green; padding: 0; background: white; }
+ legend { margin: 1em; height: 1em; padding: 0; }
+ .inner { margin: 1em; height: 1em; }
+ .behind { position: absolute; left: 1em; right: 1em; margin-top: 1em; height: 6em; background: red; z-index: -1; }
+</style>
+<p>There should be no red.</p>
+<div class=behind></div>
+<fieldset>
+ <legend>X</legend>
+ <div class=inner>Y</div>
+</fieldset>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html
new file mode 100644
index 00000000000..004ce42129c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<title>Reference for tall legend</title>
+<style>
+body, p { margin: 0; }
+.legend { position: absolute; height: 160px; margin-left: 20px; inline-size: fit-content; background: lime }
+.fieldset {
+ position: absolute;
+ z-index: -1;
+ margin-top: calc((/* half legend height */ 160px / 2) - (/* half top border */ 20px / 2));
+ background: green;
+ height: 40px;
+ left: 0;
+ right: 0;
+}
+.hello { margin-top: 160px; margin-left: 20px; }
+</style>
+<p>There should be no red.</p>
+<div class=legend>X</div>
+<div class=fieldset></div>
+<div class=hello>HELLO</div>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html
new file mode 100644
index 00000000000..7b9495946e2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-tall.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<title>tall legend</title>
+<link rel=match href=legend-tall-ref.html>
+<style>
+body, p { margin: 0; }
+fieldset { height: 30px; margin: 0; border: 20px solid green; padding: 0px; background: red; }
+legend { height: 160px; background: lime; padding: 0; }
+#behind {
+ position: absolute;
+ z-index: -1;
+ margin-top: calc((/* half legend height */ 160px / 2) - (/* half top border */ 20px / 2));
+ background: red;
+ height: 40px;
+ left: 0;
+ right: 0;
+}
+</style>
+<p>There should be no red.</p>
+<div id=behind></div>
+<fieldset><legend>X</legend>HELLO</fieldset>
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/goal-parameter.htm b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/goal-parameter.htm
deleted file mode 100644
index fe4d6759b91..00000000000
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/goal-parameter.htm
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Goal Parameter on JavaScript MIME</title>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
- <meta description="This test checks the Async property on a dynamically-created script element. By default it should be true." />
- <link rel="author" title="" href="http://www.microsoft.com/" />
- <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-script-async"/>
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- </head>
- <body>
- <script type="module">
-
- function makeTest({
- fileName,
- scriptType,
- contentType,
- shouldLoad
- }) {
- const elem = Object.assign(document.createElement("script"), {
- type: scriptType,
- src: `./serve-with-content-type.py?fn=${scriptType === "module" ? "is-module-goal.mjs" : "is-script-goal.js"}&ct=${contentType}`
- });
- const name = `${shouldLoad ? "Loads" : "Errors on"} type=${scriptType} when given content-type=${decodeURIComponent(contentType)}`;
- const t = async_test(name);
- if (!shouldLoad) {
- elem.onload = t.unreached_func("Script should not load.");
- elem.onerror = t.step_func_done();
- } else {
- elem.onload = t.step_func_done();
- elem.onerror = t.unreached_func("Script should load.");
- }
- document.body.appendChild(elem);
- }
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fhtml%3Bgoal=script',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=%20script',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=script%20',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fhtml%3Bgoal=module',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=%20module',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=module%20',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=%22%20module%22',
- shouldLoad: false
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=script',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=SCRIPT',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3BGOAL=script',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3BGoal=Script',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3BgOal=script',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=scrIpt',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=%22script%22',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'text/javascript',
- contentType: 'text%2Fjavascript%3Bgoal=%22%5Cs%5Cc%5Cr%5Ci%5Cp%5Ct%22',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=%22%5Cm%5Co%5Cd%5Cu%5Cl%5Ce%22',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=module',
- shouldLoad: true
- });
- makeTest({
- scriptType: 'module',
- contentType: 'text%2Fjavascript%3Bgoal=%22module%22',
- shouldLoad: true
- });
- </script>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/interfaces/payment-handler.idl b/tests/wpt/web-platform-tests/interfaces/payment-handler.idl
index b19a7302dba..5648ae33457 100644
--- a/tests/wpt/web-platform-tests/interfaces/payment-handler.idl
+++ b/tests/wpt/web-platform-tests/interfaces/payment-handler.idl
@@ -59,6 +59,13 @@ partial interface ServiceWorkerGlobalScope {
attribute EventHandler onpaymentrequest;
};
+dictionary PaymentMethodChangeResponse {
+ DOMString error;
+ PaymentCurrencyAmount total;
+ FrozenArray<PaymentDetailsModifier> modifiers;
+ object paymentMethodErrors;
+};
+
[Constructor(DOMString type, PaymentRequestEventInit eventInitDict), Exposed=ServiceWorker]
interface PaymentRequestEvent : ExtendableEvent {
readonly attribute USVString topOrigin;
@@ -68,7 +75,9 @@ interface PaymentRequestEvent : ExtendableEvent {
readonly attribute object total;
readonly attribute FrozenArray<PaymentDetailsModifier> modifiers;
readonly attribute DOMString instrumentKey;
+ readonly attribute boolean requestBillingAddress;
Promise<WindowClient?> openWindow(USVString url);
+ Promise<PaymentMethodChangeResponse?> changePaymentMethod(DOMString methodName, optional object? methodDetails = null);
void respondWith(Promise<PaymentHandlerResponse> handlerResponsePromise);
};
diff --git a/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html b/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html
new file mode 100644
index 00000000000..6efded85b45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html
@@ -0,0 +1,62 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Pointer Events pointer lock tests</title>
+ <meta name="viewport" content="width=device-width">
+ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript" src="../pointerevent_support.js"></script>
+ <style>
+ #testContainer {
+ touch-action: none;
+ user-select: none;
+ position: relative;
+ }
+ </style>
+ <script>
+ var lock_change_count = 0;
+ var mouseeventMovements = []
+ var pointereventMovements = []
+
+ function resetTestState() {
+ }
+
+ function run() {
+ var test_pointerEvent = setup_pointerevent_test("pointermove getCoalescedEvents when lock test", ['mouse']);
+ var div1 = document.getElementById("target");
+
+ on_event(div1, 'pointerdown', function(event) {
+ div1.requestPointerLock();
+ });
+ on_event(div1, 'pointermove', function(event) {
+ if (document.pointerLockElement == div1) {
+ test_pointerEvent.step(function() {
+ assert_greater_than(event.getCoalescedEvents().length, 0, "document.pointerLockElement should have coalesced events.");
+ document.exitPointerLock();
+ test_pointerEvent.done();
+ });
+ }
+ });
+ }
+ </script>
+ </head>
+ <body onload="run()">
+ <h1>PointerMove getCoalescedEvent in locked state test</h1>
+ <h2 id="pointerTypeDescription"></h2>
+ <h4>
+ Test Description: This test checks if pointerevent.getCoalescedEvent work correctly when pointer is locked.
+ <ol>
+ <li>Press left button down on the green rectangle to lock pointer.</li>
+ <li>Move the mouse</li>
+ </ol>
+ </ol>
+
+ Test passes if the proper behavior of the events is observed.
+ </h4>
+ <div id="testContainer">
+ <div id="target" style="width:800px;height:250px;background:green"></div>
+ </div>
+ <div class="spacer"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html b/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html
index 30fff15bd92..970355863bb 100644
--- a/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html
+++ b/tests/wpt/web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html
@@ -11,9 +11,14 @@
</head>
<body onload="run()">
<h2>pointerrawmove</h2>
- <h4>Test Description: This test checks if pointerrawmove is dispatched correctly while in pointerlock mode. </h4>
- <p>Click in the box (and accept the pointerlock permission if asked).</p>
- <p>Move your mouse.</p>
+ <h4>Test Description: This test checks if pointerrawmove is dispatched correctly while in pointerlock mode.
+ <ol>
+ <li>Click in the black box (and accept the pointerlock permission if asked).</li>
+ <li>Move your mouse.</li>
+ <li>Click in the purple box inside the iframe</li>
+ <li>Move your mouse.</li>
+ </ol>
+ </h4>
<div id="target0"></div>
<iframe id="innerframe" src="../resources/pointerevent_pointerrawmove_in_pointerlock-iframe.html"></iframe>
<script>
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html
new file mode 100644
index 00000000000..80c01d61c8f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html
@@ -0,0 +1,70 @@
+<!doctype html>
+<html>
+ <head>
+ <title>pointermove</title>
+ <meta name="viewport" content="width=device-width">
+ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <!-- Additional helper script for common checks across event types -->
+ <script type="text/javascript" src="../pointerevent_support.js"></script>
+ </head>
+ <body onload="run()">
+ <h2>pointerlock</h2>
+ <h4>Test Description: This test checks if pointermove is dispatched correctly while in pointerlock mode.
+ <ol>
+ <li>Click in the black box (and accept the pointerlock permission if asked).</li>
+ <li>Move your mouse.</li>
+ <li>Click in the purple box inside the iframe</li>
+ <li>Move your mouse.</li>
+ </ol>
+ </h4>
+ <div id="target0"></div>
+ <iframe id="innerframe" src="resources/pointerevent_pointermove_in_pointerlock-iframe.html"></iframe>
+ <script>
+ window.name="outerframe";
+ var test_pointermove = async_test("pointermove event received");
+
+ function run() {
+ var target0 = document.getElementById("target0");
+ var innerframe = document.getElementById('innerframe');
+ var target1 = innerframe.contentDocument.getElementById('target1');
+ innerframe.contentWindow.name = "innerframe";
+
+ on_event(document, "pointerlockchange", function(event) {
+ if (document.pointerLockElement == target0) {
+ on_event(target0, "pointermove", function (event) {
+ test_pointermove.step(function() {
+ assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
+ }, "View attribute of pointermove should be the target frame.");
+ document.exitPointerLock();
+
+ on_event(target1, "click", function(event) {
+ target1.requestPointerLock();
+ });
+
+ on_event(innerframe.contentDocument, "pointerlockchange", function(event) {
+ if (innerframe.contentDocument.pointerLockElement == target1) {
+ on_event(target1, "pointermove", function (event) {
+ innerframe_pointermoveReceived = true;
+ test_pointermove.step(function() {
+ assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame.");
+ }, "View attribute of pointermove should be the target frame.");
+ innerframe.contentDocument.exitPointerLock();
+ test_pointermove.done();
+ });
+ }
+ });
+ });
+ }
+ });
+ on_event(target0, "click", function(event) {
+ target0.requestPointerLock();
+ });
+ }
+
+ </script>
+ <div id="complete-notice">
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html
new file mode 100644
index 00000000000..b2fadbfe05f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html
@@ -0,0 +1,98 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Pointermove on button state changes</title>
+ <meta name="viewport" content="width=device-width">
+ <meta name="assert" content="When a pointer changes button state and does not produce a different event, the pointermove event must be dispatched."/>
+ <link rel="stylesheet" type="text/css" href="../pointerevent_styles.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <!-- Additional helper script for common checks across event types -->
+ <script type="text/javascript" src="../pointerevent_support.js"></script>
+ </head>
+ <body onload="run()">
+ <h2>PointerMove</h2>
+ <h4>Test Description: This test checks if pointermove event are triggered by button state changes
+ <ol>
+ <li>Lick on the black rectangle to lock the pointer </li>
+ <li>Press a button and hold it</li>
+ <li>Press a second button</li>
+ <li>Release the second button</li>
+ <li>Release the first button to complete the test</li>
+ </ol>
+ </h4>
+ <div id="target0" style="background:black"></div>
+ <script>
+ var eventTested = false;
+ var detected_pointertypes = {};
+ var test_pointermove = async_test("pointer locked pointermove events received for button state changes");
+ add_completion_callback(showPointerTypes);
+
+ var step = 0;
+ var firstButton = 0;
+ var pointer_locked = false;
+
+ function run() {
+ var target0 = document.getElementById("target0");
+
+ // When a pointer changes button state and the circumstances produce no other pointer event, the pointermove event must be dispatched.
+ // 5.2.6
+
+ on_event(target0, "pointerdown", function (event) {
+ if (pointer_locked) {
+ detected_pointertypes[event.pointerType] = true;
+ test_pointermove.step(function() {assert_true(step === 0, "There must not be more than one pointer down event.");});
+ if (step == 0) {
+ step = 1;
+ firstButton = event.buttons;
+ }
+ }
+ });
+ on_event(target0, "pointermove", function (event) {
+ if (pointer_locked) {
+ detected_pointertypes[event.pointerType] = true;
+
+ if (step == 1 && event.button != -1) { // second button pressed
+ test_pointermove.step(function() {assert_true(event.buttons !== firstButton, "The pointermove event must be triggered by pressing a second button.");});
+ test_pointermove.step(function() {assert_true((event.buttons & firstButton) != 0, "The first button must still be reported pressed.");});
+ step = 2;
+ } else if (step == 2 && event.button != -1) { // second button released
+ test_pointermove.step(function() {assert_true(event.buttons === firstButton, "The pointermove event must be triggered by releasing the second button.");});
+ step = 3;
+ }
+ }
+ });
+ on_event(target0, "pointerup", function (event) {
+ if (pointer_locked) {
+ detected_pointertypes[event.pointerType] = true;
+ test_pointermove.step(function() {assert_true(step === 3, "The pointerup event must be triggered after pressing and releasing the second button.");});
+ test_pointermove.step(function() {assert_true(event.buttons === 0, "The pointerup event must be triggered by releasing the last pressed button.");});
+ document.exitPointerLock();
+ test_pointermove.done();
+ eventTested = true;
+ } else {
+ target0.requestPointerLock();
+ }
+ });
+ on_event(document, 'pointerlockchange', function(event) {
+ if (document.pointerLockElement == target0)
+ pointer_locked = true;
+ else
+ pointer_locked = false;
+ });
+ on_event(target0, "mouseup", function (event) {
+ event.preventDefault();
+ });
+ on_event(target0, "contextmenu", function (event) {
+ event.preventDefault();
+ });
+ }
+ </script>
+ <h1>Pointer Lock Pointer Events pointermove on button state changes Tests</h1>
+ <div id="complete-notice">
+ <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
+ <p>Refresh the page to run the tests again.</p>
+ </div>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html b/tests/wpt/web-platform-tests/pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html
new file mode 100644
index 00000000000..b7cc7068e96
--- /dev/null
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<html>
+ <head>
+ <meta name="viewport" content="width=device-width">
+ <link rel="stylesheet" type="text/css" href="../../pointerevent_styles.css">
+ </head>
+ <body>
+ <div id="target1"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/unit/test-return-restrictions.html b/tests/wpt/web-platform-tests/resources/test/tests/unit/test-return-restrictions.html
new file mode 100644
index 00000000000..8472ba9c9ed
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resources/test/tests/unit/test-return-restrictions.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <script src="/resources/testharness.js"></script>
+ <title>Restrictions on return value from `test`</title>
+</head>
+<body>
+<script>
+function makeTest(...bodies) {
+ const closeScript = '<' + '/script>';
+ let src = `
+<!DOCTYPE HTML>
+<html>
+<head>
+<title>Document title</title>
+<script src="/resources/testharness.js?${Math.random()}">${closeScript}
+</head>
+
+<body>
+<div id="log"></div>`;
+ bodies.forEach((body) => {
+ src += '<script>(' + body + ')();' + closeScript;
+ });
+
+ const iframe = document.createElement('iframe');
+
+ document.body.appendChild(iframe);
+ iframe.contentDocument.write(src);
+
+ return new Promise((resolve) => {
+ window.addEventListener('message', function onMessage(e) {
+ if (e.source !== iframe.contentWindow) {
+ return;
+ }
+ if (!e.data || e.data.type !=='complete') {
+ return;
+ }
+ window.removeEventListener('message', onMessage);
+ resolve(e.data);
+ });
+
+ iframe.contentDocument.close();
+ }).then(({ tests, status }) => {
+ const summary = {
+ harness: {
+ status: getEnumProp(status, status.status),
+ message: status.message
+ },
+ tests: {}
+ };
+
+ tests.forEach((test) => {
+ summary.tests[test.name] = getEnumProp(test, test.status);
+ });
+
+ return summary;
+ });
+}
+
+function getEnumProp(object, value) {
+ for (let property in object) {
+ if (!/^[A-Z]+$/.test(property)) {
+ continue;
+ }
+
+ if (object[property] === value) {
+ return property;
+ }
+ }
+}
+
+promise_test(() => {
+ return makeTest(
+ () => {
+ test(() => undefined, 'before');
+ test(() => null, 'null');
+ test(() => undefined, 'after');
+ }
+ ).then(({harness, tests}) => {
+ assert_equals(harness.status, 'ERROR');
+ assert_equals(
+ harness.message,
+ 'test named "null" inappropriately returned a value'
+ );
+ assert_equals(tests.before, 'PASS');
+ assert_equals(tests.null, 'PASS');
+ assert_equals(tests.after, 'PASS');
+ });
+}, 'test returning `null`');
+
+promise_test(() => {
+ return makeTest(
+ () => {
+ test(() => undefined, 'before');
+ test(() => ({}), 'object');
+ test(() => undefined, 'after');
+ }
+ ).then(({harness, tests}) => {
+ assert_equals(harness.status, 'ERROR');
+ assert_equals(
+ harness.message,
+ 'test named "object" inappropriately returned a value'
+ );
+ assert_equals(tests.before, 'PASS');
+ assert_equals(tests.object, 'PASS');
+ assert_equals(tests.after, 'PASS');
+ });
+}, 'test returning an ordinary object');
+
+promise_test(() => {
+ return makeTest(
+ () => {
+ test(() => undefined, 'before');
+ test(() => ({ then() {} }), 'thenable');
+ test(() => undefined, 'after');
+ }
+ ).then(({harness, tests}) => {
+ assert_equals(harness.status, 'ERROR');
+ assert_equals(
+ harness.message,
+ 'test named "thenable" inappropriately returned a value, consider using `promise_test` instead'
+ );
+ assert_equals(tests.before, 'PASS');
+ assert_equals(tests.thenable, 'PASS');
+ assert_equals(tests.after, 'PASS');
+ });
+}, 'test returning a thenable object');
+
+promise_test(() => {
+ return makeTest(
+ () => {
+ test(() => undefined, 'before');
+ test(() => {
+ const iframe = document.createElement('iframe');
+ iframe.setAttribute('sandbox', '');
+ document.body.appendChild(iframe);
+ return iframe.contentWindow;
+ }, 'restricted');
+ test(() => undefined, 'after');
+ }
+ ).then(({harness, tests}) => {
+ assert_equals(harness.status, 'ERROR');
+ assert_equals(
+ harness.message,
+ 'test named "restricted" inappropriately returned a value'
+ );
+ assert_equals(tests.before, 'PASS');
+ assert_equals(tests.restricted, 'PASS');
+ assert_equals(tests.after, 'PASS');
+ });
+}, 'test returning a restricted object');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js
index 85e211ff60a..352e8b76266 100644
--- a/tests/wpt/web-platform-tests/resources/testharness.js
+++ b/tests/wpt/web-platform-tests/resources/testharness.js
@@ -541,7 +541,22 @@ policies and contribution forms [3].
var test_name = name ? name : test_environment.next_default_test_name();
properties = properties ? properties : {};
var test_obj = new Test(test_name, properties);
- test_obj.step(func, test_obj, test_obj);
+ var value = test_obj.step(func, test_obj, test_obj);
+
+ if (value !== undefined) {
+ var msg = "test named \"" + test_name +
+ "\" inappropriately returned a value";
+
+ try {
+ if (value && value.hasOwnProperty("then")) {
+ msg += ", consider using `promise_test` instead";
+ }
+ } catch (err) {}
+
+ tests.status.status = tests.status.ERROR;
+ tests.status.message = msg;
+ }
+
if (test_obj.phase === test_obj.phases.STARTED) {
test_obj.done();
}
diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py
index a1e5637bf1d..21dc7c8e977 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/run.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/run.py
@@ -47,15 +47,17 @@ def create_parser():
parser.add_argument("--yes", "-y", dest="prompt", action="store_false", default=True,
help="Don't prompt before installing components")
parser.add_argument("--install-browser", action="store_true",
- help="Install the browser")
+ help="Install the browser from the release channel specified by --channel "
+ "(or the nightly channel by default).")
parser.add_argument("--channel", action="store",
choices=install.channel_by_name.keys(),
- default=None, help='Name of browser release channel.'
- '"stable" and "release" are synonyms for the latest browser stable release,'
- '"nightly", "dev", "experimental", and "preview" are all synonyms for '
- 'the latest available development release. For WebDriver installs, '
- 'we attempt to select an appropriate, compatible, version for the '
- 'latest browser release on the selected channel.')
+ default=None, help='Name of browser release channel. '
+ '"stable" and "release" are synonyms for the latest browser stable '
+ 'release, "nightly", "dev", "experimental", and "preview" are all '
+ 'synonyms for the latest available development release. (For WebDriver '
+ 'installs, we attempt to select an appropriate, compatible version for '
+ 'the latest browser release on the selected channel.) '
+ 'This flag overrides --browser-channel.')
parser._add_container_actions(wptcommandline.create_parser())
return parser
@@ -249,6 +251,9 @@ class Chrome(BrowserSetup):
kwargs["webdriver_binary"] = webdriver_binary
else:
raise WptrunError("Unable to locate or install chromedriver binary")
+ if kwargs["browser_channel"] == "dev":
+ logger.info("Automatically turning on experimental features for Chrome Dev")
+ kwargs["binary_args"].append("--enable-experimental-web-platform-features")
class ChromeAndroid(BrowserSetup):
@@ -273,6 +278,7 @@ class ChromeAndroid(BrowserSetup):
else:
raise WptrunError("Unable to locate or install chromedriver binary")
+
class ChromeWebDriver(Chrome):
name = "chrome_webdriver"
browser_cls = browser.ChromeWebDriver
@@ -453,6 +459,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
setup_cls.install_requirements()
if install_browser and not kwargs["channel"]:
+ logger.info("--install-browser is given but --channel is not set, default to nightly channel")
kwargs["channel"] = "nightly"
if kwargs["channel"]:
@@ -480,7 +487,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
def run(venv, **kwargs):
- #Remove arguments that aren't passed to wptrunner
+ # Remove arguments that aren't passed to wptrunner
prompt = kwargs.pop("prompt", True)
install_browser = kwargs.pop("install_browser", False)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 127c909e810..6dde7191ec6 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -236,7 +236,7 @@ class WebDriverRun(object):
def _run(self):
try:
self.result = True, self.func(self.protocol, self.url, self.timeout)
- except client.TimeoutException:
+ except (client.TimeoutException, client.ScriptTimeoutException):
self.result = False, ("EXTERNAL-TIMEOUT", None)
except (socket.timeout, client.UnknownErrorException):
self.result = False, ("CRASH", None)
diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html
index 0bcff3bc972..60ea1850fc5 100644
--- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html
+++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-target-effect-of-an-animation.html
@@ -113,7 +113,7 @@ test(t => {
'existing animation, the target effect\'s timing is updated to reflect ' +
'the current time of the new animation.');
-test(async t => {
+promise_test(async t => {
const anim = createDiv(t).animate(null, 100 * MS_PER_SEC);
anim.updatePlaybackRate(2);
assert_equals(anim.playbackRate, 1);