mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #22618 - servo-wpt-sync:wpt_update_04-01-2019, r=jdm
Sync WPT with upstream (04-01-2019) Automated downstream sync of changes from upstream as of 04-01-2019. [no-wpt-sync] <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22618) <!-- Reviewable:end -->
This commit is contained in:
commit
0196160551
49 changed files with 587 additions and 173 deletions
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -204573,6 +204609,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"common/sleep.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": [
|
||||
[
|
||||
{}
|
||||
|
@ -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": [
|
||||
[
|
||||
{}
|
||||
|
@ -306903,12 +306954,7 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/iframe-setdomain.sub.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/resource-timing.js": [
|
||||
"resource-timing/resource-timing-level1.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
|
@ -306938,6 +306984,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/resources/document-domain-no-impact.sub.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/resources/empty.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -306978,6 +307029,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"resource-timing/resources/iframe-setdomain.sub.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.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",
|
||||
|
@ -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.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.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",
|
||||
|
@ -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",
|
||||
{}
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/maximize_window/stress.py": [
|
||||
|
@ -451057,7 +451133,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"IndexedDB/keypath-special-identifiers.htm": [
|
||||
"cb64d0b708eb3f97d99b0b754fcdf9bd12394821",
|
||||
"0692bed32ce54b4dc666fd76d5fa06c523a06a5a",
|
||||
"testharness"
|
||||
],
|
||||
"IndexedDB/keypath.htm": [
|
||||
|
@ -454993,11 +455069,11 @@
|
|||
"support"
|
||||
],
|
||||
"async-local-storage/api-surface.tentative.https.html": [
|
||||
"eea51abd539787f531cbf32e28737c135c63c8d7",
|
||||
"927871a8961c44bd8adfee1b82aadc9f514962a7",
|
||||
"testharness"
|
||||
],
|
||||
"async-local-storage/helpers/als-tests.js": [
|
||||
"fd6d6844f72e39d16e070ec461b99ab62a0b4547",
|
||||
"28087abf811dacda1ca00d81fe1306f97dde88ef",
|
||||
"support"
|
||||
],
|
||||
"async-local-storage/helpers/class-assert.js": [
|
||||
|
@ -455009,7 +455085,7 @@
|
|||
"support"
|
||||
],
|
||||
"async-local-storage/key-types.tentative.https.html": [
|
||||
"771ee2f9749a00ec4e33019512a9bf8d145a3ce6",
|
||||
"c3985b7711f77818260f08635d35ce3da553178b",
|
||||
"testharness"
|
||||
],
|
||||
"async-local-storage/non-secure-context-dynamic-import.tentative.html": [
|
||||
|
@ -455028,6 +455104,10 @@
|
|||
"f978480ff2b80ba5f892c2a2c429e882d655574d",
|
||||
"testharness"
|
||||
],
|
||||
"async-local-storage/undefined-value.https.html": [
|
||||
"c76c32f950704e42c06d498c4c8614dfbabb2aae",
|
||||
"testharness"
|
||||
],
|
||||
"audio-output/META.yml": [
|
||||
"b6a7d4d06259117af8fb843f6a8d252bac01a8f3",
|
||||
"support"
|
||||
|
@ -455605,7 +455685,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"bluetooth/resources/bluetooth-helpers.js": [
|
||||
"64a20c2f994164abd16d77143b5e39da89927ed4",
|
||||
"c01fc9fcf168056b319c18ca40a92df73665b12a",
|
||||
"support"
|
||||
],
|
||||
"bluetooth/resources/bluetooth-scanning-helpers.js": [
|
||||
|
@ -456428,6 +456508,10 @@
|
|||
"6805c323df5a975231648b830e33ce183c3cbbd3",
|
||||
"support"
|
||||
],
|
||||
"common/sleep.py": [
|
||||
"28065eff5fc907dbfb69f4c69020d049c7daa35d",
|
||||
"support"
|
||||
],
|
||||
"common/slow.py": [
|
||||
"f3b1c7e2ea61b571bd56cc1c70c5f89bb8e7e4dc",
|
||||
"support"
|
||||
|
@ -540360,6 +540444,10 @@
|
|||
"7051aa359c8cdf427a6c1b63179baad26c5a1645",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-backgrounds/background-image-cover-zoomed-1.html": [
|
||||
"0d434abe23a50c39aadce1449fcd148a1bdffe6a",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-backgrounds/background-image-first-letter.html": [
|
||||
"f78460b90708223616a019aa48aaaa4fe8b2ce43",
|
||||
"reftest"
|
||||
|
@ -542064,6 +542152,14 @@
|
|||
"5d805ec7527111006a0a6b24a71ef85606d1a91e",
|
||||
"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": [
|
||||
"ebc152fe74bd165b68cda0953ce3ef5545aa998d",
|
||||
"visual"
|
||||
|
@ -542164,6 +542260,10 @@
|
|||
"5ef9ff0d1df560a31a87df7438c9e435d6ad65e3",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-backgrounds/border-image-slice-shorthand-reset.html": [
|
||||
"7f178b428de3b3e2b185d3a02eb9baad80e63719",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-backgrounds/border-image-space-001.html": [
|
||||
"8794d37324c8284e6fd9b265842ed23574c68b09",
|
||||
"reftest"
|
||||
|
@ -542924,6 +543024,10 @@
|
|||
"f8b2ad25ccdc743e638d402590141296c142e602",
|
||||
"support"
|
||||
],
|
||||
"css/css-backgrounds/reference/background-image-cover-zoomed-1-ref.html": [
|
||||
"d61bac9feddf1013aa2db92cba8d258a523de446",
|
||||
"support"
|
||||
],
|
||||
"css/css-backgrounds/reference/background-image-first-letter-ref.html": [
|
||||
"304be71fbace6a964566e2a24dc8ab802cdec7e3",
|
||||
"support"
|
||||
|
@ -595384,6 +595488,10 @@
|
|||
"88531532fc33296e8c8eca5452da04d5d612662d",
|
||||
"reftest"
|
||||
],
|
||||
"css/filter-effects/backdrop-filter-reference-filter.html": [
|
||||
"74c813c92a46aae10739356318a3c356c0aae3c3",
|
||||
"reftest"
|
||||
],
|
||||
"css/filter-effects/blur-clip-stacking-context-001.html": [
|
||||
"a96994a8afe126e474f9ee015338749f0015dc1f",
|
||||
"reftest"
|
||||
|
@ -613197,7 +613305,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html": [
|
||||
"b45d8c3d4483ae309f87d6a26552636efa44e407",
|
||||
"e7150a91e8749473962884727fb59bb3b978bf68",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/experimental-features/layout-animations-disabled-violation-report-js-tentative.html.headers": [
|
||||
|
@ -613205,7 +613313,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html": [
|
||||
"0701c50f6cac4cef768cf94ce8cd1764a885a14e",
|
||||
"163ccae812f129e6cc338eb548e7ace92dd65b17",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/experimental-features/layout-animations-disabled-violation-report-keyframes-tentative.html.headers": [
|
||||
|
@ -613357,7 +613465,7 @@
|
|||
"reftest"
|
||||
],
|
||||
"feature-policy/experimental-features/vertical-scroll-main-frame-manual.tentative.html": [
|
||||
"6392ea5bfb0ef0b65ca7917ef3053ee73c1f8254",
|
||||
"34cf142d456626f224957c44b9297500496c18cf",
|
||||
"manual"
|
||||
],
|
||||
"feature-policy/experimental-features/vertical-scroll-main-frame-manual.tentative.html.headers": [
|
||||
|
@ -613413,7 +613521,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html": [
|
||||
"3334b97247e5fd347eda96d00d1399bf4c9a42f4",
|
||||
"6bf7ca65326a8a5a146b2f5c399b7adbce527805",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-allowed-for-all.https.sub.html.sub.headers": [
|
||||
|
@ -613421,7 +613529,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html": [
|
||||
"60e22f4aec865b54305737df21cc0dee3a869f82",
|
||||
"8641746ec8fb9db9af9f284d098b32b8663ca85c",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-allowed-for-self.https.sub.html.sub.headers": [
|
||||
|
@ -613429,7 +613537,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html": [
|
||||
"ade5dda4d9ddb879b007c6efef22b2757ced5743",
|
||||
"e07c51fefd9cc7002cf01667b2e7885ba19a3907",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-allowed-for-some.https.sub.html.sub.headers": [
|
||||
|
@ -613437,7 +613545,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-declined.https.sub.html": [
|
||||
"531c919aa03536770d80f59f0c21a922040aaddb",
|
||||
"d00d592d9ac4688f015d9edccc5cb683f3c496ad",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-declined.https.sub.html.sub.headers": [
|
||||
|
@ -613445,7 +613553,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html": [
|
||||
"c025705a36b10e3830cf2f076b34e14f77737129",
|
||||
"9a0f483ce44bc382fe12caaa6670838fa98d4209",
|
||||
"testharness"
|
||||
],
|
||||
"feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html.sub.headers": [
|
||||
|
@ -613777,7 +613885,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/resources/feature-policy-allowedfeatures.html": [
|
||||
"9cc8e1e33a32d2d6265580a261ce761b37ec4acb",
|
||||
"f4b020273fd394fb8691b6eeb406c7b3773cbcb3",
|
||||
"support"
|
||||
],
|
||||
"feature-policy/resources/feature-policy-autoplay.html": [
|
||||
|
@ -613821,7 +613929,7 @@
|
|||
"support"
|
||||
],
|
||||
"feature-policy/resources/featurepolicy.js": [
|
||||
"38ae4184096b6e53f17987c81f8ad8f1ff879195",
|
||||
"a0756e385de6534821d3c15048e922384e4610ae",
|
||||
"support"
|
||||
],
|
||||
"feature-policy/resources/picture-in-picture.js": [
|
||||
|
@ -648097,7 +648205,7 @@
|
|||
"support"
|
||||
],
|
||||
"origin-policy/origin-policy-features.https.tentative.html": [
|
||||
"b5dbe3e6e1a69662a38a2fec7f2f6eece887bcee",
|
||||
"e83acf1dbdef347ce93dc7a64ccdf3e9b0e77d79",
|
||||
"testharness"
|
||||
],
|
||||
"origin-policy/origin-policy-features.https.tentative.html.headers": [
|
||||
|
@ -659285,7 +659393,7 @@
|
|||
"support"
|
||||
],
|
||||
"resource-timing/SyntheticResponse.py": [
|
||||
"528ee239c174e9bd7618288f88cc09f8c5a9b58b",
|
||||
"26e0a8017d6c2c7b51c94998f34a79fa20eb1e12",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/buffer-full-add-after-full-event.html": [
|
||||
|
@ -659336,30 +659444,30 @@
|
|||
"eaf21b483ccd6ec63bcb8dc87c9e19a4305bf43d",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/document-domain-no-impact-loader.sub.html": [
|
||||
"8a1c433a5c3a7b79d92b797ee1057c624d4a9866",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/idlharness.any.js": [
|
||||
"a7542f191c10ea7b42110b5fc80e7abf43174bb5",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/iframe-setdomain.sub.html": [
|
||||
"944ee10c44259ac84281cd802144068583d539db",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/no-entries-for-cross-origin-css-fetched.sub.html": [
|
||||
"92d94a17ec0df642b0a500dbd9fb5aa06eaacb64",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/resource-timing-level1.js": [
|
||||
"95b5cdfb1ed0ca2bbfd6b692ad565512218dd7a4",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/resource-timing-level1.sub.html": [
|
||||
"093d2542218fbe48b134230b4d9d65e1ef1d4c10",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/resource-timing-tojson.html": [
|
||||
"77094f4b843a43fb30aeca48c505337b4322ca81",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/resource-timing.html": [
|
||||
"ad97044a6291912880046a4e784af13d28ab2f71",
|
||||
"testharness"
|
||||
],
|
||||
"resource-timing/resource-timing.js": [
|
||||
"8d97b2f26871e3a492cc6d3d253808e0cf18b0f2",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/resource_TAO_cross_origin_redirect_chain.html": [
|
||||
"522188279c3ab81ec27cd7e83f014ecf747b21a8",
|
||||
"testharness"
|
||||
|
@ -659500,6 +659608,10 @@
|
|||
"b143da7b325f0ad24a2f9ad67db7ba31d0aa912c",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/resources/document-domain-no-impact.sub.html": [
|
||||
"fbd7bc3b6e21ee39478c8a63780bb673dafe96a4",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/resources/empty.js": [
|
||||
"3b44754e301ded90e559f6343df641e476803542",
|
||||
"support"
|
||||
|
@ -659532,6 +659644,10 @@
|
|||
"31a769eb3666492a3804f1c3deca73df526c0a4f",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/resources/iframe-setdomain.sub.html": [
|
||||
"4a2f609aa469f14d7efe64baaeb739efdb2fdc75",
|
||||
"support"
|
||||
],
|
||||
"resource-timing/resources/iframe_TAO_match_origin.html": [
|
||||
"cf68aade7954e609087d34f21e437c285eb73a58",
|
||||
"support"
|
||||
|
@ -674617,7 +674733,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/webdriver/webdriver/client.py": [
|
||||
"c5cb9caa5b2c278171d246700c656f147f24daf8",
|
||||
"29be09bb3c934f7f2e3796f2ed89e507eae90bd6",
|
||||
"support"
|
||||
],
|
||||
"tools/webdriver/webdriver/error.py": [
|
||||
|
@ -675301,7 +675417,7 @@
|
|||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/wptrunner.py": [
|
||||
"8b98b2955f5525a938483c9b4abc598ff33ea9f7",
|
||||
"f5780daacd7f4d0dfc1902c98ad387adcebf857b",
|
||||
"support"
|
||||
],
|
||||
"tools/wptrunner/wptrunner/wpttest.py": [
|
||||
|
@ -680401,7 +680517,7 @@
|
|||
"support"
|
||||
],
|
||||
"webdriver/tests/maximize_window/maximize.py": [
|
||||
"b3ed7a680a9f320012b548a22a6042ab981bf449",
|
||||
"375465997924f5656750402db80ae9391f2101af",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/maximize_window/stress.py": [
|
||||
|
@ -681521,7 +681637,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-remote-track-mute.https.html": [
|
||||
"56fe761425096e963589309b828a8a7f7d36a9be",
|
||||
"095fe50e305f853cb3c76030c0f0cb3cd86e4fff",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-removeTrack.https.html": [
|
||||
|
@ -681577,7 +681693,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-setRemoteDescription-tracks.https.html": [
|
||||
"aa3f93e235e3408bba55548de226e76327ce40f5",
|
||||
"7c565dd1c3baf8a379a5b89cb342e11413c3b032",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-setRemoteDescription.html": [
|
||||
|
@ -681585,7 +681701,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-track-stats.https.html": [
|
||||
"30c368f670d78154fd3ca3c67d20eb67d9a052e7",
|
||||
"2d45c343d861f0b62a7d3d1f979ff7702862e5d7",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-transceivers.https.html": [
|
||||
|
@ -686153,15 +686269,15 @@
|
|||
"support"
|
||||
],
|
||||
"webxr/resources/webxr_util.js": [
|
||||
"ee6e67f4c3d090015ead8b8718c2a836871a68ba",
|
||||
"10bdc12810c3b34d140e6f04b0068c28c9dc1873",
|
||||
"support"
|
||||
],
|
||||
"webxr/webGLCanvasContext_create_with_xrdevice.https.html": [
|
||||
"94731ccfbb4937cabe175de5acce4423fbf8de43",
|
||||
"webxr/webGLCanvasContext_create_xrcompatible.https.html": [
|
||||
"8b2f196fa76ecc102319bf9409cba143d0d35e13",
|
||||
"testharness"
|
||||
],
|
||||
"webxr/webGLCanvasContext_setdevice_contextlost.https.html": [
|
||||
"25f9869b70e27ca563df2860dd01a679e140d221",
|
||||
"webxr/webGLCanvasContext_makecompatible_contextlost.https.html": [
|
||||
"3102008c57db1e32a0910eabfc93c55809b8300c",
|
||||
"testharness"
|
||||
],
|
||||
"webxr/webxr_availability.http.sub.html": [
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
|
||||
[single-byte-decoder.html?XMLHttpRequest]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,23 +11,5 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
||||
expected: FAIL
|
||||
|
||||
[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
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,5 @@
|
|||
[buffer-full-set-to-current-buffer.html]
|
||||
expected: ERROR
|
||||
[Test that entries added and event firing happened in the right sequence]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[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.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[document-domain-no-impact-loader.sub.html]
|
||||
[Finite resource timing entries buffer size]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[005.html]
|
||||
expected: ERROR
|
||||
[dedicated worker in shared worker in dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
const result = request.result;
|
||||
assert_key_equals(result[testcase.property], key,
|
||||
'Property should be used as key');
|
||||
});
|
||||
tx.oncomplete = t.step_func(function() {
|
||||
t.done();
|
||||
});
|
||||
},
|
||||
|
|
|
@ -21,14 +21,13 @@ test(() => {
|
|||
|
||||
test(() => {
|
||||
classAssert.propertyKeys(StorageArea.prototype, [
|
||||
"constructor", "set", "get", "has", "delete", "clear",
|
||||
"constructor", "set", "get", "delete", "clear",
|
||||
"keys", "values", "entries", "backingStore"
|
||||
], []);
|
||||
|
||||
classAssert.methods(StorageArea.prototype, {
|
||||
set: 2,
|
||||
get: 1,
|
||||
has: 1,
|
||||
delete: 1,
|
||||
clear: 0,
|
||||
keys: 0,
|
||||
|
@ -43,7 +42,7 @@ test(() => {
|
|||
|
||||
testWithArea(async area => {
|
||||
classAssert.propertyKeys(area, [], []);
|
||||
}, "Instances don't have any properties")
|
||||
}, "Instances don't have any properties");
|
||||
|
||||
test(() => {
|
||||
assert_equals(storage instanceof StorageArea, true, "instanceof");
|
||||
|
|
|
@ -19,7 +19,7 @@ export function testWithDefaultArea(testFn, description) {
|
|||
}
|
||||
|
||||
// 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.
|
||||
|
||||
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.get(key), value, "get()", "the set value");
|
||||
await assertPromiseEquals(area.has(key), true, "has()", "true");
|
||||
|
||||
const keysPromise = area.keys();
|
||||
assertIsPromise(keysPromise, "keys()");
|
||||
|
@ -58,7 +57,6 @@ function testVariousMethodsInner(key, value, keyEqualityAsserter) {
|
|||
await assertPromiseEquals(area.delete(key), undefined, "delete()", "undefined");
|
||||
|
||||
await assertPromiseEquals(area.get(key), undefined, "get()", "undefined after deleting");
|
||||
await assertPromiseEquals(area.has(key), false, "has()", "false after deleting");
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ const validKeys = {
|
|||
"an ArrayBuffer": [new Uint8Array([5, 6]).buffer, assertEqualArrayBuffers]
|
||||
};
|
||||
|
||||
const methods = ["set", "get", "has", "delete"];
|
||||
const methods = ["delete", "get", "set"];
|
||||
|
||||
for (const method of methods) {
|
||||
testWithArea(async (area, t) => {
|
||||
|
|
|
@ -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>
|
|
@ -18,8 +18,8 @@ function loadScripts(paths) {
|
|||
}
|
||||
|
||||
function performChromiumSetup() {
|
||||
// Make sure we are actually on Chromium.
|
||||
if (!Mojo) {
|
||||
// Make sure we are actually on Chromium with Mojo enabled.
|
||||
if (typeof Mojo === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
8
tests/wpt/web-platform-tests/common/sleep.py
Normal file
8
tests/wpt/web-platform-tests/common/sleep.py
Normal 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);
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -7,7 +7,7 @@
|
|||
<body>
|
||||
<script>
|
||||
test(() => {
|
||||
document.policy.allowedFeatures().forEach((enabled_feature) => {
|
||||
document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
|
||||
assert_not_equals(enabled_feature, "layout-animations");
|
||||
});
|
||||
},
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<body>
|
||||
<script>
|
||||
test(() => {
|
||||
document.policy.allowedFeatures().forEach((enabled_feature) => {
|
||||
document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
|
||||
assert_not_equals(enabled_feature, "layout-animations");
|
||||
});
|
||||
},
|
||||
|
|
|
@ -25,7 +25,7 @@ html, body {
|
|||
|
||||
// Sanity check.
|
||||
test(() => {
|
||||
assert_false(document.policy.allowsFeature("vertical-scroll"),
|
||||
assert_false(document.featurePolicy.allowsFeature("vertical-scroll"),
|
||||
"Expected 'vertical-scroll' to be disabled.");
|
||||
}, "'vertical-scroll' disabled in main document.");
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
// Test that fullscreen's allowlist is ['*']
|
||||
test(function() {
|
||||
assert_array_equals(
|
||||
document.policy.getAllowlistForFeature('fullscreen'),
|
||||
document.featurePolicy.getAllowlistForFeature('fullscreen'),
|
||||
['*']);
|
||||
}, header_policy + ' -- test allowlist is ['*']');
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
// Test that fullscreen's allowlist is ['same_origin']
|
||||
test(function() {
|
||||
assert_array_equals(
|
||||
document.policy.getAllowlistForFeature('fullscreen'),
|
||||
document.featurePolicy.getAllowlistForFeature('fullscreen'),
|
||||
[same_origin]);
|
||||
}, header_policy + ' -- test allowlist is [same_origin]');
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
// Test that fullscreen's allowlist is [same_origin, cross_origin, 'https://www.example.com']
|
||||
test(function() {
|
||||
assert_array_equals(
|
||||
document.policy.getAllowlistForFeature('fullscreen').sort(),
|
||||
document.featurePolicy.getAllowlistForFeature('fullscreen').sort(),
|
||||
[same_origin, cross_origin, 'https://www.example.com'].sort());
|
||||
}, header_policy + ' -- test allowlist is [same_origin, cross_origin, https://www.example.com]');
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
// Test that fullscreen's allowlist is [same_origin, cross_origin, 'https://www.example.com']
|
||||
test(function() {
|
||||
assert_array_equals(
|
||||
document.policy.getAllowlistForFeature('fullscreen'),
|
||||
document.featurePolicy.getAllowlistForFeature('fullscreen'),
|
||||
[cross_origin, 'https://www.example.com'].sort());
|
||||
}, header_policy + ' -- test allowlist is [cross_origin, https://www.example.com]');
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
// Test that fullscreen's allowlist is []
|
||||
test(function() {
|
||||
assert_array_equals(
|
||||
document.policy.getAllowlistForFeature('fullscreen'),
|
||||
document.featurePolicy.getAllowlistForFeature('fullscreen'),
|
||||
[]);
|
||||
}, header_policy + ' -- test allowlist is []');
|
||||
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
'use strict';
|
||||
|
||||
window.onload = function() {
|
||||
parent.postMessage(document.policy.allowedFeatures(), '*');
|
||||
parent.postMessage(document.featurePolicy.allowedFeatures(), '*');
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// Feature test to avoid timeouts
|
||||
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
|
||||
// as expected.
|
||||
|
@ -257,7 +258,8 @@ function run_all_fp_tests_allow_all(
|
|||
// Arguments:
|
||||
// expected_policy: A list of {feature, allowlist} pairs where the feature is
|
||||
// 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.
|
||||
function test_allowlists(expected_policy, policy, message) {
|
||||
for (var allowlist of allowlists) {
|
||||
|
@ -409,7 +411,7 @@ function test_frame_policy(
|
|||
document.body.appendChild(frame);
|
||||
// frame_policy should be dynamically updated as allow and allowfullscreen is
|
||||
// updated.
|
||||
var frame_policy = frame.policy;
|
||||
var frame_policy = frame.featurePolicy;
|
||||
if (typeof allow !== 'undefined') {
|
||||
frame.setAttribute('allow', allow);
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
<body>
|
||||
<script>
|
||||
async_test(t => {
|
||||
assert_false(document.policy.allowsFeature('geolocation'));
|
||||
assert_true(document.policy.allowsFeature('camera'));
|
||||
assert_false(document.featurePolicy.allowsFeature('geolocation'));
|
||||
assert_true(document.featurePolicy.allowsFeature('camera'));
|
||||
t.done();
|
||||
}, "Origin-Policy-based Feature policy");
|
||||
</script>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import urllib
|
||||
import time
|
||||
import sys, os
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "../common/"))
|
||||
import sleep
|
||||
|
||||
def main(request, response):
|
||||
index = request.request_path.index("?")
|
||||
|
@ -11,7 +13,7 @@ def main(request, response):
|
|||
if arg.startswith("ignored"):
|
||||
continue
|
||||
elif arg.endswith("ms"):
|
||||
time.sleep(float(arg[0:-2]) / 1E3);
|
||||
sleep.sleep_at_least(float(arg[0:-2]))
|
||||
elif arg.startswith("redirect:"):
|
||||
return (302, "WEBPERF MARKETING"), [("Location", urllib.unquote(arg[9:]))], "TEST"
|
||||
elif arg.startswith("mime:"):
|
||||
|
|
|
@ -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>
|
|
@ -53,34 +53,6 @@ window.onload =
|
|||
"'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,
|
||||
|
@ -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
|
||||
// Yield for 100ms to workaround a suspected race where window.onload fires before
|
||||
// script visible side-effects from the wininet/urlmon thread have finished.
|
||||
window.setTimeout(
|
||||
test.step_timeout(
|
||||
test.step_func(
|
||||
function () {
|
||||
performance
|
||||
|
@ -468,7 +440,7 @@ window.onload =
|
|||
when invoked. */
|
||||
function createOnloadCallbackFn(test, initiator, url, onloadCallback) {
|
||||
// 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(
|
||||
function() {
|
||||
|
@ -480,7 +452,7 @@ window.onload =
|
|||
}
|
||||
}
|
||||
|
||||
var entries = performance.getEntries();
|
||||
var entries = performance.getEntriesByType("resource");
|
||||
var candidateEntry = entries[entries.length - 1];
|
||||
|
||||
switch (entries.length - beforeEntryCount)
|
|
@ -14,6 +14,6 @@
|
|||
<body>
|
||||
<div id="log"></div>
|
||||
<pre id="output"></pre>
|
||||
<script src="resource-timing.js"></script>
|
||||
<script src="resource-timing-level1.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -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>
|
||||
|
||||
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>domain: {{domains[www]}}</title>
|
||||
<title>domain: {{domains[]}}</title>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
// The purpose of this IFrame is to change the 'document.domain'
|
||||
document.domain = "{{domains[www]}}";
|
||||
document.domain = "{{domains[]}}";
|
||||
</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.
|
||||
</body>
|
||||
</html>
|
|
@ -566,7 +566,7 @@ class Session(object):
|
|||
@command
|
||||
def close(self):
|
||||
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.
|
||||
self.session_id = None
|
||||
|
||||
|
|
|
@ -169,6 +169,12 @@ def run_tests(config, test_paths, product, **kwargs):
|
|||
test_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)
|
||||
|
||||
ssl_config = {"type": kwargs["ssl_type"],
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# META: timeout=long
|
||||
|
||||
from tests.support.asserts import assert_error, assert_success
|
||||
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
|
||||
|
||||
|
||||
"""
|
||||
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):
|
||||
# Determine the largest available window size by first maximising
|
||||
# the window and getting the window rect dimensions.
|
||||
#
|
||||
# Then resize the window to the maximum available size.
|
||||
session.end()
|
||||
available = session.window.maximize()
|
||||
session.window.maximize()
|
||||
available = session.window.size
|
||||
session.end()
|
||||
|
||||
session.window.size = available
|
||||
|
@ -94,4 +91,3 @@ def test_maximize_when_resized_to_max_size(session):
|
|||
before = session.window.size
|
||||
session.window.maximize()
|
||||
assert session.window.size == before
|
||||
"""
|
||||
|
|
|
@ -39,7 +39,7 @@ promise_test(async t => {
|
|||
});
|
||||
});
|
||||
await exchangeOfferAnswer(pc1, pc2);
|
||||
await unmuteResolver.promise;
|
||||
await unmuteResolver;
|
||||
}, 'ontrack: track goes from muted to unmuted');
|
||||
|
||||
promise_test(async t => {
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
ontrackEventResolvers[ontrackEventsFired++].resolve(e);
|
||||
});
|
||||
await exchangeOffer(caller, callee);
|
||||
let firstTrackEvent = await ontrackEventResolvers[0].promise;
|
||||
let firstTrackEvent = await ontrackEventResolvers[0];
|
||||
assert_equals(firstTrackEvent.track.id,
|
||||
localStreams[0].getTracks()[0].id,
|
||||
'First ontrack\'s track ID matches first local track.');
|
||||
|
@ -104,7 +104,7 @@
|
|||
assert_equals(firstTrackEvent.streams[0].id,
|
||||
localStreams[0].id,
|
||||
'First ontrack\'s stream ID matches local stream.');
|
||||
let secondTrackEvent = await ontrackEventResolvers[1].promise;
|
||||
let secondTrackEvent = await ontrackEventResolvers[1];
|
||||
assert_equals(secondTrackEvent.track.id,
|
||||
localStreams[1].getTracks()[0].id,
|
||||
'Second ontrack\'s track ID matches second local track.');
|
||||
|
|
|
@ -618,7 +618,7 @@
|
|||
resolver.resolve();
|
||||
}
|
||||
};
|
||||
return resolver.promise;
|
||||
return resolver;
|
||||
}
|
||||
|
||||
// Explores the stats graph starting from |stat|, validating each stat
|
||||
|
|
|
@ -48,7 +48,7 @@ function xr_session_promise_test(
|
|||
})
|
||||
.then((device) => {
|
||||
testDevice = device;
|
||||
return gl.setCompatibleXRDevice(device);
|
||||
return gl.makeXRCompatible();
|
||||
})
|
||||
.then(() => new Promise((resolve, reject) => {
|
||||
// Perform the session request in a user gesture.
|
||||
|
|
|
@ -5,21 +5,19 @@
|
|||
<script src="resources/webxr_util.js"></script>
|
||||
<canvas id="webgl-canvas"></canvas>
|
||||
<script>
|
||||
xr_promise_test("webglCanvasContext can be created with an XRDevice",
|
||||
xr_promise_test("An XR-compatible webglCanvasContext can be created",
|
||||
(t) => {
|
||||
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
|
||||
.then( (controller) => { return navigator.xr.requestDevice() })
|
||||
.then( (device) => {
|
||||
.then( (controller) => {
|
||||
webglCanvas = document.getElementById('webgl-canvas');
|
||||
gl = webglCanvas.getContext('webgl', {compatibleXRDevice: device});
|
||||
assert_equals(gl.getContextAttributes().compatibleXRDevice, device);
|
||||
gl = webglCanvas.getContext('webgl', {xrCompatible: true});
|
||||
assert_true(gl.getContextAttributes().xrCompatible);
|
||||
|
||||
// Check that an offscreen context behaves no different.
|
||||
let offscreenCanvas = document.createElement('canvas');
|
||||
let offscreenGl = webglCanvas.getContext(
|
||||
'webgl', {compatibleXRDevice: device});
|
||||
assert_equals(
|
||||
offscreenGl.getContextAttributes().compatibleXRDevice, device);
|
||||
'webgl', {xrCompatible: true});
|
||||
assert_true(offscreenGl.getContextAttributes().xrCompatible);
|
||||
});
|
||||
});
|
||||
|
|
@ -7,16 +7,14 @@
|
|||
<script>
|
||||
|
||||
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) => {
|
||||
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
|
||||
.then( (controller) => { return navigator.xr.requestDevice() })
|
||||
.then( (device) => {
|
||||
.then( (controller) => {
|
||||
webglCanvas = document.getElementById('webgl-canvas');
|
||||
gl = webglCanvas.getContext('webgl', {compatibleXRDevice: device});
|
||||
gl = webglCanvas.getContext('webgl', {xrCompatible: true});
|
||||
gl.getExtension('WEBGL_lose_context').loseContext();
|
||||
return promise_rejects(t, 'InvalidStateError',
|
||||
gl.setCompatibleXRDevice(device));
|
||||
return promise_rejects(t, 'InvalidStateError', gl.makeXRCompatible());
|
||||
});
|
||||
});
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue