Update web-platform-tests to revision 6b6163867ad474d977778a3f19c378a05a4851dc

This commit is contained in:
WPT Sync Bot 2019-01-04 21:10:25 -05:00
parent 3ebd42caa3
commit 498854a0e4
49 changed files with 587 additions and 173 deletions

View file

@ -104485,6 +104485,18 @@
{} {}
] ]
], ],
"css/css-backgrounds/background-image-cover-zoomed-1.html": [
[
"/css/css-backgrounds/background-image-cover-zoomed-1.html",
[
[
"/css/css-backgrounds/reference/background-image-cover-zoomed-1-ref.html",
"=="
]
],
{}
]
],
"css/css-backgrounds/background-image-first-letter.html": [ "css/css-backgrounds/background-image-first-letter.html": [
[ [
"/css/css-backgrounds/background-image-first-letter.html", "/css/css-backgrounds/background-image-first-letter.html",
@ -107797,6 +107809,18 @@
{} {}
] ]
], ],
"css/css-backgrounds/border-image-calc.html": [
[
"/css/css-backgrounds/border-image-calc.html",
[
[
"/css/css-backgrounds/border-image-calc-ref.html",
"=="
]
],
{}
]
],
"css/css-backgrounds/border-image-outset-003.html": [ "css/css-backgrounds/border-image-outset-003.html": [
[ [
"/css/css-backgrounds/border-image-outset-003.html", "/css/css-backgrounds/border-image-outset-003.html",
@ -170061,6 +170085,18 @@
{} {}
] ]
], ],
"css/filter-effects/backdrop-filter-reference-filter.html": [
[
"/css/filter-effects/backdrop-filter-reference-filter.html",
[
[
"/css/filter-effects/backdrop-filter-clip-rect-ref.html",
"=="
]
],
{}
]
],
"css/filter-effects/blur-clip-stacking-context-001.html": [ "css/filter-effects/blur-clip-stacking-context-001.html": [
[ [
"/css/filter-effects/blur-clip-stacking-context-001.html", "/css/filter-effects/blur-clip-stacking-context-001.html",
@ -204573,6 +204609,11 @@
{} {}
] ]
], ],
"common/sleep.py": [
[
{}
]
],
"common/slow.py": [ "common/slow.py": [
[ [
{} {}
@ -252948,6 +252989,11 @@
{} {}
] ]
], ],
"css/css-backgrounds/border-image-calc-ref.html": [
[
{}
]
],
"css/css-backgrounds/border-image-outset-003-ref.html": [ "css/css-backgrounds/border-image-outset-003-ref.html": [
[ [
{} {}
@ -253078,6 +253124,11 @@
{} {}
] ]
], ],
"css/css-backgrounds/reference/background-image-cover-zoomed-1-ref.html": [
[
{}
]
],
"css/css-backgrounds/reference/background-image-first-letter-ref.html": [ "css/css-backgrounds/reference/background-image-first-letter-ref.html": [
[ [
{} {}
@ -306903,12 +306954,7 @@
{} {}
] ]
], ],
"resource-timing/iframe-setdomain.sub.html": [ "resource-timing/resource-timing-level1.js": [
[
{}
]
],
"resource-timing/resource-timing.js": [
[ [
{} {}
] ]
@ -306938,6 +306984,11 @@
{} {}
] ]
], ],
"resource-timing/resources/document-domain-no-impact.sub.html": [
[
{}
]
],
"resource-timing/resources/empty.js": [ "resource-timing/resources/empty.js": [
[ [
{} {}
@ -306978,6 +307029,11 @@
{} {}
] ]
], ],
"resource-timing/resources/iframe-setdomain.sub.html": [
[
{}
]
],
"resource-timing/resources/iframe_TAO_match_origin.html": [ "resource-timing/resources/iframe_TAO_match_origin.html": [
[ [
{} {}
@ -334609,6 +334665,12 @@
{} {}
] ]
], ],
"async-local-storage/undefined-value.https.html": [
[
"/async-local-storage/undefined-value.https.html",
{}
]
],
"audio-output/idlharness.https.window.js": [ "audio-output/idlharness.https.window.js": [
[ [
"/audio-output/idlharness.https.window.html", "/audio-output/idlharness.https.window.html",
@ -340663,6 +340725,12 @@
{} {}
] ]
], ],
"css/css-backgrounds/border-image-slice-shorthand-reset.html": [
[
"/css/css-backgrounds/border-image-slice-shorthand-reset.html",
{}
]
],
"css/css-backgrounds/parsing/background-attachment-invalid.html": [ "css/css-backgrounds/parsing/background-attachment-invalid.html": [
[ [
"/css/css-backgrounds/parsing/background-attachment-invalid.html", "/css/css-backgrounds/parsing/background-attachment-invalid.html",
@ -407309,6 +407377,12 @@
{} {}
] ]
], ],
"resource-timing/document-domain-no-impact-loader.sub.html": [
[
"/resource-timing/document-domain-no-impact-loader.sub.html",
{}
]
],
"resource-timing/idlharness.any.js": [ "resource-timing/idlharness.any.js": [
[ [
"/resource-timing/idlharness.any.html", "/resource-timing/idlharness.any.html",
@ -407325,20 +407399,20 @@
{} {}
] ]
], ],
"resource-timing/resource-timing-level1.sub.html": [
[
"/resource-timing/resource-timing-level1.sub.html",
{
"timeout": "long"
}
]
],
"resource-timing/resource-timing-tojson.html": [ "resource-timing/resource-timing-tojson.html": [
[ [
"/resource-timing/resource-timing-tojson.html", "/resource-timing/resource-timing-tojson.html",
{} {}
] ]
], ],
"resource-timing/resource-timing.html": [
[
"/resource-timing/resource-timing.html",
{
"timeout": "long"
}
]
],
"resource-timing/resource_TAO_cross_origin_redirect_chain.html": [ "resource-timing/resource_TAO_cross_origin_redirect_chain.html": [
[ [
"/resource-timing/resource_TAO_cross_origin_redirect_chain.html", "/resource-timing/resource_TAO_cross_origin_redirect_chain.html",
@ -421021,15 +421095,15 @@
{} {}
] ]
], ],
"webxr/webGLCanvasContext_create_with_xrdevice.https.html": [ "webxr/webGLCanvasContext_create_xrcompatible.https.html": [
[ [
"/webxr/webGLCanvasContext_create_with_xrdevice.https.html", "/webxr/webGLCanvasContext_create_xrcompatible.https.html",
{} {}
] ]
], ],
"webxr/webGLCanvasContext_setdevice_contextlost.https.html": [ "webxr/webGLCanvasContext_makecompatible_contextlost.https.html": [
[ [
"/webxr/webGLCanvasContext_setdevice_contextlost.https.html", "/webxr/webGLCanvasContext_makecompatible_contextlost.https.html",
{} {}
] ]
], ],
@ -444720,7 +444794,9 @@
"webdriver/tests/maximize_window/maximize.py": [ "webdriver/tests/maximize_window/maximize.py": [
[ [
"/webdriver/tests/maximize_window/maximize.py", "/webdriver/tests/maximize_window/maximize.py",
{} {
"timeout": "long"
}
] ]
], ],
"webdriver/tests/maximize_window/stress.py": [ "webdriver/tests/maximize_window/stress.py": [
@ -451057,7 +451133,7 @@
"testharness" "testharness"
], ],
"IndexedDB/keypath-special-identifiers.htm": [ "IndexedDB/keypath-special-identifiers.htm": [
"cb64d0b708eb3f97d99b0b754fcdf9bd12394821", "0692bed32ce54b4dc666fd76d5fa06c523a06a5a",
"testharness" "testharness"
], ],
"IndexedDB/keypath.htm": [ "IndexedDB/keypath.htm": [
@ -454993,11 +455069,11 @@
"support" "support"
], ],
"async-local-storage/api-surface.tentative.https.html": [ "async-local-storage/api-surface.tentative.https.html": [
"eea51abd539787f531cbf32e28737c135c63c8d7", "927871a8961c44bd8adfee1b82aadc9f514962a7",
"testharness" "testharness"
], ],
"async-local-storage/helpers/als-tests.js": [ "async-local-storage/helpers/als-tests.js": [
"fd6d6844f72e39d16e070ec461b99ab62a0b4547", "28087abf811dacda1ca00d81fe1306f97dde88ef",
"support" "support"
], ],
"async-local-storage/helpers/class-assert.js": [ "async-local-storage/helpers/class-assert.js": [
@ -455009,7 +455085,7 @@
"support" "support"
], ],
"async-local-storage/key-types.tentative.https.html": [ "async-local-storage/key-types.tentative.https.html": [
"771ee2f9749a00ec4e33019512a9bf8d145a3ce6", "c3985b7711f77818260f08635d35ce3da553178b",
"testharness" "testharness"
], ],
"async-local-storage/non-secure-context-dynamic-import.tentative.html": [ "async-local-storage/non-secure-context-dynamic-import.tentative.html": [
@ -455028,6 +455104,10 @@
"f978480ff2b80ba5f892c2a2c429e882d655574d", "f978480ff2b80ba5f892c2a2c429e882d655574d",
"testharness" "testharness"
], ],
"async-local-storage/undefined-value.https.html": [
"c76c32f950704e42c06d498c4c8614dfbabb2aae",
"testharness"
],
"audio-output/META.yml": [ "audio-output/META.yml": [
"b6a7d4d06259117af8fb843f6a8d252bac01a8f3", "b6a7d4d06259117af8fb843f6a8d252bac01a8f3",
"support" "support"
@ -455605,7 +455685,7 @@
"testharness" "testharness"
], ],
"bluetooth/resources/bluetooth-helpers.js": [ "bluetooth/resources/bluetooth-helpers.js": [
"64a20c2f994164abd16d77143b5e39da89927ed4", "c01fc9fcf168056b319c18ca40a92df73665b12a",
"support" "support"
], ],
"bluetooth/resources/bluetooth-scanning-helpers.js": [ "bluetooth/resources/bluetooth-scanning-helpers.js": [
@ -456428,6 +456508,10 @@
"6805c323df5a975231648b830e33ce183c3cbbd3", "6805c323df5a975231648b830e33ce183c3cbbd3",
"support" "support"
], ],
"common/sleep.py": [
"28065eff5fc907dbfb69f4c69020d049c7daa35d",
"support"
],
"common/slow.py": [ "common/slow.py": [
"f3b1c7e2ea61b571bd56cc1c70c5f89bb8e7e4dc", "f3b1c7e2ea61b571bd56cc1c70c5f89bb8e7e4dc",
"support" "support"
@ -540360,6 +540444,10 @@
"7051aa359c8cdf427a6c1b63179baad26c5a1645", "7051aa359c8cdf427a6c1b63179baad26c5a1645",
"reftest" "reftest"
], ],
"css/css-backgrounds/background-image-cover-zoomed-1.html": [
"0d434abe23a50c39aadce1449fcd148a1bdffe6a",
"reftest"
],
"css/css-backgrounds/background-image-first-letter.html": [ "css/css-backgrounds/background-image-first-letter.html": [
"f78460b90708223616a019aa48aaaa4fe8b2ce43", "f78460b90708223616a019aa48aaaa4fe8b2ce43",
"reftest" "reftest"
@ -542064,6 +542152,14 @@
"5d805ec7527111006a0a6b24a71ef85606d1a91e", "5d805ec7527111006a0a6b24a71ef85606d1a91e",
"visual" "visual"
], ],
"css/css-backgrounds/border-image-calc-ref.html": [
"f827ca7fd0b9f4e1e06334fcb475e38938a29237",
"support"
],
"css/css-backgrounds/border-image-calc.html": [
"c8bc4c7c9a092b57a5119ebf02f9972b9386b965",
"reftest"
],
"css/css-backgrounds/border-image-image-type-001.htm": [ "css/css-backgrounds/border-image-image-type-001.htm": [
"ebc152fe74bd165b68cda0953ce3ef5545aa998d", "ebc152fe74bd165b68cda0953ce3ef5545aa998d",
"visual" "visual"
@ -542164,6 +542260,10 @@
"5ef9ff0d1df560a31a87df7438c9e435d6ad65e3", "5ef9ff0d1df560a31a87df7438c9e435d6ad65e3",
"reftest" "reftest"
], ],
"css/css-backgrounds/border-image-slice-shorthand-reset.html": [
"7f178b428de3b3e2b185d3a02eb9baad80e63719",
"testharness"
],
"css/css-backgrounds/border-image-space-001.html": [ "css/css-backgrounds/border-image-space-001.html": [
"8794d37324c8284e6fd9b265842ed23574c68b09", "8794d37324c8284e6fd9b265842ed23574c68b09",
"reftest" "reftest"
@ -542924,6 +543024,10 @@
"f8b2ad25ccdc743e638d402590141296c142e602", "f8b2ad25ccdc743e638d402590141296c142e602",
"support" "support"
], ],
"css/css-backgrounds/reference/background-image-cover-zoomed-1-ref.html": [
"d61bac9feddf1013aa2db92cba8d258a523de446",
"support"
],
"css/css-backgrounds/reference/background-image-first-letter-ref.html": [ "css/css-backgrounds/reference/background-image-first-letter-ref.html": [
"304be71fbace6a964566e2a24dc8ab802cdec7e3", "304be71fbace6a964566e2a24dc8ab802cdec7e3",
"support" "support"
@ -595384,6 +595488,10 @@
"88531532fc33296e8c8eca5452da04d5d612662d", "88531532fc33296e8c8eca5452da04d5d612662d",
"reftest" "reftest"
], ],
"css/filter-effects/backdrop-filter-reference-filter.html": [
"74c813c92a46aae10739356318a3c356c0aae3c3",
"reftest"
],
"css/filter-effects/blur-clip-stacking-context-001.html": [ "css/filter-effects/blur-clip-stacking-context-001.html": [
"a96994a8afe126e474f9ee015338749f0015dc1f", "a96994a8afe126e474f9ee015338749f0015dc1f",
"reftest" "reftest"
@ -613197,7 +613305,7 @@
"support" "support"
], ],
"feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html": [ "feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html": [
"b45d8c3d4483ae309f87d6a26552636efa44e407", "e7150a91e8749473962884727fb59bb3b978bf68",
"testharness" "testharness"
], ],
"feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers": [ "feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers": [
@ -613205,7 +613313,7 @@
"support" "support"
], ],
"feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html": [ "feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html": [
"0701c50f6cac4cef768cf94ce8cd1764a885a14e", "163ccae812f129e6cc338eb548e7ace92dd65b17",
"testharness" "testharness"
], ],
"feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers": [ "feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers": [
@ -613357,7 +613465,7 @@
"reftest" "reftest"
], ],
"feature-policy/experimental-features/vertical-scroll-main-frame-manual.tentative.html": [ "feature-policy/experimental-features/vertical-scroll-main-frame-manual.tentative.html": [
"6392ea5bfb0ef0b65ca7917ef3053ee73c1f8254", "34cf142d456626f224957c44b9297500496c18cf",
"manual" "manual"
], ],
"feature-policy/experimental-features/vertical-scroll-main-frame-manual.tentative.html.headers": [ "feature-policy/experimental-features/vertical-scroll-main-frame-manual.tentative.html.headers": [
@ -613413,7 +613521,7 @@
"support" "support"
], ],
"feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html": [ "feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html": [
"3334b97247e5fd347eda96d00d1399bf4c9a42f4", "6bf7ca65326a8a5a146b2f5c399b7adbce527805",
"testharness" "testharness"
], ],
"feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.sub.headers": [ "feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.sub.headers": [
@ -613421,7 +613529,7 @@
"support" "support"
], ],
"feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html": [ "feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html": [
"60e22f4aec865b54305737df21cc0dee3a869f82", "8641746ec8fb9db9af9f284d098b32b8663ca85c",
"testharness" "testharness"
], ],
"feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html.sub.headers": [ "feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html.sub.headers": [
@ -613429,7 +613537,7 @@
"support" "support"
], ],
"feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html": [ "feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html": [
"ade5dda4d9ddb879b007c6efef22b2757ced5743", "e07c51fefd9cc7002cf01667b2e7885ba19a3907",
"testharness" "testharness"
], ],
"feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html.sub.headers": [ "feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html.sub.headers": [
@ -613437,7 +613545,7 @@
"support" "support"
], ],
"feature-policy/feature-policy-header-policy-declined.https.sub.html": [ "feature-policy/feature-policy-header-policy-declined.https.sub.html": [
"531c919aa03536770d80f59f0c21a922040aaddb", "d00d592d9ac4688f015d9edccc5cb683f3c496ad",
"testharness" "testharness"
], ],
"feature-policy/feature-policy-header-policy-declined.https.sub.html.sub.headers": [ "feature-policy/feature-policy-header-policy-declined.https.sub.html.sub.headers": [
@ -613445,7 +613553,7 @@
"support" "support"
], ],
"feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html": [ "feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html": [
"c025705a36b10e3830cf2f076b34e14f77737129", "9a0f483ce44bc382fe12caaa6670838fa98d4209",
"testharness" "testharness"
], ],
"feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html.sub.headers": [ "feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html.sub.headers": [
@ -613777,7 +613885,7 @@
"support" "support"
], ],
"feature-policy/resources/feature-policy-allowedfeatures.html": [ "feature-policy/resources/feature-policy-allowedfeatures.html": [
"9cc8e1e33a32d2d6265580a261ce761b37ec4acb", "f4b020273fd394fb8691b6eeb406c7b3773cbcb3",
"support" "support"
], ],
"feature-policy/resources/feature-policy-autoplay.html": [ "feature-policy/resources/feature-policy-autoplay.html": [
@ -613821,7 +613929,7 @@
"support" "support"
], ],
"feature-policy/resources/featurepolicy.js": [ "feature-policy/resources/featurepolicy.js": [
"38ae4184096b6e53f17987c81f8ad8f1ff879195", "a0756e385de6534821d3c15048e922384e4610ae",
"support" "support"
], ],
"feature-policy/resources/picture-in-picture.js": [ "feature-policy/resources/picture-in-picture.js": [
@ -648097,7 +648205,7 @@
"support" "support"
], ],
"origin-policy/origin-policy-features.https.tentative.html": [ "origin-policy/origin-policy-features.https.tentative.html": [
"b5dbe3e6e1a69662a38a2fec7f2f6eece887bcee", "e83acf1dbdef347ce93dc7a64ccdf3e9b0e77d79",
"testharness" "testharness"
], ],
"origin-policy/origin-policy-features.https.tentative.html.headers": [ "origin-policy/origin-policy-features.https.tentative.html.headers": [
@ -659285,7 +659393,7 @@
"support" "support"
], ],
"resource-timing/SyntheticResponse.py": [ "resource-timing/SyntheticResponse.py": [
"528ee239c174e9bd7618288f88cc09f8c5a9b58b", "26e0a8017d6c2c7b51c94998f34a79fa20eb1e12",
"support" "support"
], ],
"resource-timing/buffer-full-add-after-full-event.html": [ "resource-timing/buffer-full-add-after-full-event.html": [
@ -659336,30 +659444,30 @@
"eaf21b483ccd6ec63bcb8dc87c9e19a4305bf43d", "eaf21b483ccd6ec63bcb8dc87c9e19a4305bf43d",
"testharness" "testharness"
], ],
"resource-timing/document-domain-no-impact-loader.sub.html": [
"8a1c433a5c3a7b79d92b797ee1057c624d4a9866",
"testharness"
],
"resource-timing/idlharness.any.js": [ "resource-timing/idlharness.any.js": [
"a7542f191c10ea7b42110b5fc80e7abf43174bb5", "a7542f191c10ea7b42110b5fc80e7abf43174bb5",
"testharness" "testharness"
], ],
"resource-timing/iframe-setdomain.sub.html": [
"944ee10c44259ac84281cd802144068583d539db",
"support"
],
"resource-timing/no-entries-for-cross-origin-css-fetched.sub.html": [ "resource-timing/no-entries-for-cross-origin-css-fetched.sub.html": [
"92d94a17ec0df642b0a500dbd9fb5aa06eaacb64", "92d94a17ec0df642b0a500dbd9fb5aa06eaacb64",
"testharness" "testharness"
], ],
"resource-timing/resource-timing-level1.js": [
"95b5cdfb1ed0ca2bbfd6b692ad565512218dd7a4",
"support"
],
"resource-timing/resource-timing-level1.sub.html": [
"093d2542218fbe48b134230b4d9d65e1ef1d4c10",
"testharness"
],
"resource-timing/resource-timing-tojson.html": [ "resource-timing/resource-timing-tojson.html": [
"77094f4b843a43fb30aeca48c505337b4322ca81", "77094f4b843a43fb30aeca48c505337b4322ca81",
"testharness" "testharness"
], ],
"resource-timing/resource-timing.html": [
"ad97044a6291912880046a4e784af13d28ab2f71",
"testharness"
],
"resource-timing/resource-timing.js": [
"8d97b2f26871e3a492cc6d3d253808e0cf18b0f2",
"support"
],
"resource-timing/resource_TAO_cross_origin_redirect_chain.html": [ "resource-timing/resource_TAO_cross_origin_redirect_chain.html": [
"522188279c3ab81ec27cd7e83f014ecf747b21a8", "522188279c3ab81ec27cd7e83f014ecf747b21a8",
"testharness" "testharness"
@ -659500,6 +659608,10 @@
"b143da7b325f0ad24a2f9ad67db7ba31d0aa912c", "b143da7b325f0ad24a2f9ad67db7ba31d0aa912c",
"support" "support"
], ],
"resource-timing/resources/document-domain-no-impact.sub.html": [
"fbd7bc3b6e21ee39478c8a63780bb673dafe96a4",
"support"
],
"resource-timing/resources/empty.js": [ "resource-timing/resources/empty.js": [
"3b44754e301ded90e559f6343df641e476803542", "3b44754e301ded90e559f6343df641e476803542",
"support" "support"
@ -659532,6 +659644,10 @@
"31a769eb3666492a3804f1c3deca73df526c0a4f", "31a769eb3666492a3804f1c3deca73df526c0a4f",
"support" "support"
], ],
"resource-timing/resources/iframe-setdomain.sub.html": [
"4a2f609aa469f14d7efe64baaeb739efdb2fdc75",
"support"
],
"resource-timing/resources/iframe_TAO_match_origin.html": [ "resource-timing/resources/iframe_TAO_match_origin.html": [
"cf68aade7954e609087d34f21e437c285eb73a58", "cf68aade7954e609087d34f21e437c285eb73a58",
"support" "support"
@ -674617,7 +674733,7 @@
"support" "support"
], ],
"tools/webdriver/webdriver/client.py": [ "tools/webdriver/webdriver/client.py": [
"c5cb9caa5b2c278171d246700c656f147f24daf8", "29be09bb3c934f7f2e3796f2ed89e507eae90bd6",
"support" "support"
], ],
"tools/webdriver/webdriver/error.py": [ "tools/webdriver/webdriver/error.py": [
@ -675301,7 +675417,7 @@
"support" "support"
], ],
"tools/wptrunner/wptrunner/wptrunner.py": [ "tools/wptrunner/wptrunner/wptrunner.py": [
"8b98b2955f5525a938483c9b4abc598ff33ea9f7", "f5780daacd7f4d0dfc1902c98ad387adcebf857b",
"support" "support"
], ],
"tools/wptrunner/wptrunner/wpttest.py": [ "tools/wptrunner/wptrunner/wpttest.py": [
@ -680401,7 +680517,7 @@
"support" "support"
], ],
"webdriver/tests/maximize_window/maximize.py": [ "webdriver/tests/maximize_window/maximize.py": [
"b3ed7a680a9f320012b548a22a6042ab981bf449", "375465997924f5656750402db80ae9391f2101af",
"wdspec" "wdspec"
], ],
"webdriver/tests/maximize_window/stress.py": [ "webdriver/tests/maximize_window/stress.py": [
@ -681521,7 +681637,7 @@
"testharness" "testharness"
], ],
"webrtc/RTCPeerConnection-remote-track-mute.https.html": [ "webrtc/RTCPeerConnection-remote-track-mute.https.html": [
"56fe761425096e963589309b828a8a7f7d36a9be", "095fe50e305f853cb3c76030c0f0cb3cd86e4fff",
"testharness" "testharness"
], ],
"webrtc/RTCPeerConnection-removeTrack.https.html": [ "webrtc/RTCPeerConnection-removeTrack.https.html": [
@ -681577,7 +681693,7 @@
"testharness" "testharness"
], ],
"webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html": [ "webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html": [
"aa3f93e235e3408bba55548de226e76327ce40f5", "7c565dd1c3baf8a379a5b89cb342e11413c3b032",
"testharness" "testharness"
], ],
"webrtc/RTCPeerConnection-setRemoteDescription.html": [ "webrtc/RTCPeerConnection-setRemoteDescription.html": [
@ -681585,7 +681701,7 @@
"testharness" "testharness"
], ],
"webrtc/RTCPeerConnection-track-stats.https.html": [ "webrtc/RTCPeerConnection-track-stats.https.html": [
"30c368f670d78154fd3ca3c67d20eb67d9a052e7", "2d45c343d861f0b62a7d3d1f979ff7702862e5d7",
"testharness" "testharness"
], ],
"webrtc/RTCPeerConnection-transceivers.https.html": [ "webrtc/RTCPeerConnection-transceivers.https.html": [
@ -686153,15 +686269,15 @@
"support" "support"
], ],
"webxr/resources/webxr_util.js": [ "webxr/resources/webxr_util.js": [
"ee6e67f4c3d090015ead8b8718c2a836871a68ba", "10bdc12810c3b34d140e6f04b0068c28c9dc1873",
"support" "support"
], ],
"webxr/webGLCanvasContext_create_with_xrdevice.https.html": [ "webxr/webGLCanvasContext_create_xrcompatible.https.html": [
"94731ccfbb4937cabe175de5acce4423fbf8de43", "8b2f196fa76ecc102319bf9409cba143d0d35e13",
"testharness" "testharness"
], ],
"webxr/webGLCanvasContext_setdevice_contextlost.https.html": [ "webxr/webGLCanvasContext_makecompatible_contextlost.https.html": [
"25f9869b70e27ca563df2860dd01a679e140d221", "3102008c57db1e32a0910eabfc93c55809b8300c",
"testharness" "testharness"
], ],
"webxr/webxr_availability.http.sub.html": [ "webxr/webxr_availability.http.sub.html": [

View file

@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest] [single-byte-decoder.html?XMLHttpRequest]
expected: TIMEOUT expected: CRASH
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)] [ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL expected: FAIL

View file

@ -11,23 +11,5 @@
expected: TIMEOUT expected: TIMEOUT
[picture: source (max-width:500px) valid image, img valid image, resize to narrow] [picture: source (max-width:500px) valid image, img valid image, resize to narrow]
expected: FAIL expected: TIMEOUT
[picture: source (max-width:500px) broken image, img valid image, resize to narrow]
expected: FAIL
[img (srcset 1 cand) valid image, resize to narrow]
expected: FAIL
[picture: same URL in source (max-width:500px) and img, resize to narrow]
expected: FAIL
[img (srcset 1 cand) valid image, resize to wide]
expected: FAIL
[picture: same URL in source (max-width:500px) and img, resize to wide]
expected: FAIL
[picture: source (max-width:500px) valid image, img broken image, resize to wide]
expected: FAIL

View file

@ -1,2 +0,0 @@
[script-onerror-insertion-point-2.html]
expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[buffer-full-set-to-current-buffer.html] [buffer-full-set-to-current-buffer.html]
expected: ERROR expected: ERROR
[Test that entries added and event firing happened in the right sequence] [Test that entries added and event firing happened in the right sequence]
expected: FAIL expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[buffer-full-store-and-clear-during-callback.html] [buffer-full-store-and-clear-during-callback.html]
expected: ERROR expected: TIMEOUT
[Test that entries overflowing the buffer trigger the buffer full event, can be stored, and find themselves in the primary buffer after it's cleared.] [Test that entries overflowing the buffer trigger the buffer full event, can be stored, and find themselves in the primary buffer after it's cleared.]
expected: TIMEOUT expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[document-domain-no-impact-loader.sub.html]
[Finite resource timing entries buffer size]
expected: FAIL

View file

@ -0,0 +1,76 @@
[resource-timing-level1.sub.html]
['xmlhttprequest (Potentially Cached): Immediately fetch the same URL, exercising the cache hit path (if any).]
expected: FAIL
['link responseStart uses 1XX (first) response timings']
expected: FAIL
['link 250ms delay in headers does not affect responseStart']
expected: FAIL
['script responseStart uses 1XX (first) response timings']
expected: FAIL
['iframe 250ms delay in headers does not affect responseStart']
expected: FAIL
['xmlhttprequest: 250ms delay before 'responseStart', another 250ms delay before 'responseEnd'.]
expected: FAIL
['xmlhttprequest (Redirected): 250ms delay before 'redirectEnd', another 250ms delay before 'responseStart'.]
expected: FAIL
['iframe (Populate cache): The initial request populates the cache (if appropriate).]
expected: FAIL
[No timeline entry for about:blank]
expected: FAIL
['script: 250ms delay before 'responseStart', another 250ms delay before 'responseEnd'.]
expected: FAIL
['link (Potentially Cached): Immediately fetch the same URL, exercising the cache hit path (if any).]
expected: FAIL
['xmlhttprequest 250ms delay in headers does not affect responseStart']
expected: FAIL
['link (Redirected): 250ms delay before 'redirectEnd', another 250ms delay before 'responseStart'.]
expected: FAIL
['iframe responseStart uses 1XX (first) response timings']
expected: FAIL
['script (Potentially Cached): Immediately fetch the same URL, exercising the cache hit path (if any).]
expected: FAIL
['script (Redirected): 250ms delay before 'redirectEnd', another 250ms delay before 'responseStart'.]
expected: FAIL
['script (Populate cache): The initial request populates the cache (if appropriate).]
expected: FAIL
['script 250ms delay in headers does not affect responseStart']
expected: FAIL
['xmlhttprequest (Populate cache): The initial request populates the cache (if appropriate).]
expected: FAIL
['iframe (Potentially Cached): Immediately fetch the same URL, exercising the cache hit path (if any).]
expected: FAIL
['link: 250ms delay before 'responseStart', another 250ms delay before 'responseEnd'.]
expected: FAIL
['iframe (Redirected): 250ms delay before 'redirectEnd', another 250ms delay before 'responseStart'.]
expected: FAIL
['link (Populate cache): The initial request populates the cache (if appropriate).]
expected: FAIL
['iframe: 250ms delay before 'responseStart', another 250ms delay before 'responseEnd'.]
expected: FAIL
['xmlhttprequest responseStart uses 1XX (first) response timings']
expected: FAIL

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html] [realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.] [X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL expected: FAIL

View file

@ -1,5 +1,4 @@
[005.html] [005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker] [dedicated worker in shared worker in dedicated worker]
expected: FAIL expected: FAIL

View file

@ -54,6 +54,8 @@
const result = request.result; const result = request.result;
assert_key_equals(result[testcase.property], key, assert_key_equals(result[testcase.property], key,
'Property should be used as key'); 'Property should be used as key');
});
tx.oncomplete = t.step_func(function() {
t.done(); t.done();
}); });
}, },

View file

@ -21,14 +21,13 @@ test(() => {
test(() => { test(() => {
classAssert.propertyKeys(StorageArea.prototype, [ classAssert.propertyKeys(StorageArea.prototype, [
"constructor", "set", "get", "has", "delete", "clear", "constructor", "set", "get", "delete", "clear",
"keys", "values", "entries", "backingStore" "keys", "values", "entries", "backingStore"
], []); ], []);
classAssert.methods(StorageArea.prototype, { classAssert.methods(StorageArea.prototype, {
set: 2, set: 2,
get: 1, get: 1,
has: 1,
delete: 1, delete: 1,
clear: 0, clear: 0,
keys: 0, keys: 0,
@ -43,7 +42,7 @@ test(() => {
testWithArea(async area => { testWithArea(async area => {
classAssert.propertyKeys(area, [], []); classAssert.propertyKeys(area, [], []);
}, "Instances don't have any properties") }, "Instances don't have any properties");
test(() => { test(() => {
assert_equals(storage instanceof StorageArea, true, "instanceof"); assert_equals(storage instanceof StorageArea, true, "instanceof");

View file

@ -19,7 +19,7 @@ export function testWithDefaultArea(testFn, description) {
} }
// These two functions take a key/value and use them to test // These two functions take a key/value and use them to test
// set()/get()/delete()/has()/keys()/values()/entries(). The keyEqualityAsserter should be a // set()/get()/delete()/keys()/values()/entries(). The keyEqualityAsserter should be a
// function from ./equality-asserters.js. // function from ./equality-asserters.js.
export function testVariousMethodsWithDefaultArea(label, key, value, keyEqualityAsserter) { export function testVariousMethodsWithDefaultArea(label, key, value, keyEqualityAsserter) {
@ -35,7 +35,6 @@ function testVariousMethodsInner(key, value, keyEqualityAsserter) {
await assertPromiseEquals(area.set(key, value), undefined, "set()", "undefined"); await assertPromiseEquals(area.set(key, value), undefined, "set()", "undefined");
await assertPromiseEquals(area.get(key), value, "get()", "the set value"); await assertPromiseEquals(area.get(key), value, "get()", "the set value");
await assertPromiseEquals(area.has(key), true, "has()", "true");
const keysPromise = area.keys(); const keysPromise = area.keys();
assertIsPromise(keysPromise, "keys()"); assertIsPromise(keysPromise, "keys()");
@ -58,7 +57,6 @@ function testVariousMethodsInner(key, value, keyEqualityAsserter) {
await assertPromiseEquals(area.delete(key), undefined, "delete()", "undefined"); await assertPromiseEquals(area.delete(key), undefined, "delete()", "undefined");
await assertPromiseEquals(area.get(key), undefined, "get()", "undefined after deleting"); await assertPromiseEquals(area.get(key), undefined, "get()", "undefined after deleting");
await assertPromiseEquals(area.has(key), false, "has()", "false after deleting");
}; };
} }

View file

@ -32,7 +32,7 @@ const validKeys = {
"an ArrayBuffer": [new Uint8Array([5, 6]).buffer, assertEqualArrayBuffers] "an ArrayBuffer": [new Uint8Array([5, 6]).buffer, assertEqualArrayBuffers]
}; };
const methods = ["set", "get", "has", "delete"]; const methods = ["delete", "get", "set"];
for (const method of methods) { for (const method of methods) {
testWithArea(async (area, t) => { testWithArea(async (area, t) => {

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Async local storage: undefined keys</title>
<!-- https://github.com/domenic/async-local-storage/commit/5bf31109f37d1371f619ea33d0e2391f10e8b8f5 -->
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script type="module">
import { StorageArea } from "std:async-local-storage";
import { testWithArea } from "./helpers/als-tests.js";
testWithArea(async (area) => {
assert_equals(await area.get("key"), undefined);
}, "Get on a non-existant key returns undefined");
testWithArea(async (area) => {
await area.set("key", undefined);
assert_equals(await area.get("key"), undefined);
assert_equals((await area.keys()).length, 0, "number of keys");
assert_equals((await area.values()).length, 0, "number of values");
assert_equals((await area.entries()).length, 0, "number of entries");
}, "Setting undefined as a value when nothing was present is a no-op");
testWithArea(async (area) => {
await area.set("key", "value");
await area.set("key", undefined);
assert_equals(await area.get("key"), undefined);
assert_equals((await area.keys()).length, 0, "number of keys");
assert_equals((await area.values()).length, 0, "number of values");
assert_equals((await area.entries()).length, 0, "number of entries");
}, "Setting undefined as a value deletes what was previously there");
</script>

View file

@ -18,8 +18,8 @@ function loadScripts(paths) {
} }
function performChromiumSetup() { function performChromiumSetup() {
// Make sure we are actually on Chromium. // Make sure we are actually on Chromium with Mojo enabled.
if (!Mojo) { if (typeof Mojo === 'undefined') {
return; return;
} }

View file

@ -0,0 +1,8 @@
import time
# sleep can be lower than requested value in some platforms: https://bugs.python.org/issue31539
# We add padding here to compensate for that.
sleep_padding = 15.0
def sleep_at_least(sleep_in_ms):
time.sleep((sleep_in_ms + sleep_padding) / 1E3);

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Background Test: background-size:cover should cover at zoom</title>
<link rel="author" title="schenney" href="mailto:schenney@chromium.org">
<link rel="help" href="http://www.w3.org/TR/css3-background">
<link rel="match" href="reference/background-image-cover-zoomed-1-ref.html">
<style>
body {
zoom: 80%;
}
body > div {
background: #f00;
width: 504px;
height: 252px;
}
div > div {
width: 504px;
height: 252px;
background-image: url(support/40px-wide-20px-tall-green-rect.png);
background-size: cover;
background-repeat: no-repeat;
}
</style>
</head>
<body>
<div>
<div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,13 @@
<!doctype html>
<title>CSS Test Reference</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="author" title="Mozilla" href="https://mozilla.org">
<style>
#test {
background-color: green;
width: 200px;
height: 200px;
}
</style>
<p>Test passes if there is a green 200px times 200px square.</p>
<div id="test"></div>

View file

@ -0,0 +1,20 @@
<!doctype html>
<title>CSS Test: border-image honors calc() lengths / percentages</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://bugzil.la/1517521">
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#border-image-width">
<link rel="match" href="border-image-calc-ref.html">
<style>
#test {
background-color: red;
border: 100px solid red;
border-image-slice: 10;
border-image-source: url("support/green_color.png");
border-image-width: 100px calc(100px) calc(100%) calc(50% + 50px);
height: 0;
width: 0;
}
</style>
<p>Test passes if there is a green 200px times 200px square.</p>
<div id="test"></div>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#border-image-slice" />
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#border-image" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
div {
border: 1px solid;
border-image-slice: 1;
}
div {
/* Should reset border-image-slice */
border-image: linear-gradient(black, black);
}
</style>
<div>This text should not have a border, just corner dots</div>
<script>
test(() => {
assert_equals(getComputedStyle(document.querySelector("div")).borderImageSlice, "100%");
}, "Check that the border-image shorthand resets border-image-slice to its initial value.");
</script>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Background Test Reference</title>
<link rel="author" title="schenney" href="mailto:schenney@chromium.org">
<style>
body {
zoom: 80%;
}
body > div {
width: 504px;
height: 252px;
background-image: url(../support/40px-wide-20px-tall-green-rect.png);
background-size: cover;
background-repeat: no-repeat;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>backdrop-filter: Correctly apply reference filter</title>
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<link rel="match" href="backdrop-filter-clip-rect-ref.html">
<div>
<p>Expected: A green box, color-inverted inside the short, wide box with a<br>
blue border, and not color-inverted anywhere else. In particular, there should be<br>
no color inversion inside the tall, narrow box, or anywhere outside that.</p>
</div>
<div class="box"></div>
<div class="navbar">
<div class="menu"></div>
<div class="menu2"></div>
</div>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display:none">
<defs>
<filter id="svgInvert">
<feColorMatrix in="SourceGraphic" type="matrix" values="-1 0 0 0 1
0 -1 0 0 1
0 0 -1 0 1
0 0 0 1 0"/>
</filter>
</defs>
</svg>
<style>
div {
position: absolute;
}
.box {
width: 200px;
height: 200px;
top: 100px;
left: 100px;
background: green;
}
.navbar {
width: 300px;
height: 50px;
top: 150px;
left: 50px;
border: 1px solid blue;
backdrop-filter: url(#svgInvert);
}
.menu {
width: 100px;
height: 150px;
top: 50px;
left: 95px;
border: 1px solid blue;
}
.menu2 {
width: 100px;
height: 30px;
top: -32px;
left: 95px;
border: 1px solid blue;
}
</style>

View file

@ -7,7 +7,7 @@
<body> <body>
<script> <script>
test(() => { test(() => {
document.policy.allowedFeatures().forEach((enabled_feature) => { document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
assert_not_equals(enabled_feature, "layout-animations"); assert_not_equals(enabled_feature, "layout-animations");
}); });
}, },

View file

@ -7,7 +7,7 @@
<body> <body>
<script> <script>
test(() => { test(() => {
document.policy.allowedFeatures().forEach((enabled_feature) => { document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
assert_not_equals(enabled_feature, "layout-animations"); assert_not_equals(enabled_feature, "layout-animations");
}); });
}, },

View file

@ -25,7 +25,7 @@ html, body {
// Sanity check. // Sanity check.
test(() => { test(() => {
assert_false(document.policy.allowsFeature("vertical-scroll"), assert_false(document.featurePolicy.allowsFeature("vertical-scroll"),
"Expected 'vertical-scroll' to be disabled."); "Expected 'vertical-scroll' to be disabled.");
}, "'vertical-scroll' disabled in main document."); }, "'vertical-scroll' disabled in main document.");

View file

@ -15,7 +15,7 @@
// Test that fullscreen's allowlist is ['*'] // Test that fullscreen's allowlist is ['*']
test(function() { test(function() {
assert_array_equals( assert_array_equals(
document.policy.getAllowlistForFeature('fullscreen'), document.featurePolicy.getAllowlistForFeature('fullscreen'),
['*']); ['*']);
}, header_policy + ' -- test allowlist is ['*']'); }, header_policy + ' -- test allowlist is ['*']');

View file

@ -15,7 +15,7 @@
// Test that fullscreen's allowlist is ['same_origin'] // Test that fullscreen's allowlist is ['same_origin']
test(function() { test(function() {
assert_array_equals( assert_array_equals(
document.policy.getAllowlistForFeature('fullscreen'), document.featurePolicy.getAllowlistForFeature('fullscreen'),
[same_origin]); [same_origin]);
}, header_policy + ' -- test allowlist is [same_origin]'); }, header_policy + ' -- test allowlist is [same_origin]');

View file

@ -16,7 +16,7 @@
// Test that fullscreen's allowlist is [same_origin, cross_origin, 'https://www.example.com'] // Test that fullscreen's allowlist is [same_origin, cross_origin, 'https://www.example.com']
test(function() { test(function() {
assert_array_equals( assert_array_equals(
document.policy.getAllowlistForFeature('fullscreen').sort(), document.featurePolicy.getAllowlistForFeature('fullscreen').sort(),
[same_origin, cross_origin, 'https://www.example.com'].sort()); [same_origin, cross_origin, 'https://www.example.com'].sort());
}, header_policy + ' -- test allowlist is [same_origin, cross_origin, https://www.example.com]'); }, header_policy + ' -- test allowlist is [same_origin, cross_origin, https://www.example.com]');

View file

@ -16,7 +16,7 @@
// Test that fullscreen's allowlist is [same_origin, cross_origin, 'https://www.example.com'] // Test that fullscreen's allowlist is [same_origin, cross_origin, 'https://www.example.com']
test(function() { test(function() {
assert_array_equals( assert_array_equals(
document.policy.getAllowlistForFeature('fullscreen'), document.featurePolicy.getAllowlistForFeature('fullscreen'),
[cross_origin, 'https://www.example.com'].sort()); [cross_origin, 'https://www.example.com'].sort());
}, header_policy + ' -- test allowlist is [cross_origin, https://www.example.com]'); }, header_policy + ' -- test allowlist is [cross_origin, https://www.example.com]');

View file

@ -15,7 +15,7 @@
// Test that fullscreen's allowlist is [] // Test that fullscreen's allowlist is []
test(function() { test(function() {
assert_array_equals( assert_array_equals(
document.policy.getAllowlistForFeature('fullscreen'), document.featurePolicy.getAllowlistForFeature('fullscreen'),
[]); []);
}, header_policy + ' -- test allowlist is []'); }, header_policy + ' -- test allowlist is []');

View file

@ -2,6 +2,6 @@
'use strict'; 'use strict';
window.onload = function() { window.onload = function() {
parent.postMessage(document.policy.allowedFeatures(), '*'); parent.postMessage(document.featurePolicy.allowedFeatures(), '*');
} }
</script> </script>

View file

@ -1,6 +1,7 @@
// Feature test to avoid timeouts // Feature test to avoid timeouts
function assert_feature_policy_supported() { function assert_feature_policy_supported() {
assert_not_equals(document.policy, undefined, 'Feature Policy is supported'); assert_not_equals(document.featurePolicy, undefined,
'Feature Policy is supported');
} }
// Tests whether a feature that is enabled/disabled by feature policy works // Tests whether a feature that is enabled/disabled by feature policy works
// as expected. // as expected.
@ -257,7 +258,8 @@ function run_all_fp_tests_allow_all(
// Arguments: // Arguments:
// expected_policy: A list of {feature, allowlist} pairs where the feature is // expected_policy: A list of {feature, allowlist} pairs where the feature is
// enabled for every origin in the allowlist, in the |policy|. // enabled for every origin in the allowlist, in the |policy|.
// policy: Either a document.policy or a iframe.policy to be tested. // policy: Either a document.featurePolicy or an iframe.featurePolicy to be
// tested.
// message: A short description of what policy is being tested. // message: A short description of what policy is being tested.
function test_allowlists(expected_policy, policy, message) { function test_allowlists(expected_policy, policy, message) {
for (var allowlist of allowlists) { for (var allowlist of allowlists) {
@ -409,7 +411,7 @@ function test_frame_policy(
document.body.appendChild(frame); document.body.appendChild(frame);
// frame_policy should be dynamically updated as allow and allowfullscreen is // frame_policy should be dynamically updated as allow and allowfullscreen is
// updated. // updated.
var frame_policy = frame.policy; var frame_policy = frame.featurePolicy;
if (typeof allow !== 'undefined') { if (typeof allow !== 'undefined') {
frame.setAttribute('allow', allow); frame.setAttribute('allow', allow);
} }

View file

@ -7,8 +7,8 @@
<body> <body>
<script> <script>
async_test(t => { async_test(t => {
assert_false(document.policy.allowsFeature('geolocation')); assert_false(document.featurePolicy.allowsFeature('geolocation'));
assert_true(document.policy.allowsFeature('camera')); assert_true(document.featurePolicy.allowsFeature('camera'));
t.done(); t.done();
}, "Origin-Policy-based Feature policy"); }, "Origin-Policy-based Feature policy");
</script> </script>

View file

@ -1,5 +1,7 @@
import urllib import urllib
import time import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), "../common/"))
import sleep
def main(request, response): def main(request, response):
index = request.request_path.index("?") index = request.request_path.index("?")
@ -11,7 +13,7 @@ def main(request, response):
if arg.startswith("ignored"): if arg.startswith("ignored"):
continue continue
elif arg.endswith("ms"): elif arg.endswith("ms"):
time.sleep(float(arg[0:-2]) / 1E3); sleep.sleep_at_least(float(arg[0:-2]))
elif arg.startswith("redirect:"): elif arg.startswith("redirect:"):
return (302, "WEBPERF MARKETING"), [("Location", urllib.unquote(arg[9:]))], "TEST" return (302, "WEBPERF MARKETING"), [("Location", urllib.unquote(arg[9:]))], "TEST"
elif arg.startswith("mime:"): elif arg.startswith("mime:"):

View file

@ -0,0 +1,15 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
const t = async_test("Finite resource timing entries buffer size");
addEventListener("message", t.step_func_done(e => {
assert_equals(e.data, "PASS", "Document domain had no impact on the timing-allow check");
}));
window.open("//{{domains[www]}}:{{ports[http][1]}}/resource-timing/resources/document-domain-no-impact.sub.html");
</script>

View file

@ -53,34 +53,6 @@ window.onload =
"'Src' of new <iframe> must be 'about:blank'."); "'Src' of new <iframe> must be 'about:blank'.");
} }
}, },
{
description: "Setting 'document.domain' does not effect same-origin checks",
test:
function (test) {
initiateFetch(
test,
"iframe",
canonicalize("iframe-setdomain.sub.html"),
function (initiator, entry) {
// Ensure that the script inside the IFrame has successfully changed the IFrame's domain.
assert_throws(
null,
function () {
assert_not_equals(frame.contentWindow.document, null);
},
"Test Error: IFrame is not recognized as cross-domain.");
// To verify that setting 'document.domain' did not change the results of the timing allow check,
// verify that the following non-zero properties return their value.
["domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd"]
.forEach(function(property) {
assert_greater_than(entry.connectEnd, 0,
"Property should be non-zero because timing allow check ignores 'document.domain'.");
});
test.done();
});
}
}
]; ];
// Create cached/uncached tests from the following array of templates. For each template entry, // Create cached/uncached tests from the following array of templates. For each template entry,
@ -324,7 +296,7 @@ window.onload =
// Multiple browsers seem to cheat a bit and race img.onLoad and setting responseEnd. Microsoft https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/2379187 // Multiple browsers seem to cheat a bit and race img.onLoad and setting responseEnd. Microsoft https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/2379187
// Yield for 100ms to workaround a suspected race where window.onload fires before // Yield for 100ms to workaround a suspected race where window.onload fires before
// script visible side-effects from the wininet/urlmon thread have finished. // script visible side-effects from the wininet/urlmon thread have finished.
window.setTimeout( test.step_timeout(
test.step_func( test.step_func(
function () { function () {
performance performance
@ -468,7 +440,7 @@ window.onload =
when invoked. */ when invoked. */
function createOnloadCallbackFn(test, initiator, url, onloadCallback) { function createOnloadCallbackFn(test, initiator, url, onloadCallback) {
// Remember the number of entries on the timeline prior to initiating the fetch: // Remember the number of entries on the timeline prior to initiating the fetch:
var beforeEntryCount = performance.getEntries().length; var beforeEntryCount = performance.getEntriesByType("resource").length;
return test.step_func( return test.step_func(
function() { function() {
@ -480,7 +452,7 @@ window.onload =
} }
} }
var entries = performance.getEntries(); var entries = performance.getEntriesByType("resource");
var candidateEntry = entries[entries.length - 1]; var candidateEntry = entries[entries.length - 1];
switch (entries.length - beforeEntryCount) switch (entries.length - beforeEntryCount)

View file

@ -14,6 +14,6 @@
<body> <body>
<div id="log"></div> <div id="log"></div>
<pre id="output"></pre> <pre id="output"></pre>
<script src="resource-timing.js"></script> <script src="resource-timing-level1.js"></script>
</body> </body>
</html> </html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<iframe id="frame" src="//{{domains[www]}}:{{ports[http][1]}}/resource-timing/resources/iframe-setdomain.sub.html"></iframe>
<script>
let opener = window.opener;
window.addEventListener("load", () => {
try {
let frameDoc = document.getElementById("frame").contentWindow.document;
opener.postMessage("FAIL - iframe document.domain was not set", "*");
return;
} catch(error) {
if (error.name != "SecurityError") {
opener.postMessage("FAIL - error is " + error.name, "*");
return;
}
let entry = performance.getEntriesByName(window.location.protocol + "//{{domains[www]}}:{{ports[http][1]}}/resource-timing/resources/iframe-setdomain.sub.html");
// To verify that setting 'document.domain' did not change the results of the timing allow check,
// verify that the following non-zero properties return their value.
["domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd"].forEach(property => {
if (entry[property] == 0) {
opener.postMessage("FAIL - " + property + " is 0 but timing allow check should ignore document.domain", "*");
}
});
opener.postMessage("PASS", "*");
}
opener.postMessage("FAIL - unknown", "*");
});
</script>

View file

@ -1,14 +1,14 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>domain: {{domains[www]}}</title> <title>domain: {{domains[]}}</title>
</head> </head>
<body> <body>
<script> <script>
// The purpose of this IFrame is to change the 'document.domain' // The purpose of this IFrame is to change the 'document.domain'
document.domain = "{{domains[www]}}"; document.domain = "{{domains[]}}";
</script> </script>
The resource-timings.html test loads this document into an IFrame to vet that setting The resource-timings-level1.sub.html test loads this document into an IFrame to vet that setting
'document.domain' does not effect the timing allowed. 'document.domain' does not effect the timing allowed.
</body> </body>
</html> </html>

View file

@ -566,7 +566,7 @@ class Session(object):
@command @command
def close(self): def close(self):
handles = self.send_session_command("DELETE", "window") handles = self.send_session_command("DELETE", "window")
if len(handles) == 0: if handles is not None and len(handles) == 0:
# With no more open top-level browsing contexts, the session is closed. # With no more open top-level browsing contexts, the session is closed.
self.session_id = None self.session_id = None

View file

@ -169,6 +169,12 @@ def run_tests(config, test_paths, product, **kwargs):
test_total = 0 test_total = 0
unexpected_total = 0 unexpected_total = 0
if len(test_loader.test_ids) == 0:
logger.error("Unable to find any tests at the path(s):")
for path in kwargs["test_list"]:
logger.error(" %s" % path)
logger.error("Please check spelling and make sure there are tests in the specified path(s).")
return False
kwargs["pause_after_test"] = get_pause_after_test(test_loader, **kwargs) kwargs["pause_after_test"] = get_pause_after_test(test_loader, **kwargs)
ssl_config = {"type": kwargs["ssl_type"], ssl_config = {"type": kwargs["ssl_type"],

View file

@ -1,3 +1,5 @@
# META: timeout=long
from tests.support.asserts import assert_error, assert_success from tests.support.asserts import assert_error, assert_success
from tests.support.helpers import document_hidden, is_fullscreen from tests.support.helpers import document_hidden, is_fullscreen
@ -69,19 +71,14 @@ def test_maximize_twice_is_idempotent(session):
assert session.window.size == max_size assert session.window.size == max_size
"""
TODO(ato): Implicit session start does not use configuration passed on
from wptrunner. This causes an exception.
See https://bugzil.la/1398459.
def test_maximize_when_resized_to_max_size(session): def test_maximize_when_resized_to_max_size(session):
# Determine the largest available window size by first maximising # Determine the largest available window size by first maximising
# the window and getting the window rect dimensions. # the window and getting the window rect dimensions.
# #
# Then resize the window to the maximum available size. # Then resize the window to the maximum available size.
session.end() session.end()
available = session.window.maximize() session.window.maximize()
available = session.window.size
session.end() session.end()
session.window.size = available session.window.size = available
@ -94,4 +91,3 @@ def test_maximize_when_resized_to_max_size(session):
before = session.window.size before = session.window.size
session.window.maximize() session.window.maximize()
assert session.window.size == before assert session.window.size == before
"""

View file

@ -39,7 +39,7 @@ promise_test(async t => {
}); });
}); });
await exchangeOfferAnswer(pc1, pc2); await exchangeOfferAnswer(pc1, pc2);
await unmuteResolver.promise; await unmuteResolver;
}, 'ontrack: track goes from muted to unmuted'); }, 'ontrack: track goes from muted to unmuted');
promise_test(async t => { promise_test(async t => {

View file

@ -95,7 +95,7 @@
ontrackEventResolvers[ontrackEventsFired++].resolve(e); ontrackEventResolvers[ontrackEventsFired++].resolve(e);
}); });
await exchangeOffer(caller, callee); await exchangeOffer(caller, callee);
let firstTrackEvent = await ontrackEventResolvers[0].promise; let firstTrackEvent = await ontrackEventResolvers[0];
assert_equals(firstTrackEvent.track.id, assert_equals(firstTrackEvent.track.id,
localStreams[0].getTracks()[0].id, localStreams[0].getTracks()[0].id,
'First ontrack\'s track ID matches first local track.'); 'First ontrack\'s track ID matches first local track.');
@ -104,7 +104,7 @@
assert_equals(firstTrackEvent.streams[0].id, assert_equals(firstTrackEvent.streams[0].id,
localStreams[0].id, localStreams[0].id,
'First ontrack\'s stream ID matches local stream.'); 'First ontrack\'s stream ID matches local stream.');
let secondTrackEvent = await ontrackEventResolvers[1].promise; let secondTrackEvent = await ontrackEventResolvers[1];
assert_equals(secondTrackEvent.track.id, assert_equals(secondTrackEvent.track.id,
localStreams[1].getTracks()[0].id, localStreams[1].getTracks()[0].id,
'Second ontrack\'s track ID matches second local track.'); 'Second ontrack\'s track ID matches second local track.');

View file

@ -618,7 +618,7 @@
resolver.resolve(); resolver.resolve();
} }
}; };
return resolver.promise; return resolver;
} }
// Explores the stats graph starting from |stat|, validating each stat // Explores the stats graph starting from |stat|, validating each stat

View file

@ -48,7 +48,7 @@ function xr_session_promise_test(
}) })
.then((device) => { .then((device) => {
testDevice = device; testDevice = device;
return gl.setCompatibleXRDevice(device); return gl.makeXRCompatible();
}) })
.then(() => new Promise((resolve, reject) => { .then(() => new Promise((resolve, reject) => {
// Perform the session request in a user gesture. // Perform the session request in a user gesture.

View file

@ -5,21 +5,19 @@
<script src="resources/webxr_util.js"></script> <script src="resources/webxr_util.js"></script>
<canvas id="webgl-canvas"></canvas> <canvas id="webgl-canvas"></canvas>
<script> <script>
xr_promise_test("webglCanvasContext can be created with an XRDevice", xr_promise_test("An XR-compatible webglCanvasContext can be created",
(t) => { (t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true }) return XRTest.simulateDeviceConnection({ supportsImmersive:true })
.then( (controller) => { return navigator.xr.requestDevice() }) .then( (controller) => {
.then( (device) => {
webglCanvas = document.getElementById('webgl-canvas'); webglCanvas = document.getElementById('webgl-canvas');
gl = webglCanvas.getContext('webgl', {compatibleXRDevice: device}); gl = webglCanvas.getContext('webgl', {xrCompatible: true});
assert_equals(gl.getContextAttributes().compatibleXRDevice, device); assert_true(gl.getContextAttributes().xrCompatible);
// Check that an offscreen context behaves no different. // Check that an offscreen context behaves no different.
let offscreenCanvas = document.createElement('canvas'); let offscreenCanvas = document.createElement('canvas');
let offscreenGl = webglCanvas.getContext( let offscreenGl = webglCanvas.getContext(
'webgl', {compatibleXRDevice: device}); 'webgl', {xrCompatible: true});
assert_equals( assert_true(offscreenGl.getContextAttributes().xrCompatible);
offscreenGl.getContextAttributes().compatibleXRDevice, device);
}); });
}); });

View file

@ -7,16 +7,14 @@
<script> <script>
xr_promise_test( xr_promise_test(
"A lost webglCanvasContext should not be able to set device", "A lost webglCanvasContext should not be able to set xr compatibility",
(t) => { (t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true }) return XRTest.simulateDeviceConnection({ supportsImmersive:true })
.then( (controller) => { return navigator.xr.requestDevice() }) .then( (controller) => {
.then( (device) => {
webglCanvas = document.getElementById('webgl-canvas'); webglCanvas = document.getElementById('webgl-canvas');
gl = webglCanvas.getContext('webgl', {compatibleXRDevice: device}); gl = webglCanvas.getContext('webgl', {xrCompatible: true});
gl.getExtension('WEBGL_lose_context').loseContext(); gl.getExtension('WEBGL_lose_context').loseContext();
return promise_rejects(t, 'InvalidStateError', return promise_rejects(t, 'InvalidStateError', gl.makeXRCompatible());
gl.setCompatibleXRDevice(device));
}); });
}); });