mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Auto merge of #22357 - servo-wpt-sync:wpt_update_03-12-2018, r=jdm
Sync WPT with upstream (03-12-2018) Automated downstream sync of changes from upstream as of 03-12-2018. [no-wpt-sync] <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22357) <!-- Reviewable:end -->
This commit is contained in:
commit
063bd7ac19
53 changed files with 413 additions and 851 deletions
|
@ -1,5 +1,4 @@
|
||||||
[url-in-tags-revoke.window.html]
|
[url-in-tags-revoke.window.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||||
expected: FAIL
|
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.]
|
[Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fetching a blob URL immediately before revoking it works in <script> tags.]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
|
|
|
@ -310056,6 +310056,11 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"tools/ci/start.sh": [
|
||||||
|
[
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"tools/ci/tag_master.py": [
|
"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": [
|
||||||
[
|
[
|
||||||
"/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": [
|
||||||
[
|
[
|
||||||
"/webxr/xrSession_cancelAnimationFrame.https.html",
|
"/webxr/xrSession_cancelAnimationFrame.https.html",
|
||||||
|
@ -441415,7 +441420,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
".taskcluster.yml": [
|
".taskcluster.yml": [
|
||||||
"c4d20d3ed0d58c92645d0e0660f9ff3ac98ad705",
|
"5e67f71ed89c0dafbcf6cab647a9fad339253314",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
".travis.yml": [
|
".travis.yml": [
|
||||||
|
@ -451362,7 +451367,7 @@
|
||||||
"b6a7d4d06259117af8fb843f6a8d252bac01a8f3",
|
"b6a7d4d06259117af8fb843f6a8d252bac01a8f3",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"audio-output/idlharness.window.js": [
|
"audio-output/idlharness.https.window.js": [
|
||||||
"f10e523bcdc530ee1dbd04a52541ac0b343e9376",
|
"f10e523bcdc530ee1dbd04a52541ac0b343e9376",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
@ -451395,7 +451400,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"background-fetch/fetch.https.window.js": [
|
"background-fetch/fetch.https.window.js": [
|
||||||
"e256c973f3e31fe501e49c098ea70f7f6d5d70cc",
|
"6a8cf6c0e3a98d33c20ea3b9f3f8c2a274803998",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"background-fetch/get-ids.https.window.js": [
|
"background-fetch/get-ids.https.window.js": [
|
||||||
|
@ -559274,6 +559279,10 @@
|
||||||
"cc95000ec53ea8daef06251ad5a9f20c5b06a281",
|
"cc95000ec53ea8daef06251ad5a9f20c5b06a281",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"css/css-multicol/balance-table-with-fractional-height-row.html": [
|
||||||
|
"434dc52ea3d731bd1393270372294cd007382e59",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-multicol/column-count-used-001.html": [
|
"css/css-multicol/column-count-used-001.html": [
|
||||||
"2949a1996ebae0c48329906ea7ef34c83080e90f",
|
"2949a1996ebae0c48329906ea7ef34c83080e90f",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -631171,7 +631180,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/DOM-Parsing.idl": [
|
"interfaces/DOM-Parsing.idl": [
|
||||||
"f3a13342f5eb24b92523683ccc86b46d15ddbfb0",
|
"94d437977afac4a1c09bd5588909cec02862694f",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/FileAPI.idl": [
|
"interfaces/FileAPI.idl": [
|
||||||
|
@ -631423,7 +631432,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/input-events.idl": [
|
"interfaces/input-events.idl": [
|
||||||
"970bd1212edbf704903b8fad66dc9b53dfb87f5c",
|
"3bcb0dd78cdccb39d23b29f33a803622aab125c7",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/intersection-observer.idl": [
|
"interfaces/intersection-observer.idl": [
|
||||||
|
@ -657443,7 +657452,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html": [
|
"service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html": [
|
||||||
"17046eedc6bd2529b452fe03a0e9e2d52c0b2d70",
|
"99dedebf2e56c744528fd168c05b4fe734563c57",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html": [
|
"service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html": [
|
||||||
|
@ -657523,19 +657532,19 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html": [
|
"service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html": [
|
||||||
"313309188071747fb139d6dc0dbe2019d0e72748",
|
"1a124d727687ecfc62bb1443bed2313312762997",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html": [
|
"service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html": [
|
||||||
"a9285a1c9e2dbfc38c547e3030af8ad9ba292e42",
|
"a7dde2233972cb3c1b8250f3b0a184413cd7c5a5",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/about-blank-replacement.https.html": [
|
"service-workers/service-worker/about-blank-replacement.https.html": [
|
||||||
"e1fefaf290fe521590a460942d4c3f6c0022c75f",
|
"b6efe3ec5620d1c83deb305f2c1ebe008a6a23e2",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/activate-event-after-install-state-change.https.html": [
|
"service-workers/service-worker/activate-event-after-install-state-change.https.html": [
|
||||||
"57fccf13712d97c316874746f770fd7e76f5e897",
|
"016a52c13c82ebbfb36d48830446b79b4e72f13e",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/activation-after-registration.https.html": [
|
"service-workers/service-worker/activation-after-registration.https.html": [
|
||||||
|
@ -657559,19 +657568,19 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/claim-fetch.https.html": [
|
"service-workers/service-worker/claim-fetch.https.html": [
|
||||||
"050c1ea92ef60b8215fad9cab504647256ad728a",
|
"6b7d353c6ae3b53c5c7d9398f09fb2f476201db1",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/claim-not-using-registration.https.html": [
|
"service-workers/service-worker/claim-not-using-registration.https.html": [
|
||||||
"1138b7419cfaa78d99f114196fb6870afdf8bd67",
|
"fd61d05ba4ea8a1c416eb6d4b1128f7b65b4b35c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/claim-shared-worker-fetch.https.html": [
|
"service-workers/service-worker/claim-shared-worker-fetch.https.html": [
|
||||||
"a07db7b75c7a4c29e9ce756152cd0d4e269e8912",
|
"f5f44886baa2bff3bc7b7e013a856a6d90ceb26c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/claim-using-registration.https.html": [
|
"service-workers/service-worker/claim-using-registration.https.html": [
|
||||||
"7d77d384837d3c41278bea6f414a6719e80dc520",
|
"8a2a6ff25c82d8d6de26cca521da99f8ef6d5fbf",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/claim-with-redirect.https.html": [
|
"service-workers/service-worker/claim-with-redirect.https.html": [
|
||||||
|
@ -657603,7 +657612,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/clients-matchall-client-types.https.html": [
|
"service-workers/service-worker/clients-matchall-client-types.https.html": [
|
||||||
"24967172a84ca0bfea7db337fb5d95d9cd4ff114",
|
"a2a56816a650fa54d6075055a64e0f009e5829ac",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/clients-matchall-exact-controller.https.html": [
|
"service-workers/service-worker/clients-matchall-exact-controller.https.html": [
|
||||||
|
@ -657619,7 +657628,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/clients-matchall-order.https.html": [
|
"service-workers/service-worker/clients-matchall-order.https.html": [
|
||||||
"0596050c24af4e275ebfe3e040918c115797f2e8",
|
"ec650f2264df530bd34b11737c4b1d9ed87f4b56",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/clients-matchall.https.html": [
|
"service-workers/service-worker/clients-matchall.https.html": [
|
||||||
|
@ -657635,7 +657644,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/controller-on-reload.https.html": [
|
"service-workers/service-worker/controller-on-reload.https.html": [
|
||||||
"e0beb7260be11608439aa16bce0c16a025f24858",
|
"2e966d425788c0a02b1bb25a4c045089fede5ce7",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/controller-with-no-fetch-event-handler.https.html": [
|
"service-workers/service-worker/controller-with-no-fetch-event-handler.https.html": [
|
||||||
|
@ -657699,15 +657708,15 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-csp.https.html": [
|
"service-workers/service-worker/fetch-csp.https.html": [
|
||||||
"91a774a133fd6a1e942e00034c7c05115ee0dea2",
|
"4f176220d6100c4efb1bfda817b84cf5f53a4f3d",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-after-navigation-within-page.https.html": [
|
"service-workers/service-worker/fetch-event-after-navigation-within-page.https.html": [
|
||||||
"dce1f794fabed81761a83cfa68c23920168f99fb",
|
"4812d8a91551edae84b5e2805804fc9d8899f3e9",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-async-respond-with.https.html": [
|
"service-workers/service-worker/fetch-event-async-respond-with.https.html": [
|
||||||
"a2b93acfc5b240a148f07a33bd1a0d2a6ca75715",
|
"87fa04679832f792579b6fefcee2eee550bb58fd",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html": [
|
"service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html": [
|
||||||
|
@ -657727,7 +657736,7 @@
|
||||||
"manual"
|
"manual"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-network-error.https.html": [
|
"service-workers/service-worker/fetch-event-network-error.https.html": [
|
||||||
"254919e92327aefd16eb57855f83221cbe8d7ea6",
|
"fea2ad1e3c26effcc9fd7c8d7a66917e420606b4",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-redirect.https.html": [
|
"service-workers/service-worker/fetch-event-redirect.https.html": [
|
||||||
|
@ -657739,7 +657748,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-respond-with-argument.https.html": [
|
"service-workers/service-worker/fetch-event-respond-with-argument.https.html": [
|
||||||
"c78fb784a2f7e4135c2b4429082dc157d9300ffb",
|
"05e22105243f710273f56e21502659ad1781e28c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html": [
|
"service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html": [
|
||||||
|
@ -657767,11 +657776,11 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html": [
|
"service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html": [
|
||||||
"cd6861a9d45361a9cbaab3ea639257a14accb349",
|
"31fd616b6d6f509b7dcb6b56f45e9c2e12e9b8e6",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-throws-after-respond-with.https.html": [
|
"service-workers/service-worker/fetch-event-throws-after-respond-with.https.html": [
|
||||||
"969a3c9d08fb66bf01c1fa2b514b4646e2613b30",
|
"d98fb22ff423271dd84460200ebdb60573ed6371",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-event-within-sw-manual.https.html": [
|
"service-workers/service-worker/fetch-event-within-sw-manual.https.html": [
|
||||||
|
@ -657827,7 +657836,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-request-redirect.https.html": [
|
"service-workers/service-worker/fetch-request-redirect.https.html": [
|
||||||
"e8e90cf1eb37cfce98f802a0dd25c2702938ccb2",
|
"57fb8eb4c95d54b20d674728270e140db0f6b473",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/fetch-request-resources.https.html": [
|
"service-workers/service-worker/fetch-request-resources.https.html": [
|
||||||
|
@ -657975,7 +657984,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/multiple-update.https.html": [
|
"service-workers/service-worker/multiple-update.https.html": [
|
||||||
"84aac9583b90b1caa8f08b636b9994942304efeb",
|
"6a83f73a054f8a50284ae9b55bba9cde4d74c108",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/navigate-window.https.html": [
|
"service-workers/service-worker/navigate-window.https.html": [
|
||||||
|
@ -658107,7 +658116,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/performance-timeline.https.html": [
|
"service-workers/service-worker/performance-timeline.https.html": [
|
||||||
"b66d4a821861b6e6e37e47b652f32756c8062058",
|
"1fe19da53be6c460cae5f069794bbdee3f4a0da8",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/postmessage-blob-url.https.html": [
|
"service-workers/service-worker/postmessage-blob-url.https.html": [
|
||||||
|
@ -658155,7 +658164,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/register-default-scope.https.html": [
|
"service-workers/service-worker/register-default-scope.https.html": [
|
||||||
"dc136d4e8dd74d3f851880a2bc4ff5f215caf256",
|
"1d86548eb5eeb5754ca111dd4c55843202216b2d",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/register-same-scope-different-script-url.https.html": [
|
"service-workers/service-worker/register-same-scope-different-script-url.https.html": [
|
||||||
|
@ -658163,7 +658172,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/register-wait-forever-in-install-worker.https.html": [
|
"service-workers/service-worker/register-wait-forever-in-install-worker.https.html": [
|
||||||
"e23f9f4fc8e3807ad60c90b055f74c38d383c24d",
|
"0920b5cb223d50e31d044a9323f55c1e77b18857",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/registration-basic.https.html": [
|
"service-workers/service-worker/registration-basic.https.html": [
|
||||||
|
@ -659431,7 +659440,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/serviceworker-message-event-historical.https.html": [
|
"service-workers/service-worker/serviceworker-message-event-historical.https.html": [
|
||||||
"2f780a604282dc281ebe75a964ed24f832a24e3a",
|
"fac8f2076fb64870550236dd27470902cdbe040c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/serviceworkerobject-scripturl.https.html": [
|
"service-workers/service-worker/serviceworkerobject-scripturl.https.html": [
|
||||||
|
@ -659439,11 +659448,11 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/shared-worker-controlled.https.html": [
|
"service-workers/service-worker/shared-worker-controlled.https.html": [
|
||||||
"33d52e01199c2bdc0e85df7d8106ddd970aae082",
|
"0320c02a4fa2b8066bc6f603bf7abc3eefe1c3b3",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/skip-waiting-installed.https.html": [
|
"service-workers/service-worker/skip-waiting-installed.https.html": [
|
||||||
"21e26be5128454ee05143b10b8039ceb95a48cd5",
|
"b604f651b3c1deb38d891c77394a8f175a19c34e",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/skip-waiting-using-registration.https.html": [
|
"service-workers/service-worker/skip-waiting-using-registration.https.html": [
|
||||||
|
@ -659459,7 +659468,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/skip-waiting.https.html": [
|
"service-workers/service-worker/skip-waiting.https.html": [
|
||||||
"48b5a8c9aeeb40648c4d295492d4a44b957d788f",
|
"f8392fc955b46cdd9f1deb5a7319b8f3f35d91dd",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/state.https.html": [
|
"service-workers/service-worker/state.https.html": [
|
||||||
|
@ -659503,11 +659512,11 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/update-after-oneday.https.html": [
|
"service-workers/service-worker/update-after-oneday.https.html": [
|
||||||
"08065d22ce46cc8a3b5916f1c053f477f4414698",
|
"d9b9fcfb8db37ea3b0d571250b22b88ca7354772",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/update-bytecheck.https.html": [
|
"service-workers/service-worker/update-bytecheck.https.html": [
|
||||||
"ec3d15abec09ca5f5e3db9e2c8ac2e9040ffe7fe",
|
"be414351871ffb94cce4533607e2e58f6da3d8a3",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/update-missing-import-scripts.https.html": [
|
"service-workers/service-worker/update-missing-import-scripts.https.html": [
|
||||||
|
@ -659555,7 +659564,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/windowclient-navigate.https.html": [
|
"service-workers/service-worker/windowclient-navigate.https.html": [
|
||||||
"8ea279ef075e5e6c8904966b005f0baf0d75bca9",
|
"e62c1ac3aa40e0c412a736e79a77515348398a2c",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/worker-client-id.https.html": [
|
"service-workers/service-worker/worker-client-id.https.html": [
|
||||||
|
@ -659571,7 +659580,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/service-worker/worker-interception.https.html": [
|
"service-workers/service-worker/worker-interception.https.html": [
|
||||||
"bf976a29c48a3810ef4ff20b5c7e8b70dec2b219",
|
"f9ba656b5178359f2c7b6e2419a57ff12ec79d23",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"service-workers/specgen.json": [
|
"service-workers/specgen.json": [
|
||||||
|
@ -664798,6 +664807,10 @@
|
||||||
"5af38d0b56c1bbabb3e3748633cb7dca4f15c5e6",
|
"5af38d0b56c1bbabb3e3748633cb7dca4f15c5e6",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"tools/ci/start.sh": [
|
||||||
|
"9f621b2326e7769a232cf620a4863f4104d35ed1",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"tools/ci/tag_master.py": [
|
"tools/ci/tag_master.py": [
|
||||||
"72bafd3a866317889ecbb75a6981ce1c88a38b9e",
|
"72bafd3a866317889ecbb75a6981ce1c88a38b9e",
|
||||||
"support"
|
"support"
|
||||||
|
@ -664827,7 +664840,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/docker/start.sh": [
|
"tools/docker/start.sh": [
|
||||||
"34a0f3c2206dc689543e1cab6fb5ddbc763880aa",
|
"52a5127892ca0455c57de1e3b26e26ea6a3f8db2",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/gitignore/__init__.py": [
|
"tools/gitignore/__init__.py": [
|
||||||
|
@ -670471,7 +670484,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptserve/wptserve/request.py": [
|
"tools/wptserve/wptserve/request.py": [
|
||||||
"b248a054d3b1f3b141d94125da9406463e5a894f",
|
"aa6306a533e2136a2dc5eea33ebeb18706eb1736",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptserve/wptserve/response.py": [
|
"tools/wptserve/wptserve/response.py": [
|
||||||
|
@ -673071,7 +673084,7 @@
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"web-animations/animation-model/animation-types/property-list.js": [
|
"web-animations/animation-model/animation-types/property-list.js": [
|
||||||
"6ad90a356e483cbfbd94c2cb147e68417f75357e",
|
"b6ddb0c7eaec378b2c884c771403542f6b42d02b",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"web-animations/animation-model/animation-types/property-types.js": [
|
"web-animations/animation-model/animation-types/property-types.js": [
|
||||||
|
@ -680990,10 +681003,6 @@
|
||||||
"535b0bcbbc282ee5aaa7500cbd3a35ba21fed3d4",
|
"535b0bcbbc282ee5aaa7500cbd3a35ba21fed3d4",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"webxr/xrFrame_lifetime.https.html": [
|
|
||||||
"887ff933526292cbcd7a8218660b1911859ed7b4",
|
|
||||||
"testharness"
|
|
||||||
],
|
|
||||||
"webxr/xrSession_cancelAnimationFrame.https.html": [
|
"webxr/xrSession_cancelAnimationFrame.https.html": [
|
||||||
"26c0e95605468634c9bc65bf959260e594998a2d",
|
"26c0e95605468634c9bc65bf959260e594998a2d",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
|
|
@ -74,6 +74,3 @@
|
||||||
[opacity end]
|
[opacity end]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[border-top-width end]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -532,7 +532,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[windows-1252: iso_8859-1:1987 (XMLHttpRequest)]
|
[windows-1252: iso_8859-1:1987 (XMLHttpRequest)]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
|
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
@ -582,9 +582,6 @@
|
||||||
[windows-1254: cp1254 (XMLHttpRequest)]
|
[windows-1254: cp1254 (XMLHttpRequest)]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[windows-1254: iso8859-9 (XMLHttpRequest)]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
[windows-1253: windows-1253 (XMLHttpRequest)]
|
[windows-1253: windows-1253 (XMLHttpRequest)]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
@ -621,5 +618,26 @@
|
||||||
[windows-1256: windows-1256 (XMLHttpRequest)]
|
[windows-1256: windows-1256 (XMLHttpRequest)]
|
||||||
expected: TIMEOUT
|
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]
|
[single-byte-decoder.html?TextDecoder]
|
||||||
|
|
|
@ -5,11 +5,29 @@
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to wide]
|
[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]
|
[picture: source (max-width:500px) valid image, img broken image, resize to narrow]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
|
[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
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,3 @@
|
||||||
[document.open() after parser is aborted]
|
[document.open() after parser is aborted]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[async document.open() after parser is aborted]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -12,3 +12,6 @@
|
||||||
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
|
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[Verifies the resolution of performance.now() is at least 5 microseconds.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[005.html]
|
[005.html]
|
||||||
expected: ERROR
|
|
||||||
[dedicated worker in shared worker in dedicated worker]
|
[dedicated worker in shared worker in dedicated worker]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ tasks:
|
||||||
owner: ${event.pusher.email}
|
owner: ${event.pusher.email}
|
||||||
source: ${event.repository.url}
|
source: ${event.repository.url}
|
||||||
payload:
|
payload:
|
||||||
image: hexcles/web-platform-tests:0.23
|
image: harjgam/web-platform-tests:0.25
|
||||||
maxRunTime: 7200
|
maxRunTime: 7200
|
||||||
artifacts:
|
artifacts:
|
||||||
public/results:
|
public/results:
|
||||||
|
|
|
@ -321,6 +321,6 @@ backgroundFetchTest(async (test, backgroundFetch) => {
|
||||||
|
|
||||||
assert_true(results[1].url.includes('resources/feature-name.txt'));
|
assert_true(results[1].url.includes('resources/feature-name.txt'));
|
||||||
assert_equals(results[1].status, 200);
|
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.');
|
}, 'Matching multiple times on the same request works as expected.');
|
||||||
|
|
|
@ -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>
|
|
@ -4,30 +4,30 @@
|
||||||
// Source: DOM Parsing and Serialization (https://w3c.github.io/DOM-Parsing/)
|
// Source: DOM Parsing and Serialization (https://w3c.github.io/DOM-Parsing/)
|
||||||
|
|
||||||
[Constructor, Exposed=Window]
|
[Constructor, Exposed=Window]
|
||||||
interface DOMParser {
|
interface DOMParser {
|
||||||
[NewObject] Document parseFromString(DOMString str, SupportedType type);
|
[NewObject] Document parseFromString(DOMString str, SupportedType type);
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SupportedType {
|
enum SupportedType {
|
||||||
"text/html",
|
"text/html",
|
||||||
"text/xml",
|
"text/xml",
|
||||||
"application/xml",
|
"application/xml",
|
||||||
"application/xhtml+xml",
|
"application/xhtml+xml",
|
||||||
"image/svg+xml"
|
"image/svg+xml"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Constructor, Exposed=Window]
|
[Constructor, Exposed=Window]
|
||||||
|
|
||||||
interface XMLSerializer {
|
interface XMLSerializer {
|
||||||
DOMString serializeToString(Node root);
|
DOMString serializeToString(Node root);
|
||||||
};
|
};
|
||||||
|
|
||||||
partial interface Element {
|
partial interface Element {
|
||||||
[CEReactions, TreatNullAs=EmptyString] attribute DOMString innerHTML;
|
[CEReactions, TreatNullAs=EmptyString] attribute DOMString innerHTML;
|
||||||
[CEReactions, TreatNullAs=EmptyString] attribute DOMString outerHTML;
|
[CEReactions, TreatNullAs=EmptyString] attribute DOMString outerHTML;
|
||||||
[CEReactions] void insertAdjacentHTML(DOMString position, DOMString text);
|
[CEReactions] void insertAdjacentHTML(DOMString position, DOMString text);
|
||||||
};
|
};
|
||||||
|
|
||||||
partial interface Range {
|
partial interface Range {
|
||||||
[CEReactions, NewObject] DocumentFragment createContextualFragment(DOMString fragment);
|
[CEReactions, NewObject] DocumentFragment createContextualFragment(DOMString fragment);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
// GENERATED CONTENT - DO NOT EDIT
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
// Content was automatically extracted by Reffy into reffy-reports
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
// (https://github.com/tidoust/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 {
|
partial interface InputEvent {
|
||||||
readonly attribute DOMString inputType;
|
readonly attribute DataTransfer? dataTransfer;
|
||||||
readonly attribute DataTransfer? dataTransfer;
|
sequence<StaticRange> getTargetRanges();
|
||||||
sequence<StaticRange> getTargetRanges();
|
};
|
||||||
};
|
|
||||||
|
|
||||||
partial dictionary InputEventInit {
|
partial dictionary InputEventInit {
|
||||||
DOMString inputType = "";
|
DataTransfer? dataTransfer = null;
|
||||||
DataTransfer? dataTransfer = null;
|
sequence<StaticRange> targetRanges = [];
|
||||||
sequence<StaticRange> targetRanges = [];
|
};
|
||||||
};
|
|
||||||
|
|
|
@ -12,7 +12,12 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
registration = r;
|
registration = r;
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -28,7 +33,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(result) {
|
.then(function(result) {
|
||||||
assert_equals(result, 'OK');
|
assert_equals(result, 'OK');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Post loopback messages');
|
}, 'Post loopback messages');
|
||||||
|
|
||||||
|
@ -41,6 +45,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script1, scope)
|
return service_worker_unregister_and_register(t, script1, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
registration = r;
|
registration = r;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -69,7 +77,6 @@ promise_test(function(t) {
|
||||||
.then(function(result) {
|
.then(function(result) {
|
||||||
assert_equals(result, 'OK');
|
assert_equals(result, 'OK');
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Post messages among service workers');
|
}, 'Post messages among service workers');
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'redundant');
|
return wait_for_state(t, registration.installing, 'redundant');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -21,7 +25,6 @@ promise_test(function(t) {
|
||||||
result,
|
result,
|
||||||
undefined,
|
undefined,
|
||||||
'After unregister(), the registration should not found');
|
'After unregister(), the registration should not found');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Unregister on script evaluation');
|
}, 'Unregister on script evaluation');
|
||||||
|
|
||||||
|
@ -31,6 +34,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'redundant');
|
return wait_for_state(t, registration.installing, 'redundant');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -41,7 +48,6 @@ promise_test(function(t) {
|
||||||
result,
|
result,
|
||||||
undefined,
|
undefined,
|
||||||
'After unregister(), the registration should not found');
|
'After unregister(), the registration should not found');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Unregister on installing event');
|
}, 'Unregister on installing event');
|
||||||
|
|
||||||
|
@ -51,6 +57,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'redundant');
|
return wait_for_state(t, registration.installing, 'redundant');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -61,7 +71,6 @@ promise_test(function(t) {
|
||||||
result,
|
result,
|
||||||
undefined,
|
undefined,
|
||||||
'After unregister(), the registration should not found');
|
'After unregister(), the registration should not found');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Unregister on activate event');
|
}, 'Unregister on activate event');
|
||||||
|
|
||||||
|
@ -74,6 +83,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() { return with_iframe(scope); })
|
.then(function() { return with_iframe(scope); })
|
||||||
|
@ -120,7 +133,6 @@ promise_test(function(t) {
|
||||||
|
|
||||||
frame.remove();
|
frame.remove();
|
||||||
new_frame.remove();
|
new_frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'Unregister controlling service worker');
|
}, 'Unregister controlling service worker');
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
registration = r;
|
registration = r;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -38,7 +42,6 @@ promise_test(function(t) {
|
||||||
'events seen by the worker');
|
'events seen by the worker');
|
||||||
frame1.remove();
|
frame1.remove();
|
||||||
frame2.remove();
|
frame2.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Update a registration on ServiceWorkerGlobalScope');
|
}, 'Update a registration on ServiceWorkerGlobalScope');
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,9 @@ function getClientIdByURL(worker, url) {
|
||||||
|
|
||||||
async function doAsyncTest(t, scope) {
|
async function doAsyncTest(t, scope) {
|
||||||
let reg = await service_worker_unregister_and_register(t, worker, 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');
|
await wait_for_state(t, reg.installing, 'activated');
|
||||||
|
|
||||||
// Load the scope as a frame. We expect this in turn to have a nested
|
// 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();
|
frame.remove();
|
||||||
await service_worker_unregister_and_done(t, scope);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
promise_test(async function(t) {
|
promise_test(async function(t) {
|
||||||
|
@ -126,6 +128,9 @@ promise_test(async function(t) {
|
||||||
const scope = 'resources/about-blank-replacement-uncontrolled-nested-frame.html';
|
const scope = 'resources/about-blank-replacement-uncontrolled-nested-frame.html';
|
||||||
|
|
||||||
let reg = await service_worker_unregister_and_register(t, worker, 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');
|
await wait_for_state(t, reg.installing, 'activated');
|
||||||
|
|
||||||
// Load the scope as a frame. We expect this in turn to have a nested
|
// 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');
|
'nested frame should not be controlled');
|
||||||
|
|
||||||
frame.remove();
|
frame.remove();
|
||||||
await service_worker_unregister_and_done(t, scope);
|
|
||||||
}, 'Initial about:blank is controlled, exposed to clients.matchAll(), and ' +
|
}, 'Initial about:blank is controlled, exposed to clients.matchAll(), and ' +
|
||||||
'final Client is not controlled by a service worker.');
|
'final Client is not controlled by a service worker.');
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
var sw = registration.installing;
|
var sw = registration.installing;
|
||||||
|
|
||||||
return new Promise(t.step_func(function(resolve) {
|
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));
|
.catch(unreached_rejection(t));
|
||||||
}, 'installed event should be fired before activating service worker');
|
}, 'installed event should be fired before activating service worker');
|
||||||
|
|
||||||
|
|
|
@ -32,9 +32,13 @@ promise_test(function(t) {
|
||||||
|
|
||||||
// Register a service worker.
|
// Register a service worker.
|
||||||
.then(() => service_worker_unregister_and_register(t, script, scope))
|
.then(() => service_worker_unregister_and_register(t, script, scope))
|
||||||
.then(r => worker = r.installing)
|
.then(r => {
|
||||||
.then(() => wait_for_state(t, worker, 'activated'))
|
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.
|
// Let the service worker claim the iframe.
|
||||||
.then(() => {
|
.then(() => {
|
||||||
var channel = new MessageChannel();
|
var channel = new MessageChannel();
|
||||||
|
@ -62,7 +66,6 @@ promise_test(function(t) {
|
||||||
|
|
||||||
// Cleanup this testcase.
|
// Cleanup this testcase.
|
||||||
.then(() => frame.remove())
|
.then(() => frame.remove())
|
||||||
.then(() => service_worker_unregister_and_done(t, scope));
|
|
||||||
}, 'fetch() should be intercepted after the client is claimed.')
|
}, 'fetch() should be intercepted after the client is claimed.')
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -15,6 +15,10 @@ promise_test(function(t) {
|
||||||
return service_worker_unregister_and_register(
|
return service_worker_unregister_and_register(
|
||||||
t, init_worker_url, init_scope)
|
t, init_worker_url, init_scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, init_scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -35,6 +39,10 @@ promise_test(function(t) {
|
||||||
{scope: claim_scope});
|
{scope: claim_scope});
|
||||||
})
|
})
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, claim_scope);
|
||||||
|
});
|
||||||
|
|
||||||
claim_worker = registration.installing;
|
claim_worker = registration.installing;
|
||||||
claim_registration = registration;
|
claim_registration = registration;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
|
@ -67,9 +75,6 @@ promise_test(function(t) {
|
||||||
frame1.remove();
|
frame1.remove();
|
||||||
frame2.remove();
|
frame2.remove();
|
||||||
return claim_registration.unregister();
|
return claim_registration.unregister();
|
||||||
})
|
|
||||||
.then(function() {
|
|
||||||
return service_worker_unregister_and_done(t, init_scope);
|
|
||||||
});
|
});
|
||||||
}, 'Test claim client which is not using registration');
|
}, 'Test claim client which is not using registration');
|
||||||
|
|
||||||
|
@ -86,6 +91,10 @@ promise_test(function(t) {
|
||||||
claim_worker_url, {scope: claim_scope});
|
claim_worker_url, {scope: claim_scope});
|
||||||
})
|
})
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, claim_scope);
|
||||||
|
});
|
||||||
|
|
||||||
claim_worker = registration.installing;
|
claim_worker = registration.installing;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -94,6 +103,10 @@ promise_test(function(t) {
|
||||||
installing_worker_url, {scope: scope});
|
installing_worker_url, {scope: scope});
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
var channel = new MessageChannel();
|
var channel = new MessageChannel();
|
||||||
var saw_message = new Promise(function(resolve) {
|
var saw_message = new Promise(function(resolve) {
|
||||||
channel.port1.onmessage = t.step_func(function(e) {
|
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 ' +
|
'Frame should not be claimed when a longer-matched ' +
|
||||||
'registration exists');
|
'registration exists');
|
||||||
frame.remove();
|
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 ' +
|
}, 'Test claim client when there\'s a longer-matched registration not ' +
|
||||||
'already used by the page');
|
'already used by the page');
|
||||||
|
|
|
@ -30,9 +30,13 @@ promise_test(function(t) {
|
||||||
'fetch() should not be intercepted.'))
|
'fetch() should not be intercepted.'))
|
||||||
// Register a service worker.
|
// Register a service worker.
|
||||||
.then(() => service_worker_unregister_and_register(t, script, scope))
|
.then(() => service_worker_unregister_and_register(t, script, scope))
|
||||||
.then(r => worker = r.installing)
|
.then(r => {
|
||||||
.then(() => wait_for_state(t, worker, 'activated'))
|
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.
|
// Let the service worker claim the iframe and the shared worker.
|
||||||
.then(() => {
|
.then(() => {
|
||||||
var channel = new MessageChannel();
|
var channel = new MessageChannel();
|
||||||
|
@ -60,8 +64,7 @@ promise_test(function(t) {
|
||||||
'fetch() in the shared worker should be intercepted.'))
|
'fetch() in the shared worker should be intercepted.'))
|
||||||
|
|
||||||
// Cleanup this testcase.
|
// Cleanup this testcase.
|
||||||
.then(() => frame.remove())
|
.then(() => frame.remove());
|
||||||
.then(() => service_worker_unregister_and_done(t, scope));
|
|
||||||
}, 'fetch() in SharedWorker should be intercepted after the client is claimed.')
|
}, 'fetch() in SharedWorker should be intercepted after the client is claimed.')
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -13,6 +13,10 @@ promise_test(function(t) {
|
||||||
var worker, sw_registration, frame;
|
var worker, sw_registration, frame;
|
||||||
return service_worker_unregister_and_register(t, url1, scope)
|
return service_worker_unregister_and_register(t, url1, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -50,9 +54,6 @@ promise_test(function(t) {
|
||||||
'Frame1 controller scriptURL should be changed to url2');
|
'Frame1 controller scriptURL should be changed to url2');
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return sw_registration.unregister();
|
return sw_registration.unregister();
|
||||||
})
|
|
||||||
.then(function() {
|
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Test worker claims client which is using another registration');
|
}, 'Test worker claims client which is using another registration');
|
||||||
|
|
||||||
|
@ -63,6 +64,10 @@ promise_test(function(t) {
|
||||||
var frame, worker;
|
var frame, worker;
|
||||||
return service_worker_unregister_and_register(t, url1, scope)
|
return service_worker_unregister_and_register(t, url1, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -91,7 +96,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Test for the waiting worker claims a client which is using the the ' +
|
}, 'Test for the waiting worker claims a client which is using the the ' +
|
||||||
'same registration');
|
'same registration');
|
||||||
|
|
|
@ -54,6 +54,10 @@ promise_test(function(t) {
|
||||||
return service_worker_unregister_and_register(
|
return service_worker_unregister_and_register(
|
||||||
t, 'resources/clients-matchall-worker.js', scope)
|
t, 'resources/clients-matchall-worker.js', scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() { return with_iframe(iframe_url); })
|
.then(function() { return with_iframe(iframe_url); })
|
||||||
|
@ -66,9 +70,7 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
});
|
||||||
})
|
|
||||||
.catch(unreached_rejection(t));
|
|
||||||
}, 'Verify matchAll() with window client type');
|
}, 'Verify matchAll() with window client type');
|
||||||
|
|
||||||
promise_test(function(t) {
|
promise_test(function(t) {
|
||||||
|
@ -76,6 +78,10 @@ promise_test(function(t) {
|
||||||
return service_worker_unregister_and_register(
|
return service_worker_unregister_and_register(
|
||||||
t, 'resources/clients-matchall-worker.js', scope)
|
t, 'resources/clients-matchall-worker.js', scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() { return with_iframe(iframe_url); })
|
.then(function() { return with_iframe(iframe_url); })
|
||||||
|
@ -112,7 +118,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Verify matchAll() with {window, sharedworker, worker} client types');
|
}, 'Verify matchAll() with {window, sharedworker, worker} client types');
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,8 @@ function matchAllOrderTest(t, opts) {
|
||||||
let frameResultList;
|
let frameResultList;
|
||||||
let extraWindowResult;
|
let extraWindowResult;
|
||||||
return service_worker_unregister_and_register(t, script, opts.scope).then(swr => {
|
return service_worker_unregister_and_register(t, script, opts.scope).then(swr => {
|
||||||
|
t.add_cleanup(() => service_worker_unregister(t, opts.scope));
|
||||||
|
|
||||||
worker = swr.installing;
|
worker = swr.installing;
|
||||||
return wait_for_state(t, worker, 'activated');
|
return wait_for_state(t, worker, 'activated');
|
||||||
}).then(_ => {
|
}).then(_ => {
|
||||||
|
@ -143,8 +145,6 @@ function matchAllOrderTest(t, opts) {
|
||||||
}).then(_ => {
|
}).then(_ => {
|
||||||
frameResultList.forEach(result => result.top.remove());
|
frameResultList.forEach(result => result.top.remove());
|
||||||
extraWindowResult.top.remove();
|
extraWindowResult.top.remove();
|
||||||
}).then(_ => {
|
|
||||||
return service_worker_unregister_and_done(t, opts.scope);
|
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
if (frameResultList) {
|
if (frameResultList) {
|
||||||
frameResultList.forEach(result => result.top.remove());
|
frameResultList.forEach(result => result.top.remove());
|
||||||
|
|
|
@ -13,6 +13,10 @@ promise_test(function(t) {
|
||||||
var controller;
|
var controller;
|
||||||
return service_worker_unregister(t, scope)
|
return service_worker_unregister(t, scope)
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return with_iframe(scope);
|
return with_iframe(scope);
|
||||||
})
|
})
|
||||||
.then(function(f) {
|
.then(function(f) {
|
||||||
|
@ -48,7 +52,6 @@ promise_test(function(t) {
|
||||||
.then(function(frameRegistration) {
|
.then(function(frameRegistration) {
|
||||||
assert_equals(frameRegistration.active, controller);
|
assert_equals(frameRegistration.active, controller);
|
||||||
frame.remove();
|
frame.remove();
|
||||||
service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'controller is set upon reload after registration');
|
}, 'controller is set upon reload after registration');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -32,6 +32,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, SCOPE);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -105,7 +109,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
service_worker_unregister_and_done(t, SCOPE);
|
|
||||||
});
|
});
|
||||||
}, 'Verify CSP control of fetch() in a Service Worker');
|
}, 'Verify CSP control of fetch() in a Service Worker');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -15,6 +15,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, worker, scope)
|
return service_worker_unregister_and_register(t, worker, scope)
|
||||||
.then(function(reg) {
|
.then(function(reg) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, reg.installing, 'activated');
|
return wait_for_state(t, reg.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() { return with_iframe(scope); })
|
.then(function() { return with_iframe(scope); })
|
||||||
|
@ -30,7 +34,6 @@ promise_test(function(t) {
|
||||||
.then(function(response) {
|
.then(function(response) {
|
||||||
assert_equals(response, 'intercepted by service worker');
|
assert_equals(response, 'intercepted by service worker');
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'Service Worker should respond to fetch event after the hash changes');
|
}, '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)
|
return service_worker_unregister_and_register(t, worker, scope)
|
||||||
.then(function(reg) {
|
.then(function(reg) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, reg.installing, 'activated');
|
return wait_for_state(t, reg.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() { return with_iframe(scope); })
|
.then(function() { return with_iframe(scope); })
|
||||||
|
@ -58,7 +65,6 @@ promise_test(function(t) {
|
||||||
.then(function(response) {
|
.then(function(response) {
|
||||||
assert_equals(response, 'intercepted by service worker');
|
assert_equals(response, 'intercepted by service worker');
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'Service Worker should respond to fetch event after the pushState');
|
}, 'Service Worker should respond to fetch event after the pushState');
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -27,7 +31,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(message) {
|
.then(function(message) {
|
||||||
assert_equals(message, 'PASS');
|
assert_equals(message, 'PASS');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'Calling respondWith asynchronously throws an exception');
|
}, 'Calling respondWith asynchronously throws an exception');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -22,6 +22,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -34,7 +38,6 @@ promise_test(function(t) {
|
||||||
.then(function(result) {
|
.then(function(result) {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
assert_equals(result, 'PASS');
|
assert_equals(result, 'PASS');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Rejecting the fetch event or using preventDefault() causes a network ' +
|
}, 'Rejecting the fetch event or using preventDefault() causes a network ' +
|
||||||
'error');
|
'error');
|
||||||
|
|
|
@ -22,6 +22,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -34,7 +38,6 @@ promise_test(function(t) {
|
||||||
.then(function(result) {
|
.then(function(result) {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
assert_equals(result, 'PASS');
|
assert_equals(result, 'PASS');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'respondWith() takes either a Response or a promise that resolves ' +
|
}, 'respondWith() takes either a Response or a promise that resolves ' +
|
||||||
'with a Response. Other values should raise a network error.');
|
'with a Response. Other values should raise a network error.');
|
||||||
|
|
|
@ -10,6 +10,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
return service_worker_unregister_and_register(t, script, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -28,7 +32,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(message) {
|
.then(function(message) {
|
||||||
assert_equals(message, 'PASS');
|
assert_equals(message, 'PASS');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'respondWith() invokes stopImmediatePropagation()');
|
}, 'respondWith() invokes stopImmediatePropagation()');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -12,6 +12,10 @@ promise_test(function(t) {
|
||||||
var iframe;
|
var iframe;
|
||||||
return service_worker_unregister_and_register(t, workerscript, scope)
|
return service_worker_unregister_and_register(t, workerscript, scope)
|
||||||
.then(function(reg) {
|
.then(function(reg) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, reg.installing, 'activated')
|
return wait_for_state(t, reg.installing, 'activated')
|
||||||
.then(() => reg.active);
|
.then(() => reg.active);
|
||||||
})
|
})
|
||||||
|
@ -27,7 +31,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(frame) {
|
.then(function(frame) {
|
||||||
assert_true(frame.contentDocument.body.innerHTML.includes("intercepted"));
|
assert_true(frame.contentDocument.body.innerHTML.includes("intercepted"));
|
||||||
service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'Fetch event handler throws after a successful respondWith()');
|
}, 'Fetch event handler throws after a successful respondWith()');
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,8 @@ promise_test(function(t) {
|
||||||
var frame;
|
var frame;
|
||||||
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(() => service_worker_unregister(t, SCOPE));
|
||||||
|
|
||||||
worker = registration.installing;
|
worker = registration.installing;
|
||||||
return wait_for_state(t, worker, 'activated');
|
return wait_for_state(t, worker, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -181,7 +183,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
service_worker_unregister_and_done(t, SCOPE);
|
|
||||||
});
|
});
|
||||||
}, 'Verify redirect mode of Fetch API and ServiceWorker FetchEvent.');
|
}, 'Verify redirect mode of Fetch API and ServiceWorker FetchEvent.');
|
||||||
|
|
||||||
|
@ -208,6 +209,8 @@ promise_test(function(t) {
|
||||||
var frame;
|
var frame;
|
||||||
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(() => service_worker_unregister(t, SCOPE));
|
||||||
|
|
||||||
worker = registration.installing;
|
worker = registration.installing;
|
||||||
return wait_for_state(t, worker, 'activated');
|
return wait_for_state(t, worker, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -275,7 +278,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
service_worker_unregister_and_done(t, SCOPE);
|
|
||||||
});
|
});
|
||||||
}, 'Verify redirected of Response(Fetch API) and ServiceWorker FetchEvent.');
|
}, 'Verify redirected of Response(Fetch API) and ServiceWorker FetchEvent.');
|
||||||
|
|
||||||
|
@ -302,6 +304,8 @@ promise_test(function(t) {
|
||||||
var frame;
|
var frame;
|
||||||
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
return service_worker_unregister_and_register(t, SCRIPT, SCOPE)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(() => service_worker_unregister(t, SCOPE));
|
||||||
|
|
||||||
worker = registration.installing;
|
worker = registration.installing;
|
||||||
return wait_for_state(t, worker, 'activated');
|
return wait_for_state(t, worker, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -375,7 +379,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
service_worker_unregister_and_done(t, SCOPE);
|
|
||||||
});
|
});
|
||||||
}, 'Verify redirected of Response(Fetch API), Cache API and ServiceWorker ' +
|
}, 'Verify redirected of Response(Fetch API), Cache API and ServiceWorker ' +
|
||||||
'FetchEvent.');
|
'FetchEvent.');
|
||||||
|
|
|
@ -15,6 +15,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, expected_url, scope)
|
return service_worker_unregister_and_register(t, expected_url, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
registration = r;
|
registration = r;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -85,8 +89,6 @@ promise_test(function(t) {
|
||||||
'waiting should be null after activated.');
|
'waiting should be null after activated.');
|
||||||
assert_equals(registration.active.scriptURL, expected_url,
|
assert_equals(registration.active.scriptURL, expected_url,
|
||||||
'active should still exist after update found.');
|
'active should still exist after update found.');
|
||||||
|
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Trigger multiple updates.');
|
}, 'Trigger multiple updates.');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -17,7 +17,11 @@ promise_test(t => {
|
||||||
let slowURL = url + '&slow';
|
let slowURL = url + '&slow';
|
||||||
let frame;
|
let frame;
|
||||||
return service_worker_unregister_and_register(t, script, scope)
|
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(_ => with_iframe(scope))
|
||||||
.then(f => {
|
.then(f => {
|
||||||
frame = f;
|
frame = f;
|
||||||
|
@ -39,7 +43,6 @@ promise_test(t => {
|
||||||
assert_greater_than(slowURLTime, urlTime + 1000,
|
assert_greater_than(slowURLTime, urlTime + 1000,
|
||||||
'Slow service worker request should measure increased delay.');
|
'Slow service worker request should measure increased delay.');
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
})
|
})
|
||||||
}, 'empty service worker fetch event included in performance timings');
|
}, 'empty service worker fetch event included in performance timings');
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,11 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(
|
.then(
|
||||||
function(registration) {
|
function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, registration.scope);
|
||||||
|
});
|
||||||
|
|
||||||
assert_unreached('register should fail');
|
assert_unreached('register should fail');
|
||||||
service_worker_unregister_and_done(t, registration.scope);
|
|
||||||
},
|
},
|
||||||
function(error) {
|
function(error) {
|
||||||
assert_equals(error.name, 'SecurityError',
|
assert_equals(error.name, 'SecurityError',
|
||||||
|
|
|
@ -16,6 +16,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return navigator.serviceWorker.register(bad_script, {scope: scope})
|
return navigator.serviceWorker.register(bad_script, {scope: scope})
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
registration = r;
|
registration = r;
|
||||||
assert_equals(registration.installing.scriptURL,
|
assert_equals(registration.installing.scriptURL,
|
||||||
normalizeURL(bad_script));
|
normalizeURL(bad_script));
|
||||||
|
@ -47,9 +51,6 @@ promise_test(function(t) {
|
||||||
normalizeURL(good_script));
|
normalizeURL(good_script));
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
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 ' +
|
}, 'register worker that calls waitUntil with a promise that never ' +
|
||||||
'resolves in oninstall');
|
'resolves in oninstall');
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,10 @@ promise_test(function(t) {
|
||||||
var url = 'resources/postmessage-to-client-worker.js';
|
var url = 'resources/postmessage-to-client-worker.js';
|
||||||
return service_worker_unregister_and_register(t, url, scope)
|
return service_worker_unregister_and_register(t, url, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -35,9 +39,6 @@ promise_test(function(t) {
|
||||||
});
|
});
|
||||||
worker.postMessage('PING');
|
worker.postMessage('PING');
|
||||||
});
|
});
|
||||||
})
|
|
||||||
.then(function() {
|
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Test MessageEvent supplants ServiceWorkerMessageEvent.');
|
}, 'Test MessageEvent supplants ServiceWorkerMessageEvent.');
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, service_worker, scope)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -24,7 +28,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
assert_equals(data, 'intercepted by service worker');
|
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');
|
}, '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)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -47,7 +54,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
assert_equals(data, 'worker loading intercepted by service worker');
|
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');
|
}, '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)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -70,7 +80,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
assert_equals(data, 'worker loading intercepted by service worker');
|
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');
|
}, 'Verify importScripts from SharedWorker is controlled by a Service Worker');
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -33,6 +33,10 @@ promise_test(function(t) {
|
||||||
});
|
});
|
||||||
return service_worker_unregister_and_register(t, url1, scope)
|
return service_worker_unregister_and_register(t, url1, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -60,7 +64,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
frame.remove();
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Test skipWaiting when a installed worker is waiting');
|
}, 'Test skipWaiting when a installed worker is waiting');
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,10 @@ promise_test(function(t) {
|
||||||
var sw_registration, activated_worker, waiting_worker;
|
var sw_registration, activated_worker, waiting_worker;
|
||||||
return service_worker_unregister_and_register(t, url1, scope)
|
return service_worker_unregister_and_register(t, url1, scope)
|
||||||
.then(function(registration) {
|
.then(function(registration) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
sw_registration = registration;
|
sw_registration = registration;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -48,7 +52,6 @@ promise_test(function(t) {
|
||||||
'Worker with url2 should be redundant');
|
'Worker with url2 should be redundant');
|
||||||
assert_equals(sw_registration.active.scriptURL, normalizeURL(url3),
|
assert_equals(sw_registration.active.scriptURL, normalizeURL(url3),
|
||||||
'Worker with url3 should be activated');
|
'Worker with url3 should be activated');
|
||||||
return service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Test skipWaiting with both active and waiting workers');
|
}, 'Test skipWaiting with both active and waiting workers');
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, expected_url, scope)
|
return service_worker_unregister_and_register(t, expected_url, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
registration = r;
|
registration = r;
|
||||||
return wait_for_state(t, registration.installing, 'activated');
|
return wait_for_state(t, registration.installing, 'activated');
|
||||||
})
|
})
|
||||||
|
@ -41,7 +45,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
frame.remove();
|
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');
|
}, 'Update should be triggered after a functional event when last update time is over 24 hours');
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,11 @@ settings.reduce((p, s) => {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
// Register a service worker.
|
// Register a service worker.
|
||||||
.then(_ => service_worker_unregister_and_register(t, script, scope))
|
.then(_ => service_worker_unregister_and_register(t, script, scope))
|
||||||
.then(r => swr = r)
|
.then(r => {
|
||||||
.then(_ => wait_for_update(t, swr))
|
t.add_cleanup(() => service_worker_unregister(t, scope));
|
||||||
|
swr = r;
|
||||||
|
return wait_for_update(t, swr);
|
||||||
|
})
|
||||||
.then(w => sw = w)
|
.then(w => sw = w)
|
||||||
.then(_ => wait_for_state(t, sw, 'activated'))
|
.then(_ => wait_for_state(t, sw, 'activated'))
|
||||||
.then(_ => assert_array_equals([swr.active,
|
.then(_ => assert_array_equals([swr.active,
|
||||||
|
@ -64,10 +67,7 @@ settings.reduce((p, s) => {
|
||||||
swr.waiting,
|
swr.waiting,
|
||||||
swr.installing],
|
swr.installing],
|
||||||
[sw, null, null]);
|
[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})`));
|
}, `Test(cors: ${s.cors}, main: ${s.main}, imported: ${s.imported})`));
|
||||||
}, Promise.resolve());
|
}, Promise.resolve());
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ function navigate_test(override_parameters) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var cleanup = function() {
|
test.add_cleanup(function() {
|
||||||
if (client_frame && client_frame) {
|
if (client_frame && client_frame) {
|
||||||
client_frame.remove();
|
client_frame.remove();
|
||||||
}
|
}
|
||||||
|
@ -127,9 +127,9 @@ function navigate_test(override_parameters) {
|
||||||
if (registration) {
|
if (registration) {
|
||||||
return registration.unregister();
|
return registration.unregister();
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
var test_body = with_iframe(parameters.src_url)
|
return with_iframe(parameters.src_url)
|
||||||
.then(function(frame) {
|
.then(function(frame) {
|
||||||
client_frame = frame;
|
client_frame = frame;
|
||||||
return service_worker_unregister_and_register(
|
return service_worker_unregister_and_register(
|
||||||
|
@ -161,17 +161,6 @@ function navigate_test(override_parameters) {
|
||||||
.then(function(response) {
|
.then(function(response) {
|
||||||
assert_equals(response.data, parameters.expected);
|
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);
|
}, parameters.description);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -12,6 +12,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, service_worker, scope)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -28,7 +32,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
assert_equals(data, 'worker loading intercepted by service worker');
|
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');
|
}, '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)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -55,7 +62,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
assert_equals(data, 'dummy-worker-script loaded');
|
assert_equals(data, 'dummy-worker-script loaded');
|
||||||
service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Verify worker script intercepted by same-origin response succeeds');
|
}, 'Verify worker script intercepted by same-origin response succeeds');
|
||||||
|
|
||||||
|
@ -72,10 +78,7 @@ promise_test(function(t) {
|
||||||
var w = new Worker(worker_url);
|
var w = new Worker(worker_url);
|
||||||
var watcher = new EventWatcher(t, w, ['message', 'error']);
|
var watcher = new EventWatcher(t, w, ['message', 'error']);
|
||||||
return watcher.wait_for('error');
|
return watcher.wait_for('error');
|
||||||
})
|
});
|
||||||
.then(function() {
|
|
||||||
service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
|
||||||
}, 'Verify worker script intercepted by cors response fails');
|
}, 'Verify worker script intercepted by cors response fails');
|
||||||
|
|
||||||
promise_test(function(t) {
|
promise_test(function(t) {
|
||||||
|
@ -85,16 +88,17 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, service_worker, scope)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
var w = new Worker(worker_url);
|
var w = new Worker(worker_url);
|
||||||
var watcher = new EventWatcher(t, w, ['message', 'error']);
|
var watcher = new EventWatcher(t, w, ['message', 'error']);
|
||||||
return watcher.wait_for('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');
|
}, 'Verify worker script intercepted by no-cors cross-origin response fails');
|
||||||
|
|
||||||
promise_test(function(t) {
|
promise_test(function(t) {
|
||||||
|
@ -110,6 +114,10 @@ promise_test(function(t) {
|
||||||
|
|
||||||
return service_worker_unregister_and_register(t, service_worker, scope)
|
return service_worker_unregister_and_register(t, service_worker, scope)
|
||||||
.then(function(r) {
|
.then(function(r) {
|
||||||
|
t.add_cleanup(function() {
|
||||||
|
return service_worker_unregister(t, scope);
|
||||||
|
});
|
||||||
|
|
||||||
return wait_for_state(t, r.installing, 'activated');
|
return wait_for_state(t, r.installing, 'activated');
|
||||||
})
|
})
|
||||||
.then(function() { return with_iframe(subdoc_url); })
|
.then(function() { return with_iframe(subdoc_url); })
|
||||||
|
@ -126,7 +134,6 @@ promise_test(function(t) {
|
||||||
})
|
})
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
assert_equals(data.results, 'finish');
|
assert_equals(data.results, 'finish');
|
||||||
service_worker_unregister_and_done(t, scope);
|
|
||||||
});
|
});
|
||||||
}, 'Verify worker loads from controlled document are intercepted by Service Worker');
|
}, 'Verify worker loads from controlled document are intercepted by Service Worker');
|
||||||
|
|
||||||
|
|
30
tests/wpt/web-platform-tests/tools/ci/start.sh
Normal file
30
tests/wpt/web-platform-tests/tools/ci/start.sh
Normal file
|
@ -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} &
|
|
@ -17,19 +17,16 @@ REVISION=${3:-FETCH_HEAD}
|
||||||
BROWSER=${4:-all}
|
BROWSER=${4:-all}
|
||||||
CHANNEL=${5:-nightly}
|
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 ~
|
cd ~
|
||||||
|
|
||||||
mkdir web-platform-tests
|
mkdir web-platform-tests
|
||||||
cd web-platform-tests
|
cd web-platform-tests
|
||||||
|
|
||||||
git init
|
git init
|
||||||
git remote add origin ${REMOTE}
|
git remote add origin ${REMOTE}
|
||||||
|
|
||||||
# Initially we just fetch 50 commits in order to save several minutes of fetching
|
# 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}` ]];
|
if [[ ! `git rev-parse --verify -q ${REVISION}` ]];
|
||||||
then
|
then
|
||||||
|
@ -40,27 +37,4 @@ then
|
||||||
fi
|
fi
|
||||||
git checkout -b build ${REVISION}
|
git checkout -b build ${REVISION}
|
||||||
|
|
||||||
sudo sh -c './wpt make-hosts-file >> /etc/hosts'
|
source tools/ci/start.sh
|
||||||
|
|
||||||
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} &
|
|
||||||
|
|
|
@ -577,7 +577,10 @@ class MultiDict(dict):
|
||||||
|
|
||||||
:param key: The key to lookup
|
:param key: The key to lookup
|
||||||
"""
|
"""
|
||||||
return dict.__getitem__(self, key)
|
if key in self:
|
||||||
|
return dict.__getitem__(self, key)
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_field_storage(cls, fs):
|
def from_field_storage(cls, fs):
|
||||||
|
|
|
@ -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) {
|
function testAnimationSampleMatrices(animation, idlName, testSamples) {
|
||||||
const target = animation.effect.target;
|
const target = animation.effect.target;
|
||||||
for (const testSample of testSamples) {
|
for (const testSample of testSamples) {
|
||||||
animation.currentTime = testSample.time;
|
animation.currentTime = testSample.time;
|
||||||
const actual = getComputedStyle(target)[idlName];
|
const actual = RoundMatrix(getComputedStyle(target)[idlName]);
|
||||||
const expected = createMatrixFromArray(testSample.expected);
|
const expected = RoundMatrix(createMatrixFromArray(testSample.expected));
|
||||||
assert_matrix_equals(actual, expected,
|
assert_matrix_equals(actual, expected,
|
||||||
`The value should be ${expected} at`
|
`The value should be ${expected} at`
|
||||||
+ ` ${testSample.time}ms but got ${actual}`);
|
+ ` ${testSample.time}ms but got ${actual}`);
|
||||||
|
|
|
@ -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>
|
|
Loading…
Add table
Add a link
Reference in a new issue