diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 29acda356da..a9d191c5100 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -125643,6 +125643,42 @@ {} ] ], + "css/css-masking/clip-path/clip-path-inline-001.html": [ + [ + "/css/css-masking/clip-path/clip-path-inline-001.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/css-masking/clip-path/clip-path-inline-002.html": [ + [ + "/css/css-masking/clip-path/clip-path-inline-002.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/css-masking/clip-path/clip-path-inline-003.html": [ + [ + "/css/css-masking/clip-path/clip-path-inline-003.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-masking/clip-path/clip-path-path-001.html": [ [ "/css/css-masking/clip-path/clip-path-path-001.html", @@ -137395,6 +137431,18 @@ {} ] ], + "css/css-text/overflow-wrap/overflow-wrap-break-word-004.html": [ + [ + "/css/css-text/overflow-wrap/overflow-wrap-break-word-004.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-break-word-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [ [ "/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html", @@ -139231,6 +139279,18 @@ {} ] ], + "css/css-text/white-space/pre-wrap-015.html": [ + [ + "/css/css-text/white-space/pre-wrap-015.html", + [ + [ + "/css/css-text/white-space/reference/pre-wrap-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/white-space/textarea-break-spaces-001.html": [ [ "/css/css-text/white-space/textarea-break-spaces-001.html", @@ -139555,6 +139615,42 @@ {} ] ], + "css/css-text/word-break/word-break-break-all-010.html": [ + [ + "/css/css-text/word-break/word-break-break-all-010.html", + [ + [ + "/css/css-text/word-break/reference/word-break-break-all-010-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-break-all-011.html": [ + [ + "/css/css-text/word-break/word-break-break-all-011.html", + [ + [ + "/css/css-text/word-break/reference/word-break-break-all-010-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/word-break/word-break-break-all-014.html": [ + [ + "/css/css-text/word-break/word-break-break-all-014.html", + [ + [ + "/css/css-text/word-break/reference/word-break-break-all-014-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/word-break/word-break-keep-all-000.html": [ [ "/css/css-text/word-break/word-break-keep-all-000.html", @@ -198767,11 +198863,6 @@ {} ] ], - "beacon/navigate.iFrame.sub.html": [ - [ - {} - ] - ], "beacon/resources/beacon.py": [ [ {} @@ -265762,6 +265853,16 @@ {} ] ], + "css/css-text/word-break/reference/word-break-break-all-010-ref.html": [ + [ + {} + ] + ], + "css/css-text/word-break/reference/word-break-break-all-014-ref.html": [ + [ + {} + ] + ], "css/css-text/word-break/reference/word-break-break-all-ref-000.html": [ [ {} @@ -283657,6 +283758,21 @@ {} ] ], + "html/browsers/offline/appcache/resources/appcache-data.py": [ + [ + {} + ] + ], + "html/browsers/offline/appcache/resources/appcache-iframe.manifest": [ + [ + {} + ] + ], + "html/browsers/offline/appcache/resources/appcache-iframe.py": [ + [ + {} + ] + ], "html/browsers/offline/appcache/workers/resources/appcache-dedicated-worker-not-in-cache.js": [ [ {} @@ -294027,6 +294143,11 @@ {} ] ], + "interfaces/wasm-web-api.idl": [ + [ + {} + ] + ], "interfaces/web-animations.idl": [ [ {} @@ -358201,6 +358322,12 @@ {} ] ], + "html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html": [ + [ + "/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html", + {} + ] + ], "html/browsers/browsing-the-web/history-traversal/unset_context_name-1.html": [ [ "/html/browsers/browsing-the-web/history-traversal/unset_context_name-1.html", @@ -359291,6 +359418,12 @@ {} ] ], + "html/browsers/offline/appcache/appcache-iframe.https.html": [ + [ + "/html/browsers/offline/appcache/appcache-iframe.https.html", + {} + ] + ], "html/browsers/offline/appcache/workers/appcache-worker.https.html": [ [ "/html/browsers/offline/appcache/workers/appcache-worker.https.html", @@ -372885,6 +373018,12 @@ {} ] ], + "mediacapture-streams/MediaStream-clone.https.html": [ + [ + "/mediacapture-streams/MediaStream-clone.https.html", + {} + ] + ], "mediacapture-streams/MediaStream-default-feature-policy.https.html": [ [ "/mediacapture-streams/MediaStream-default-feature-policy.https.html", @@ -402043,6 +402182,24 @@ {} ] ], + "wasm/webapi/contenttype.any.js": [ + [ + "/wasm/webapi/contenttype.any.html", + {} + ], + [ + "/wasm/webapi/contenttype.any.serviceworker.html", + {} + ], + [ + "/wasm/webapi/contenttype.any.sharedworker.html", + {} + ], + [ + "/wasm/webapi/contenttype.any.worker.html", + {} + ] + ], "web-animations/animation-model/animation-types/accumulation-per-property.html": [ [ "/web-animations/animation-model/animation-types/accumulation-per-property.html", @@ -442447,11 +442604,11 @@ "testharness" ], "beacon/beacon-common.sub.js": [ - "0a36283b26379e16ccfd2c33cf05e0395dc18331", + "ae2f169f272e9efbbea3b7464ea77c34fe65c6e1", "support" ], "beacon/beacon-cors.sub.window.js": [ - "f4bccf177e3b4585a5efe0b6cd0d6edc24fe48f9", + "411cd1c94924127ce95c27707d283e7ca342f367", "testharness" ], "beacon/beacon-error.window.js": [ @@ -442467,7 +442624,7 @@ "testharness" ], "beacon/beacon-redirect.window.js": [ - "659759baa3f5c58b26b9ed042047348b67a23e44", + "53f229abff1744b5766efe808c00f9b656296391", "testharness" ], "beacon/headers/header-content-type.html": [ @@ -442514,10 +442671,6 @@ "958daf4865d1d7c9dfb621a163e15a8862330d2b", "testharness" ], - "beacon/navigate.iFrame.sub.html": [ - "f4c7846e522b553985cc0ad253e439bd6d315975", - "support" - ], "beacon/resources/beacon.py": [ "5f2553d3c4d506f7e292cfb73d81930a83a12d76", "support" @@ -549246,6 +549399,18 @@ "12df558fd2c2fa64783720cb9d1be07fa7f85572", "reftest" ], + "css/css-masking/clip-path/clip-path-inline-001.html": [ + "343646464a98b761fa3eee2f37260c9848ef067a", + "reftest" + ], + "css/css-masking/clip-path/clip-path-inline-002.html": [ + "d56117e22b87975d5367b0af18ebd5ad25cc744a", + "reftest" + ], + "css/css-masking/clip-path/clip-path-inline-003.html": [ + "4c907a46120da6a774193f83a6c1c89e5bd9b2f2", + "reftest" + ], "css/css-masking/clip-path/clip-path-path-001.html": [ "ebdfc2297bbcc8225f92ba9dfa2ed33819f2f9a9", "reftest" @@ -549595,7 +549760,7 @@ "support" ], "css/css-masking/mask-svg-content/reference/mask-text-001-ref.svg": [ - "48737c03d1e9d8be22b67c990be0d3ff9b420160", + "3fabeb01d762fc1eda9eb198b3051d7ad6128361", "support" ], "css/css-masking/parsing/clip-invalid.html": [ @@ -550523,7 +550688,7 @@ "reftest" ], "css/css-multicol/multicol-span-none-001-ref.xht": [ - "5472e779c8d180151a1959f9650b7398dbee50e2", + "4fcc57a658894e9ea8b75d80ee96f32353a27637", "support" ], "css/css-multicol/multicol-span-none-001.xht": [ @@ -559570,6 +559735,10 @@ "6203b55e9c6fe73cd317c3d4968c56609209b38d", "reftest" ], + "css/css-text/overflow-wrap/overflow-wrap-break-word-004.html": [ + "560ef63b2f94c5eeca83ee5ef63cdfc15fbdfe34", + "reftest" + ], "css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [ "bce6c68389c32960d79e8fbbf61f9fa28c733165", "reftest" @@ -560974,6 +561143,10 @@ "5da564d4b73ed3c7442160bae701e38d6b7fb66a", "reftest" ], + "css/css-text/white-space/pre-wrap-015.html": [ + "f9063c98767e70c3899bc9a59b50b42a61240ae4", + "reftest" + ], "css/css-text/white-space/reference/pre-wrap-001-ref.html": [ "8a8b5132db197bb9a76b1b44e461405f4cd9d1bc", "support" @@ -561158,6 +561331,14 @@ "0768b857d96624a63129f002d317019674d1ef0d", "support" ], + "css/css-text/word-break/reference/word-break-break-all-010-ref.html": [ + "0e0300a72dc920a5ffb54cda6fbe84a2f517d010", + "support" + ], + "css/css-text/word-break/reference/word-break-break-all-014-ref.html": [ + "a8720a101c3b2d2616b661e51c60b55b85d2d667", + "support" + ], "css/css-text/word-break/reference/word-break-break-all-ref-000.html": [ "579c2dc6a06c69bbb7384e51ad4b851e7d7b4410", "support" @@ -561334,6 +561515,18 @@ "9a7a591dafd4352f7df11dc9396608027ef80cd6", "manual" ], + "css/css-text/word-break/word-break-break-all-010.html": [ + "1ab97fb146a984da98a2400af0392187531edadc", + "reftest" + ], + "css/css-text/word-break/word-break-break-all-011.html": [ + "ed07aeb7368da2273e394011f426c1ee65fe2b25", + "reftest" + ], + "css/css-text/word-break/word-break-break-all-014.html": [ + "6885553ad685700e89d4d83ded7bc65269aa1123", + "reftest" + ], "css/css-text/word-break/word-break-keep-all-000.html": [ "fce7487c33ad47aaeeb20fe5ccb1bc5180192329", "reftest" @@ -599987,7 +600180,7 @@ "support" ], "generic-sensor/generic-sensor-iframe-tests.sub.js": [ - "97defcba4b2c73544e4842a90dd92ad5294d7791", + "c4195fee5f5ed10c4c30f1556e8ad8284f106a8d", "support" ], "generic-sensor/generic-sensor-tests.js": [ @@ -600598,6 +600791,10 @@ "d7037343d7daae486ba75570ad2dba376b6fd0ef", "testharness" ], + "html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html": [ + "8fe7d9f9770b25177b8eddc3eff9e7ecbcddd0c0", + "testharness" + ], "html/browsers/browsing-the-web/history-traversal/support/window-name-after-cross-origin-main-frame-navigation-popup.sub.html": [ "e13d191658046bd584b1cd5ded7fb8d3aa4604db", "support" @@ -602010,6 +602207,22 @@ "1c45fada5a352f01bb2174cb0ce42e75e5f3d288", "support" ], + "html/browsers/offline/appcache/appcache-iframe.https.html": [ + "8e72664371540fe84f8e3d32df3912f8bee28fb3", + "testharness" + ], + "html/browsers/offline/appcache/resources/appcache-data.py": [ + "f92c5116c0839c344ed02d951d932dc57708b36d", + "support" + ], + "html/browsers/offline/appcache/resources/appcache-iframe.manifest": [ + "7221e909c6fe6db848c202f8c46544b213eea7aa", + "support" + ], + "html/browsers/offline/appcache/resources/appcache-iframe.py": [ + "bc82788045fcaf6d841bb58cf905be9a6fa6f767", + "support" + ], "html/browsers/offline/appcache/workers/appcache-worker.https.html": [ "96fe5f2b7d22c1cc208ccb61e25582a24489de0d", "testharness" @@ -602035,7 +602248,7 @@ "support" ], "html/browsers/offline/appcache/workers/resources/appcache-worker.py": [ - "00281a2be72c0b39be4b466e310e850e63ad9ddb", + "106432191993d15d04ded140407fee7b52ec68e1", "support" ], "html/browsers/offline/application-cache-api/api_status_checking-manual.html": [ @@ -619747,7 +619960,7 @@ "support" ], "interfaces/payment-request.idl": [ - "d930b57291e5301e4056d30192726023e9306512", + "843c66107b34bbb90aa64411487a09b2fa95e508", "support" ], "interfaces/performance-timeline.idl": [ @@ -619882,6 +620095,10 @@ "6de14fb8f0895a72b69f37b9dd8b72e2ab1604e0", "support" ], + "interfaces/wasm-web-api.idl": [ + "1cc2f17679b2e89604e0d4a901f0dabbaa6917e5", + "support" + ], "interfaces/web-animations.idl": [ "7dce1002e666d3efa9b18531e05b087f0f4adc0d", "support" @@ -621630,6 +621847,10 @@ "faa2c39b30f54d5f3a8a38f9a6eeb46e32e722d7", "testharness" ], + "mediacapture-streams/MediaStream-clone.https.html": [ + "134918815c3d08e20771d6177021cd24c89b4ccb", + "testharness" + ], "mediacapture-streams/MediaStream-default-feature-policy.https.html": [ "21e3f5b9af8567cb015604bbcb021cc04216e4c2", "testharness" @@ -621647,7 +621868,7 @@ "manual" ], "mediacapture-streams/MediaStream-idl.https.html": [ - "8e60709cf1b5f1381bdcd5c4deb5bef3703fea2a", + "32e34f2b4b666700aa1879dac251787cf1024ee0", "testharness" ], "mediacapture-streams/MediaStream-removetrack.https.html": [ @@ -631883,7 +632104,7 @@ "testharness" ], "payment-request/payment-request-id-attribute.https.html": [ - "455b65a7da32d5e2d7231d4c5bf692826efbf4a4", + "e5d0c7a66eee67f529cd48fa640f08481f5e5a38", "testharness" ], "payment-request/payment-request-insecure.http.html": [ @@ -647079,7 +647300,7 @@ "testharness" ], "speech-api/idlharness.window.js": [ - "2f9702878a3037c6a6e4df3d6d329827740bf41e", + "6cfcbb2e95fd7e3e7d32aab6faae7cb231c6fec6", "testharness" ], "speech-api/webspeech.js": [ @@ -656887,7 +657108,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/fennec.py": [ - "db271acc50ea08e61efd09848a9ff78b53b8ed1e", + "ddb1667a22fe39217d4488de6d44a51177a39c32", "support" ], "tools/wptrunner/wptrunner/browsers/firefox.py": [ @@ -656931,7 +657152,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/webkit.py": [ - "9482f2f774332476150d3e1bbb452d5545e2ef69", + "b09114a9a5444717157edb37c24add6ba99cf421", "support" ], "tools/wptrunner/wptrunner/config.py": [ @@ -656979,7 +657200,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorservo.py": [ - "caa97145560ec1c1d0e78d38cdd7a857c3972d40", + "49b682c749f897eb234c6bf4bb7ade3ed021dd7b", "support" ], "tools/wptrunner/wptrunner/executors/executorservodriver.py": [ @@ -657459,7 +657680,7 @@ "support" ], "tools/wptserve/tests/functional/test_pipes.py": [ - "83b2c621641ca17b670eb5a8c08b38f8d37cc2a7", + "0299ea0e62b2d97f20054f7aa8f52a497361e472", "support" ], "tools/wptserve/tests/functional/test_request.py": [ @@ -657495,7 +657716,7 @@ "support" ], "tools/wptserve/wptserve/constants.py": [ - "ec150ba5c8f7a3b89a63903b7dc757c96dfff1a9", + "e248280ef36e93832b4c481a102c3177e618c42d", "support" ], "tools/wptserve/wptserve/handlers.py": [ @@ -657519,7 +657740,7 @@ "support" ], "tools/wptserve/wptserve/response.py": [ - "44299cc994ef43ebe72053e1444f5af7cd7f9598", + "00a609b2950ddbb696bf80f2ec0038f427f8f465", "support" ], "tools/wptserve/wptserve/router.py": [ @@ -660026,6 +660247,10 @@ "6f2ccf465e93a160c73df548fc58774a5040f0e6", "testharness" ], + "wasm/webapi/contenttype.any.js": [ + "78069c03c9ff44c4b32621f38691d8238c1972e1", + "testharness" + ], "web-animations/META.yml": [ "bf92f7a7516302641aabcefe3c482ba6889c2c23", "support" @@ -660287,7 +660512,7 @@ "testharness" ], "web-animations/timing-model/animations/play-states.html": [ - "5d8fdeac6ecc5c2908a2cfe1af9d2176359af0ad", + "ec7d8c842fc9329c3508c22916ce59a236006296", "testharness" ], "web-animations/timing-model/animations/playing-an-animation.html": [ @@ -663067,7 +663292,7 @@ "support" ], "webrtc/RTCIceTransport-extension.https.html": [ - "5adee9fbe61eb9a8f7235b7faa6670eaea45cc89", + "7803bde9b3aa61f6ac500d62c8a3aed79b1a1412", "testharness" ], "webrtc/RTCIceTransport.html": [ @@ -663087,7 +663312,7 @@ "testharness" ], "webrtc/RTCPeerConnection-addTransceiver.https.html": [ - "c0c5d782c2fa365052d08d63eb14954a756c8bc0", + "6df056117d02452e040b153147dbdad7bf8fa9bb", "testharness" ], "webrtc/RTCPeerConnection-canTrickleIceCandidates.html": [ @@ -663235,15 +663460,15 @@ "testharness" ], "webrtc/RTCQuicStream.https.html": [ - "33025451b252e1bdf2491fa118e072f4b8711d12", + "68c88e2757c2ab35736d3480dfbc6095580b06d3", "testharness" ], "webrtc/RTCQuicTransport-helper.js": [ - "3ea19d7a78e4a3788e97d0fa537d51d4b9e6b4fc", + "7e28feae0937d4a28710be5f0e807c4af0f7c039", "support" ], "webrtc/RTCQuicTransport.https.html": [ - "ec79bc228ad21de3a9ce3c2ee812a7d50e57571b", + "3bcc93d95375ccf0bbaa8ba892606099ec8f0bf4", "testharness" ], "webrtc/RTCRtpCapabilities-helper.js": [ @@ -663259,7 +663484,7 @@ "testharness" ], "webrtc/RTCRtpParameters-encodings.html": [ - "b4a60c8a6d406cd820524679be172aed6cad900b", + "b446dde230efbbdb197c7f24f16e2490271563c4", "testharness" ], "webrtc/RTCRtpParameters-headerExtensions.html": [ @@ -663267,7 +663492,7 @@ "testharness" ], "webrtc/RTCRtpParameters-helper.js": [ - "9c4b6cd412e451a57318b507f264235ea827fa82", + "c4105decdfcb12286d4b153ab07f7be25baf1aad", "support" ], "webrtc/RTCRtpParameters-rtcp.html": [ @@ -663287,7 +663512,7 @@ "testharness" ], "webrtc/RTCRtpReceiver-getParameters.html": [ - "8b6d648bf616c847d9d8300a09f8ab078ac026ce", + "97e5d10d1e53b18d3c9deca969d2046881418569", "testharness" ], "webrtc/RTCRtpReceiver-getStats.https.html": [ diff --git a/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-004.html.ini b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-004.html.ini new file mode 100644 index 00000000000..1df73b03f34 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-004.html.ini @@ -0,0 +1,2 @@ +[overflow-wrap-break-word-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-010.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-010.html.ini new file mode 100644 index 00000000000..e6a156581dd --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-010.html.ini @@ -0,0 +1,2 @@ +[word-break-break-all-010.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-011.html.ini b/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-011.html.ini new file mode 100644 index 00000000000..6833da89a76 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/word-break/word-break-break-all-011.html.ini @@ -0,0 +1,2 @@ +[word-break-break-all-011.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini index 834487d446f..8b9ad0ff2b6 100644 --- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini +++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini @@ -41,9 +41,6 @@ [outline-width intermediate] expected: FAIL - [outline-width end] - expected: FAIL - [min-width intermediate] expected: FAIL @@ -71,9 +68,6 @@ [bottom intermediate] expected: FAIL - [right end] - expected: FAIL - - [padding-left intermediate] + [text-indent intermediate] expected: FAIL diff --git a/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini b/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini index 3951cd266d5..0d630fb814a 100644 --- a/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini +++ b/tests/wpt/metadata/fetch/cross-origin-resource-policy/fetch-in-iframe.html.ini @@ -1,4 +1,5 @@ [fetch-in-iframe.html] + expected: CRASH [Untitled] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html.ini new file mode 100644 index 00000000000..4342fc2c583 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/history-traversal/scroll-restoration-order.html.ini @@ -0,0 +1,4 @@ +[scroll-restoration-order.html] + [Traversing history should restore scroll position after dispatching popstate and before dispatching hashchange] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..75d75b4cda2 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini new file mode 100644 index 00000000000..dc2e45516de --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_5.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html.ini new file mode 100644 index 00000000000..a30c51097ab --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html.ini @@ -0,0 +1,16 @@ +[location-protocol-setter-non-broken-weird.html] + [Set location.protocol to data] + expected: FAIL + + [Set location.protocol to ftp] + expected: FAIL + + [Set location.protocol to gopher] + expected: FAIL + + [Set location.protocol to x] + expected: FAIL + + [Set location.protocol to http+x] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini index 29b0025a2ae..0f1a214d0ee 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini @@ -5,11 +5,29 @@ expected: TIMEOUT [picture: source (max-width:500px) valid image, img valid image, resize to wide] - expected: TIMEOUT + expected: FAIL [picture: source (max-width:500px) valid image, img broken image, resize to narrow] expected: TIMEOUT [picture: source (max-width:500px) valid image, img valid image, resize to narrow] - expected: TIMEOUT + 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 wide] + expected: FAIL + + [picture: same URL in source (max-width:500px) and img, resize to wide] + expected: FAIL + + [img (srcset 1 cand) valid image, resize to narrow] + expected: FAIL + + [picture: source (max-width:500px) valid image, img broken image, resize to wide] + expected: FAIL + + [picture: same URL in source (max-width:500px) and img, resize to narrow] + expected: FAIL diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini new file mode 100644 index 00000000000..a9677391662 --- /dev/null +++ b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini @@ -0,0 +1,4 @@ +[DOMContentLoaded-defer.html] + [The end: DOMContentLoaded and defer scripts] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini new file mode 100644 index 00000000000..c6d49957c4a --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini @@ -0,0 +1,4 @@ +[aborted-parser.window.html] + [document.open() after parser is aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js.ini index da4c074ea0a..516317bf910 100644 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js.ini +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js.ini @@ -12,3 +12,6 @@ [document.open should throw a SecurityError with cross-origin document even when the ignore-opens-during-unload counter is greater than 0 (during pagehide event)] expected: FAIL + [document.open should throw a SecurityError with cross-origin document even when there is an active parser executing script] + expected: FAIL + diff --git a/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini b/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini deleted file mode 100644 index 2ed601c6ff4..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini +++ /dev/null @@ -1,283 +0,0 @@ -[quirks.html] - [top: -\\31 .5] - expected: FAIL - - [bottom: -1A] - expected: FAIL - - [bottom: -1a] - expected: FAIL - - [top: @1] - expected: FAIL - - [top: "1a"] - expected: FAIL - - [top: @a] - expected: FAIL - - [bottom: "1"] - expected: FAIL - - [bottom: -/**/1] - expected: FAIL - - [top: +/**/1] - expected: FAIL - - [bottom: @1a] - expected: FAIL - - [top: 1\\31 ] - expected: FAIL - - [top: url('1')] - expected: FAIL - - [bottom: -\\31 ] - expected: FAIL - - [top: calc(1)] - expected: FAIL - - [top: \\31 ] - expected: FAIL - - [bottom: +1\\31 ] - expected: FAIL - - [bottom: 1\\31 .5] - expected: FAIL - - [bottom: #0001] - expected: FAIL - - [top: calc(2 * 2px)] - expected: FAIL - - [bottom: 1a] - expected: FAIL - - [bottom: A] - expected: FAIL - - [bottom: #01] - expected: FAIL - - [top: +\\31 .5] - expected: FAIL - - [bottom: #1] - expected: FAIL - - [top: -/**/1] - expected: FAIL - - [bottom: +\\31 .5] - expected: FAIL - - [bottom: \\31 ] - expected: FAIL - - [bottom: calc(1)] - expected: FAIL - - [top: #001] - expected: FAIL - - [top: +\\31 ] - expected: FAIL - - [bottom: +\\31 ] - expected: FAIL - - [top: +1.5] - expected: FAIL - - [top: +1\\31 ] - expected: FAIL - - [bottom: @a] - expected: FAIL - - [bottom: @1] - expected: FAIL - - [top: #1] - expected: FAIL - - [top: 1a] - expected: FAIL - - [bottom: +1a] - expected: FAIL - - [bottom: +1A] - expected: FAIL - - [bottom: "a"] - expected: FAIL - - [top: #00001] - expected: FAIL - - [bottom: -1\\31 .5] - expected: FAIL - - [top: "1"] - expected: FAIL - - [bottom: 1.5] - expected: FAIL - - [bottom: -\\31 .5] - expected: FAIL - - [bottom: url('1')] - expected: FAIL - - [bottom: -1.5] - expected: FAIL - - [top: \\31 .5] - expected: FAIL - - [bottom: "1a"] - expected: FAIL - - [bottom: calc(2 * 2px)] - expected: FAIL - - [bottom: +1\\31 .5] - expected: FAIL - - [bottom: 1\\31 ] - expected: FAIL - - [bottom: +/**/1] - expected: FAIL - - [bottom: #00001] - expected: FAIL - - [top: url(1)] - expected: FAIL - - [bottom: #001] - expected: FAIL - - [top: +1\\31 .5] - expected: FAIL - - [top: -1a] - expected: FAIL - - [top: -1A] - expected: FAIL - - [bottom: url(1)] - expected: FAIL - - [top: a] - expected: FAIL - - [top: A] - expected: FAIL - - [top: #000001] - expected: FAIL - - [top: 1] - expected: FAIL - - [top: 1\\31 .5] - expected: FAIL - - [bottom: a] - expected: FAIL - - [bottom: 1] - expected: FAIL - - [bottom: +1] - expected: FAIL - - [bottom: #000001] - expected: FAIL - - [bottom: +a] - expected: FAIL - - [bottom: +A] - expected: FAIL - - [top: 1.5] - expected: FAIL - - [top: +A] - expected: FAIL - - [top: +a] - expected: FAIL - - [top: +1] - expected: FAIL - - [top: -1.5] - expected: FAIL - - [top: -1\\31 .5] - expected: FAIL - - [top: +1a] - expected: FAIL - - [top: +1A] - expected: FAIL - - [top: @1a] - expected: FAIL - - [bottom: \\31 .5] - expected: FAIL - - [top: "a"] - expected: FAIL - - [top: #01] - expected: FAIL - - [bottom: +1.5] - expected: FAIL - - [bottom: -A] - expected: FAIL - - [bottom: -a] - expected: FAIL - - [bottom: -1\\31 ] - expected: FAIL - - [top: #0001] - expected: FAIL - - [bottom: -1] - expected: FAIL - - [top: -\\31 ] - expected: FAIL - - [top: -A] - expected: FAIL - - [top: -a] - expected: FAIL - - [top: -1] - expected: FAIL - - [top: -1\\31 ] - expected: FAIL - diff --git a/tests/wpt/metadata/url/urlencoded-parser.any.js.ini b/tests/wpt/metadata/url/urlencoded-parser.any.js.ini index f6c2f3cdc99..33b63f3c519 100644 --- a/tests/wpt/metadata/url/urlencoded-parser.any.js.ini +++ b/tests/wpt/metadata/url/urlencoded-parser.any.js.ini @@ -1,26 +1,20 @@ [urlencoded-parser.any.html] - [request.formData() with input: &&&a=b&&&&c=d&] - expected: FAIL - [response.formData() with input: a&b&c] expected: FAIL [request.formData() with input: a&b&c] expected: FAIL - [response.formData() with input: a=b&c=d&] - expected: FAIL - - [request.formData() with input: _charset_=windows-1252&test=%C2x] - expected: FAIL - [response.formData() with input: _charset_=windows-1252&test=%C2x] expected: FAIL [response.formData() with input: &&&a=b&&&&c=d&] expected: FAIL - [response.formData() with input: a=b&c=d] + [request.formData() with input: a=b&c=d] + expected: FAIL + + [request.formData() with input: a=b&c=d&] expected: FAIL @@ -28,15 +22,18 @@ [request.formData() with input: a&b&c] expected: FAIL - [response.formData() with input: a&b&c] - expected: FAIL - [request.formData() with input: a=b&c=d&] expected: FAIL - [request.formData() with input: _charset_=windows-1252&test=%C2x] - expected: FAIL - [response.formData() with input: _charset_=windows-1252&test=%C2x] expected: FAIL + [response.formData() with input: a=b&c=d&] + expected: FAIL + + [response.formData() with input: &&&a=b&&&&c=d&] + expected: FAIL + + [response.formData() with input: a=b&c=d] + expected: FAIL + diff --git a/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini b/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini new file mode 100644 index 00000000000..004edb5b712 --- /dev/null +++ b/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini @@ -0,0 +1,95 @@ +[contenttype.any.worker.html] + [Response with Content-Type "text/wasm": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/octet-stream": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;x": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;x": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/octet-stream": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/javascript": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "text/wasm": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;charset=UTF-8": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;charset=UTF-8": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/javascript": compileStreaming] + expected: FAIL + + [Response with Content-Type "": compileStreaming] + expected: FAIL + + +[contenttype.any.sharedworker.html] + [contenttype] + expected: FAIL + + +[contenttype.any.html] + [Response with Content-Type "text/wasm": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/octet-stream": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;x": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;x": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/octet-stream": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/javascript": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "text/wasm": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;charset=UTF-8": instantiateStreaming] + expected: FAIL + + [Response with Content-Type "application/wasm;charset=UTF-8": compileStreaming] + expected: FAIL + + [Response with Content-Type "application/javascript": compileStreaming] + expected: FAIL + + [Response with Content-Type "": compileStreaming] + expected: FAIL + + +[contenttype.any.serviceworker.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index a56bad443a2..66bd350083b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -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 diff --git a/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini index bfd4d6dd2d6..bf2a1d61bab 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini @@ -1,5 +1,4 @@ [import-in-moduleworker.html] - expected: ERROR [Base URL in module dedicated workers: import] expected: FAIL diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini index 650c91da4a6..333edb3a26e 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini @@ -1,5 +1,4 @@ [sharedworker-in-worker.html] - expected: ERROR [Base URL in workers: new SharedWorker()] expected: FAIL diff --git a/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js b/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js index 0a36283b263..ae2f169f272 100644 --- a/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js +++ b/tests/wpt/web-platform-tests/beacon/beacon-common.sub.js @@ -138,33 +138,23 @@ function initSession(testCases) { // Schedules async_test's for each of the test cases, treating them as a single session, // and wires up the continueAfterSendingBeacon() and waitForResults() calls. // The method looks for several "extension" functions in the global scope: -// - self.buildId: if present, can change the display name of a test. // - self.buildBaseUrl: if present, can change the base URL of a beacon target URL (this // is the scheme, hostname, and port). // - self.buildTargetUrl: if present, can modify a beacon target URL (for example wrap it). // Parameters: // testCases: An array of test cases. -function runTests(testCases) { - var session = initSession(testCases); +// sendData [optional]: A function that sends the beacon. +function runTests(testCases, sendData = self.sendData) { + const session = initSession(testCases); testCases.forEach(function(testCase, testIndex) { // Make a copy of the test case as we'll be storing some metadata on it, // such as which session it belongs to. - var testCaseCopy = Object.assign({ session: session }, testCase); + const testCaseCopy = Object.assign({ session: session }, testCase); - // Extension point: generate the test id. - var testId = testCase.id; - if (self.buildId) { - testId = self.buildId(testId); - } - testCaseCopy.origId = testCaseCopy.id; - testCaseCopy.id = testId; testCaseCopy.index = testIndex; - session.add(testCaseCopy); - - // Schedule the sendbeacon in an async test. - async_test(function(test) { + async_test((test) => { // Save the testharness.js 'test' object, so that we only have one object // to pass around. testCaseCopy.test = test; @@ -174,22 +164,15 @@ function runTests(testCases) { if (self.buildBaseUrl) { baseUrl = self.buildBaseUrl(baseUrl); } - var targetUrl = `${baseUrl}/beacon/resources/beacon.py?cmd=store&sid=${session.id}&tid=${testId}&tidx=${testIndex}`; + var targetUrl = `${baseUrl}/beacon/resources/beacon.py?cmd=store&sid=${session.id}&tid=${testCaseCopy.id}&tidx=${testIndex}`; if (self.buildTargetUrl) { targetUrl = self.buildTargetUrl(targetUrl); } // Attach the URL to the test object for debugging purposes. testCaseCopy.url = targetUrl; - // Extension point: send the beacon immediately, or defer. - var sendFunc = test.step_func(function sendImmediately(testCase) { - var sendResult = sendData(testCase); - continueAfterSendingBeacon(sendResult, testCase); - }); - if (self.sendFunc) { - sendFunc = test.step_func(self.sendFunc); - } - sendFunc(testCaseCopy); + assert_true(sendData(testCaseCopy), 'sendBeacon should succeed'); + waitForResult(testCaseCopy).then(() => test.done(), test.step_func((e) => {throw e;})); }, `Verify 'navigator.sendbeacon()' successfully sends for variant: ${testCaseCopy.id}`); }); } @@ -201,161 +184,54 @@ function runTests(testCases) { // the test. // Returns the result of the 'sendbeacon()' function call, true or false. function sendData(testCase) { - var sent = false; - if (testCase.data) { - sent = self.navigator.sendBeacon(testCase.url, testCase.data); - } else { - sent = self.navigator.sendBeacon(testCase.url) - } - return sent; + return self.navigator.sendBeacon(testCase.url, testCase.data); } -// Continues a single test after the beacon has been sent for that test. -// Will trigger waitForResults() for the session if this is the last test -// in the session to send its beacon. -// Assumption: will be called on the test's step_func so that assert's do -// not have to be wrapped. -function continueAfterSendingBeacon(sendResult, testCase) { - var session = testCase.session; +// Poll the server for the test result. +async function waitForResult(testCase) { + const session = testCase.session; + const index = testCase.index; + const url = `resources/beacon.py?cmd=stat&sid=${session.id}&tidx_min=${index}&tidx_max=${index}`; + for (let i = 0; i < 30; ++i) { + const response = await fetch(url); + const text = await response.text(); + const results = JSON.parse(text); - // Recaclulate the sent vs. total counts. - if (sendResult) { - session.sentCount++; - } else { - session.totalCount--; - } - - // If this was the last test in the session to send its beacon, start polling for results. - // Note that we start polling even if just one test in the session sends successfully, - // so that if any of the others fail, we still get results from the tests that did send. - if (session.sentCount == session.totalCount) { - // Exit the current test's execution context in order to run the poll - // loop from the harness context. - step_timeout(waitForResults.bind(this, session), 0); - } - - // Now fail this test if the beacon did not send. It will be excluded from the poll - // loop because of the calculation adjustment above. - assert_true(sendResult, "'sendbeacon' function call must succeed"); -} - -// Kicks off an asynchronous monitor to poll the server for test results. As we -// verify that the server has received and validated a beacon, we will complete -// its testharness test. -function waitForResults(session) { - // Poll for status until all of the results come in. - fetch(`resources/beacon.py?cmd=stat&sid=${session.id}&tidx_min=0&tidx_max=${session.totalCount-1}`).then( - function(response) { - // Parse as text(), not json(), so that we can log the raw response if - // it's invalid. - response.text().then(function(rawResponse) { - // Check that we got a response we expect and know how to handle. - var results; - var failure; - try { - results = JSON.parse(rawResponse); - - if (results.length === undefined) { - failure = `bad validation response schema: rawResponse='${rawResponse}'`; - } - } catch (e) { - failure = `bad validation response: rawResponse='${rawResponse}', got parse error '${e}'`; - } - - if (failure) { - // At this point we can't deterministically get results for all of the - // tests in the session, so fail the entire session. - failSession(session, failure); - return; - } - - // The 'stat' call will return an array of zero or more results - // of sendbeacon() calls that the server has received and validated. - results.forEach(function(result) { - var testCase = session.testCaseLookup[result.id]; - - // While stash.take on the server is supposed to honor read-once, since we're - // polling so frequently it is possible that we will receive the same test result - // more than once. - if (!testCase.done) { - testCase.done = true; - session.doneCount++; - } - - // Validate that the sendbeacon() was actually sent to the server. - var test = testCase.test; - test.step(function() { - // null JSON values parse as null, not undefined - assert_equals(result.error, null, "'sendbeacon' data must not fail validation"); - }); - - test.done(); - }); - - // Continue polling until all of the results come in. - if (session.doneCount < session.sentCount) { - // testharness.js frowns upon the use of explicit timeouts, but there is no way - // around the need to poll for these tests, and there is no use spamming the server - // with requestAnimationFrame() just to avoid the use of step_timeout. - step_timeout(waitForResults.bind(this, session), 100); - } - }).catch(function(error) { - failSession(session, `unexpected error reading response, error='${error}'`); - }); + if (results.length === 0) { + await new Promise(resolve => step_timeout(resolve, 100)); + continue; } - ); -} - -// Fails all of the tests in the session, meant to be called when an infrastructural -// issue prevents us from deterministically completing the individual tests. -function failSession(session, reason) { - session.testCases.forEach(function(testCase) { - var test = testCase.test; - test.unreached_func(reason)(); - }); + assert_equals(results.length, 1, `bad response: '${text}'`);; + // null JSON values parse as null, not undefined + assert_equals(results[0].error, null, "'sendbeacon' data must not fail validation"); + return; + } + assert_true(false, 'timeout'); } // Creates an iframe on the document's body and runs the sample tests from the iframe. // The iframe is navigated immediately after it sends the data, and the window verifies // that the data is still successfully sent. -// funcName: "beacon" to send the data via navigator.sendBeacon(), -// "fetch" to send the data via fetch() with the keepalive flag. -function runSendInIframeAndNavigateTests(funcName) { +function runSendInIframeAndNavigateTests() { var iframe = document.createElement("iframe"); iframe.id = "iframe"; iframe.onload = function() { - var tests = Array(); - // Clear our onload handler to prevent re-running the tests as we navigate away. - this.onload = null; - - // Implement the self.buildId extension to identify the parameterized - // test in the report. - self.buildId = function(baseId) { - return `${baseId}-${funcName}-NAVIGATE`; - }; - - window.onmessage = function(e) { - // The iframe will execute sendData() for us and return the result. - var testCase = tests[e.data]; - continueAfterSendingBeacon(true /* sendResult */, testCase); - }; - - // Implement the self.sendFunc extension to send the beacon indirectly, - // from an iFrame that we can then navigate. - self.sendFunc = function(testCase) { - var iframeWindow = document.getElementById("iframe").contentWindow; - // We run into problems passing the testCase over the document boundary, - // because of structured cloning constraints. Instead we'll send over the - // test case id, and the iFrame can load the static test case by including - // beacon-common.js. - tests[testCase.origId] = testCase; - iframeWindow.postMessage([testCase.origId, testCase.url, funcName], "*"); - }; - - runTests(sampleTests); + iframe.onload = null; + function sendData(testCase) { + return iframe.contentWindow.navigator.sendBeacon(testCase.url, testCase.data); + } + const tests = []; + for (const test of sampleTests) { + const copy = Object.assign({}, test); + copy.id = `${test.id}-NAVIGATE`; + tests.push(copy); + } + runTests(tests, sendData); + // Now navigate ourselves. + iframe.contentWindow.location = "http://{{host}}:{{ports[http][0]}}/"; }; - iframe.src = "navigate.iFrame.sub.html"; + iframe.srcdoc = ''; document.body.appendChild(iframe); } diff --git a/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js b/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js index f4bccf177e3..411cd1c9492 100644 --- a/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js +++ b/tests/wpt/web-platform-tests/beacon/beacon-cors.sub.window.js @@ -7,12 +7,6 @@ // the beacon handler will return CORS headers. This test ensures that the // sendBeacon() succeeds in either case. [true, false].forEach(function(allowCors) { - // Implement the self.buildId extension to identify the parameterized - // test in the report. - self.buildId = function(baseId) { - return `${baseId}-${allowCors ? "CORS-ALLOW" : "CORS-FORBID"}`; - }; - // Implement the self.buildBaseUrl and self.buildTargetUrl extensions // to change the target URL to use a cross-origin domain name. self.buildBaseUrl = function(baseUrl) { @@ -35,7 +29,13 @@ return allowCors ? `${targetUrl}&origin=http://{{host}}:{{ports[http][0]}}&credentials=true` : targetUrl; } - runTests(sampleTests); + const tests = []; + for (const test of sampleTests) { + const copy = Object.assign({}, test); + copy.id = `${test.id}-${allowCors ? "CORS-ALLOW" : "CORS-FORBID"}`; + tests.push(copy); + } + runTests(tests); }); // Now test a cross-origin request that doesn't use a safelisted Content-Type and ensure @@ -43,12 +43,6 @@ // header is used there should be a preflight/options request and we should only succeed // send the payload if the proper CORS headers are used. { - // Implement the self.buildId extension to identify the parameterized - // test in the report. - self.buildId = function (baseId) { - return `${baseId}-PREFLIGHT-ALLOW`; - }; - // Implement the self.buildBaseUrl and self.buildTargetUrl extensions // to change the target URL to use a cross-origin domain name. self.buildBaseUrl = function (baseUrl) { @@ -60,8 +54,13 @@ self.buildTargetUrl = function (targetUrl) { return `${targetUrl}&origin=http://{{host}}:{{ports[http][0]}}&credentials=true&preflightExpected=true`; } - - runTests(preflightTests); + const tests = []; + for (const test of preflightTests) { + const copy = Object.assign({}, test); + copy.id = `${test.id}-PREFLIGHT-ALLOW`; + tests.push(copy); + } + runTests(tests); } -done(); \ No newline at end of file +done(); diff --git a/tests/wpt/web-platform-tests/beacon/beacon-redirect.window.js b/tests/wpt/web-platform-tests/beacon/beacon-redirect.window.js index 659759baa3f..53f229abff1 100644 --- a/tests/wpt/web-platform-tests/beacon/beacon-redirect.window.js +++ b/tests/wpt/web-platform-tests/beacon/beacon-redirect.window.js @@ -7,19 +7,18 @@ // Note that status codes 307 and 308 are the only codes that will maintain POST data // through a redirect. [307, 308].forEach(function(status) { - // Implement the self.buildId extension to identify the parameterized - // test in the report. - self.buildId = function(baseId) { - return `${baseId}-${status}`; - }; - // Implement the self.buildTargetUrl extension to inject a redirect to // the sendBeacon target. self.buildTargetUrl = function(targetUrl) { return `/common/redirect.py?status=${status}&location=${encodeURIComponent(targetUrl)}`; }; - - runTests(sampleTests); + const tests = []; + for (const test of sampleTests) { + const copy = Object.assign({}, test); + copy.id = `${test.id}-${status}`; + tests.push(copy); + } + runTests(tests); }); done(); diff --git a/tests/wpt/web-platform-tests/beacon/navigate.iFrame.sub.html b/tests/wpt/web-platform-tests/beacon/navigate.iFrame.sub.html deleted file mode 100644 index f4c7846e522..00000000000 --- a/tests/wpt/web-platform-tests/beacon/navigate.iFrame.sub.html +++ /dev/null @@ -1,45 +0,0 @@ - - -
-Test passes if there is a filled green square and no red.
+Test passes if there is a filled green square and no red.
+Test passes if there is a filled green square and no red.
+