aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini4
-rw-r--r--tests/wpt/metadata/MANIFEST.json113
-rw-r--r--tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini3
-rw-r--r--tests/wpt/metadata/encoding/single-byte-decoder.html.ini26
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini22
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini3
-rw-r--r--tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini3
-rw-r--r--tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini283
-rw-r--r--tests/wpt/metadata/quirks/unitless-length/no-quirks.html.ini283
-rw-r--r--tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini1
-rw-r--r--tests/wpt/web-platform-tests/.taskcluster.yml2
-rw-r--r--tests/wpt/web-platform-tests/audio-output/idlharness.https.window.js (renamed from tests/wpt/web-platform-tests/audio-output/idlharness.window.js)0
-rw-r--r--tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/balance-table-with-fractional-height-row.html16
-rw-r--r--tests/wpt/web-platform-tests/interfaces/DOM-Parsing.idl38
-rw-r--r--tests/wpt/web-platform-tests/interfaces/input-events.idl18
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html11
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html20
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html8
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html7
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/claim-fetch.https.html9
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html23
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html11
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/claim-using-registration.https.html12
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html13
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html4
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/controller-on-reload.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-csp.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html10
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html9
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/multiple-update.https.html6
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/performance-timeline.https.html7
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/register-default-scope.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html7
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html7
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html15
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/update-after-oneday.https.html5
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/update-bytecheck.https.html12
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html17
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html29
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/start.sh30
-rwxr-xr-xtests/wpt/web-platform-tests/tools/docker/start.sh32
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/request.py5
-rw-r--r--tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-list.js26
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html57
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