diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 706145f0b16..42d376d0c6f 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -133,6 +133,12 @@
{}
]
],
+ "accelerometer/LinearAccelerationSensor-shake-threshold-manual.https.html": [
+ [
+ "/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https.html",
+ {}
+ ]
+ ],
"accname/description_from_content_of_describedby_element-manual.html": [
[
"/accname/description_from_content_of_describedby_element-manual.html",
@@ -1105,6 +1111,24 @@
{}
]
],
+ "clipboard-apis/copy-event-manual.html": [
+ [
+ "/clipboard-apis/copy-event-manual.html",
+ {}
+ ]
+ ],
+ "clipboard-apis/cut-event-manual.html": [
+ [
+ "/clipboard-apis/cut-event-manual.html",
+ {}
+ ]
+ ],
+ "clipboard-apis/paste-event-manual.html": [
+ [
+ "/clipboard-apis/paste-event-manual.html",
+ {}
+ ]
+ ],
"console/console-count-logging-manual.html": [
[
"/console/console-count-logging-manual.html",
@@ -108417,6 +108441,78 @@
{}
]
],
+ "css/css-flexbox/abspos-autopos-htb-ltr.html": [
+ [
+ "/css/css-flexbox/abspos-autopos-htb-ltr.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-flexbox/abspos-autopos-htb-rtl.html": [
+ [
+ "/css/css-flexbox/abspos-autopos-htb-rtl.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-flexbox/abspos-autopos-vlr-ltr.html": [
+ [
+ "/css/css-flexbox/abspos-autopos-vlr-ltr.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-flexbox/abspos-autopos-vlr-rtl.html": [
+ [
+ "/css/css-flexbox/abspos-autopos-vlr-rtl.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-flexbox/abspos-autopos-vrl-ltr.html": [
+ [
+ "/css/css-flexbox/abspos-autopos-vrl-ltr.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-flexbox/abspos-autopos-vrl-rtl.html": [
+ [
+ "/css/css-flexbox/abspos-autopos-vrl-rtl.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-flexbox/align-content-001.htm": [
[
"/css/css-flexbox/align-content-001.htm",
@@ -185322,6 +185418,11 @@
{}
]
],
+ "./.pyup.yml": [
+ [
+ {}
+ ]
+ ],
"./.travis.yml": [
[
{}
@@ -305730,6 +305831,12 @@
{}
]
],
+ "WebIDL/ecmascript-binding/default-iterator-object.html": [
+ [
+ "/WebIDL/ecmascript-binding/default-iterator-object.html",
+ {}
+ ]
+ ],
"WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.js": [
[
"/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.html",
@@ -305794,6 +305901,12 @@
{}
]
],
+ "WebIDL/ecmascript-binding/iterator-prototype-object.html": [
+ [
+ "/WebIDL/ecmascript-binding/iterator-prototype-object.html",
+ {}
+ ]
+ ],
"WebIDL/ecmascript-binding/legacy-callback-interface-object.html": [
[
"/WebIDL/ecmascript-binding/legacy-callback-interface-object.html",
@@ -306314,6 +306427,22 @@
}
]
],
+ "bluetooth/characteristic/service-same-from-2-characteristics.https.html": [
+ [
+ "/bluetooth/characteristic/service-same-from-2-characteristics.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/characteristic/service-same-object.https.html": [
+ [
+ "/bluetooth/characteristic/service-same-object.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html": [
[
"/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html",
@@ -306362,6 +306491,14 @@
}
]
],
+ "bluetooth/descriptor/readValue/read-succeeds.https.html": [
+ [
+ "/bluetooth/descriptor/readValue/read-succeeds.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/descriptor/writeValue/gen-service-is-removed.https.html": [
[
"/bluetooth/descriptor/writeValue/gen-service-is-removed.https.html",
@@ -306370,12 +306507,52 @@
}
]
],
+ "bluetooth/device/gattserverdisconnected-event/disconnected.https.html": [
+ [
+ "/bluetooth/device/gattserverdisconnected-event/disconnected.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html": [
+ [
+ "/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html": [
+ [
+ "/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html": [
+ [
+ "/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/idl/idl-Bluetooth.html": [
[
"/bluetooth/idl/idl-Bluetooth.html",
{}
]
],
+ "bluetooth/idl/idl-BluetoothDevice.https.html": [
+ [
+ "/bluetooth/idl/idl-BluetoothDevice.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/idl/idl-BluetoothUUID.html": [
[
"/bluetooth/idl/idl-BluetoothUUID.html",
@@ -307140,6 +307317,22 @@
}
]
],
+ "bluetooth/service/device-same-from-2-services.https.html": [
+ [
+ "/bluetooth/service/device-same-from-2-services.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "bluetooth/service/device-same-object.https.html": [
+ [
+ "/bluetooth/service/device-same-object.https.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"bluetooth/service/getCharacteristic/characteristic-found.https.html": [
[
"/bluetooth/service/getCharacteristic/characteristic-found.https.html",
@@ -307640,6 +307833,12 @@
{}
]
],
+ "content-security-policy/embedded-enforcement/required-csp-header-cascade.html": [
+ [
+ "/content-security-policy/embedded-enforcement/required-csp-header-cascade.html",
+ {}
+ ]
+ ],
"content-security-policy/embedded-enforcement/required_csp-header.html": [
[
"/content-security-policy/embedded-enforcement/required_csp-header.html",
@@ -310676,6 +310875,12 @@
}
]
],
+ "css/css-animations/pending-style-changes-001.html": [
+ [
+ "/css/css-animations/pending-style-changes-001.html",
+ {}
+ ]
+ ],
"css/css-backgrounds/background-331.html": [
[
"/css/css-backgrounds/background-331.html",
@@ -315724,12 +315929,24 @@
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/background-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/background-color.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/background-image.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/background-image.html",
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/border-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/border-color.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/border-style.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/border-style.html",
@@ -315748,6 +315965,24 @@
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/caret-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/caret-color.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/color.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/column-rule-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/column-rule-color.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/display.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/display.html",
@@ -315784,6 +316019,12 @@
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/outline-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/outline-color.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/padding.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/padding.html",
@@ -315808,12 +316049,24 @@
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/text-decoration-color.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html",
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/top.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/top.html",
@@ -388881,6 +389134,10 @@
"525f7d93f00f11086aabc1f652cf06623e21986c",
"support"
],
+ "./.pyup.yml": [
+ "0f4dffbe91d06bbfce52245ea7ef8058d3f3a3b8",
+ "support"
+ ],
"./.travis.yml": [
"975f331eb3438e5b66ccd721e1afce796b6af0d5",
"support"
@@ -395249,6 +395506,10 @@
"3d9564314c7ce59ce6a29dfa94c35e496e214bf5",
"testharness"
],
+ "WebIDL/ecmascript-binding/default-iterator-object.html": [
+ "1a7f8c61771a412544ef4a1aa187f5823615197f",
+ "testharness"
+ ],
"WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.js": [
"34432979f039c4e1ba4eb90d4f2acc96d1d441d8",
"testharness"
@@ -395281,6 +395542,10 @@
"13d2a9dbbd0d78e240c2b88d548f88ba41184e5f",
"testharness"
],
+ "WebIDL/ecmascript-binding/iterator-prototype-object.html": [
+ "60a872f6a82df3dc4438168ae4d0c3516ba03bba",
+ "testharness"
+ ],
"WebIDL/ecmascript-binding/legacy-callback-interface-object.html": [
"4eac8c853a0627577d2bd96ed76c45bd187a5734",
"testharness"
@@ -395781,6 +396046,10 @@
"c82f9595dc2582b2da40549a358da1c3fc2ff820",
"manual"
],
+ "accelerometer/LinearAccelerationSensor-shake-threshold-manual.https.html": [
+ "30e8588ff49a1d526d65aac89bc80f4782715914",
+ "manual"
+ ],
"accelerometer/OWNERS": [
"b119dbb984792f33c6e7463f3105d37c3c3b7ad8",
"support"
@@ -398833,6 +399102,14 @@
"b79a74ccf33bc76e6582ee7c1e2f3c277f99ddfb",
"testharness"
],
+ "bluetooth/characteristic/service-same-from-2-characteristics.https.html": [
+ "975aff2aff29d024b7afd73fc301244e490951a7",
+ "testharness"
+ ],
+ "bluetooth/characteristic/service-same-object.https.html": [
+ "61955287698126b45ccc44f296b53a5876e23858",
+ "testharness"
+ ],
"bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html": [
"97f5d01743721207c5addfb9625fd3da7c0c61e3",
"testharness"
@@ -398857,10 +399134,30 @@
"47f1bd316ae7d2637524a1b5d4436a3f11b20fd0",
"testharness"
],
+ "bluetooth/descriptor/readValue/read-succeeds.https.html": [
+ "dc7dd900f79a9205af3e904a309d565ae409afe9",
+ "testharness"
+ ],
"bluetooth/descriptor/writeValue/gen-service-is-removed.https.html": [
"07c2dc0a081786302040942a989cc49f6b3fa3ca",
"testharness"
],
+ "bluetooth/device/gattserverdisconnected-event/disconnected.https.html": [
+ "ee14803683f17133c6147c2eaf250befbaaf0be1",
+ "testharness"
+ ],
+ "bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html": [
+ "6b4676f3b9b34ffa45ff616eb9d3c514e33ad471",
+ "testharness"
+ ],
+ "bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html": [
+ "a0fbabe94fe246c2031fe4baf30ba52b58a17b36",
+ "testharness"
+ ],
+ "bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html": [
+ "a66e1df2d870876d06ad0990ea523153539eff0e",
+ "testharness"
+ ],
"bluetooth/generate.py": [
"ef112d89bc14d0e9ebbb457798609f6000a80935",
"support"
@@ -398873,6 +399170,10 @@
"9ef91a8214b3a46278d8b9b442b34d9052342342",
"testharness"
],
+ "bluetooth/idl/idl-BluetoothDevice.https.html": [
+ "b4c78ec760b61420a82f4a1a2951fb2eaa6af10d",
+ "testharness"
+ ],
"bluetooth/idl/idl-BluetoothUUID.html": [
"4feb7657e77a18489bbe2d7a98405470c6ce0b82",
"testharness"
@@ -399377,6 +399678,14 @@
"60b7203a67f69acfd884f0b256dd7357fe717392",
"testharness"
],
+ "bluetooth/service/device-same-from-2-services.https.html": [
+ "e321ec75c308f64f29c7208e6b6769f7497d7cd7",
+ "testharness"
+ ],
+ "bluetooth/service/device-same-object.https.html": [
+ "971c1836c90695bdb6b9ae76ef4f488b254c5e40",
+ "testharness"
+ ],
"bluetooth/service/getCharacteristic/characteristic-found.https.html": [
"53479f342ef4aab9a24aaaa4580a63b5e6bcd30b",
"testharness"
@@ -399533,6 +399842,18 @@
"e69933ca4cdc42105d469b7ffb105aa60a8e0875",
"manual"
],
+ "clipboard-apis/copy-event-manual.html": [
+ "e81d71b8fd70ba571bbded9df62c460f5799b335",
+ "manual"
+ ],
+ "clipboard-apis/cut-event-manual.html": [
+ "39f1e3f3f492a8da5fa00841b3a982ca4f47b14e",
+ "manual"
+ ],
+ "clipboard-apis/paste-event-manual.html": [
+ "26ecfb7c87f732aab17cf1084440111153f5771f",
+ "manual"
+ ],
"common/OWNERS": [
"13fbb201f77b9929d7f5693b70855c9b68abc70b",
"support"
@@ -417677,8 +417998,12 @@
"d5a253732352f46d33c1a58d1a3183a88daa3a75",
"testharness"
],
+ "content-security-policy/embedded-enforcement/required-csp-header-cascade.html": [
+ "94bb2f69cbef65ac9c062fe38990b5dcf4a5812c",
+ "testharness"
+ ],
"content-security-policy/embedded-enforcement/required_csp-header.html": [
- "b5c68072adf79a87b1371c34a9357a1507d6d981",
+ "ad4636d3552abe07c662513a8b7673fa4e5f59d6",
"testharness"
],
"content-security-policy/embedded-enforcement/subsumption_algorithm-general.html": [
@@ -417742,11 +418067,11 @@
"support"
],
"content-security-policy/embedded-enforcement/support/echo-required-csp.py": [
- "3ece10b38406736c7ca5cd0c1b5fb9e8088ef655",
+ "8d73332cdc154e05cdfa936d3f6b936b9c0ebdba",
"support"
],
"content-security-policy/embedded-enforcement/support/testharness-helper.sub.js": [
- "01887343762a0f997ee59c8392a63d0a6101b1f9",
+ "23feae559098474ba96b15f07619b9d7dba12dec",
"support"
],
"content-security-policy/font-src/font-match-allowed.sub.html": [
@@ -480025,6 +480350,10 @@
"d4692e2ac84a6dbbc9efd7937964d43ecd9dd109",
"manual"
],
+ "css/css-animations/pending-style-changes-001.html": [
+ "5f2bf4b6712dd230109be62407cd31800451a271",
+ "testharness"
+ ],
"css/css-backgrounds/OWNERS": [
"656d9f4e3a66f8cb955910171b9997140e4bbd8e",
"support"
@@ -486361,6 +486690,30 @@
"fe3aff8ac5243f870350d3a0eaa3393f93705c53",
"support"
],
+ "css/css-flexbox/abspos-autopos-htb-ltr.html": [
+ "d29f529c4d361705c3c5481f465e9e329ac7cb73",
+ "reftest"
+ ],
+ "css/css-flexbox/abspos-autopos-htb-rtl.html": [
+ "02d905c849b93c526c4f60674177189e5851bcdb",
+ "reftest"
+ ],
+ "css/css-flexbox/abspos-autopos-vlr-ltr.html": [
+ "849b20949f116f7876e09203a960a31c732ead22",
+ "reftest"
+ ],
+ "css/css-flexbox/abspos-autopos-vlr-rtl.html": [
+ "7039b16d7789dca89df92092ee9e398fa7638c14",
+ "reftest"
+ ],
+ "css/css-flexbox/abspos-autopos-vrl-ltr.html": [
+ "ab60d0e7d2ea15107a3c473fe700d8090fcbf9ec",
+ "reftest"
+ ],
+ "css/css-flexbox/abspos-autopos-vrl-rtl.html": [
+ "7039b16d7789dca89df92092ee9e398fa7638c14",
+ "reftest"
+ ],
"css/css-flexbox/align-content-001.htm": [
"fca8923c7a29229ae744af295a70533e306f3dd1",
"reftest"
@@ -519433,10 +519786,18 @@
"05e0be2c67fd695d693f2a639acf88ff78d8fd04",
"testharness"
],
+ "css/css-typed-om/the-stylepropertymap/properties/background-color.html": [
+ "f52a2182afc7107a9f411a27aab81c4c4c90ef1e",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/properties/background-image.html": [
"1255fea8e74561e14720ccf422fd841e1d3e32fa",
"testharness"
],
+ "css/css-typed-om/the-stylepropertymap/properties/border-color.html": [
+ "5b8adde602ac79d8b1ea92bd29f25d8756d72f8a",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/properties/border-style.html": [
"5d258827fb6a26d07efbdf5b47a440300f0aa307",
"testharness"
@@ -519449,6 +519810,18 @@
"e710943711544b28d07676df15966950c0d76efa",
"testharness"
],
+ "css/css-typed-om/the-stylepropertymap/properties/caret-color.html": [
+ "d4139aeff755abe89ee1e04fcd34ccfba4efe91c",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/color.html": [
+ "291f8e058d1fa6e342f4316c0760ec4cbdbc403c",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/column-rule-color.html": [
+ "ec00a4b773f2ae421b8f688908925e28d2281614",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/properties/display.html": [
"26ba44d8d5146b9d606a1668659ee16876b371c5",
"testharness"
@@ -519473,6 +519846,10 @@
"3812b01e648e3b043abbd2fe82c3733309da49ad",
"testharness"
],
+ "css/css-typed-om/the-stylepropertymap/properties/outline-color.html": [
+ "612e77914108dbba0b271b20eb3e9e80199349b3",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/properties/padding.html": [
"70c2e29badef7528469bcf11e1cb7bbc6cd519ea",
"testharness"
@@ -519482,7 +519859,7 @@
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js": [
- "b0978c7b09302ce534bdf9e77d880610edbbe6ef",
+ "a3df35f32209493e429282b89f4fdcc6581abe07",
"support"
],
"css/css-typed-om/the-stylepropertymap/properties/right.html": [
@@ -519493,10 +519870,18 @@
"88a1f5866a767c25dec2ef75728c68c5631d371f",
"testharness"
],
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-color.html": [
+ "fe6d3765ca8fea1c1963a310d0aa35fa68089a9b",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html": [
"aa9698c5b4cb896fc43c58794df84ec0bbb0e3e9",
"testharness"
],
+ "css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color.html": [
+ "9419ab219034d1fb732965ebd3a03934bcaddf5a",
+ "testharness"
+ ],
"css/css-typed-om/the-stylepropertymap/properties/top.html": [
"218b50f6b7d8209514bca8d0a8121263b07ab1e2",
"testharness"
@@ -541954,7 +542339,7 @@
"testharness"
],
"custom-elements/pseudo-class-defined.html": [
- "cf29756830dc12e60390c08486bbb3170c9c9c71",
+ "9cef47df0d95c620f754c477609f6088059879a2",
"testharness"
],
"custom-elements/reaction-timing.html": [
@@ -548654,7 +549039,7 @@
"testharness"
],
"fullscreen/model/move-to-fullscreen-iframe-manual.html": [
- "0fc5409f5e44177e1153fb61c25506c05114dc35",
+ "62aec7e1d5065bf99a00fc533c8c6d6704ac2010",
"manual"
],
"fullscreen/model/move-to-iframe-manual.html": [
@@ -568494,7 +568879,7 @@
"support"
],
"interfaces/geolocation-sensor.idl": [
- "158edb1945e5b3cefdb92953c6b3caf191d86986",
+ "7f5defe8969fd21ed1b8eeaedc9a766cb4b695c1",
"support"
],
"interfaces/geometry.idl": [
@@ -589098,7 +589483,7 @@
"testharness"
],
"service-workers/service-worker/resource-timing.https.html": [
- "a835a0baeb4fcc0c44e6be28502f89308464acc5",
+ "23cadb03b48a885dbbd9a5dfdc38b5b58f99d18a",
"testharness"
],
"service-workers/service-worker/resources/404.py": [
@@ -589930,7 +590315,7 @@
"support"
],
"service-workers/service-worker/resources/resource-timing-iframe.sub.html": [
- "c18c96a25dec48ae9d53359d4ca987ba857878a1",
+ "75bd224a9680af0557c53fb6e77645e4e0b8173d",
"support"
],
"service-workers/service-worker/resources/resource-timing-worker.js": [
@@ -598766,11 +599151,11 @@
"testharness"
],
"webrtc/RTCDTMFSender-helper.js": [
- "205469a5d95d35c0cdc091afafa49ecaccac7e2d",
+ "79825a416ad8e027628e80c9e0ef1a8dca2d8ca3",
"support"
],
"webrtc/RTCDTMFSender-insertDTMF.https.html": [
- "50ef787a77512dc7eea7731b9766fda4d1456694",
+ "591337627bf4bd0e40e6a5660efa9fc1e320d89f",
"testharness"
],
"webrtc/RTCDTMFSender-ontonechange-long.https.html": [
@@ -598778,7 +599163,7 @@
"testharness"
],
"webrtc/RTCDTMFSender-ontonechange.https.html": [
- "5d81b305d0b46f158e1533ffea648ae61f09c58a",
+ "4f53cbc7fafeeed5202774b58d4bf721055b382e",
"testharness"
],
"webrtc/RTCDataChannel-bufferedAmount.html": [
@@ -603742,11 +604127,11 @@
"support"
],
"workers/data-url-shared.html": [
- "3650dbf419d8bbfe7380a36426793336998975cc",
+ "7fae8fa78f0e66ffa8cf0dd1bf3e887fae349e4e",
"testharness"
],
"workers/data-url.html": [
- "c693eac37e1a8856b82a923b2f1142360afc6411",
+ "3de4925fb0a05ecf4da839dbf9b293c73a3c0354",
"testharness"
],
"workers/interfaces.worker.js": [
diff --git a/tests/wpt/metadata/WebIDL/ecmascript-binding/default-iterator-object.html.ini b/tests/wpt/metadata/WebIDL/ecmascript-binding/default-iterator-object.html.ini
new file mode 100644
index 00000000000..af18edfa206
--- /dev/null
+++ b/tests/wpt/metadata/WebIDL/ecmascript-binding/default-iterator-object.html.ini
@@ -0,0 +1,7 @@
+[default-iterator-object.html]
+ [Object.prototype.toString returns correct value]
+ expected: FAIL
+
+ [@@toStringTag has correct value from prototype]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/WebIDL/ecmascript-binding/iterator-prototype-object.html.ini b/tests/wpt/metadata/WebIDL/ecmascript-binding/iterator-prototype-object.html.ini
new file mode 100644
index 00000000000..7e739cd32f0
--- /dev/null
+++ b/tests/wpt/metadata/WebIDL/ecmascript-binding/iterator-prototype-object.html.ini
@@ -0,0 +1,7 @@
+[iterator-prototype-object.html]
+ [Object.prototype.toString returns correct value]
+ expected: FAIL
+
+ [@@toStringTag has correct value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-animations/pending-style-changes-001.html.ini b/tests/wpt/metadata/css/css-animations/pending-style-changes-001.html.ini
new file mode 100644
index 00000000000..26accdad30b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-animations/pending-style-changes-001.html.ini
@@ -0,0 +1,7 @@
+[pending-style-changes-001.html]
+ [Animatable::getAnimations() should be able to see a style-created CSS animation immediately]
+ expected: FAIL
+
+ [Document::getAnimations() should be able to see a style-created CSS animation immediately]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos-autopos-htb-ltr.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-htb-ltr.html.ini
new file mode 100644
index 00000000000..7c4a69a3e72
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-htb-ltr.html.ini
@@ -0,0 +1,2 @@
+[abspos-autopos-htb-ltr.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos-autopos-htb-rtl.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-htb-rtl.html.ini
new file mode 100644
index 00000000000..3e647b62b4d
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-htb-rtl.html.ini
@@ -0,0 +1,2 @@
+[abspos-autopos-htb-rtl.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vlr-ltr.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vlr-ltr.html.ini
new file mode 100644
index 00000000000..14a6cbfcaa1
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vlr-ltr.html.ini
@@ -0,0 +1,2 @@
+[abspos-autopos-vlr-ltr.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vlr-rtl.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vlr-rtl.html.ini
new file mode 100644
index 00000000000..76046a7b677
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vlr-rtl.html.ini
@@ -0,0 +1,2 @@
+[abspos-autopos-vlr-rtl.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vrl-ltr.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vrl-ltr.html.ini
new file mode 100644
index 00000000000..b79a95f7664
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vrl-ltr.html.ini
@@ -0,0 +1,2 @@
+[abspos-autopos-vrl-ltr.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vrl-rtl.html.ini b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vrl-rtl.html.ini
new file mode 100644
index 00000000000..7d0f3d6cab1
--- /dev/null
+++ b/tests/wpt/metadata/css/css-flexbox/abspos-autopos-vrl-rtl.html.ini
@@ -0,0 +1,2 @@
+[abspos-autopos-vrl-rtl.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini
deleted file mode 100644
index 26435e28b09..00000000000
--- a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[vh_not_refreshing_on_chrome.html]
- expected: FAIL
diff --git a/tests/wpt/metadata/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html.ini b/tests/wpt/metadata/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html.ini
new file mode 100644
index 00000000000..33164945eb6
--- /dev/null
+++ b/tests/wpt/metadata/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html.ini
@@ -0,0 +1,4 @@
+[010.html]
+ [Salvagability of document.opened document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/data-url-shared.html.ini b/tests/wpt/metadata/workers/data-url-shared.html.ini
index 036709be081..1241a6a6d52 100644
--- a/tests/wpt/metadata/workers/data-url-shared.html.ini
+++ b/tests/wpt/metadata/workers/data-url-shared.html.ini
@@ -30,3 +30,9 @@
[A data: URL shared worker should not be shared among origins.]
expected: FAIL
+ [indexedDB is present]
+ expected: FAIL
+
+ [indexedDB is inaccessible]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/data-url.html.ini b/tests/wpt/metadata/workers/data-url.html.ini
index ddcfc38e63b..c842ce5047d 100644
--- a/tests/wpt/metadata/workers/data-url.html.ini
+++ b/tests/wpt/metadata/workers/data-url.html.ini
@@ -3,3 +3,6 @@
[worker has opaque origin]
expected: FAIL
+ [indexedDB is present]
+ expected: FAIL
+
diff --git a/tests/wpt/mozilla/meta/css/border_radius_elliptical_a.html.ini b/tests/wpt/mozilla/meta/css/border_radius_elliptical_a.html.ini
index 05cd04dccf2..030543a5009 100644
--- a/tests/wpt/mozilla/meta/css/border_radius_elliptical_a.html.ini
+++ b/tests/wpt/mozilla/meta/css/border_radius_elliptical_a.html.ini
@@ -1,2 +1,3 @@
[border_radius_elliptical_a.html]
bug: https://github.com/servo/servo/issues/19271
+ expected: FAIL
diff --git a/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini
new file mode 100644
index 00000000000..65c78fd3a4a
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini
@@ -0,0 +1,2 @@
+[hide_after_load.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/mozilla/meta/css/line_break_nowrap.html.ini b/tests/wpt/mozilla/meta/css/line_break_nowrap.html.ini
new file mode 100644
index 00000000000..6d8e7cb0453
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/line_break_nowrap.html.ini
@@ -0,0 +1,2 @@
+[line_break_nowrap.html]
+ expected: FAIL
diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
new file mode 100644
index 00000000000..dbea4f293ad
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
@@ -0,0 +1,2 @@
+[transition_calc_implicit.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/mozilla/meta/mozilla/simple_scroll_to_fragment.html.ini b/tests/wpt/mozilla/meta/mozilla/simple_scroll_to_fragment.html.ini
new file mode 100644
index 00000000000..1fb12157a34
--- /dev/null
+++ b/tests/wpt/mozilla/meta/mozilla/simple_scroll_to_fragment.html.ini
@@ -0,0 +1,2 @@
+[simple_scroll_to_fragment.html]
+ expected: FAIL
diff --git a/tests/wpt/web-platform-tests/.pyup.yml b/tests/wpt/web-platform-tests/.pyup.yml
new file mode 100644
index 00000000000..be8cb20e3ba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/.pyup.yml
@@ -0,0 +1,40 @@
+# search for requirement files
+# default: True
+# allowed: True, False
+search: False
+
+# Specify requirement files by hand, default is empty
+# default: empty
+# allowed: list
+requirements:
+ - tools/wptrunner/requirements_chrome_android.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_edge.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_opera.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_servo.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_sauce.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_ie.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_firefox.txt:
+ update: all
+ pin: True
+ - tools/wptrunner/requirements_chrome.txt:
+ update: all
+ pin: True
+ - tools/wpt/requirements.txt:
+ update: all
+ pin: True
+
diff --git a/tests/wpt/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html b/tests/wpt/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html
new file mode 100644
index 00000000000..c7e9188521a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object.html
@@ -0,0 +1,27 @@
+
+
+
Default iterator objects
+
+
+
diff --git a/tests/wpt/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html b/tests/wpt/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html
new file mode 100644
index 00000000000..5a935fa2013
--- /dev/null
+++ b/tests/wpt/web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object.html
@@ -0,0 +1,56 @@
+
+
+Iterator prototype objects
+
+
+
diff --git a/tests/wpt/web-platform-tests/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https.html b/tests/wpt/web-platform-tests/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https.html
new file mode 100644
index 00000000000..c0746e5ebd5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/accelerometer/LinearAccelerationSensor-shake-threshold-manual.https.html
@@ -0,0 +1,32 @@
+
+
+LinearAccelerationSensor Shake Threshold Test
+
+
+
+
+
+ Shake gesture along x axis of the device.
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html
new file mode 100644
index 00000000000..aa156b2e988
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/service-same-from-2-characteristics.https.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/characteristic/service-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/characteristic/service-same-object.https.html
new file mode 100644
index 00000000000..ee961216983
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/characteristic/service-same-object.https.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/descriptor/readValue/read-succeeds.https.html b/tests/wpt/web-platform-tests/bluetooth/descriptor/readValue/read-succeeds.https.html
new file mode 100644
index 00000000000..35ff057cbad
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/descriptor/readValue/read-succeeds.https.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/disconnected.https.html b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/disconnected.https.html
new file mode 100644
index 00000000000..19ad407c93e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/disconnected.https.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html
new file mode 100644
index 00000000000..bde70370a7c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html
new file mode 100644
index 00000000000..68bf79f2086
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html
new file mode 100644
index 00000000000..ee2e59882aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/idl/idl-BluetoothDevice.https.html b/tests/wpt/web-platform-tests/bluetooth/idl/idl-BluetoothDevice.https.html
new file mode 100644
index 00000000000..855d8fed800
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/idl/idl-BluetoothDevice.https.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/device-same-from-2-services.https.html b/tests/wpt/web-platform-tests/bluetooth/service/device-same-from-2-services.https.html
new file mode 100644
index 00000000000..366549378e8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/service/device-same-from-2-services.https.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/bluetooth/service/device-same-object.https.html b/tests/wpt/web-platform-tests/bluetooth/service/device-same-object.https.html
new file mode 100644
index 00000000000..f43e9f022d9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/bluetooth/service/device-same-object.https.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/copy-event-manual.html b/tests/wpt/web-platform-tests/clipboard-apis/copy-event-manual.html
new file mode 100644
index 00000000000..e4cf3379ace
--- /dev/null
+++ b/tests/wpt/web-platform-tests/clipboard-apis/copy-event-manual.html
@@ -0,0 +1,19 @@
+
+The copy event
+
+
+
+
+Select and copy any part of this text to continue.
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/cut-event-manual.html b/tests/wpt/web-platform-tests/clipboard-apis/cut-event-manual.html
new file mode 100644
index 00000000000..abef6f94bf6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/clipboard-apis/cut-event-manual.html
@@ -0,0 +1,19 @@
+
+
The cut event
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/clipboard-apis/paste-event-manual.html b/tests/wpt/web-platform-tests/clipboard-apis/paste-event-manual.html
new file mode 100644
index 00000000000..4131a41bff6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/clipboard-apis/paste-event-manual.html
@@ -0,0 +1,21 @@
+
+The paste event
+
+
+
+
+
+Some pre-selected text to copy for convenience
+
diff --git a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required-csp-header-cascade.html b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required-csp-header-cascade.html
new file mode 100644
index 00000000000..f130b1714e7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required-csp-header-cascade.html
@@ -0,0 +1,67 @@
+
+
+
+Embedded Enforcement: Sec-Required-CSP header.
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required_csp-header.html b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required_csp-header.html
index 9e7894b6b30..510c25b0b00 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required_csp-header.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/required_csp-header.html
@@ -58,25 +58,25 @@
tests.forEach(test => {
async_test(t => {
var url = generateURLString(Host.SAME_ORIGIN, PolicyHeader.REQUIRED_CSP);
- assert_required_csp(t, url, test.csp, test.expected);
+ assert_required_csp(t, url, test.csp, [test.expected]);
}, "Test same origin: " + test.name);
async_test(t => {
var url = generateURLString(Host.SAME_ORIGIN, PolicyHeader.REQUIRED_CSP);
var redirect_url = generateRedirect(Host.SAME_ORIGIN, url);
- assert_required_csp(t, redirect_url, test.csp, test.expected);
+ assert_required_csp(t, redirect_url, test.csp, [test.expected]);
}, "Test same origin redirect: " + test.name);
async_test(t => {
var url = generateURLString(Host.SAME_ORIGIN, PolicyHeader.REQUIRED_CSP);
var redirect_url = generateRedirect(Host.CROSS_ORIGIN, url);
- assert_required_csp(t, redirect_url, test.csp, test.expected);
+ assert_required_csp(t, redirect_url, test.csp, [test.expected]);
}, "Test cross origin redirect: " + test.name);
async_test(t => {
var url = generateURLString(Host.CROSS_ORIGIN, PolicyHeader.REQUIRED_CSP);
var redirect_url = generateRedirect(Host.CROSS_ORIGIN, url);
- assert_required_csp(t, redirect_url, test.csp, test.expected);
+ assert_required_csp(t, redirect_url, test.csp, [test.expected]);
}, "Test cross origin redirect of cross origin iframe: " + test.name);
async_test(t => {
diff --git a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/echo-required-csp.py b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/echo-required-csp.py
index 165ba9aa37a..930a1f60853 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/echo-required-csp.py
+++ b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/echo-required-csp.py
@@ -3,13 +3,37 @@ def main(request, response):
header = request.headers.get("Sec-Required-CSP");
message = {}
message['required_csp'] = header if header else None
+ second_level_iframe_code = ""
+ if "include_second_level_iframe" in request.GET:
+ if "second_level_iframe_csp" in request.GET and request.GET["second_level_iframe_csp"] <> "":
+ second_level_iframe_code = ''''''.format(request.GET["second_level_iframe_csp"])
+ else:
+ second_level_iframe_code = ''''''
+
return [("Content-Type", "text/html"), ("Allow-CSP-From", "*")], '''
+
+
+{1}
+
-'''.format(json.dumps(message))
+'''.format(json.dumps(message), second_level_iframe_code, str(request.headers))
diff --git a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js
index f6a64b073e4..c48a136b936 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js
+++ b/tests/wpt/web-platform-tests/content-security-policy/embedded-enforcement/support/testharness-helper.sub.js
@@ -34,16 +34,25 @@ function getSecureCrossOrigin() {
return url.toString();
}
-function generateURL(host, path) {
+function generateURL(host, path, include_second_level_iframe, second_level_iframe_csp) {
var url = new URL("http://{{host}}:{{ports[http][0]}}/content-security-policy/embedded-enforcement/support/");
url.hostname = host == Host.SAME_ORIGIN ? "{{host}}" : "{{domains[天気の良い日]}}";
url.pathname += path;
+ if (include_second_level_iframe) {
+ url.searchParams.append("include_second_level_iframe", "");
+ if (second_level_iframe_csp)
+ url.searchParams.append("second_level_iframe_csp", second_level_iframe_csp);
+ }
return url;
}
function generateURLString(host, path) {
- return generateURL(host, path).toString();
+ return generateURL(host, path, false, "").toString();
+}
+
+function generateURLStringWithSecondIframeParams(host, path, second_level_iframe_csp) {
+ return generateURL(host, path, true, second_level_iframe_csp).toString();
}
function generateRedirect(host, target) {
@@ -77,8 +86,13 @@ function assert_required_csp(t, url, csp, expected) {
window.addEventListener('message', t.step_func(e => {
if (e.source != i.contentWindow || !('required_csp' in e.data))
return;
- assert_equals(e.data['required_csp'], expected);
- t.done();
+
+ if (expected.indexOf(e.data['required_csp']) == -1)
+ assert_unreached('Child iframes have unexpected csp:"' + e.data['required_csp'] + '"');
+
+ expected.splice(expected.indexOf(e.data['required_csp']), 1);
+ if (expected.length == 0)
+ t.done();
}));
document.body.appendChild(i);
diff --git a/tests/wpt/web-platform-tests/css/css-animations/pending-style-changes-001.html b/tests/wpt/web-platform-tests/css/css-animations/pending-style-changes-001.html
new file mode 100644
index 00000000000..fb74d7fa7d0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/pending-style-changes-001.html
@@ -0,0 +1,34 @@
+
+CSS Animations Test: requirement on pending style changes - getAnimations
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr.html b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr.html
new file mode 100644
index 00000000000..095936edf8b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr.html
@@ -0,0 +1,34 @@
+
+Absolutely positioned child with auto position in vertical-rl ltr flexbox
+
+
+
+
+
+Test passes if there is a filled green square and no red .
+
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl.html b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl.html
new file mode 100644
index 00000000000..b377e8dd6dd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl.html
@@ -0,0 +1,34 @@
+
+Absolutely positioned child with auto position in vertical-rl ltr flexbox
+
+
+
+
+
+Test passes if there is a filled green square and no red .
+
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr.html b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr.html
new file mode 100644
index 00000000000..02c7cf3fd90
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr.html
@@ -0,0 +1,34 @@
+
+Absolutely positioned child with auto position in vertical-rl ltr flexbox
+
+
+
+
+
+Test passes if there is a filled green square and no red .
+
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl.html b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl.html
new file mode 100644
index 00000000000..a156a727a52
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl.html
@@ -0,0 +1,34 @@
+
+Absolutely positioned child with auto position in vertical-rl ltr flexbox
+
+
+
+
+
+Test passes if there is a filled green square and no red .
+
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr.html b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr.html
new file mode 100644
index 00000000000..99ea3c41ca9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr.html
@@ -0,0 +1,34 @@
+
+Absolutely positioned child with auto position in vertical-rl ltr flexbox
+
+
+
+
+
+Test passes if there is a filled green square and no red .
+
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl.html b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl.html
new file mode 100644
index 00000000000..a156a727a52
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl.html
@@ -0,0 +1,34 @@
+
+Absolutely positioned child with auto position in vertical-rl ltr flexbox
+
+
+
+
+
+Test passes if there is a filled green square and no red .
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-color.html
new file mode 100644
index 00000000000..f684a40fb62
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-color.html
@@ -0,0 +1,30 @@
+
+
+'background-color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-color.html
new file mode 100644
index 00000000000..3ce4ca94fce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-color.html
@@ -0,0 +1,33 @@
+
+
+'border-color' properties
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/caret-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/caret-color.html
new file mode 100644
index 00000000000..5ea78a08d38
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/caret-color.html
@@ -0,0 +1,35 @@
+
+
+'caret-color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/color.html
new file mode 100644
index 00000000000..f56182977c5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/color.html
@@ -0,0 +1,30 @@
+
+
+'color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-rule-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-rule-color.html
new file mode 100644
index 00000000000..3d35b856d71
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-rule-color.html
@@ -0,0 +1,30 @@
+
+
+'column-rule-color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-color.html
new file mode 100644
index 00000000000..6bfec87a8c7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/outline-color.html
@@ -0,0 +1,31 @@
+
+
+'outline-color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
index d75a0d86c2d..a198c414246 100644
--- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
@@ -228,6 +228,25 @@ function testPropertyInvalid(propertyName, examples, description) {
}, `Setting '${propertyName}' to ${description} throws TypeError`);
}
+// Test that styleMap.get/.set roundtrips correctly for unsupported values.
+function testUnsupportedValue(propertyName, cssText) {
+ test(t => {
+ let element1 = createDivWithStyle(t);
+ let element2 = createDivWithStyle(t);
+
+ element1.style[propertyName] = cssText;
+ const result = element1.attributeStyleMap.get(propertyName);
+ assert_not_equals(result, null,
+ 'Unsupported value must not be null');
+ assert_class_string(result, 'CSSStyleValue',
+ 'Unsupported value must be a CSSStyleValue and not one of its subclasses');
+
+ element2.attributeStyleMap.set(propertyName, result);
+ assert_equals(element2.style[propertyName], element1.style[propertyName],
+ 'Unsupported value can be set on different element');
+ }, `'${propertyName}' does not supported '${cssText}'`);
+}
+
function createKeywordExample(keyword) {
return {
description: `the '${keyword}' keyword`,
@@ -297,3 +316,13 @@ function runPropertyTests(propertyName, testCases) {
}
}
}
+
+// Check that |propertyName| doesn't "support" examples in |testExamples|.
+// |testExamples| is a list of CSS string values. An "unsupported" value
+// doesn't have a corresponding Typed OM representation. It normalizes as
+// the base CSSStyleValue.
+function runUnsupportedPropertyTests(propertyName, testExamples) {
+ for (const cssText of testExamples) {
+ testUnsupportedValue(propertyName, cssText);
+ }
+}
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-color.html
new file mode 100644
index 00000000000..b76f82c3ea1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-color.html
@@ -0,0 +1,30 @@
+
+
+'text-decoration-color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color.html
new file mode 100644
index 00000000000..8623d3dfb9b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color.html
@@ -0,0 +1,30 @@
+
+
+'text-emphasis-color' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html b/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html
index 30d5ac9ce25..60d88cffb51 100644
--- a/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html
+++ b/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html
@@ -9,6 +9,7 @@ const testList = [
{ tag_name: 'a-a', defined: false },
{ tag_name: 'font-face', defined: true },
{ tag_name: 'abbr', is: 'my-abbr', defined: false },
+ { tag_name: 'p', is: '', defined: false },
];
// Setup iframe to test the parser.
@@ -20,7 +21,7 @@ iframe.srcdoc = ``
- + testList.map(d => `<${d.tag_name}${d.is ? ' is=' + d.is : ''}>${d.tag_name}>`).join('');
+ + testList.map(d => `<${d.tag_name}${d.is !== undefined ? ' is=' + d.is : ''}>${d.tag_name}>`).join('');
setup({ explicit_done: true });
iframe.onload = () => {
const doc = iframe.contentDocument;
@@ -31,7 +32,8 @@ iframe.onload = () => {
`<${data.tag_name}${data.is ? ' is=' + data.is : ''}>`);
// Test DOM createElement() methods.
- test_defined_for_createElement(data.defined, !data.defined, doc, data.tag_name, data.is);
+ let try_upgrade = !data.defined && (data.is === undefined || data.is.length > 0);
+ test_defined_for_createElement(data.defined, try_upgrade, doc, data.tag_name, data.is);
// Documents without browsing context should behave the same.
test_defined_for_createElement(data.defined, false, doc_without_browsing_context, data.tag_name, data.is, 'Without browsing context: ');
@@ -41,21 +43,22 @@ iframe.onload = () => {
};
function test_defined_for_createElement(defined, should_test_change, doc, tag_name, is, description = '') {
- let is_desc = is ? `, { is: "${is}" }` : '';
+ let has_is = is !== undefined;
+ let is_desc = has_is ? `, { is: "${is}" }` : '';
// Test document.createElement().
- let element = is ? doc.createElement(tag_name, { is: is }) : doc.createElement(tag_name);
+ let element = has_is ? doc.createElement(tag_name, { is: is }) : doc.createElement(tag_name);
doc.body.appendChild(element);
test_defined(defined, element, `${description}createElement("${tag_name}"${is_desc})`);
// Test document.createElementNS().
- let html_element = is ? doc.createElementNS('http://www.w3.org/1999/xhtml', tag_name, { is: is })
- : doc.createElementNS('http://www.w3.org/1999/xhtml', tag_name);
+ let html_element = has_is ? doc.createElementNS('http://www.w3.org/1999/xhtml', tag_name, { is: is })
+ : doc.createElementNS('http://www.w3.org/1999/xhtml', tag_name);
doc.body.appendChild(html_element);
test_defined(defined, html_element, `${description}createElementNS("http://www.w3.org/1999/xhtml", "${tag_name}"${is_desc})`);
// If the element namespace is not HTML, it should be "uncustomized"; i.e., "defined".
- let svg_element = is ? doc.createElementNS('http://www.w3.org/2000/svg', tag_name, { is: is })
- : doc.createElementNS('http://www.w3.org/2000/svg', tag_name);
+ let svg_element = has_is ? doc.createElementNS('http://www.w3.org/2000/svg', tag_name, { is: is })
+ : doc.createElementNS('http://www.w3.org/2000/svg', tag_name);
doc.body.appendChild(svg_element);
test_defined(true, svg_element, `${description}createElementNS("http://www.w3.org/2000/svg", "${tag_name}"${is_desc})`);
diff --git a/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html
index d152f7d144b..683865a0e00 100644
--- a/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html
+++ b/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html
@@ -12,6 +12,8 @@ async_test(t => {
// Enter fullscreen for the iframe's body element.
trusted_request(t, iframeDoc.body, document.body);
document.onfullscreenchange = t.step_func(() => {
+ assert_equals(document.fullscreenElement, iframe, "document's initial fullscreen element");
+ assert_equals(iframeDoc.fullscreenElement, iframeDoc.body, "iframe's initial fullscreen element");
// Then, move the outer document's body into the iframe. This is an unusual
// thing to do, but means that the iframe is removed from its document and
@@ -20,12 +22,15 @@ async_test(t => {
// If we exit in an orderly fashion, that's all one can ask for.
document.onfullscreenchange = t.step_func_done(() => {
- assert_equals(document.fullscreenElement, null, "document's fullscreen element");
+ assert_equals(document.fullscreenElement, null, "document's final fullscreen element");
- // the iframe's contentDocument has become undefined, but the reference
- // we're holding on to should not have a fullscreen element either.
- assert_equals(iframe.contentDocuemnt, undefined, "iframe's content document");
- assert_equals(iframeDoc.fullscreenElement, null, "iframe's fullscreen element");
+ // Because the iframe was removed, its browsing context was discarded and
+ // its contentDocument has become null. Because that browsing context was
+ // neither a descendant browsing context nor had an active document,
+ // nothing at all was done with it in the exit fullscreen algorithm, so
+ // its fullscreenElement is unchanged.
+ assert_equals(iframe.contentDocument, null, "iframe's content document");
+ assert_equals(iframeDoc.fullscreenElement, iframeDoc.body, "iframe's final fullscreen element");
});
});
});
diff --git a/tests/wpt/web-platform-tests/interfaces/geolocation-sensor.idl b/tests/wpt/web-platform-tests/interfaces/geolocation-sensor.idl
index 81891551e50..28508db389c 100644
--- a/tests/wpt/web-platform-tests/interfaces/geolocation-sensor.idl
+++ b/tests/wpt/web-platform-tests/interfaces/geolocation-sensor.idl
@@ -1,5 +1,6 @@
-[Constructor(optional SensorOptions options), SecureContext, Exposed=Window]
+[Constructor(optional GeolocationSensorOptions options), SecureContext, Exposed=Window]
interface GeolocationSensor : Sensor {
+ static Promise read(optional ReadOptions readOptions);
readonly attribute unrestricted double? latitude;
readonly attribute unrestricted double? longitude;
readonly attribute unrestricted double? altitude;
@@ -8,3 +9,22 @@ interface GeolocationSensor : Sensor {
readonly attribute unrestricted double? heading;
readonly attribute unrestricted double? speed;
};
+
+dictionary GeolocationSensorOptions : SensorOptions {
+ // placeholder for GeolocationSensor-specific options
+};
+
+dictionary ReadOptions : GeolocationSensorOptions {
+ AbortSignal? signal;
+};
+
+dictionary GeolocationSensorReading {
+ DOMHighResTimeStamp? timestamp;
+ double? latitude;
+ double? longitude;
+ double? altitude;
+ double? accuracy;
+ double? altitudeAccuracy;
+ double? heading;
+ double? speed;
+};
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resource-timing.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resource-timing.https.html
index da898e2bf6d..f6e197cf868 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/resource-timing.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resource-timing.https.html
@@ -12,28 +12,33 @@ function crossOriginUrl(path) {
return get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() + path;
}
-function verify(performance, resource, mode, description) {
- var url = mode === 'cross-origin' ? crossOriginUrl(resource)
- : resourceUrl(resource);
- var entryList = performance.getEntries();
- var entry = performance.getEntriesByName(url)[0];
- assert_greater_than(entry.workerStart, 0, description);
- assert_greater_than_equal(entry.workerStart, entry.startTime, description);
- assert_less_than_equal(entry.workerStart, entry.fetchStart, description);
- if (mode === 'cross-origin') {
- assert_equals(entry.responseStart, 0, description);
- assert_greater_than_equal(entry.responseEnd, entry.fetchStart, description);
- } else {
- assert_greater_than_equal(entry.responseStart, entry.fetchStart, description);
- assert_greater_than_equal(entry.responseEnd, entry.responseStart, description);
+function verify(options) {
+ var url = options.mode === 'cross-origin' ? crossOriginUrl(options.resource)
+ : resourceUrl(options.resource);
+ var entryList = options.performance.getEntriesByName(url);
+ if (entryList.length === 0 && options.allow_no_performance_entry) {
+ // The performance timeline may not have an entry for a resource
+ // which failed to load.
+ return;
}
- assert_greater_than(entry.responseEnd, entry.fetchStart, description);
- assert_greater_than(entry.duration, 0, description);
- if (resource.indexOf('redirect.py') != -1) {
- assert_less_than_equal(entry.workerStart, entry.redirectStart,
- description);
+ var entry = entryList[0];
+ assert_greater_than(entry.workerStart, 0, options.description);
+ assert_greater_than_equal(entry.workerStart, entry.startTime, options.description);
+ assert_less_than_equal(entry.workerStart, entry.fetchStart, options.description);
+ if (options.mode === 'cross-origin') {
+ assert_equals(entry.responseStart, 0, options.description);
+ assert_greater_than_equal(entry.responseEnd, entry.fetchStart, options.description);
} else {
- assert_equals(entry.redirectStart, 0, description);
+ assert_greater_than_equal(entry.responseStart, entry.fetchStart, options.description);
+ assert_greater_than_equal(entry.responseEnd, entry.responseStart, options.description);
+ }
+ assert_greater_than(entry.responseEnd, entry.fetchStart, options.description);
+ assert_greater_than(entry.duration, 0, options.description);
+ if (options.resource.indexOf('redirect.py') != -1) {
+ assert_less_than_equal(entry.workerStart, entry.redirectStart,
+ options.description);
+ } else {
+ assert_equals(entry.redirectStart, 0, options.description);
}
}
@@ -52,19 +57,54 @@ async_test(function(t) {
})
.then(function(frame) {
var performance = frame.contentWindow.performance;
- verify(performance, 'resources/dummy.js', 'same-origin',
- 'Generated response');
- verify(performance, 'resources/empty.js', 'same-origin',
- 'Network fallback');
- verify(performance, 'resources/redirect.py?Redirect=empty.js',
- 'same-origin', 'Redirect');
- verify(performance, 'resources/missing.jpg', 'same-origin',
- 'Network fallback image');
-
+ verify({
+ performance: performance,
+ resource: 'resources/dummy.js',
+ mode: 'same-origin',
+ description: 'Generated response',
+ });
+ verify({
+ performance: performance,
+ resource: 'resources/empty.js',
+ mode: 'same-origin',
+ description: 'Network fallback',
+ });
+ verify({
+ performance: performance,
+ resource: 'resources/redirect.py?Redirect=empty.js',
+ mode: 'same-origin',
+ description: 'Redirect',
+ });
+ verify({
+ performance: performance,
+ resource: 'resources/square.png',
+ mode: 'same-origin',
+ description: 'Network fallback image',
+ });
// Test that worker start is available on cross-origin no-cors
// subresources.
- verify(performance, 'resources/missing.jpg', 'cross-origin',
- 'Network fallback cross-origin image');
+ verify({
+ performance: performance,
+ resource: 'resources/square.png',
+ mode: 'cross-origin',
+ description: 'Network fallback cross-origin image',
+ });
+
+ // Tests for resouces which failed to load.
+ verify({
+ performance: performance,
+ resource: 'resources/missing.jpg',
+ mode: 'same-origin',
+ description: 'Network fallback load failure',
+ allow_no_performance_entry: true,
+ });
+ verify({
+ performance: performance,
+ resource: 'resources/missing.jpg',
+ mode: 'cross-origin',
+ description: 'Network fallback cross-origin load failure',
+ allow_no_performance_entry: true,
+ });
frame.remove();
return registration.unregister();
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html
index c9308ea515e..69cff7c00af 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html
@@ -2,5 +2,7 @@
+
+
diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py
index 71b9edc63d3..86580f9c58b 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/browser.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py
@@ -211,7 +211,7 @@ class Firefox(Browser):
class Chrome(Browser):
"""Chrome-specific interface.
- Includes installation, webdriver installation, and wptrunner setup methods.
+ Includes webdriver installation, and wptrunner setup methods.
"""
product = "chrome"
@@ -284,9 +284,9 @@ class Chrome(Browser):
class ChromeAndroid(Browser):
- """Chrome-specific interface for android.
+ """Chrome-specific interface for Android.
- Includes installation, webdriver installation, and wptrunner setup methods.
+ Includes webdriver installation.
"""
product = "chrome_android"
@@ -309,7 +309,7 @@ class ChromeAndroid(Browser):
class Opera(Browser):
"""Opera-specific interface.
- Includes installation, webdriver installation, and wptrunner setup methods.
+ Includes webdriver installation, and wptrunner setup methods.
"""
product = "opera"
@@ -386,10 +386,7 @@ class Opera(Browser):
class Edge(Browser):
- """Edge-specific interface.
-
- Includes installation, webdriver installation, and wptrunner setup methods.
- """
+ """Edge-specific interface."""
product = "edge"
requirements = "requirements_edge.txt"
@@ -409,10 +406,7 @@ class Edge(Browser):
class InternetExplorer(Browser):
- """Internet Explorer-specific interface.
-
- Includes installation, webdriver installation, and wptrunner setup methods.
- """
+ """Internet Explorer-specific interface."""
product = "ie"
requirements = "requirements_ie.txt"
@@ -432,10 +426,7 @@ class InternetExplorer(Browser):
class Servo(Browser):
- """Servo-specific interface.
-
- Includes installation, webdriver installation, and wptrunner setup methods.
- """
+ """Servo-specific interface."""
product = "servo"
requirements = "requirements_servo.txt"
@@ -457,10 +448,7 @@ class Servo(Browser):
class Sauce(Browser):
- """Sauce-specific interface.
-
- Includes installation, webdriver installation, and wptrunner setup methods.
- """
+ """Sauce-specific interface."""
product = "sauce"
requirements = "requirements_sauce.txt"
diff --git a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt
index 7369cb8e02c..271baf7e23f 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt
+++ b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt
@@ -1 +1 @@
-requests==2.14.2
+requests==2.18.4
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt
index 51bce11d7b9..ed4d59a1e78 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt
@@ -1,3 +1,3 @@
mozprocess == 0.26
selenium == 3.9.0
-requests
+requests==2.18.4
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-helper.js b/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-helper.js
index 97bb6f93479..23c01d9f756 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-helper.js
+++ b/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-helper.js
@@ -8,17 +8,50 @@
// The following helper functions are called from RTCPeerConnection-helper.js:
// getTrackFromUserMedia
+// doSignalingHandshake
// Create a RTCDTMFSender using getUserMedia()
+// Connect the PeerConnection to another PC and wait until it is
+// properly connected, so that DTMF can be sent.
function createDtmfSender(pc = new RTCPeerConnection()) {
+ var dtmfSender;
return getTrackFromUserMedia('audio')
.then(([track, mediaStream]) => {
const sender = pc.addTrack(track, mediaStream);
- const dtmfSender = sender.dtmf;
-
+ dtmfSender = sender.dtmf;
assert_true(dtmfSender instanceof RTCDTMFSender,
- 'Expect audio sender.dtmf to be set to a RTCDTMFSender');
-
+ 'Expect audio sender.dtmf to be set to a RTCDTMFSender');
+ // Note: spec bug open - https://github.com/w3c/webrtc-pc/issues/1774
+ // on whether sending should be possible before negotiation.
+ const pc2 = new RTCPeerConnection();
+ Object.defineProperty(pc, 'otherPc', { value: pc2 });
+ exchangeIceCandidates(pc, pc2);
+ return doSignalingHandshake(pc, pc2);
+ }).then(() => {
+ // Wait until dtmfSender.canInsertDTMF becomes true.
+ // Up to 150 ms has been observed in test. Wait 1 second
+ // in steps of 10 ms.
+ // Note: Using a short timeout and rejected promise in order to
+ // make test return a clear error message on failure.
+ return new Promise((resolve, reject) => {
+ let counter = 0;
+ let checkfunc = function() {
+ if (dtmfSender.canInsertDTMF) {
+ resolve();
+ } else {
+ if (counter >= 100) {
+ reject('Waited too long for canInsertDTMF');
+ return;
+ }
+ ++counter;
+ step_timeout(checkfunc, 10);
+ }
+ };
+ checkfunc();
+ });
+ }).then(() => {
+ assert_true(dtmfSender.canInsertDTMF,
+ 'Failed to create usable dtmfSender:');
return dtmfSender;
});
}
@@ -89,12 +122,12 @@ function test_tone_change_events(testFunc, toneChanges, desc) {
t.step_func(() => {
t.done();
pc.close();
+ pc.otherPc.close();
}), expectedDuration + 100);
}
});
dtmfSender.addEventListener('tonechange', onToneChange);
-
testFunc(t, dtmfSender, pc);
})
.catch(t.step_func(err => {
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.https.html b/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.https.html
index 1f6a453db54..e49a79e4aa0 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.https.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.https.html
@@ -55,7 +55,7 @@
*/
promise_test(t => {
return createDtmfSender()
- .then(dtmfSender => {
+ .then(dtmfSender => {
dtmfSender.insertDTMF('');
dtmfSender.insertDTMF('012345689');
dtmfSender.insertDTMF('ABCD');
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-ontonechange.https.html b/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-ontonechange.https.html
index fcaa5099c23..9fa900c7368 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-ontonechange.https.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCDTMFSender-ontonechange.https.html
@@ -50,7 +50,7 @@
7. Fire an event named tonechange with a string consisting of tone at the
RTCDTMFSender object.
*/
- test_tone_change_events(dtmfSender => {
+ test_tone_change_events((t, dtmfSender) => {
dtmfSender.insertDTMF('123');
}, [
['1', '23', 0],
@@ -59,7 +59,7 @@
['', '', 170]
], 'insertDTMF() with default duration and intertoneGap should fire tonechange events at the expected time');
- test_tone_change_events(dtmfSender => {
+ test_tone_change_events((t, dtmfSender) => {
dtmfSender.insertDTMF('abc', 100, 70);
}, [
['A', 'BC', 0],
diff --git a/tests/wpt/web-platform-tests/workers/data-url-shared.html b/tests/wpt/web-platform-tests/workers/data-url-shared.html
index edaed99152a..7b51b4b9207 100644
--- a/tests/wpt/web-platform-tests/workers/data-url-shared.html
+++ b/tests/wpt/web-platform-tests/workers/data-url-shared.html
@@ -1,5 +1,5 @@
-data URL shared worker
+data URL shared workers
@@ -15,8 +15,8 @@ function assert_worker_sends_pass(test_desc, mime_type, worker_code) {
}, test_desc);
}
-function assert_worker_throws(test_desc, worker_code, before_connect_worker_code) {
- assert_worker_sends_pass(test_desc, '', `try { ${worker_code}; port.postMessage("FAIL"); } catch (e) { port.postMessage("PASS"); }`, before_connect_worker_code);
+function assert_worker_throws(test_desc, worker_code) {
+ assert_worker_sends_pass(test_desc, '', `try { ${worker_code}; port.postMessage("FAIL"); } catch (e) { port.postMessage("PASS"); }`);
}
// Any MIME type allowed
@@ -28,12 +28,17 @@ assert_worker_sends_pass('empty MIME allowed', '', 'port.postMessage("PASS")');
assert_worker_sends_pass('communication goes both ways', 'application/javascript', 'port.onmessage = function(e) { port.postMessage("PASS"); }');
// test access to storage APIs
-// once https://github.com/w3c/IndexedDB/pull/150 lands, this is spec conforming
-assert_worker_throws('indexedDB inaccessible', 'self.indexedDB.open("someDBName")');
-assert_worker_throws('Web SQL Database inaccessible', 'self.openDatabase("someDBName", "1.0", "someDBName", 1);');
+
+// https://w3c.github.io/IndexedDB/#dom-idbfactory-open
+assert_worker_sends_pass('indexedDB is present', '', 'port.postMessage("indexedDB" in self ? "PASS" : "FAIL")');
+assert_worker_throws('indexedDB is inaccessible', 'self.indexedDB.open("someDBName")');
+// Other standardized storage APIs are either not exposed to workers
+// (e.g. window.localStorage, window.sessionStorage), or are [SecureContext]
+// (e.g. self.caches).
// 'data:' workers are cross-origin
assert_worker_sends_pass('cross-origin worker', '', 'fetch("/").then(() => port.postMessage("FAIL"), () => port.postMessage("PASS"))');
+
// 'data:' workers have opaque origin
assert_worker_sends_pass('worker has opaque origin', 'application/javascript', 'if (self.location.origin == "null") port.postMessage("PASS"); else { port.postMessage("FAIL"); }');
diff --git a/tests/wpt/web-platform-tests/workers/data-url.html b/tests/wpt/web-platform-tests/workers/data-url.html
index 1308eba8f62..f8fe65e520c 100644
--- a/tests/wpt/web-platform-tests/workers/data-url.html
+++ b/tests/wpt/web-platform-tests/workers/data-url.html
@@ -1,8 +1,7 @@
-Test workers can be started with a data URL
+data URL dedicated workers
-