diff options
53 files changed, 413 insertions, 851 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index 76b398963ae..dd4ffcf4345 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -1,5 +1,4 @@ [url-in-tags-revoke.window.html] - expected: TIMEOUT [Fetching a blob URL immediately before revoking it works in an iframe.] expected: FAIL @@ -15,6 +14,3 @@ [Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.] expected: FAIL - [Fetching a blob URL immediately before revoking it works in <script> tags.] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 85e13c0b839..0b70fecad0f 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -310056,6 +310056,11 @@ {} ] ], + "tools/ci/start.sh": [ + [ + {} + ] + ], "tools/ci/tag_master.py": [ [ {} @@ -331621,9 +331626,9 @@ {} ] ], - "audio-output/idlharness.window.js": [ + "audio-output/idlharness.https.window.js": [ [ - "/audio-output/idlharness.window.html", + "/audio-output/idlharness.https.window.html", {} ] ], @@ -341129,6 +341134,12 @@ {} ] ], + "css/css-multicol/balance-table-with-fractional-height-row.html": [ + [ + "/css/css-multicol/balance-table-with-fractional-height-row.html", + {} + ] + ], "css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html": [ [ "/css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html", @@ -416885,12 +416896,6 @@ {} ] ], - "webxr/xrFrame_lifetime.https.html": [ - [ - "/webxr/xrFrame_lifetime.https.html", - {} - ] - ], "webxr/xrSession_cancelAnimationFrame.https.html": [ [ "/webxr/xrSession_cancelAnimationFrame.https.html", @@ -441415,7 +441420,7 @@ "support" ], ".taskcluster.yml": [ - "c4d20d3ed0d58c92645d0e0660f9ff3ac98ad705", + "5e67f71ed89c0dafbcf6cab647a9fad339253314", "support" ], ".travis.yml": [ @@ -451362,7 +451367,7 @@ "b6a7d4d06259117af8fb843f6a8d252bac01a8f3", "support" ], - "audio-output/idlharness.window.js": [ + "audio-output/idlharness.https.window.js": [ "f10e523bcdc530ee1dbd04a52541ac0b343e9376", "testharness" ], @@ -451395,7 +451400,7 @@ "testharness" ], "background-fetch/fetch.https.window.js": [ - "e256c973f3e31fe501e49c098ea70f7f6d5d70cc", + "6a8cf6c0e3a98d33c20ea3b9f3f8c2a274803998", "testharness" ], "background-fetch/get-ids.https.window.js": [ @@ -559274,6 +559279,10 @@ "cc95000ec53ea8daef06251ad5a9f20c5b06a281", "support" ], + "css/css-multicol/balance-table-with-fractional-height-row.html": [ + "434dc52ea3d731bd1393270372294cd007382e59", + "testharness" + ], "css/css-multicol/column-count-used-001.html": [ "2949a1996ebae0c48329906ea7ef34c83080e90f", "reftest" @@ -631171,7 +631180,7 @@ "support" ], "interfaces/DOM-Parsing.idl": [ - "f3a13342f5eb24b92523683ccc86b46d15ddbfb0", + "94d437977afac4a1c09bd5588909cec02862694f", "support" ], "interfaces/FileAPI.idl": [ @@ -631423,7 +631432,7 @@ "support" ], "interfaces/input-events.idl": [ - "970bd1212edbf704903b8fad66dc9b53dfb87f5c", + "3bcb0dd78cdccb39d23b29f33a803622aab125c7", "support" ], "interfaces/intersection-observer.idl": [ @@ -657443,7 +657452,7 @@ "support" ], "service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html": [ - "17046eedc6bd2529b452fe03a0e9e2d52c0b2d70", + "99dedebf2e56c744528fd168c05b4fe734563c57", "testharness" ], "service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html": [ @@ -657523,19 +657532,19 @@ "testharness" ], "service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html": [ - "313309188071747fb139d6dc0dbe2019d0e72748", + "1a124d727687ecfc62bb1443bed2313312762997", "testharness" ], "service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html": [ - "a9285a1c9e2dbfc38c547e3030af8ad9ba292e42", + "a7dde2233972cb3c1b8250f3b0a184413cd7c5a5", "testharness" ], "service-workers/service-worker/about-blank-replacement.https.html": [ - "e1fefaf290fe521590a460942d4c3f6c0022c75f", + "b6efe3ec5620d1c83deb305f2c1ebe008a6a23e2", "testharness" ], "service-workers/service-worker/activate-event-after-install-state-change.https.html": [ - "57fccf13712d97c316874746f770fd7e76f5e897", + "016a52c13c82ebbfb36d48830446b79b4e72f13e", "testharness" ], "service-workers/service-worker/activation-after-registration.https.html": [ @@ -657559,19 +657568,19 @@ "testharness" ], "service-workers/service-worker/claim-fetch.https.html": [ - "050c1ea92ef60b8215fad9cab504647256ad728a", + "6b7d353c6ae3b53c5c7d9398f09fb2f476201db1", "testharness" ], "service-workers/service-worker/claim-not-using-registration.https.html": [ - "1138b7419cfaa78d99f114196fb6870afdf8bd67", + "fd61d05ba4ea8a1c416eb6d4b1128f7b65b4b35c", "testharness" ], "service-workers/service-worker/claim-shared-worker-fetch.https.html": [ - "a07db7b75c7a4c29e9ce756152cd0d4e269e8912", + "f5f44886baa2bff3bc7b7e013a856a6d90ceb26c", "testharness" ], "service-workers/service-worker/claim-using-registration.https.html": [ - "7d77d384837d3c41278bea6f414a6719e80dc520", + "8a2a6ff25c82d8d6de26cca521da99f8ef6d5fbf", "testharness" ], "service-workers/service-worker/claim-with-redirect.https.html": [ @@ -657603,7 +657612,7 @@ "testharness" ], "service-workers/service-worker/clients-matchall-client-types.https.html": [ - "24967172a84ca0bfea7db337fb5d95d9cd4ff114", + "a2a56816a650fa54d6075055a64e0f009e5829ac", "testharness" ], "service-workers/service-worker/clients-matchall-exact-controller.https.html": [ @@ -657619,7 +657628,7 @@ "testharness" ], "service-workers/service-worker/clients-matchall-order.https.html": [ - "0596050c24af4e275ebfe3e040918c115797f2e8", + "ec650f2264df530bd34b11737c4b1d9ed87f4b56", "testharness" ], "service-workers/service-worker/clients-matchall.https.html": [ @@ -657635,7 +657644,7 @@ "testharness" ], "service-workers/service-worker/controller-on-reload.https.html": [ - "e0beb7260be11608439aa16bce0c16a025f24858", + "2e966d425788c0a02b1bb25a4c045089fede5ce7", "testharness" ], "service-workers/service-worker/controller-with-no-fetch-event-handler.https.html": [ @@ -657699,15 +657708,15 @@ "testharness" ], "service-workers/service-worker/fetch-csp.https.html": [ - "91a774a133fd6a1e942e00034c7c05115ee0dea2", + "4f176220d6100c4efb1bfda817b84cf5f53a4f3d", "testharness" ], "service-workers/service-worker/fetch-event-after-navigation-within-page.https.html": [ - "dce1f794fabed81761a83cfa68c23920168f99fb", + "4812d8a91551edae84b5e2805804fc9d8899f3e9", "testharness" ], "service-workers/service-worker/fetch-event-async-respond-with.https.html": [ - "a2b93acfc5b240a148f07a33bd1a0d2a6ca75715", + "87fa04679832f792579b6fefcee2eee550bb58fd", "testharness" ], "service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html": [ @@ -657727,7 +657736,7 @@ "manual" ], "service-workers/service-worker/fetch-event-network-error.https.html": [ - "254919e92327aefd16eb57855f83221cbe8d7ea6", + "fea2ad1e3c26effcc9fd7c8d7a66917e420606b4", "testharness" ], "service-workers/service-worker/fetch-event-redirect.https.html": [ @@ -657739,7 +657748,7 @@ "testharness" ], "service-workers/service-worker/fetch-event-respond-with-argument.https.html": [ - "c78fb784a2f7e4135c2b4429082dc157d9300ffb", + "05e22105243f710273f56e21502659ad1781e28c", "testharness" ], "service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html": [ @@ -657767,11 +657776,11 @@ "testharness" ], "service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html": [ - "cd6861a9d45361a9cbaab3ea639257a14accb349", + "31fd616b6d6f509b7dcb6b56f45e9c2e12e9b8e6", "testharness" ], "service-workers/service-worker/fetch-event-throws-after-respond-with.https.html": [ - "969a3c9d08fb66bf01c1fa2b514b4646e2613b30", + "d98fb22ff423271dd84460200ebdb60573ed6371", "testharness" ], "service-workers/service-worker/fetch-event-within-sw-manual.https.html": [ @@ -657827,7 +657836,7 @@ "testharness" ], "service-workers/service-worker/fetch-request-redirect.https.html": [ - "e8e90cf1eb37cfce98f802a0dd25c2702938ccb2", + "57fb8eb4c95d54b20d674728270e140db0f6b473", "testharness" ], "service-workers/service-worker/fetch-request-resources.https.html": [ @@ -657975,7 +657984,7 @@ "testharness" ], "service-workers/service-worker/multiple-update.https.html": [ - "84aac9583b90b1caa8f08b636b9994942304efeb", + "6a83f73a054f8a50284ae9b55bba9cde4d74c108", "testharness" ], "service-workers/service-worker/navigate-window.https.html": [ @@ -658107,7 +658116,7 @@ "testharness" ], "service-workers/service-worker/performance-timeline.https.html": [ - "b66d4a821861b6e6e37e47b652f32756c8062058", + "1fe19da53be6c460cae5f069794bbdee3f4a0da8", "testharness" ], "service-workers/service-worker/postmessage-blob-url.https.html": [ @@ -658155,7 +658164,7 @@ "testharness" ], "service-workers/service-worker/register-default-scope.https.html": [ - "dc136d4e8dd74d3f851880a2bc4ff5f215caf256", + "1d86548eb5eeb5754ca111dd4c55843202216b2d", "testharness" ], "service-workers/service-worker/register-same-scope-different-script-url.https.html": [ @@ -658163,7 +658172,7 @@ "testharness" ], "service-workers/service-worker/register-wait-forever-in-install-worker.https.html": [ - "e23f9f4fc8e3807ad60c90b055f74c38d383c24d", + "0920b5cb223d50e31d044a9323f55c1e77b18857", "testharness" ], "service-workers/service-worker/registration-basic.https.html": [ @@ -659431,7 +659440,7 @@ "testharness" ], "service-workers/service-worker/serviceworker-message-event-historical.https.html": [ - "2f780a604282dc281ebe75a964ed24f832a24e3a", + "fac8f2076fb64870550236dd27470902cdbe040c", "testharness" ], "service-workers/service-worker/serviceworkerobject-scripturl.https.html": [ @@ -659439,11 +659448,11 @@ "testharness" ], "service-workers/service-worker/shared-worker-controlled.https.html": [ - "33d52e01199c2bdc0e85df7d8106ddd970aae082", + "0320c02a4fa2b8066bc6f603bf7abc3eefe1c3b3", "testharness" ], "service-workers/service-worker/skip-waiting-installed.https.html": [ - "21e26be5128454ee05143b10b8039ceb95a48cd5", + "b604f651b3c1deb38d891c77394a8f175a19c34e", "testharness" ], "service-workers/service-worker/skip-waiting-using-registration.https.html": [ @@ -659459,7 +659468,7 @@ "testharness" ], "service-workers/service-worker/skip-waiting.https.html": [ - "48b5a8c9aeeb40648c4d295492d4a44b957d788f", + "f8392fc955b46cdd9f1deb5a7319b8f3f35d91dd", "testharness" ], "service-workers/service-worker/state.https.html": [ @@ -659503,11 +659512,11 @@ "testharness" ], "service-workers/service-worker/update-after-oneday.https.html": [ - "08065d22ce46cc8a3b5916f1c053f477f4414698", + "d9b9fcfb8db37ea3b0d571250b22b88ca7354772", "testharness" ], "service-workers/service-worker/update-bytecheck.https.html": [ - "ec3d15abec09ca5f5e3db9e2c8ac2e9040ffe7fe", + "be414351871ffb94cce4533607e2e58f6da3d8a3", "testharness" ], "service-workers/service-worker/update-missing-import-scripts.https.html": [ @@ -659555,7 +659564,7 @@ "testharness" ], "service-workers/service-worker/windowclient-navigate.https.html": [ - "8ea279ef075e5e6c8904966b005f0baf0d75bca9", + "e62c1ac3aa40e0c412a736e79a77515348398a2c", "testharness" ], "service-workers/service-worker/worker-client-id.https.html": [ @@ -659571,7 +659580,7 @@ "testharness" ], "service-workers/service-worker/worker-interception.https.html": [ - "bf976a29c48a3810ef4ff20b5c7e8b70dec2b219", + "f9ba656b5178359f2c7b6e2419a57ff12ec79d23", "testharness" ], "service-workers/specgen.json": [ @@ -664798,6 +664807,10 @@ "5af38d0b56c1bbabb3e3748633cb7dca4f15c5e6", "support" ], + "tools/ci/start.sh": [ + "9f621b2326e7769a232cf620a4863f4104d35ed1", + "support" + ], "tools/ci/tag_master.py": [ "72bafd3a866317889ecbb75a6981ce1c88a38b9e", "support" @@ -664827,7 +664840,7 @@ "support" ], "tools/docker/start.sh": [ - "34a0f3c2206dc689543e1cab6fb5ddbc763880aa", + "52a5127892ca0455c57de1e3b26e26ea6a3f8db2", "support" ], "tools/gitignore/__init__.py": [ @@ -670471,7 +670484,7 @@ "support" ], "tools/wptserve/wptserve/request.py": [ - "b248a054d3b1f3b141d94125da9406463e5a894f", + "aa6306a533e2136a2dc5eea33ebeb18706eb1736", "support" ], "tools/wptserve/wptserve/response.py": [ @@ -673071,7 +673084,7 @@ "testharness" ], "web-animations/animation-model/animation-types/property-list.js": [ - "6ad90a356e483cbfbd94c2cb147e68417f75357e", + "b6ddb0c7eaec378b2c884c771403542f6b42d02b", "support" ], "web-animations/animation-model/animation-types/property-types.js": [ @@ -680990,10 +681003,6 @@ "535b0bcbbc282ee5aaa7500cbd3a35ba21fed3d4", "testharness" ], - "webxr/xrFrame_lifetime.https.html": [ - "887ff933526292cbcd7a8218660b1911859ed7b4", - "testharness" - ], "webxr/xrSession_cancelAnimationFrame.https.html": [ "26c0e95605468634c9bc65bf959260e594998a2d", "testharness" 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 86ce5d7e7f6..8850ec200da 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 @@ -74,6 +74,3 @@ [opacity end] expected: FAIL - [border-top-width end] - expected: FAIL - diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index ba5f72cb6aa..8bbe53eafea 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -532,7 +532,7 @@ expected: FAIL [windows-1252: iso_8859-1:1987 (XMLHttpRequest)] - expected: FAIL + expected: TIMEOUT [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] expected: TIMEOUT @@ -582,9 +582,6 @@ [windows-1254: cp1254 (XMLHttpRequest)] expected: TIMEOUT - [windows-1254: iso8859-9 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1253: windows-1253 (XMLHttpRequest)] expected: TIMEOUT @@ -621,5 +618,26 @@ [windows-1256: windows-1256 (XMLHttpRequest)] expected: TIMEOUT + [windows-1252: iso88591 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: iso_8859-1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: latin1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: l1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1256: x-cp1256 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: windows-1252 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: us-ascii (XMLHttpRequest)] + expected: TIMEOUT + [single-byte-decoder.html?TextDecoder] 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/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 index ce482a60da8..c6d49957c4a 100644 --- 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 @@ -2,6 +2,3 @@ [document.open() after parser is aborted] expected: FAIL - [async document.open() after parser is aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini index 99a24216c88..7725b118e9d 100644 --- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini +++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini @@ -12,3 +12,6 @@ [Verifies the resolution of entry.startTime is at least 5 microseconds.] expected: TIMEOUT + [Verifies the resolution of performance.now() is at least 5 microseconds.] + expected: FAIL + diff --git a/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini b/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini deleted file mode 100644 index c7e9c7434f5..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini +++ /dev/null @@ -1,283 +0,0 @@ -[limited-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/quirks/unitless-length/no-quirks.html.ini b/tests/wpt/metadata/quirks/unitless-length/no-quirks.html.ini deleted file mode 100644 index 818a429ed39..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/no-quirks.html.ini +++ /dev/null @@ -1,283 +0,0 @@ -[no-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/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index f584fce5df1..268949ced5c 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,5 +1,4 @@ [005.html] - expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/web-platform-tests/.taskcluster.yml b/tests/wpt/web-platform-tests/.taskcluster.yml index c4d20d3ed0d..5e67f71ed89 100644 --- a/tests/wpt/web-platform-tests/.taskcluster.yml +++ b/tests/wpt/web-platform-tests/.taskcluster.yml @@ -61,7 +61,7 @@ tasks: owner: ${event.pusher.email} source: ${event.repository.url} payload: - image: hexcles/web-platform-tests:0.23 + image: harjgam/web-platform-tests:0.25 maxRunTime: 7200 artifacts: public/results: diff --git a/tests/wpt/web-platform-tests/audio-output/idlharness.window.js b/tests/wpt/web-platform-tests/audio-output/idlharness.https.window.js index f10e523bcdc..f10e523bcdc 100644 --- a/tests/wpt/web-platform-tests/audio-output/idlharness.window.js +++ b/tests/wpt/web-platform-tests/audio-output/idlharness.https.window.js diff --git a/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js b/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js index e256c973f3e..6a8cf6c0e3a 100644 --- a/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js +++ b/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js @@ -321,6 +321,6 @@ backgroundFetchTest(async (test, backgroundFetch) => { assert_true(results[1].url.includes('resources/feature-name.txt')); assert_equals(results[1].status, 200); - assert_equals(results[1].text, 'error'); + assert_equals(results[1].text, 'Background Fetch'); }, 'Matching multiple times on the same request works as expected.'); diff --git a/tests/wpt/web-platform-tests/css/css-multicol/balance-table-with-fractional-height-row.html b/tests/wpt/web-platform-tests/css/css-multicol/balance-table-with-fractional-height-row.html new file mode 100644 index 00000000000..434dc52ea3d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/balance-table-with-fractional-height-row.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-multicol/#filling-columns"> +<div id="multicol" style="columns:2; line-height:100px;"> + <div style="display:table-row; height:4.9999px;"></div> + <div style="display:table-row;"> + <br> + </div> +</div> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + test(()=> { + assert_equals(multicol.getBoundingClientRect().height, 100); + }, "If we have room for the line, we have room for all we need"); +</script> diff --git a/tests/wpt/web-platform-tests/interfaces/DOM-Parsing.idl b/tests/wpt/web-platform-tests/interfaces/DOM-Parsing.idl index f3a13342f5e..94d437977af 100644 --- a/tests/wpt/web-platform-tests/interfaces/DOM-Parsing.idl +++ b/tests/wpt/web-platform-tests/interfaces/DOM-Parsing.idl @@ -4,30 +4,30 @@ // Source: DOM Parsing and Serialization (https://w3c.github.io/DOM-Parsing/) [Constructor, Exposed=Window] -interface DOMParser { - [NewObject] Document parseFromString(DOMString str, SupportedType type); -}; + interface DOMParser { + [NewObject] Document parseFromString(DOMString str, SupportedType type); + }; -enum SupportedType { - "text/html", - "text/xml", - "application/xml", - "application/xhtml+xml", - "image/svg+xml" -}; + enum SupportedType { + "text/html", + "text/xml", + "application/xml", + "application/xhtml+xml", + "image/svg+xml" + }; [Constructor, Exposed=Window] - interface XMLSerializer { - DOMString serializeToString(Node root); -}; + interface XMLSerializer { + DOMString serializeToString(Node root); + }; partial interface Element { - [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerHTML; - [CEReactions, TreatNullAs=EmptyString] attribute DOMString outerHTML; - [CEReactions] void insertAdjacentHTML(DOMString position, DOMString text); -}; + [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerHTML; + [CEReactions, TreatNullAs=EmptyString] attribute DOMString outerHTML; + [CEReactions] void insertAdjacentHTML(DOMString position, DOMString text); + }; partial interface Range { - [CEReactions, NewObject] DocumentFragment createContextualFragment(DOMString fragment); -}; + [CEReactions, NewObject] DocumentFragment createContextualFragment(DOMString fragment); + }; diff --git a/tests/wpt/web-platform-tests/interfaces/input-events.idl b/tests/wpt/web-platform-tests/interfaces/input-events.idl index 970bd1212ed..3bcb0dd78cd 100644 --- a/tests/wpt/web-platform-tests/interfaces/input-events.idl +++ b/tests/wpt/web-platform-tests/interfaces/input-events.idl @@ -1,16 +1,14 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into reffy-reports // (https://github.com/tidoust/reffy-reports) -// Source: Input Events Level 1 (https://rawgit.com/w3c/input-events/v1/index.html) +// Source: Input Events Level 1 (https://cdn.staticaly.com/gh/w3c/input-events/v1/index.html) partial interface InputEvent { - readonly attribute DOMString inputType; - readonly attribute DataTransfer? dataTransfer; - sequence<StaticRange> getTargetRanges(); -}; + readonly attribute DataTransfer? dataTransfer; + sequence<StaticRange> getTargetRanges(); + }; -partial dictionary InputEventInit { - DOMString inputType = ""; - DataTransfer? dataTransfer = null; - sequence<StaticRange> targetRanges = []; -}; + partial dictionary InputEventInit { + DataTransfer? dataTransfer = null; + sequence<StaticRange> targetRanges = []; + }; diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html index 17046eedc6b..99dedebf2e5 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html @@ -12,7 +12,12 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + registration = r; + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -28,7 +33,6 @@ promise_test(function(t) { }) .then(function(result) { assert_equals(result, 'OK'); - return service_worker_unregister_and_done(t, scope); }); }, 'Post loopback messages'); @@ -41,6 +45,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script1, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + registration = r; return wait_for_state(t, registration.installing, 'activated'); }) @@ -69,7 +77,6 @@ promise_test(function(t) { .then(function(result) { assert_equals(result, 'OK'); frame.remove(); - return service_worker_unregister_and_done(t, scope); }); }, 'Post messages among service workers'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html index 31330918807..1a124d72768 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html @@ -11,6 +11,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'redundant'); }) .then(function() { @@ -21,7 +25,6 @@ promise_test(function(t) { result, undefined, 'After unregister(), the registration should not found'); - return service_worker_unregister_and_done(t, scope); }); }, 'Unregister on script evaluation'); @@ -31,6 +34,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'redundant'); }) .then(function() { @@ -41,7 +48,6 @@ promise_test(function(t) { result, undefined, 'After unregister(), the registration should not found'); - return service_worker_unregister_and_done(t, scope); }); }, 'Unregister on installing event'); @@ -51,6 +57,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'redundant'); }) .then(function() { @@ -61,7 +71,6 @@ promise_test(function(t) { result, undefined, 'After unregister(), the registration should not found'); - return service_worker_unregister_and_done(t, scope); }); }, 'Unregister on activate event'); @@ -74,6 +83,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { return with_iframe(scope); }) @@ -120,7 +133,6 @@ promise_test(function(t) { frame.remove(); new_frame.remove(); - return service_worker_unregister_and_done(t, scope); }) }, 'Unregister controlling service worker'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html index a9285a1c9e2..a7dde223397 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html @@ -13,6 +13,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + registration = r; return wait_for_state(t, registration.installing, 'activated'); }) @@ -38,7 +42,6 @@ promise_test(function(t) { 'events seen by the worker'); frame1.remove(); frame2.remove(); - return service_worker_unregister_and_done(t, scope); }); }, 'Update a registration on ServiceWorkerGlobalScope'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html index e1fefaf290f..b6efe3ec562 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html @@ -60,6 +60,9 @@ function getClientIdByURL(worker, url) { async function doAsyncTest(t, scope) { let reg = await service_worker_unregister_and_register(t, worker, scope); + + t.add_cleanup(() => service_worker_unregister(t, scope)); + await wait_for_state(t, reg.installing, 'activated'); // Load the scope as a frame. We expect this in turn to have a nested @@ -96,7 +99,6 @@ async function doAsyncTest(t, scope) { } frame.remove(); - await service_worker_unregister_and_done(t, scope); } promise_test(async function(t) { @@ -126,6 +128,9 @@ promise_test(async function(t) { const scope = 'resources/about-blank-replacement-uncontrolled-nested-frame.html'; let reg = await service_worker_unregister_and_register(t, worker, scope); + + t.add_cleanup(() => service_worker_unregister(t, scope)); + await wait_for_state(t, reg.installing, 'activated'); // Load the scope as a frame. We expect this in turn to have a nested @@ -147,7 +152,6 @@ promise_test(async function(t) { 'nested frame should not be controlled'); frame.remove(); - await service_worker_unregister_and_done(t, scope); }, 'Initial about:blank is controlled, exposed to clients.matchAll(), and ' + 'final Client is not controlled by a service worker.'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html index 57fccf13712..016a52c13c8 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html @@ -11,6 +11,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + var sw = registration.installing; return new Promise(t.step_func(function(resolve) { @@ -23,9 +27,6 @@ promise_test(function(t) { }); })); }) - .then(function() { - return service_worker_unregister_and_done(t, scope); - }) .catch(unreached_rejection(t)); }, 'installed event should be fired before activating service worker'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-fetch.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-fetch.https.html index 050c1ea92ef..6b7d353c6ae 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-fetch.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-fetch.https.html @@ -32,9 +32,13 @@ promise_test(function(t) { // Register a service worker. .then(() => service_worker_unregister_and_register(t, script, scope)) - .then(r => worker = r.installing) - .then(() => wait_for_state(t, worker, 'activated')) + .then(r => { + t.add_cleanup(() => service_worker_unregister(t, scope)); + worker = r.installing; + + return wait_for_state(t, worker, 'activated'); + }) // Let the service worker claim the iframe. .then(() => { var channel = new MessageChannel(); @@ -62,7 +66,6 @@ promise_test(function(t) { // Cleanup this testcase. .then(() => frame.remove()) - .then(() => service_worker_unregister_and_done(t, scope)); }, 'fetch() should be intercepted after the client is claimed.') </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html index 1138b7419cf..fd61d05ba4e 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html @@ -15,6 +15,10 @@ promise_test(function(t) { return service_worker_unregister_and_register( t, init_worker_url, init_scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, init_scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -35,6 +39,10 @@ promise_test(function(t) { {scope: claim_scope}); }) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, claim_scope); + }); + claim_worker = registration.installing; claim_registration = registration; return wait_for_state(t, registration.installing, 'activated'); @@ -67,9 +75,6 @@ promise_test(function(t) { frame1.remove(); frame2.remove(); return claim_registration.unregister(); - }) - .then(function() { - return service_worker_unregister_and_done(t, init_scope); }); }, 'Test claim client which is not using registration'); @@ -86,6 +91,10 @@ promise_test(function(t) { claim_worker_url, {scope: claim_scope}); }) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, claim_scope); + }); + claim_worker = registration.installing; return wait_for_state(t, registration.installing, 'activated'); }) @@ -94,6 +103,10 @@ promise_test(function(t) { installing_worker_url, {scope: scope}); }) .then(function() { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + var channel = new MessageChannel(); var saw_message = new Promise(function(resolve) { channel.port1.onmessage = t.step_func(function(e) { @@ -111,10 +124,6 @@ promise_test(function(t) { 'Frame should not be claimed when a longer-matched ' + 'registration exists'); frame.remove(); - return service_worker_unregister(t, claim_scope); - }) - .then(function() { - return service_worker_unregister_and_done(t, scope); }); }, 'Test claim client when there\'s a longer-matched registration not ' + 'already used by the page'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html index a07db7b75c7..f5f44886baa 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html @@ -30,9 +30,13 @@ promise_test(function(t) { 'fetch() should not be intercepted.')) // Register a service worker. .then(() => service_worker_unregister_and_register(t, script, scope)) - .then(r => worker = r.installing) - .then(() => wait_for_state(t, worker, 'activated')) + .then(r => { + t.add_cleanup(() => service_worker_unregister(t, scope)); + worker = r.installing; + + return wait_for_state(t, worker, 'activated') + }) // Let the service worker claim the iframe and the shared worker. .then(() => { var channel = new MessageChannel(); @@ -60,8 +64,7 @@ promise_test(function(t) { 'fetch() in the shared worker should be intercepted.')) // Cleanup this testcase. - .then(() => frame.remove()) - .then(() => service_worker_unregister_and_done(t, scope)); + .then(() => frame.remove()); }, 'fetch() in SharedWorker should be intercepted after the client is claimed.') </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-using-registration.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-using-registration.https.html index 7d77d384837..8a2a6ff25c8 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/claim-using-registration.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/claim-using-registration.https.html @@ -13,6 +13,10 @@ promise_test(function(t) { var worker, sw_registration, frame; return service_worker_unregister_and_register(t, url1, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -50,9 +54,6 @@ promise_test(function(t) { 'Frame1 controller scriptURL should be changed to url2'); frame.remove(); return sw_registration.unregister(); - }) - .then(function() { - return service_worker_unregister_and_done(t, scope); }); }, 'Test worker claims client which is using another registration'); @@ -63,6 +64,10 @@ promise_test(function(t) { var frame, worker; return service_worker_unregister_and_register(t, url1, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -91,7 +96,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - return service_worker_unregister_and_done(t, scope); }); }, 'Test for the waiting worker claims a client which is using the the ' + 'same registration'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html index 24967172a84..a2a56816a65 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html @@ -54,6 +54,10 @@ promise_test(function(t) { return service_worker_unregister_and_register( t, 'resources/clients-matchall-worker.js', scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { return with_iframe(iframe_url); }) @@ -66,9 +70,7 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - return service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'Verify matchAll() with window client type'); promise_test(function(t) { @@ -76,6 +78,10 @@ promise_test(function(t) { return service_worker_unregister_and_register( t, 'resources/clients-matchall-worker.js', scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { return with_iframe(iframe_url); }) @@ -112,7 +118,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - return service_worker_unregister_and_done(t, scope); }); }, 'Verify matchAll() with {window, sharedworker, worker} client types'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html index 0596050c24a..ec650f2264d 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html @@ -123,6 +123,8 @@ function matchAllOrderTest(t, opts) { let frameResultList; let extraWindowResult; return service_worker_unregister_and_register(t, script, opts.scope).then(swr => { + t.add_cleanup(() => service_worker_unregister(t, opts.scope)); + worker = swr.installing; return wait_for_state(t, worker, 'activated'); }).then(_ => { @@ -143,8 +145,6 @@ function matchAllOrderTest(t, opts) { }).then(_ => { frameResultList.forEach(result => result.top.remove()); extraWindowResult.top.remove(); - }).then(_ => { - return service_worker_unregister_and_done(t, opts.scope); }).catch(e => { if (frameResultList) { frameResultList.forEach(result => result.top.remove()); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/controller-on-reload.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/controller-on-reload.https.html index e0beb7260be..2e966d42578 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/controller-on-reload.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/controller-on-reload.https.html @@ -13,6 +13,10 @@ promise_test(function(t) { var controller; return service_worker_unregister(t, scope) .then(function() { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return with_iframe(scope); }) .then(function(f) { @@ -48,7 +52,6 @@ promise_test(function(t) { .then(function(frameRegistration) { assert_equals(frameRegistration.active, controller); frame.remove(); - service_worker_unregister_and_done(t, scope); }); }, 'controller is set upon reload after registration'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-csp.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-csp.https.html index 91a774a133f..4f176220d61 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-csp.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-csp.https.html @@ -32,6 +32,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, SCRIPT, SCOPE) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, SCOPE); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -105,7 +109,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - service_worker_unregister_and_done(t, SCOPE); }); }, 'Verify CSP control of fetch() in a Service Worker'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html index dce1f794fab..4812d8a9155 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html @@ -15,6 +15,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, worker, scope) .then(function(reg) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, reg.installing, 'activated'); }) .then(function() { return with_iframe(scope); }) @@ -30,7 +34,6 @@ promise_test(function(t) { .then(function(response) { assert_equals(response, 'intercepted by service worker'); frame.remove(); - return service_worker_unregister_and_done(t, scope); }) }, 'Service Worker should respond to fetch event after the hash changes'); @@ -43,6 +46,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, worker, scope) .then(function(reg) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, reg.installing, 'activated'); }) .then(function() { return with_iframe(scope); }) @@ -58,7 +65,6 @@ promise_test(function(t) { .then(function(response) { assert_equals(response, 'intercepted by service worker'); frame.remove(); - return service_worker_unregister_and_done(t, scope); }) }, 'Service Worker should respond to fetch event after the pushState'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html index a2b93acfc5b..87fa0467983 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html @@ -9,6 +9,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -27,7 +31,6 @@ promise_test(function(t) { }) .then(function(message) { assert_equals(message, 'PASS'); - return service_worker_unregister_and_done(t, scope); }) }, 'Calling respondWith asynchronously throws an exception'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html index 254919e9232..fea2ad1e3c2 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html @@ -22,6 +22,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -34,7 +38,6 @@ promise_test(function(t) { .then(function(result) { frame.remove(); assert_equals(result, 'PASS'); - return service_worker_unregister_and_done(t, scope); }); }, 'Rejecting the fetch event or using preventDefault() causes a network ' + 'error'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html index c78fb784a2f..05e22105243 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html @@ -22,6 +22,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -34,7 +38,6 @@ promise_test(function(t) { .then(function(result) { frame.remove(); assert_equals(result, 'PASS'); - return service_worker_unregister_and_done(t, scope); }); }, 'respondWith() takes either a Response or a promise that resolves ' + 'with a Response. Other values should raise a network error.'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html index cd6861a9d45..31fd616b6d6 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html @@ -10,6 +10,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, script, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { @@ -28,7 +32,6 @@ promise_test(function(t) { }) .then(function(message) { assert_equals(message, 'PASS'); - return service_worker_unregister_and_done(t, scope); }) }, 'respondWith() invokes stopImmediatePropagation()'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html index 969a3c9d08f..d98fb22ff42 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html @@ -12,6 +12,10 @@ promise_test(function(t) { var iframe; return service_worker_unregister_and_register(t, workerscript, scope) .then(function(reg) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, reg.installing, 'activated') .then(() => reg.active); }) @@ -27,7 +31,6 @@ promise_test(function(t) { }) .then(function(frame) { assert_true(frame.contentDocument.body.innerHTML.includes("intercepted")); - service_worker_unregister_and_done(t, scope); }) }, 'Fetch event handler throws after a successful respondWith()'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html index e8e90cf1eb3..57fb8eb4c95 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html @@ -74,6 +74,8 @@ promise_test(function(t) { var frame; return service_worker_unregister_and_register(t, SCRIPT, SCOPE) .then(function(registration) { + t.add_cleanup(() => service_worker_unregister(t, SCOPE)); + worker = registration.installing; return wait_for_state(t, worker, 'activated'); }) @@ -181,7 +183,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - service_worker_unregister_and_done(t, SCOPE); }); }, 'Verify redirect mode of Fetch API and ServiceWorker FetchEvent.'); @@ -208,6 +209,8 @@ promise_test(function(t) { var frame; return service_worker_unregister_and_register(t, SCRIPT, SCOPE) .then(function(registration) { + t.add_cleanup(() => service_worker_unregister(t, SCOPE)); + worker = registration.installing; return wait_for_state(t, worker, 'activated'); }) @@ -275,7 +278,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - service_worker_unregister_and_done(t, SCOPE); }); }, 'Verify redirected of Response(Fetch API) and ServiceWorker FetchEvent.'); @@ -302,6 +304,8 @@ promise_test(function(t) { var frame; return service_worker_unregister_and_register(t, SCRIPT, SCOPE) .then(function(registration) { + t.add_cleanup(() => service_worker_unregister(t, SCOPE)); + worker = registration.installing; return wait_for_state(t, worker, 'activated'); }) @@ -375,7 +379,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - service_worker_unregister_and_done(t, SCOPE); }); }, 'Verify redirected of Response(Fetch API), Cache API and ServiceWorker ' + 'FetchEvent.'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/multiple-update.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/multiple-update.https.html index 84aac9583b9..6a83f73a054 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/multiple-update.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/multiple-update.https.html @@ -15,6 +15,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, expected_url, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + registration = r; return wait_for_state(t, registration.installing, 'activated'); }) @@ -85,8 +89,6 @@ promise_test(function(t) { 'waiting should be null after activated.'); assert_equals(registration.active.scriptURL, expected_url, 'active should still exist after update found.'); - - return service_worker_unregister_and_done(t, scope); }); }, 'Trigger multiple updates.'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/performance-timeline.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/performance-timeline.https.html index b66d4a82186..1fe19da53be 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/performance-timeline.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/performance-timeline.https.html @@ -17,7 +17,11 @@ promise_test(t => { let slowURL = url + '&slow'; let frame; return service_worker_unregister_and_register(t, script, scope) - .then(reg => wait_for_state(t, reg.installing, 'activated')) + .then(reg => { + t.add_cleanup(() => service_worker_unregister(t, scope)); + + return wait_for_state(t, reg.installing, 'activated'); + }) .then(_ => with_iframe(scope)) .then(f => { frame = f; @@ -39,7 +43,6 @@ promise_test(t => { assert_greater_than(slowURLTime, urlTime + 1000, 'Slow service worker request should measure increased delay.'); frame.remove(); - return service_worker_unregister_and_done(t, scope); }) }, 'empty service worker fetch event included in performance timings'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/register-default-scope.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/register-default-scope.https.html index dc136d4e8dd..1d86548eb5e 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/register-default-scope.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/register-default-scope.https.html @@ -52,8 +52,11 @@ promise_test(function(t) { }) .then( function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, registration.scope); + }); + assert_unreached('register should fail'); - service_worker_unregister_and_done(t, registration.scope); }, function(error) { assert_equals(error.name, 'SecurityError', diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html index e23f9f4fc8e..0920b5cb223 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html @@ -16,6 +16,10 @@ promise_test(function(t) { return navigator.serviceWorker.register(bad_script, {scope: scope}) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + registration = r; assert_equals(registration.installing.scriptURL, normalizeURL(bad_script)); @@ -47,9 +51,6 @@ promise_test(function(t) { normalizeURL(good_script)); return wait_for_state(t, registration.installing, 'activated'); }) - .then(function() { - return service_worker_unregister_and_done(t, scope); - }) }, 'register worker that calls waitUntil with a promise that never ' + 'resolves in oninstall'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html index 2f780a60428..fac8f2076fb 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html @@ -10,6 +10,10 @@ promise_test(function(t) { var url = 'resources/postmessage-to-client-worker.js'; return service_worker_unregister_and_register(t, url, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -35,9 +39,6 @@ promise_test(function(t) { }); worker.postMessage('PING'); }); - }) - .then(function() { - return service_worker_unregister_and_done(t, scope); }); }, 'Test MessageEvent supplants ServiceWorkerMessageEvent.'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html index 33d52e01199..0320c02a4fa 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html @@ -12,6 +12,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -24,7 +28,6 @@ promise_test(function(t) { }) .then(function(data) { assert_equals(data, 'intercepted by service worker'); - service_worker_unregister_and_done(t, scope); }); }, 'Verify subresource loads in SharedWorker are controlled by a Service Worker'); @@ -35,6 +38,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -47,7 +54,6 @@ promise_test(function(t) { }) .then(function(data) { assert_equals(data, 'worker loading intercepted by service worker'); - service_worker_unregister_and_done(t, scope); }); }, 'Verify SharedWorker construction is controlled by a Service Worker'); @@ -58,6 +64,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -70,7 +80,6 @@ promise_test(function(t) { }) .then(function(data) { assert_equals(data, 'worker loading intercepted by service worker'); - service_worker_unregister_and_done(t, scope); }); }, 'Verify importScripts from SharedWorker is controlled by a Service Worker'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html index 21e26be5128..b604f651b3c 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html @@ -33,6 +33,10 @@ promise_test(function(t) { }); return service_worker_unregister_and_register(t, url1, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -60,7 +64,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - return service_worker_unregister_and_done(t, scope); }); }, 'Test skipWaiting when a installed worker is waiting'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting.https.html index 48b5a8c9aee..f8392fc955b 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting.https.html @@ -14,6 +14,10 @@ promise_test(function(t) { var sw_registration, activated_worker, waiting_worker; return service_worker_unregister_and_register(t, url1, scope) .then(function(registration) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + sw_registration = registration; return wait_for_state(t, registration.installing, 'activated'); }) @@ -48,7 +52,6 @@ promise_test(function(t) { 'Worker with url2 should be redundant'); assert_equals(sw_registration.active.scriptURL, normalizeURL(url3), 'Worker with url3 should be activated'); - return service_worker_unregister_and_done(t, scope); }); }, 'Test skipWaiting with both active and waiting workers'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/update-after-oneday.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/update-after-oneday.https.html index 08065d22ce4..d9b9fcfb8db 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/update-after-oneday.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/update-after-oneday.https.html @@ -17,6 +17,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, expected_url, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + registration = r; return wait_for_state(t, registration.installing, 'activated'); }) @@ -41,7 +45,6 @@ promise_test(function(t) { }) .then(function() { frame.remove(); - return service_worker_unregister_and_done(t, scope); }) }, 'Update should be triggered after a functional event when last update time is over 24 hours'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/update-bytecheck.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/update-bytecheck.https.html index ec3d15abec0..be414351871 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/update-bytecheck.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/update-bytecheck.https.html @@ -43,8 +43,11 @@ settings.reduce((p, s) => { return Promise.resolve() // Register a service worker. .then(_ => service_worker_unregister_and_register(t, script, scope)) - .then(r => swr = r) - .then(_ => wait_for_update(t, swr)) + .then(r => { + t.add_cleanup(() => service_worker_unregister(t, scope)); + swr = r; + return wait_for_update(t, swr); + }) .then(w => sw = w) .then(_ => wait_for_state(t, sw, 'activated')) .then(_ => assert_array_equals([swr.active, @@ -64,10 +67,7 @@ settings.reduce((p, s) => { swr.waiting, swr.installing], [sw, null, null]); - }) - - // Unregister the service worker. - .then(_ => service_worker_unregister_and_done(t, scope)); + }); }, `Test(cors: ${s.cors}, main: ${s.main}, imported: ${s.imported})`)); }, Promise.resolve()); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html index 8ea279ef075..e62c1ac3aa4 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html @@ -109,7 +109,7 @@ function navigate_test(override_parameters) { }); } - var cleanup = function() { + test.add_cleanup(function() { if (client_frame && client_frame) { client_frame.remove(); } @@ -127,9 +127,9 @@ function navigate_test(override_parameters) { if (registration) { return registration.unregister(); } - }; + }); - var test_body = with_iframe(parameters.src_url) + return with_iframe(parameters.src_url) .then(function(frame) { client_frame = frame; return service_worker_unregister_and_register( @@ -161,17 +161,6 @@ function navigate_test(override_parameters) { .then(function(response) { assert_equals(response.data, parameters.expected); }); - - // Ensure that test "clean up" is deferred until after the test body - // executes. `Test#add_cleanup` cannot be used for this purpose because the - // operation is asynchronous, and `add_cleanup` does not support - // asynchronous operations at the time of this writing. See - // https://github.com/web-platform-tests/wpt/issues/6075 - // Ensure also that test failure is not hidden by successful cleanup - // operation. - return test_body - .then(cleanup, cleanup) - .then(function() { return test_body; }); }, parameters.description); } </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html index bf976a29c48..f9ba656b517 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html @@ -12,6 +12,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -28,7 +32,6 @@ promise_test(function(t) { }) .then(function(data) { assert_equals(data, 'worker loading intercepted by service worker'); - service_worker_unregister_and_done(t, scope); }); }, 'Verify worker script from uncontrolled document is intercepted by Service Worker'); @@ -39,6 +42,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { @@ -55,7 +62,6 @@ promise_test(function(t) { }) .then(function(data) { assert_equals(data, 'dummy-worker-script loaded'); - service_worker_unregister_and_done(t, scope); }); }, 'Verify worker script intercepted by same-origin response succeeds'); @@ -72,10 +78,7 @@ promise_test(function(t) { var w = new Worker(worker_url); var watcher = new EventWatcher(t, w, ['message', 'error']); return watcher.wait_for('error'); - }) - .then(function() { - service_worker_unregister_and_done(t, scope); - }); + }); }, 'Verify worker script intercepted by cors response fails'); promise_test(function(t) { @@ -85,16 +88,17 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { var w = new Worker(worker_url); var watcher = new EventWatcher(t, w, ['message', 'error']); return watcher.wait_for('error'); - }) - .then(function() { - service_worker_unregister_and_done(t, scope); - }); + }); }, 'Verify worker script intercepted by no-cors cross-origin response fails'); promise_test(function(t) { @@ -110,6 +114,10 @@ promise_test(function(t) { return service_worker_unregister_and_register(t, service_worker, scope) .then(function(r) { + t.add_cleanup(function() { + return service_worker_unregister(t, scope); + }); + return wait_for_state(t, r.installing, 'activated'); }) .then(function() { return with_iframe(subdoc_url); }) @@ -126,7 +134,6 @@ promise_test(function(t) { }) .then(function(data) { assert_equals(data.results, 'finish'); - service_worker_unregister_and_done(t, scope); }); }, 'Verify worker loads from controlled document are intercepted by Service Worker'); diff --git a/tests/wpt/web-platform-tests/tools/ci/start.sh b/tests/wpt/web-platform-tests/tools/ci/start.sh new file mode 100644 index 00000000000..9f621b2326e --- /dev/null +++ b/tests/wpt/web-platform-tests/tools/ci/start.sh @@ -0,0 +1,30 @@ +# This script is designed to be sourced from tools/docker/start.sh + +# Start userspace OOM killer: https://github.com/rfjakob/earlyoom +# It will report memory usage every minute and prefer to kill browsers. +sudo earlyoom -p -r 60 --prefer '(chrome|firefox)' --avoid 'python' & + +sudo sh -c './wpt make-hosts-file >> /etc/hosts' + +if [[ $BROWSER == "chrome" ]] || [[ "$BROWSER" == all ]] +then + # Install Chrome dev + if [[ "$CHANNEL" == "dev" ]] || [[ "$CHANNEL" == "nightly" ]] + then + deb_archive=google-chrome-unstable_current_amd64.deb + elif [[ "$CHANNEL" == "beta" ]] + then + deb_archive=google-chrome-beta_current_amd64.deb + elif [[ "$CHANNEL" == "stable" ]] + then + deb_archive=google-chrome-stable_current_amd64.deb + else + echo Unrecognized release channel: $CHANNEL >&2 + exit 1 + fi + wget https://dl.google.com/linux/direct/$deb_archive + + sudo apt-get -qqy update && sudo gdebi -n $deb_archive +fi + +sudo Xvfb $DISPLAY -screen 0 ${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH} & diff --git a/tests/wpt/web-platform-tests/tools/docker/start.sh b/tests/wpt/web-platform-tests/tools/docker/start.sh index 34a0f3c2206..52a5127892c 100755 --- a/tests/wpt/web-platform-tests/tools/docker/start.sh +++ b/tests/wpt/web-platform-tests/tools/docker/start.sh @@ -17,19 +17,16 @@ REVISION=${3:-FETCH_HEAD} BROWSER=${4:-all} CHANNEL=${5:-nightly} -# Start userspace OOM killer: https://github.com/rfjakob/earlyoom -# It will report memory usage every minute and prefer to kill browsers. -sudo earlyoom -p -r 60 --prefer '(chrome|firefox)' --avoid 'python' & - cd ~ mkdir web-platform-tests cd web-platform-tests + git init git remote add origin ${REMOTE} # Initially we just fetch 50 commits in order to save several minutes of fetching -git fetch --quiet --depth=50 origin ${REF} +git fetch --quiet --depth=50 --tags origin ${REF} if [[ ! `git rev-parse --verify -q ${REVISION}` ]]; then @@ -40,27 +37,4 @@ then fi git checkout -b build ${REVISION} -sudo sh -c './wpt make-hosts-file >> /etc/hosts' - -if [[ $BROWSER == "chrome" ]] || [[ "$BROWSER" == all ]] -then - # Install Chrome dev - if [[ "$CHANNEL" == "dev" ]] || [[ "$CHANNEL" == "nightly" ]] - then - deb_archive=google-chrome-unstable_current_amd64.deb - elif [[ "$CHANNEL" == "beta" ]] - then - deb_archive=google-chrome-beta_current_amd64.deb - elif [[ "$CHANNEL" == "stable" ]] - then - deb_archive=google-chrome-stable_current_amd64.deb - else - echo Unrecognized release channel: $CHANNEL >&2 - exit 1 - fi - wget https://dl.google.com/linux/direct/$deb_archive - - sudo apt-get -qqy update && sudo gdebi -n $deb_archive -fi - -sudo Xvfb $DISPLAY -screen 0 ${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH} & +source tools/ci/start.sh diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py index b248a054d3b..aa6306a533e 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py @@ -577,7 +577,10 @@ class MultiDict(dict): :param key: The key to lookup """ - return dict.__getitem__(self, key) + if key in self: + return dict.__getitem__(self, key) + else: + return [] @classmethod def from_field_storage(cls, fs): diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js index 6ad90a356e4..b6ddb0c7eae 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js @@ -1495,12 +1495,34 @@ function testAnimationSamplesWithAnyOrder(animation, idlName, testSamples) { } } +function RoundMatrix(style) { + var matrixMatch = style.match(/^(matrix(3d)?)\(.+\)$/); + if (!!matrixMatch) { + var matrixType = matrixMatch[1]; + var matrixArgs = style.substr(matrixType.length); + var extractmatrix = function(matrixStr) { + var list = []; + var regex = /[+\-]?[0-9]+[.]?[0-9]*(e[+/-][0-9]+)?/g; + var match = undefined; + do { + match = regex.exec(matrixStr); + if (match) { + list.push(parseFloat(parseFloat(match[0]).toFixed(6))); + } + } while (match); + return list; + } + return matrixType + '(' + extractmatrix(matrixArgs).join(', ') + ')'; + } + return style; +} + function testAnimationSampleMatrices(animation, idlName, testSamples) { const target = animation.effect.target; for (const testSample of testSamples) { animation.currentTime = testSample.time; - const actual = getComputedStyle(target)[idlName]; - const expected = createMatrixFromArray(testSample.expected); + const actual = RoundMatrix(getComputedStyle(target)[idlName]); + const expected = RoundMatrix(createMatrixFromArray(testSample.expected)); assert_matrix_equals(actual, expected, `The value should be ${expected} at` + ` ${testSample.time}ms but got ${actual}`); diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html deleted file mode 100644 index 887ff933526..00000000000 --- a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html +++ /dev/null @@ -1,57 +0,0 @@ -<!DOCTYPE html> -<body> - <script src=/resources/testharness.js></script> - <script src=/resources/testharnessreport.js></script> - <script src="resources/webxr_util.js"></script> - <canvas></canvas> - - <script> - let immersiveTestName = "XRFrame methods throw exceptions outside of the " + - "requestAnimationFrame callback for immersive sessions"; - let nonImmersiveTestName = "XRFrame methods throw exceptions outside of the " + - "requestAnimationFrame callback for non-immersive sessions"; - - let fakeDeviceInitParams = { supportsImmersive:true }; - - let immersiveSessionOptions = { immersive: true }; - let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; - - let testFunction = (testSession, testController, t) => new Promise((resolve) => { - let staleFrame = null; - let frameOfRef = null; - - function onFrame(time, xrFrame) { - t.step(() => { - assert_true(xrFrame instanceof XRFrame); - }); - - staleFrame = xrFrame; - - step_timeout(afterFrame, 0); - } - - function afterFrame() { - t.step(() => { - // Attempting to call a method on the frame outside the callback that - // originally provided it should cause it to throw an exception. - assert_throws('NotAllowedError', () => staleFrame.getDevicePose(frameOfRef)); - }); - - // Test does not complete until the this function has executed. - resolve(); - } - - testSession.requestFrameOfReference('eye-level').then((xrFrameOfRef) => { - frameOfRef = xrFrameOfRef; - - testSession.requestAnimationFrame(onFrame); - }); - }); - - xr_session_promise_test(immersiveTestName, testFunction, - fakeDeviceInitParams, immersiveSessionOptions); - xr_session_promise_test(nonImmersiveTestName, testFunction, - fakeDeviceInitParams, nonImmersiveSessionOptions); - - </script> -</body>
\ No newline at end of file |