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:
bors-servo 2019-01-05 01:10:49 -05:00 committed by GitHub
commit 0196160551
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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",
@ -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": [

View file

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

View file

@ -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

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]
expected: ERROR
[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]
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

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]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

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

View file

@ -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();
});
},

View file

@ -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");

View file

@ -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");
};
}

View file

@ -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) => {

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() {
// Make sure we are actually on Chromium.
if (!Mojo) {
// Make sure we are actually on Chromium with Mojo enabled.
if (typeof Mojo === 'undefined') {
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>
<script>
test(() => {
document.policy.allowedFeatures().forEach((enabled_feature) => {
document.featurePolicy.allowedFeatures().forEach((enabled_feature) => {
assert_not_equals(enabled_feature, "layout-animations");
});
},

View file

@ -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");
});
},

View file

@ -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.");

View file

@ -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 ['*']');

View file

@ -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]');

View file

@ -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]');

View file

@ -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]');

View file

@ -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 []');

View file

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

View file

@ -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);
}

View file

@ -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>

View file

@ -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:"):

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'.");
}
},
{
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)

View file

@ -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>

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>
<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>

View file

@ -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

View file

@ -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"],

View file

@ -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
"""

View file

@ -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 => {

View file

@ -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.');

View file

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

View file

@ -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.

View file

@ -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);
});
});

View file

@ -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());
});
});