зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1577481 [wpt PR 18745] - Remove service-workers/stub-* files, a=testonly
Automatic update from web-platform-tests Remove service-workers/stub-* files (#18745) This originates in commit 5ac8b780247e02235b3d8d344428886b20e5b8b0 where specgen.json and the genereated stubs were added. In effect, these stubs don't do anything, and the idea of generating tests from the spec hasn't been realized. Part 1 of https://github.com/web-platform-tests/rfcs/pull/27. -- wpt-commits: 9d89fa83724d2dd6a1cd82975934ff55b8770b42 wpt-pr: 18745
This commit is contained in:
Родитель
d966d912e1
Коммит
14f74ad0d9
|
@ -1,658 +0,0 @@
|
|||
{
|
||||
"sections": [
|
||||
{
|
||||
"href": "#introduction",
|
||||
"id": "introduction",
|
||||
"hash": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"secno": "1",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#about",
|
||||
"id": "about",
|
||||
"hash": "8d3cf149aa73cff52328509ebbaffd933e8fb6af",
|
||||
"secno": "1.1",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#dependencies",
|
||||
"id": "dependencies",
|
||||
"hash": "1355f2d7ec9bf4e617ee632c0db44f834c96435b",
|
||||
"secno": "1.2",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#motivations",
|
||||
"id": "motivations",
|
||||
"hash": "92d899bc1e63a170d2324638d16f580b97b4f4d6",
|
||||
"secno": "1.3",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#concepts",
|
||||
"id": "concepts",
|
||||
"hash": "589023372dc033b0a77be1cd01f54f5f8c3ebfa8",
|
||||
"secno": "2",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#document-context",
|
||||
"id": "document-context",
|
||||
"hash": "34feeb18dea978349a2f76e6b17c127123b3db74",
|
||||
"secno": "3",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-obj",
|
||||
"id": "service-worker-obj",
|
||||
"hash": "6cbd0107199072ab86b36e72d08d5465b42e6da8",
|
||||
"secno": "3.1",
|
||||
"testPageHash": "8dbbc9aa4300f0203524f3e405dbf7ca462e7164",
|
||||
"testPagePath": "stub-3.1-service-worker-obj.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-scope",
|
||||
"id": "service-worker-scope",
|
||||
"hash": "136f25ef227515a7be9b32c44967f68b34ad8924",
|
||||
"secno": "3.1.1",
|
||||
"testPageHash": "965a00b32d56192330aa9f6337072bb3633ad382",
|
||||
"testPagePath": "stub-3.1.1-service-worker-scope.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-url",
|
||||
"id": "service-worker-url",
|
||||
"hash": "df66a1b4b3bfa3e7ab96fd491a6829fab1d18a88",
|
||||
"secno": "3.1.2",
|
||||
"testPageHash": "92f6aed1437bb39c5941b495ac6c5f342c025b38",
|
||||
"testPagePath": "stub-3.1.2-service-worker-url.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-state",
|
||||
"id": "service-worker-state",
|
||||
"hash": "8f80f2b4cbb1c228867c9dd90c05cbecfc92dd77",
|
||||
"secno": "3.1.3",
|
||||
"testPageHash": "4aad1dc47572879fdc2c79a814ad21e1ef9a64ec",
|
||||
"testPagePath": "stub-3.1.3-service-worker-state.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-on-state-change",
|
||||
"id": "service-worker-on-state-change",
|
||||
"hash": "0f8fd9d1431deacea72fe739f42992ab5a396bf2",
|
||||
"secno": "3.1.4",
|
||||
"testPageHash": "6bb309bccc1e7c74ade7fc4c6e400bafb60daceb",
|
||||
"testPagePath": "stub-3.1.4-service-worker-on-state-change.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker",
|
||||
"id": "navigator-service-worker",
|
||||
"hash": "22f1ebbafca6976d0f4814b0fbb8f173bf919f06",
|
||||
"secno": "3.2",
|
||||
"testPageHash": "6d597735816a09ec774150029ed5136198f52ab7",
|
||||
"testPagePath": "stub-3.2-navigator-service-worker.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-installing",
|
||||
"id": "navigator-service-worker-installing",
|
||||
"hash": "9675c3cdf5ba4b4155284e06a19e4de631645509",
|
||||
"secno": "3.2.1",
|
||||
"testPageHash": "2c8e56e74c130104e395de46bad20fb5d3021d95",
|
||||
"testPagePath": "stub-3.2.1-navigator-service-worker-installing.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-waiting",
|
||||
"id": "navigator-service-worker-waiting",
|
||||
"hash": "88b4db92cc49109e6a15ddebdd219690d9648e76",
|
||||
"secno": "3.2.2",
|
||||
"testPageHash": "1cf6ed58bf5ecf963fed8c3d9211b853dab564e2",
|
||||
"testPagePath": "stub-3.2.2-navigator-service-worker-waiting.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-active",
|
||||
"id": "navigator-service-worker-active",
|
||||
"hash": "0da48e885c77da60d1837197780049904789e3cb",
|
||||
"secno": "3.2.3",
|
||||
"testPageHash": "f5dca8c6eb5f29a0f9a5f06e25861e7f3106cc67",
|
||||
"testPagePath": "stub-3.2.3-navigator-service-worker-active.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-controller",
|
||||
"id": "navigator-service-worker-controller",
|
||||
"hash": "293433ccb7bb2a22d8d5a81e788892e071b25e65",
|
||||
"secno": "3.2.4",
|
||||
"testPageHash": "6452f431d0765d7aa3135d18fee43e6664dcbb12",
|
||||
"testPagePath": "stub-3.2.4-navigator-service-worker-controller.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-ready",
|
||||
"id": "navigator-service-worker-ready",
|
||||
"hash": "6240fde8d7168beeb95f4f36aa9e143319b2061b",
|
||||
"secno": "3.2.5",
|
||||
"testPageHash": "ae4fd694c88bab72f338d97bf96b7d23e2e83e87",
|
||||
"testPagePath": "stub-3.2.5-navigator-service-worker-ready.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-getAll",
|
||||
"id": "navigator-service-worker-getAll",
|
||||
"hash": "292ee3af2cc8fadc24302446809d04bf2e9811a5",
|
||||
"secno": "3.2.6",
|
||||
"testPageHash": "4096ae712cc3e753456fbe05bb4d0cfc4399d2c9",
|
||||
"testPagePath": "stub-3.2.6-navigator-service-worker-getAll.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-register",
|
||||
"id": "navigator-service-worker-register",
|
||||
"hash": "c999dc5f67126c9f0f02b25fd943a34b48cff618",
|
||||
"secno": "3.2.7",
|
||||
"testPageHash": "bde900b97dbb08b053ff8115775ea3b79a124b6e",
|
||||
"testPagePath": "stub-3.2.7-navigator-service-worker-register.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-unregister",
|
||||
"id": "navigator-service-worker-unregister",
|
||||
"hash": "fd196f926f181563855e4683cc995405c1e611d0",
|
||||
"secno": "3.2.8",
|
||||
"testPageHash": "dbd99a1dcbcb629431617790a305e840495049eb",
|
||||
"testPagePath": "stub-3.2.8-navigator-service-worker-unregister.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-onupdatefound",
|
||||
"id": "navigator-service-worker-onupdatefound",
|
||||
"hash": "2bb5aabaca24a68f9e6b4c4443968178eb1ccfe8",
|
||||
"secno": "3.2.9",
|
||||
"testPageHash": "eef0c1c39577abefb3654a6e9917ff2da657871b",
|
||||
"testPagePath": "stub-3.2.9-navigator-service-worker-onupdatefound.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-oncontrollerchange",
|
||||
"id": "navigator-service-worker-oncontrollerchange",
|
||||
"hash": "c89a4ffba10d9285e07c38c28718719d87053994",
|
||||
"secno": "3.2.10",
|
||||
"testPageHash": "35e0ce2b8f4527ebbd75d4dfa3436fd7f8c79792",
|
||||
"testPagePath": "stub-3.2.10-navigator-service-worker-oncontrollerchange.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-onreloadpage",
|
||||
"id": "navigator-service-worker-onreloadpage",
|
||||
"hash": "424441910abf2e1bdc3db658fe46827f7abe60a4",
|
||||
"secno": "3.2.11",
|
||||
"testPageHash": "ae614de17e5f339b65f77cafa6e0f5625491abfb",
|
||||
"testPagePath": "stub-3.2.11-navigator-service-worker-onreloadpage.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#navigator-service-worker-onerror",
|
||||
"id": "navigator-service-worker-onerror",
|
||||
"hash": "710f7fcd2f5340147b9e030bc5932b8242cef828",
|
||||
"secno": "3.2.12",
|
||||
"testPageHash": "cd62779e27151d55f14ac6ab7aa41dcf723e0ac7",
|
||||
"testPagePath": "stub-3.2.12-navigator-service-worker-onerror.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#execution-context",
|
||||
"id": "execution-context",
|
||||
"hash": "ddf24f0adf58237e264c3c43cb7ab07af3013c9d",
|
||||
"secno": "4",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope",
|
||||
"id": "service-worker-global-scope",
|
||||
"hash": "e6b8bb7f99c125f4226fc5b6c51cf03a7437f2ef",
|
||||
"secno": "4.1",
|
||||
"testPageHash": "2f596b6b07bcfb71c01d75f725eb52c84e9c69dd",
|
||||
"testPagePath": "stub-4.1-service-worker-global-scope.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-caches",
|
||||
"id": "service-worker-global-scope-caches",
|
||||
"hash": "43d3c9f441b3a7abd0d3a7f55d93faaceeb7d97d",
|
||||
"secno": "4.1.1",
|
||||
"testPageHash": "f19b91c887f6312688b66b1988147a599cd9470f",
|
||||
"testPagePath": "stub-4.1.1-service-worker-global-scope-caches.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-clients",
|
||||
"id": "service-worker-global-scope-clients",
|
||||
"hash": "cb83230107645229da9776ed0fc9f7bc6fcce747",
|
||||
"secno": "4.1.2",
|
||||
"testPageHash": "45b3aae572f7161748fa98e97b4f2b738c3dcfef",
|
||||
"testPagePath": "stub-4.1.2-service-worker-global-scope-clients.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-scope",
|
||||
"id": "service-worker-global-scope-scope",
|
||||
"hash": "08c808048b647aa9d4cc0b0a0f70b06ca89af4a3",
|
||||
"secno": "4.1.3",
|
||||
"testPageHash": "bfe7eaf8deb8de7d2ccfbba97640478b1c81d6c7",
|
||||
"testPagePath": "stub-4.1.3-service-worker-global-scope-scope.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-fetch",
|
||||
"id": "service-worker-global-scope-fetch",
|
||||
"hash": "b66133d8a2c67f9b10c274d5b05383ff76d2cd42",
|
||||
"secno": "4.1.4",
|
||||
"testPageHash": "2b1ffa915afddeb099dfff23f4ecf555b0710ed4",
|
||||
"testPagePath": "stub-4.1.4-service-worker-global-scope-fetch.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-update",
|
||||
"id": "service-worker-global-scope-update",
|
||||
"hash": "3ddf48cecb4d4a67a329248787dd220ce17f4eff",
|
||||
"secno": "4.1.5",
|
||||
"testPageHash": "15879bf45f460c0ab0c02793655096c1bca418a7",
|
||||
"testPagePath": "stub-4.1.5-service-worker-global-scope-update.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-unregister",
|
||||
"id": "service-worker-global-scope-unregister",
|
||||
"hash": "fff9ef2daa5689b38a17eeb9a6bd7071098ca778",
|
||||
"secno": "4.1.6",
|
||||
"testPageHash": "c4bf327228628b794db9c6f2eb17519e37cea6b9",
|
||||
"testPagePath": "stub-4.1.6-service-worker-global-scope-unregister.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-global-scope-onmessage",
|
||||
"id": "service-worker-global-scope-onmessage",
|
||||
"hash": "bc8f6aed2d515dc7f6b0757afa02f37899082668",
|
||||
"secno": "4.1.7",
|
||||
"testPageHash": "9e6f2732d21871ec06e9541ea881baf962f7cdf4",
|
||||
"testPagePath": "stub-4.1.7-service-worker-global-scope-onmessage.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#client",
|
||||
"id": "client",
|
||||
"hash": "47a1c10cd9e4db9a5c86d9bcf80477f771ea954c",
|
||||
"secno": "4.2",
|
||||
"testPageHash": "21d74c1af0b3176b029c9b62b37fe73436e0f197",
|
||||
"testPagePath": "stub-4.2-client.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#service-worker-clients",
|
||||
"id": "service-worker-clients",
|
||||
"hash": "c2c6f4873f07b53705a46b2bd44ba10f84dd2b56",
|
||||
"secno": "4.3",
|
||||
"testPageHash": "9c0366e6cfd28caaeaf940bad2b3c7ace93037f6",
|
||||
"testPagePath": "stub-4.3-service-worker-clients.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#get-serviced-method",
|
||||
"id": "get-serviced-method",
|
||||
"hash": "299abaa21cf096e423edfa19755987986f742a1f",
|
||||
"secno": "4.3.1",
|
||||
"testPageHash": "efeb1c2dc8144c30e6628cb56b3e532531ee1e88",
|
||||
"testPagePath": "stub-4.3.1-get-serviced-method.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#reloadall-method",
|
||||
"id": "reloadall-method",
|
||||
"hash": "bb4d775d261e69cbeaf65c123e949c24cf542ae7",
|
||||
"secno": "4.3.2",
|
||||
"testPageHash": "d1a4dde873b77201b4de745d2083bf63549b0b8b",
|
||||
"testPagePath": "stub-4.3.2-reloadall-method.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#request-objects",
|
||||
"id": "request-objects",
|
||||
"hash": "65ae6c08f720a2eedb7b140f5635a5ac46ddadfc",
|
||||
"secno": "4.4",
|
||||
"testPageHash": "ec493c70e8a0d8d3eeb0ecaef59610aed97d298e",
|
||||
"testPagePath": "stub-4.4-request-objects.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#response-objects",
|
||||
"id": "response-objects",
|
||||
"hash": "2efbff63c70ab92f93e4acd021409b9df4776882",
|
||||
"secno": "4.5",
|
||||
"testPageHash": "8340b69d62f111f56095c5fe9047d9215fa7aefc",
|
||||
"testPagePath": "stub-4.5-response-objects.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#abstract-response",
|
||||
"id": "abstract-response",
|
||||
"hash": "bddc306a9892c0bca43e8b361c1ee22b87759e23",
|
||||
"secno": "4.5.1",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#response",
|
||||
"id": "response",
|
||||
"hash": "6471d25755bdab0d4f72413f9367b7bb36c53a6f",
|
||||
"secno": "4.5.2",
|
||||
"testPageHash": "346d63cc7eb8ee412f5f704ba241205c8d437540",
|
||||
"testPagePath": "stub-4.5.2-response.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#header",
|
||||
"id": "header",
|
||||
"hash": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"secno": "4.5.3",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#opaque-response",
|
||||
"id": "opaque-response",
|
||||
"hash": "df5431f4fbd26d81f2d4f567309c6a7a26dbfd4a",
|
||||
"secno": "4.5.4",
|
||||
"testPageHash": "85373f290cf594f0f09eb0a76bc6ef6299be595f",
|
||||
"testPagePath": "stub-4.5.4-opaque-response.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#cors-response",
|
||||
"id": "cors-response",
|
||||
"hash": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"secno": "4.5.5",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#cache-objects",
|
||||
"id": "cache-objects",
|
||||
"hash": "001d0dfb8fbcbcb6443d1be2b722c9a84d6fd95b",
|
||||
"secno": "4.6",
|
||||
"testPageHash": "c1ef341d15a8c76d015eef57842ed10e62c02927",
|
||||
"testPagePath": "stub-4.6-cache-objects.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#cache-lifetimes",
|
||||
"id": "cache-lifetimes",
|
||||
"hash": "7c73698ca9b686a0314ddf368bf8ad4ca6af392f",
|
||||
"secno": "4.6.1",
|
||||
"testPageHash": "f3524320a98f2fbdc5d711de82770957a7f5ec4b",
|
||||
"testPagePath": "stub-4.6.1-cache-lifetimes.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#cache",
|
||||
"id": "cache",
|
||||
"hash": "bf1fe844577ab57a60eb550be24335a3321ca2ee",
|
||||
"secno": "4.6.2",
|
||||
"testPageHash": "c55b7b05c8e2f4b65722e16cdbcd78ffdfe1e4bf",
|
||||
"testPagePath": "stub-4.6.2-cache.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#cache-storage",
|
||||
"id": "cache-storage",
|
||||
"hash": "9cdaac070f56e55d66a89cd4b6e669a04aa73b82",
|
||||
"secno": "4.6.3",
|
||||
"testPageHash": "ee6902f170d94cc1e3a4a00f4c90e7e19c4dff95",
|
||||
"testPagePath": "stub-4.6.3-cache-storage.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#events",
|
||||
"id": "events",
|
||||
"hash": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"secno": "4.7",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#install-phase-event",
|
||||
"id": "install-phase-event",
|
||||
"hash": "8495382b418adbbed436b2002ab0155a3a295ef2",
|
||||
"secno": "4.7.1",
|
||||
"testPageHash": "e48e98d51936bd57d21903615203f2b78d3f4b12",
|
||||
"testPagePath": "stub-4.7.1-install-phase-event.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#wait-until-method",
|
||||
"id": "wait-until-method",
|
||||
"hash": "295fb5d4932396fd13365ed2fe57aa672f1f2a56",
|
||||
"secno": "4.7.1.1",
|
||||
"testPageHash": "c3769e51852b8438a97c39c50fa62351a73c4ee6",
|
||||
"testPagePath": "stub-4.7.1.1-wait-until-method.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#install-event",
|
||||
"id": "install-event",
|
||||
"hash": "3a0f6da1771c22ab21ddc00729433a4d95ac6782",
|
||||
"secno": "4.7.2",
|
||||
"testPageHash": "9a103cc461eaca3da75db583ce08f13ecd2b1a98",
|
||||
"testPagePath": "stub-4.7.2-install-event.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#install-event-section",
|
||||
"id": "install-event-section",
|
||||
"hash": "4631577df2efc1a4350000461629bc1ca93dbd14",
|
||||
"secno": "4.7.2.1",
|
||||
"testPageHash": "32f54e74bef784d2f0ac772b44abeee06573062d",
|
||||
"testPagePath": "stub-4.7.2.1-install-event-section.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#replace-method",
|
||||
"id": "replace-method",
|
||||
"hash": "b9093b05204d09748311023b4c737ede02ff8115",
|
||||
"secno": "4.7.2.2",
|
||||
"testPageHash": "372bed923f8c35c4923634ae27fa121919ac0fec",
|
||||
"testPagePath": "stub-4.7.2.2-replace-method.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#activate-event",
|
||||
"id": "activate-event",
|
||||
"hash": "ac3d03aa0ed961fb1122850aeab92c302c55ecd0",
|
||||
"secno": "4.7.3",
|
||||
"testPageHash": "6241762ab1d6f430fa9b7cc8f02a00e6591c6bc6",
|
||||
"testPagePath": "stub-4.7.3-activate-event.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#fetch-event",
|
||||
"id": "fetch-event",
|
||||
"hash": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"secno": "4.7.4",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#fetch-event-section",
|
||||
"id": "fetch-event-section",
|
||||
"hash": "ae24fda9664a3bd7b7fe2a8712ac469c3ee7128e",
|
||||
"secno": "4.7.4.1",
|
||||
"testPageHash": "393fc7b65e9f5afd18da666b6b206ccd639397cd",
|
||||
"testPagePath": "stub-4.7.4.1-fetch-event-section.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#respond-with-method",
|
||||
"id": "respond-with-method",
|
||||
"hash": "7e4f010e2ec1ea0500b435cf599ba58942164457",
|
||||
"secno": "4.7.4.2",
|
||||
"testPageHash": "31e0acd058b9a5b722ae9f405b50bc94d31596b8",
|
||||
"testPagePath": "stub-4.7.4.2-respond-with-method.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#default-method",
|
||||
"id": "default-method",
|
||||
"hash": "4d6f8f93b2e10ab0e486dbf464ff107ec1a6aa4c",
|
||||
"secno": "4.7.4.3",
|
||||
"testPageHash": "34e015c973887e2b3bf8b6db62f75d5d417a43cc",
|
||||
"testPagePath": "stub-4.7.4.3-default-method.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#is-reload-attribute",
|
||||
"id": "is-reload-attribute",
|
||||
"hash": "6e1afd9e8940e9cd38aa7de1ed57e8c5b1a60e3d",
|
||||
"secno": "4.7.4.4",
|
||||
"testPageHash": "703a6469782d37be3c25e2214f897d1064acca47",
|
||||
"testPagePath": "stub-4.7.4.4-is-reload-attribute.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#security-considerations",
|
||||
"id": "security-considerations",
|
||||
"hash": "5b02b143172647dd7f74f0464dffa7ec7d0e8f94",
|
||||
"secno": "5",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#origin-relativity",
|
||||
"id": "origin-relativity",
|
||||
"hash": "72bbbd7d3d43a859af6ff9f19353210ddfcc26de",
|
||||
"secno": "5.1",
|
||||
"testPageHash": "1c92607dfac57b0f59654d059a4a67e0f984b84d",
|
||||
"testPagePath": "stub-5.1-origin-relativity.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#cross-origin-resources",
|
||||
"id": "cross-origin-resources",
|
||||
"hash": "6176879ecfb5ae769679ceef4ee1e8889be8df92",
|
||||
"secno": "5.2",
|
||||
"testPageHash": "bcf85ba278c70c086645c416cee729ce753bc528",
|
||||
"testPagePath": "stub-5.2-cross-origin-resources.html",
|
||||
"testable": true
|
||||
},
|
||||
{
|
||||
"href": "#storage-considerations",
|
||||
"id": "storage-considerations",
|
||||
"hash": "e101cee2062749b1a73086492377458251a5e875",
|
||||
"secno": "6",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#extensibility",
|
||||
"id": "extensibility",
|
||||
"hash": "ef1b382bb89c52e01edad421b02b237765a21ce7",
|
||||
"secno": "7",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#algorithms",
|
||||
"id": "algorithms",
|
||||
"hash": "d130247eab1d368efea646ff369e65f6c0c19481",
|
||||
"secno": "8",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#registration-algorithm",
|
||||
"id": "registration-algorithm",
|
||||
"hash": "b688d090671c08ca17ea7cadc561e6d471ee099e",
|
||||
"secno": "8.1",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#update-algorithm",
|
||||
"id": "update-algorithm",
|
||||
"hash": "679a19fef428affc83103c1eec0dbd3be40c4e2a",
|
||||
"secno": "8.2",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#soft-update-algorithm",
|
||||
"id": "soft-update-algorithm",
|
||||
"hash": "8eb103f5cd0e595ee5e25f075e8c6239211e482a",
|
||||
"secno": "8.3",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#installation-algorithm",
|
||||
"id": "installation-algorithm",
|
||||
"hash": "5874d9247d979009b67aedf964ae097837cfb3d9",
|
||||
"secno": "8.4",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#activation-algorithm",
|
||||
"id": "activation-algorithm",
|
||||
"hash": "648b34baf6e7c2096a842e6d367949117843108e",
|
||||
"secno": "8.5",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#on-fetch-request-algorithm",
|
||||
"id": "on-fetch-request-algorithm",
|
||||
"hash": "e1da43671071ec307f99cd781fc9b46353f3adfd",
|
||||
"secno": "8.6",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#on-document-unload-algorithm",
|
||||
"id": "on-document-unload-algorithm",
|
||||
"hash": "8a7196b5dd04ad4fb9b96e16a52f4f7ac1906763",
|
||||
"secno": "8.7",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#unregistration-algorithm",
|
||||
"id": "unregistration-algorithm",
|
||||
"hash": "0114db166d42211d0d7ab4b8e77de64a9fc97517",
|
||||
"secno": "8.8",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#update-state-algorithm",
|
||||
"id": "update-state-algorithm",
|
||||
"hash": "2ed8a1e7479f1a8ad038aa44ccdd5e4f6b65cf05",
|
||||
"secno": "8.9",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#scope-match-algorithm",
|
||||
"id": "scope-match-algorithm",
|
||||
"hash": "a2117fb34a8fa4ca3e832d9276477cfc1318dd1a",
|
||||
"secno": "8.10",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#get-registration-algorithm",
|
||||
"id": "get-registration-algorithm",
|
||||
"hash": "b20332db952ba8f4b7e5f65b740a18da4a199c2e",
|
||||
"secno": "8.11",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#get-newest-worker-algorithm",
|
||||
"id": "get-newest-worker-algorithm",
|
||||
"hash": "72dc1cbee8c98501931c411018fd1cad4376142b",
|
||||
"secno": "8.12",
|
||||
"testable": false
|
||||
},
|
||||
{
|
||||
"href": "#acknowledgements",
|
||||
"id": "acknowledgements",
|
||||
"hash": "6347067ca5a574f8cc80c76d95dee568042d059b",
|
||||
"secno": "9",
|
||||
"testable": false
|
||||
}
|
||||
],
|
||||
"specUrl": "https://w3c.github.io/ServiceWorker/"
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: ServiceWorker</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-obj">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Constructor()] // no-op constructor
|
||||
interface ServiceWorker : Worker {
|
||||
readonly attribute DOMString scope;
|
||||
readonly attribute DOMString url;
|
||||
readonly attribute ServiceWorkerState state;
|
||||
|
||||
// event
|
||||
attribute EventHandler onstatechange;
|
||||
};
|
||||
|
||||
enum ServiceWorkerState {
|
||||
"installing",
|
||||
"installed",
|
||||
"activating",
|
||||
"activated",
|
||||
"redundant"
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
The `ServiceWorker` interface represents the document-side view of a Service
|
||||
Worker. This object provides a no-op constructor. Callers should note that only
|
||||
`ServiceWorker` objects created by the user agent (see
|
||||
`navigator.serviceWorker.installing`, `navigator.serviceWorker.waiting`,
|
||||
`navigator.serviceWorker.active` and `navigator.serviceWorker.controller`) will
|
||||
provide meaningful functionality.
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface EventHandler {};
|
||||
interface Worker {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
ServiceWorker: ["throw new Error ('No object defined for the ServiceWorker interface')"],
|
||||
ServiceWorkerState: ["throw new Error ('No object defined for the ServiceWorkerState enum')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: scope</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-scope">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
The `scope` of a `ServiceWorker` object reflects the [URL scope][1] of the
|
||||
associated Service Worker [registration][2]. The `scope` attribute must return
|
||||
the [serialization][3] of the URL representing the [URL scope][1] of the
|
||||
associated Service Worker [registration][2].
|
||||
|
||||
For example, consider a document created by a navigation to
|
||||
`https://example.com/app.html` which [matches][4] via the following
|
||||
registration call which has been previously executed:
|
||||
// Script on the page https://example.com/app.html
|
||||
navigator.serviceWorker.register("/service_worker.js", { scope: "/*" });
|
||||
The value of `navigator.serviceWorker.controller.scope` will be
|
||||
`"https://example.com/*"`.
|
||||
|
||||
|
||||
|
||||
[1]: #url-scope
|
||||
[2]: #registration
|
||||
[3]: http://url.spec.whatwg.org/#concept-url-serializer
|
||||
[4]: #on-fetch-request-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section scope so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: url</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-url">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
The `url` attribute must return the [serialization][1] of the URL of the script
|
||||
of the Service Worker, identified by its [URL scope][2], that is associated
|
||||
with the [ServiceWorkerGlobalScope][3] object. The `url` attribute is always an
|
||||
[absolute URL][4] corresponding to the script file which the Service Worker
|
||||
evaluates.
|
||||
|
||||
In the example in section 3.1.1, the value of
|
||||
`navigator.serviceWorker.controller.url` will be
|
||||
`"https://example.com/service_worker.js"`.
|
||||
|
||||
|
||||
|
||||
[1]: http://url.spec.whatwg.org/#concept-url-serializer
|
||||
[2]: #url-scope
|
||||
[3]: #service-worker-global-scope-interface
|
||||
[4]: http://url.spec.whatwg.org/#concept-absolute-url
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section url so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: state</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-state">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
The [ServiceWorker][1] object can be in several states. The `state` attribute
|
||||
must return the current state, which must be one of the following values
|
||||
defined in the [ServiceWorkerState][2] enumeration:
|
||||
|
||||
`"installing"`:
|
||||
The Service Worker represented by the [ServiceWorker][1] object has entered
|
||||
and is running the steps in the [installation process][3]. During this
|
||||
state, `e.waitUntil(p)` can be called inside the `oninstall` event handler
|
||||
of the associcated [ServiceWorkerGloberScope][4] object to extend the life
|
||||
of the [installing worker][5] until the passed [Promise][6] resolves
|
||||
successfully. This is primarily used to ensure that the Service Worker is
|
||||
not active until all of the core caches are populated.
|
||||
`"installed"`:
|
||||
The Service Worker represented by the [ServiceWorker][1] object has
|
||||
completed the steps in the [installation process][3]. The Service Worker in
|
||||
this state is considered the [worker in waiting][7].
|
||||
`"activating"`:
|
||||
The Service Worker represented by the [ServiceWorker][1] object has entered
|
||||
and is running the steps in the [activation process][8]. During this state,
|
||||
`e.waitUntil(p)` can be called inside the `onactivate` event handler of the
|
||||
associated [ServiceWorkerGloberScope][9] object to extend the life of the
|
||||
activating [active worker][10] until the passed [Promise][6] resolves
|
||||
successfully. Note that no [functional events][11] are dispatched until the
|
||||
state becomes `"activated"`.
|
||||
`"activated"`:
|
||||
The Service Worker represented by the [ServiceWorker][1] object has
|
||||
completed the steps in the [activation process][8]. The Service Worker in
|
||||
this state is considered the [active worker][10] ready to [control][12] the
|
||||
documents in matching scope upon subsequence [navigation][13].
|
||||
`"redundant"`:
|
||||
A newly created Service Worker [registration][14] is replacing the current
|
||||
[registration][14] of the Service Worker.
|
||||
|
||||
|
||||
|
||||
[1]: #service-worker-interface
|
||||
[2]: #service-worker-state-enum
|
||||
[3]: #installation-process
|
||||
[4]: #service-worker-glober-scope-interface
|
||||
[5]: #installing-worker
|
||||
[6]: http://goo.gl/3TobQS
|
||||
[7]: #worker-in-waiting
|
||||
[8]: #activation-process
|
||||
[9]: #service-worker-global-scope-interface
|
||||
[10]: #active-worker
|
||||
[11]: #functional-events
|
||||
[12]: #document-control
|
||||
[13]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#navigate
|
||||
[14]: #registration
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section state so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: onstatechange</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-on-state-change">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`onstatechange` is the [event handler][1] that must be supported as attribute
|
||||
by the `[ServiceWorker][2]` object. A `statechange` event using the
|
||||
`[Event][3]` interface is dispatched on `[ServiceWorker][2]` object when the
|
||||
`state` attribute of the `ServiceWorker` object is changed.
|
||||
|
||||
[1]: http://goo.gl/rBfiz0
|
||||
[2]: #service-worker-interface
|
||||
[3]: http://goo.gl/Mzv7Dv
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section onstatechange so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: navigator.serviceWorker</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
The `serviceWorker` attribute of the [Navigator][1] interface must return an
|
||||
instance of the `ServiceWorkerContainer` interface, which provides access to
|
||||
registration, removal, upgrade, and communication with Service Workers that are
|
||||
(or will become) active for the current document. Communication with these
|
||||
workers is provided via standard [HTML5 messaging APIs][2], and [messaging
|
||||
occurs as per usual with Web Workers][3].
|
||||
-->
|
||||
<script type=text/plain id="idl_0">
|
||||
partial interface Navigator {
|
||||
readonly attribute ServiceWorkerContainer serviceWorker;
|
||||
};
|
||||
|
||||
interface ServiceWorkerContainer : EventTarget {
|
||||
[Unforgeable] readonly attribute ServiceWorker? installing;
|
||||
[Unforgeable] readonly attribute ServiceWorker? waiting;
|
||||
[Unforgeable] readonly attribute ServiceWorker? active;
|
||||
[Unforgeable] readonly attribute ServiceWorker? controller;
|
||||
readonly attribute Promise<ServiceWorker> ready;
|
||||
|
||||
Promise<sequence<ServiceWorker>?> getAll();
|
||||
Promise<ServiceWorker> register(DOMString url, optional RegistrationOptionList options);
|
||||
Promise<any> unregister(DOMString? scope);
|
||||
|
||||
// events
|
||||
attribute EventHandler onupdatefound;
|
||||
attribute EventHandler oncontrollerchange;
|
||||
attribute EventHandler onreloadpage;
|
||||
attribute EventHandler onerror;
|
||||
};
|
||||
|
||||
dictionary RegistrationOptionList {
|
||||
DOMString scope = "/*";
|
||||
};
|
||||
|
||||
interface ReloadPageEvent : Event {
|
||||
void waitUntil(Promise<any> f);
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
[1]: http://goo.gl/I7WAhg
|
||||
[2]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html
|
||||
[3]: http://www.w3.org/TR/workers/#dom-worker-postmessage
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface ServiceWorker {};
|
||||
interface EventHandler {};
|
||||
interface EventTarget {};
|
||||
interface Event {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
Navigator: ["throw new Error ('No object defined for the Navigator interface')"],
|
||||
ServiceWorkerContainer: ["throw new Error ('No object defined for the ServiceWorkerContainer interface')"],
|
||||
RegistrationOptionList: ["throw new Error ('No object defined for the RegistrationOptionList dictionary')"],
|
||||
ReloadPageEvent: ["throw new Error ('No object defined for the ReloadPageEvent interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: installing</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-installing">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.installing` must return a [ServiceWorker][1] object
|
||||
representing the [installing worker][2] that is currently undergoing the
|
||||
installation process (from step 1 to step 7 of the [_Installation
|
||||
algorithm][3]) for the given [URL scope][4] in which the document may be
|
||||
[controlled][5] when the Service Worker becomes the [active worker][6].
|
||||
`navigator.serviceWorker.installing` returns `null` if no Service Worker
|
||||
[registration][7] is in the [installation process][8].
|
||||
|
||||
[1]: #service-worker-interface
|
||||
[2]: #installing-worker
|
||||
[3]: #installation-algorithm
|
||||
[4]: #url-scope
|
||||
[5]: #document-control
|
||||
[6]: #active-worker
|
||||
[7]: #service-worker-registration-internal-interface
|
||||
[8]: #installation-process
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section installing so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: oncontrollerchange</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-oncontrollerchange">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.oncontrollerchange` is the [event handler][1] that
|
||||
must be supported as attribute by the `[ServiceWorkerContainer][2]` object. A
|
||||
`controllerchange` event using the `[Event][3]` interface is dispatched on
|
||||
`[ServiceWorkerContainer][2]` object (See step 7 of the [_Activation
|
||||
algorithm][4]) when the associated Service Worker [registration][5] for the
|
||||
document enters the [activation process][6]. When the [activation process][6]
|
||||
is triggered by `replace()` method call within the event handler of the
|
||||
`install` event, `navigator.serviceWorker.controller` immediately reflects the
|
||||
[active worker][7] as the Service Worker that [controls][8] the document.
|
||||
|
||||
[1]: http://goo.gl/rBfiz0
|
||||
[2]: #service-worker-container-interface
|
||||
[3]: http://goo.gl/Mzv7Dv
|
||||
[4]: #activation-algorithm
|
||||
[5]: #registration
|
||||
[6]: #activation-process
|
||||
[7]: #active-worker
|
||||
[8]: #document-control
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section oncontrollerchange so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: onreloadpage</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-onreloadpage">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.onreloadpage` is the [event handler][1] that must be
|
||||
supported as attribute by the `[ServiceWorkerContainer][2]` object. An event
|
||||
named `reloadpage` using the `[ReloadPageEvent][3]` interface is dispatched on
|
||||
`[ServiceWorkerContainer][2]` object when the page reload is triggered by the
|
||||
`[self.clients.reloadAll()][4]` method call from the [active worker][5],
|
||||
represented by its associated [ServiceWorkerGlobalScope][6] object, for the
|
||||
document.
|
||||
|
||||
[1]: http://goo.gl/rBfiz0
|
||||
[2]: #service-worker-container-interface
|
||||
[3]: #reload-page-event-interface
|
||||
[4]: #reloadall-method
|
||||
[5]: #active-worker
|
||||
[6]: #service-worker-global-scope-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section onreloadpage so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: onerror</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-onerror">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.onerror` is the [event handler][1] that must be
|
||||
supported as attribute by the `[ServiceWorkerContainer][2]` object. An event
|
||||
named `error` using the `[ErrorEvent][3]` interface is dispatched on
|
||||
`[ServiceWorkerContainer][2]` object for any error from the associated
|
||||
`[ServiceWorker][4]` objects.
|
||||
|
||||
[1]: http://goo.gl/rBfiz0
|
||||
[2]: #service-worker-container-interface
|
||||
[3]: http://goo.gl/FKuWgu
|
||||
[4]: #service-worker-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section onerror so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: waiting</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-waiting">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.waiting` must return a [ServiceWorker][1] object
|
||||
representing the waiting Service Worker that is considered the [worker in
|
||||
waiting][2] for the document. `navigator.serviceWorker.waiting` returns `null`
|
||||
if there is no [worker in waiting][2] for the document.
|
||||
|
||||
[1]: #service-worker-interface
|
||||
[2]: #worker-in-waiting
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section waiting so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: active</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-active">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.active` must return a [ServiceWorker][1] object
|
||||
representing the [active worker][2] that is currently undergoing or completed
|
||||
the activation process (from step 4 to step 9 of the [_Activation
|
||||
algorithm][3]) for the given [URL scope][4] in which the document is controlled
|
||||
(or to be controlled). `navigator.serviceWorker.active` returns `null` if no
|
||||
Service Worker [registration][5] is in the [activation process][6].
|
||||
|
||||
[1]: #service-worker-interface
|
||||
[2]: #active-worker
|
||||
[3]: #activation-algorithm
|
||||
[4]: #url-scope
|
||||
[5]: #service-worker-registration-internal-interface
|
||||
[6]: #activation-process
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section active so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: controller</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-controller">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.controller` must return a [ServiceWorker][1] object
|
||||
representing the [active worker][2] that currently handles resource requests
|
||||
for the document. `navigator.serviceWorker.controller` returns `null` if the
|
||||
current document was not [created under a Service Worker][3] (See step 6-1 of
|
||||
[_OnFetchRequest][3] algorithm) or the request is a force refresh
|
||||
(shift+refresh).
|
||||
|
||||
[1]: #service-worker-interface
|
||||
[2]: #active-worker
|
||||
[3]: #on-fetch-request-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section controller so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: ready</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-ready">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.ready` attribute must return the result of running
|
||||
these steps:
|
||||
|
||||
1. Let `promise` be a newly-created [promise][1].
|
||||
2. Return `promise`.
|
||||
3. Run the following steps asynchronously:
|
||||
1. Let `registration` be the result of running [_ScopeMatch
|
||||
algorithm][2] with document's url as its argument.
|
||||
2. If `registration` is null, then:
|
||||
1. Wait for the document to have a matching [registration][3].
|
||||
3. If the [registration][3], represented by `registration`, for the
|
||||
document has an [active worker][4], then:
|
||||
1. Resolve `promise` with the [ServiceWorker][5] object associated
|
||||
with the [active worker][4].
|
||||
2. Abort these steps.
|
||||
4. If the [registration][3], represented by `registration`, for the
|
||||
document has a [worker in waiting][6], then:
|
||||
1. Resolve `promise` with the [ServiceWorker][5] object associated
|
||||
with the [worker in waiting][6].
|
||||
2. Abort these steps.
|
||||
5. Wait until the [registration][3], represented by `registration`,
|
||||
for the document acquires a [worker in waiting][6] through a new
|
||||
[installation process][7].
|
||||
6. Resolve `promise` with the [ServiceWorker][5] object associated
|
||||
with the [worker in waiting][6].
|
||||
Note that `ready` attribute is desinged in a way that the returned [promise][1]
|
||||
will never reject. Instead, it waits until the [promise][1] resolves with a
|
||||
newly installed [worker in waiting][6]. Hence, the `state` of the acquired
|
||||
[`ServiceWorker`][8] object is either `installed`, `activating` or `activated`.
|
||||
|
||||
|
||||
|
||||
[1]: http://goo.gl/3TobQS
|
||||
[2]: #scope-match-algorithm
|
||||
[3]: #registration
|
||||
[4]: #active-worker
|
||||
[5]: #service-worker-interface
|
||||
[6]: #worker-in-waiting
|
||||
[7]: #installation-process
|
||||
[8]: #service-worker
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section ready so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: getAll()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-getAll">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.getAll()` method must return a promise that resolves
|
||||
with the array of the ServiceWorker objects in `installing`, `installed`,
|
||||
`activating` and `activated` states.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section getAll() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: register()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-register">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.register(url, options)` method must run the
|
||||
[Registration algorithm][1] passing `url` and `options`.`scope` as the
|
||||
arguments.
|
||||
|
||||
[1]: #registration-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section register() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: unregister()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-unregister">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.unregister(scope)` method must run the [Unregistration
|
||||
algorithm][1] passing `scope` as the argument.
|
||||
|
||||
[1]: #unregistration-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section unregister() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: onupdatefound</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#navigator-service-worker-onupdatefound">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`navigator.serviceWorker.onupdatefound` is the [event handler][1] that must be
|
||||
supported as attribute by the `[ServiceWorkerContainer][2]` object. An
|
||||
`updatefound` event using the `[Event][3]` interface is dispatched on
|
||||
`[ServiceWorkerContainer][2]` object (See step 4 of the [_Installation
|
||||
algorithm][4]) when the associated Service Worker [registration][5] for the
|
||||
document enters the [installation process][6] such that
|
||||
`navigator.serviceWorker.installing` becomes the new [installing worker][7].
|
||||
|
||||
[1]: http://goo.gl/rBfiz0
|
||||
[2]: #service-worker-container-interface
|
||||
[3]: http://goo.gl/Mzv7Dv
|
||||
[4]: #installation-algorithm
|
||||
[5]: #registration
|
||||
[6]: #installation-process
|
||||
[7]: #installing-worker
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section onupdatefound so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: ServiceWorkerGlobalScope</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Global]
|
||||
interface ServiceWorkerGlobalScope : WorkerGlobalScope {
|
||||
readonly attribute CacheStorage caches;
|
||||
// A container for a list of window objects, identifiable by ID, that
|
||||
// correspond to windows (or workers) that are "controlled" by this SW
|
||||
readonly attribute ServiceWorkerClients clients;
|
||||
[Unforgeable] readonly attribute DOMString scope;
|
||||
|
||||
Promise<any> fetch((Request or ScalarValueString) request);
|
||||
|
||||
void update();
|
||||
void unregister();
|
||||
|
||||
attribute EventHandler oninstall;
|
||||
attribute EventHandler onactivate;
|
||||
attribute EventHandler onfetch;
|
||||
attribute EventHandler onbeforeevicted;
|
||||
attribute EventHandler onevicted;
|
||||
|
||||
// The event.source of these MessageEvents are instances of Client
|
||||
attribute EventHandler onmessage;
|
||||
|
||||
// close() method inherited from WorkerGlobalScope is not exposed.
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
The `ServiceWorkerGlobalScope` interface represents the global execution
|
||||
context of a Service Worker. `ServiceWorkerGlobalScope` object provides
|
||||
generic, event-driven, time-limited script execution contexts that run at an
|
||||
origin. Once successfully [registered][1], a Service Worker is started, kept
|
||||
alive and killed by their relationship to events, not documents. Any type of
|
||||
synchronous requests MUST NOT be initiated inside of a Service Worker.
|
||||
|
||||
[1]: #navigator-service-worker-register
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface CacheStorage {};
|
||||
interface ServiceWorkerClients {};
|
||||
interface Request {};
|
||||
interface ScalarValueString {};
|
||||
interface EventHandler {};
|
||||
interface WorkerGlobalScope {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
ServiceWorkerGlobalScope: ["throw new Error ('No object defined for the ServiceWorkerGlobalScope interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: caches</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-caches">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`self.caches` must return the `[CacheStorage][1]` object that is the global
|
||||
asynchronous map object for the `[ServiceWorkerGlobalScope][2]` execution
|
||||
context containing the cache objects keyed by the name of the caches. Caches
|
||||
are always enumerable via `self.caches` in insertion order (per [ECMAScript 6
|
||||
Map objects][3].)
|
||||
|
||||
[1]: #cache-storage-interface
|
||||
[2]: #service-worker-global-scope-interface
|
||||
[3]: http://goo.gl/gNnDPO
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section caches so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: clients</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-clients">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`self.clients` must return the `[ServiceWorkerClients][1]` object containing a
|
||||
list of client objects, identifiable by ID, that correspond to windows or
|
||||
workers that are [controlled][2] by this Service Worker.
|
||||
|
||||
[1]: #service-worker-clients-interface
|
||||
[2]: #document-control
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section clients so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: scope</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-scope">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
The `scope` attribute of a [ServiceWorkerGlobalScope][1] object reflects the
|
||||
[URL scope][2] of the associated Service Worker [registration][3]. The `scope`
|
||||
attribute must return the [serialization][4] of the URL representing the [URL
|
||||
scope][2] of the associated Service Worker [registration][3].
|
||||
|
||||
[1]: #service-worker-global-scope-interface
|
||||
[2]: #url-scope
|
||||
[3]: #registration
|
||||
[4]: http://url.spec.whatwg.org/#concept-url-serializer
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section scope so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: fetch(request)</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-fetch">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`self.fetch(request)` method must run these steps:
|
||||
|
||||
1. Let `request` be a [request][1] represented by `request`.
|
||||
2. Set [`client`][2] of `request` to the [JavaScript global
|
||||
environment][3] represented by `self` object.
|
||||
3. Let `promise` be a newly-created [promise][4].
|
||||
4. Return `promise.`
|
||||
5. Run the following steps asynchronously:
|
||||
1. Let `response` be the result of running [fetch algorithm][5] with
|
||||
`request` as its argument.
|
||||
2. If `response` is a [network error][6], then:
|
||||
1. Reject `promise` with a new [DOMException][7] whose name is
|
||||
"[NetworkError][8]".
|
||||
3. Else,
|
||||
1. Resolve `promise` with a new [Response][9] object associated
|
||||
with `response`.
|
||||
|
||||
|
||||
|
||||
[1]: http://goo.gl/ucOuXl
|
||||
[2]: http://goo.gl/Oxj4xQ
|
||||
[3]: http://goo.gl/ifwwCC
|
||||
[4]: http://goo.gl/3TobQS
|
||||
[5]: http://goo.gl/fGMifs
|
||||
[6]: http://goo.gl/jprjjc
|
||||
[7]: http://goo.gl/A0U8qC
|
||||
[8]: http://goo.gl/lud5HB
|
||||
[9]: http://goo.gl/Deazjv
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section fetch(request) so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: update()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-update">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`update()` pings the server for an updated version of this script without
|
||||
consulting caches. `self.update()` method must run the [_SoftUpdate
|
||||
algorithm][1] passing its serviceWorkerRegistration object as the argument
|
||||
which is the result of running the [_GetRegistration algorithm][2] with
|
||||
`self.scope` as the argument. (This is conceptually the same operation that UA
|
||||
does maximum once per every 24 hours.)
|
||||
|
||||
[1]: #soft-update-algorithm
|
||||
[2]: #get-registration-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section update() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: unregister()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-unregister">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`self.unregister()` method must run the [Unregistration algorithm][1]
|
||||
implicitly passing `self.scope` as the argument.
|
||||
|
||||
[1]: #unregistration-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section unregister() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: onmessage</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-global-scope-onmessage">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`self.onmessage` is the [event handler][1] that must be supported as attribute
|
||||
by the `ServiceWorkerGlobalScope` object. `ServiceWorkerGlobalScope` objects
|
||||
act as if they had an implicit `[MessagePort][2]` associated with them. This
|
||||
port is part of a channel that is set up when the worker is created, but it is
|
||||
not exposed. This object must never be garbage collected before the
|
||||
`ServiceWorkerGlobalScope` object.
|
||||
|
||||
All messages received by that port must immediately be retargeted at the
|
||||
`ServiceWorkerGlobalScope` object. That is, an event named `message` using the
|
||||
`[MessageEvent][3]` interface is dispatched on ServiceWorkerGlobalScope object.
|
||||
The `event.source` of these `[MessageEvent][3]`s are instances of `[Client][4]`.
|
||||
|
||||
|
||||
|
||||
[1]: http://goo.gl/rBfiz0
|
||||
[2]: http://goo.gl/tHBrI6
|
||||
[3]: http://goo.gl/S5e0b6
|
||||
[4]: #client-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section onmessage so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Client</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#client">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Constructor()] // no-op constructor
|
||||
interface Client {
|
||||
readonly attribute unsigned long id;
|
||||
void postMessage(any message, DOMString targetOrigin,
|
||||
optional sequence<Transferable> transfer);
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
The `Client` interface represents the window or the worker (defined as client)
|
||||
that is [controlled][1] by the Service Worker. This object provides a no-op
|
||||
constructor. Callers should note that only `Client` objects created by the user
|
||||
agent (see [`this.clients.getServiced()`][2]) will provide meaningful
|
||||
functionality.
|
||||
|
||||
The `id` of a `Client` identifies the specific client object from the list of
|
||||
client objects serviced by the Service Worker. The `postMessage(message,
|
||||
targetOrigin, transfer)` method of a `[Client][3]`, when called, causes a
|
||||
`[MessageEvent][4]` to be dispatched at the client object.
|
||||
|
||||
|
||||
|
||||
[1]: #document-control
|
||||
[2]: #get-serviced-method
|
||||
[3]: #client-interface
|
||||
[4]: http://goo.gl/4SLWiH
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface Transferable {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
Client: ["throw new Error ('No object defined for the Client interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: ServiceWorkerClients</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#service-worker-clients">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
interface ServiceWorkerClients {
|
||||
// A list of client objects, identifiable by ID, that correspond to windows
|
||||
// (or workers) that are "controlled" by this SW
|
||||
Promise<sequence<Client>?> getServiced();
|
||||
Promise<any> reloadAll();
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
The `ServiceWorkerClients` interface represents a container for a list of
|
||||
`[Client][1]` objects.
|
||||
|
||||
[1]: #client-interface
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface Client {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
ServiceWorkerClients: ["throw new Error ('No object defined for the ServiceWorkerClients interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: getServiced()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#get-serviced-method">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
The `getServiced()` method of a `ServiceWorkerClients`, when called, returns a
|
||||
[Promise][1] that will resolve with a list of `[Client][2]` objects that are
|
||||
[controlled][3] by this Service Worker.
|
||||
|
||||
[1]: http://goo.gl/3TobQS
|
||||
[2]: #client-interface
|
||||
[3]: #document-control
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section getServiced() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: reloadAll()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#reloadall-method">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`reloadAll()` provides a mechanism for the worker to request synchronized
|
||||
re-fetch of all documents whose URLs match the registration's [URL scope][1].
|
||||
An event named `reloadpage` is dispatched on the `navigator.serviceWorker`
|
||||
object of each document. The in-document handlers may allow the event to
|
||||
continue, request an extension (via [`e.waitUntil()`][2]), or cancel the
|
||||
collective reload by calling [`e.preventDefault()`][3].
|
||||
|
||||
[1]: #url-scope
|
||||
[2]: #wait-until-method
|
||||
[3]: http://goo.gl/2zH6ie
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section reloadAll() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Request Objects</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#request-objects">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Constructor(optional RequestInit init)]
|
||||
interface Request {
|
||||
attribute unsigned long timeout;
|
||||
attribute DOMString url;
|
||||
attribute ByteString method;
|
||||
readonly attribute DOMString origin;
|
||||
readonly attribute Mode mode;
|
||||
attribute boolean synchronous;
|
||||
attribute boolean forcePreflight;
|
||||
attribute boolean omitCredentials;
|
||||
readonly attribute DOMString referrer;
|
||||
readonly attribute HeaderMap headers; // alternative: sequence<Header> headers;
|
||||
attribute any body;
|
||||
};
|
||||
|
||||
dictionary RequestInit {
|
||||
unsigned long timeout = 0;
|
||||
DOMString url;
|
||||
boolean synchronous = false;
|
||||
boolean forcePreflight = false;
|
||||
boolean omitCredentials = false;
|
||||
ByteString method = "GET";
|
||||
HeaderMap headers;
|
||||
any body;
|
||||
};
|
||||
|
||||
enum Mode {
|
||||
"same origin",
|
||||
"tainted cross-origin",
|
||||
"CORS",
|
||||
"CORS-with-forced-preflight"
|
||||
};
|
||||
|
||||
[MapClass(DOMString, DOMString)]
|
||||
interface HeaderMap {
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
Request: ["throw new Error ('No object defined for the Request interface')"],
|
||||
RequestInit: ["throw new Error ('No object defined for the RequestInit dictionary')"],
|
||||
Mode: ["throw new Error ('No object defined for the Mode enum')"],
|
||||
HeaderMap: ["throw new Error ('No object defined for the HeaderMap interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Response Objects</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#response-objects">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
`Response` objects model HTTP responses.
|
||||
-->
|
||||
<script type=text/plain id="idl_0">
|
||||
[Constructor]
|
||||
interface AbstractResponse {
|
||||
};
|
||||
|
||||
interface OpaqueResponse : AbstractResponse {
|
||||
readonly attribute unsigned short status;
|
||||
readonly attribute ByteString statusText;
|
||||
// Returns a filtered list of headers. See prose for details.
|
||||
readonly attribute HeaderMap headers;
|
||||
// No setter for headers
|
||||
readonly attribute DOMString url;
|
||||
};
|
||||
|
||||
interface CORSResponse : Response {
|
||||
readonly attribute HeaderMap headers;
|
||||
};
|
||||
|
||||
[Constructor(optional ResponseInit responseInitDict)]
|
||||
interface Response : AbstractResponse {
|
||||
attribute unsigned short status;
|
||||
attribute ByteString statusText;
|
||||
readonly attribute HeaderMap headers;
|
||||
attribute DOMString url;
|
||||
Promise<Blob> toBlob();
|
||||
};
|
||||
|
||||
dictionary ResponseInit {
|
||||
unsigned short status = 200;
|
||||
ByteString statusText = "OK";
|
||||
HeaderMap headers;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface HeaderMap {};
|
||||
interface Blob {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
AbstractResponse: ["throw new Error ('No object defined for the AbstractResponse interface')"],
|
||||
OpaqueResponse: ["throw new Error ('No object defined for the OpaqueResponse interface')"],
|
||||
CORSResponse: ["throw new Error ('No object defined for the CORSResponse interface')"],
|
||||
Response: ["throw new Error ('No object defined for the Response interface')"],
|
||||
ResponseInit: ["throw new Error ('No object defined for the ResponseInit dictionary')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Response</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#response">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`Response` objects are mutable and constructable. They model HTTP responses.
|
||||
The `fetch()` API returns this type for same-origin responses.
|
||||
|
||||
It may be possible to set the `Location` header of a `Response` object to
|
||||
someplace not in the current origin but this is not a security issue.
|
||||
Cross-origin response bodies are opaque to script, and since only same-origin
|
||||
documents will encounter these responses, the only systems the Service Worker
|
||||
can "lie to" are same-origin (and therefore safe from the perspective of other
|
||||
origins).
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section Response so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: OpaqueResponse</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#opaque-response">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`OpaqueResponse` objects are immutable but constructable. The `fetch()` API
|
||||
returns this type for cross-origin responses.
|
||||
|
||||
Their role is to encapsulate the security properties of the web platform. As
|
||||
such, their `body` attribute will always be `undefined` and the list of
|
||||
readable `headers` is heavily filtered.
|
||||
|
||||
`OpaqueResponse` objects may be forwarded on to rendering documents in exactly
|
||||
the same way as mutable `Response` objects.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section OpaqueResponse so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Caches</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#cache-objects">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
To allow authors to fully manage their content caches for offline use, the
|
||||
`[ServiceWorkerGlobalScope][1]` execution context provides the caching methods
|
||||
largely conforming to [ECMAScript 6 Map objects][2] with additional convenience
|
||||
methods. A domain can have multiple, named `[Cache][3]` objects, whose contents
|
||||
are entirely under the control of scripts. Caches are not shared across
|
||||
domains, and they are completely isolated from the browser's HTTP cache.
|
||||
|
||||
[1]: #service-worker-global-scope-interface
|
||||
[2]: http://goo.gl/gNnDPO
|
||||
[3]: #cache-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section Caches so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Understanding Cache Lifetimes</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#cache-lifetimes">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
The `[Cache][1]` instances are not part of the browser's HTTP cache. The
|
||||
`[Cache][1]` objects are exactly what authors have to manage themselves. The
|
||||
`[Cache][1]` objects do not get updated unless authors explicitly request them
|
||||
to be. The `[Cache][1]` objects do not expire unless authors delete the
|
||||
entries. The `[Cache][1]` objects do not disappear just because the Service
|
||||
Worker script is updated. That is, caches are not updated automatically.
|
||||
Updates must be manually managed. This implies that authors should version
|
||||
their caches by name and make sure to use the caches only from the version of
|
||||
the ServiceWorker that can safely operate on.
|
||||
|
||||
[1]: #cache-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section Understanding Cache Lifetimes so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Cache</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#cache">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Exposed=(Window,Worker)]
|
||||
interface Cache {
|
||||
Promise<Response> match(RequestInfo request, optional CacheQueryOptions options);
|
||||
Promise<sequence<Response>> matchAll(optional RequestInfo request, optional CacheQueryOptions options);
|
||||
Promise<void> add(RequestInfo request);
|
||||
Promise<void> addAll(sequence<RequestInfo> requests);
|
||||
Promise<void> put(RequestInfo request, Response response);
|
||||
Promise<boolean> delete(RequestInfo request, optional CacheQueryOptions options);
|
||||
Promise<sequence<Request>> keys(optional RequestInfo request, optional CacheQueryOptions options);
|
||||
};
|
||||
|
||||
dictionary CacheQueryOptions {
|
||||
boolean ignoreSearch = false;
|
||||
boolean ignoreMethod = false;
|
||||
boolean ignoreVary = false;
|
||||
DOMString cacheName;
|
||||
};
|
||||
|
||||
dictionary CacheBatchOperation {
|
||||
DOMString type;
|
||||
Request request;
|
||||
Response response;
|
||||
CacheQueryOptions options;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface AbstractResponse {};
|
||||
interface Request {};
|
||||
interface ScalarValueString {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
Cache: ["throw new Error ('No object defined for the Cache interface')"],
|
||||
QueryParams: ["throw new Error ('No object defined for the QueryParams dictionary')"],
|
||||
CacheIterationCallback: ["throw new Error ('No object defined for the CacheIterationCallback callback')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: CacheStorage</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#cache-storage">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Constructor(sequence<any> iterable)]
|
||||
interface CacheStorage {
|
||||
Promise<any> match(ScalarValueString url, optional DOMString cacheName);
|
||||
Promise<Cache> get(DOMString key);
|
||||
Promise<boolean> has(DOMString key);
|
||||
Promise<any> set(DOMString key, Cache val);
|
||||
Promise<any> clear();
|
||||
Promise<any> delete(DOMString key);
|
||||
void forEach(CacheStorageIterationCallback callback, optional object thisArg);
|
||||
Promise<sequence<any>> entries();
|
||||
Promise<sequence<DOMString>> keys();
|
||||
Promise<sequence<Cache>> values();
|
||||
Promise<unsigned long> size();
|
||||
};
|
||||
|
||||
callback CacheStorageIterationCallback = void (Cache value, DOMString key, CacheStorage map);
|
||||
</script>
|
||||
|
||||
<!--
|
||||
**Note**:[CacheStorage][1]interface is designed to largely conform
|
||||
to[ECMAScript 6 Map objects][2]but entirely async, and with additional
|
||||
convenience methods.
|
||||
|
||||
[1]: #cache-storage-interface
|
||||
[2]: http://goo.gl/gNnDPO
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface ScalarValueString {};
|
||||
interface Cache {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
CacheStorage: ["throw new Error ('No object defined for the CacheStorage interface')"],
|
||||
CacheStorageIterationCallback: ["throw new Error ('No object defined for the CacheStorageIterationCallback callback')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: InstallPhaseEvent</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#install-phase-event">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
interface InstallPhaseEvent : Event {
|
||||
Promise<any> waitUntil(Promise<any> f);
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
Service Workers have two [Lifecycle events][1], `[install][2]` and
|
||||
`[activate][3]`. Service Workers use the `[InstallPhaseEvent][4]` interface for
|
||||
`[activate][3]` event and the `[InstallEvent][5]` interface, which inherits
|
||||
from the `[InstallPhaseEvent][4]` interface, for `[install][2]` event.
|
||||
|
||||
[1]: #lifecycle-events
|
||||
[2]: #install-event
|
||||
[3]: #activate-event
|
||||
[4]: #install-phase-event-interface
|
||||
[5]: #install-event-interface
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface Event {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
InstallPhaseEvent: ["throw new Error ('No object defined for the InstallPhaseEvent interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: event.waitUntil(f)</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#wait-until-method">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`event.waitUntil(f)` method, when called in `oninstall` or `onactivate`,
|
||||
extends the lifetime of the event. When called in `oninstall`, it delays
|
||||
treating the installing worker until the passed [Promise][1] resolves
|
||||
successfully. This is primarily used to ensure that a `ServiceWorker` is not
|
||||
active until all of the core caches it depends on are populated. When called in
|
||||
`onactivate`, it delays treating the activating worker until the passed
|
||||
[Promise][1] resolves successfully. This is primarily used to ensure that any
|
||||
[Functional events][2] are not dispatched to the `ServiceWorker` until it
|
||||
upgrades database schemas and deletes the outdated cache entries.
|
||||
|
||||
[1]: http://goo.gl/3TobQS
|
||||
[2]: #functional-events
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section event.waitUntil(f) so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: install Event</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#install-event">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
An event named `[install][1]` using the `[InstallEvent][2]` interface is
|
||||
dispatched on `ServiceWorkerGlobalScope` object when the state of the
|
||||
associated `ServiceWorker` changes its value to `installing`. (See step 3 of
|
||||
[_Installation algorithm][3])
|
||||
|
||||
[1]: #install-event
|
||||
[2]: #install-event-interface
|
||||
[3]: #installation-algorithm
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section install Event so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: InstallEvent</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#install-event-section">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
interface InstallEvent : InstallPhaseEvent {
|
||||
readonly attribute ServiceWorker? activeWorker;
|
||||
void replace();
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
Service Workers use the `[InstallEvent][1]` interface for `[install][2]` event.
|
||||
|
||||
[1]: #install-event-interface
|
||||
[2]: #install-event
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface ServiceWorker {};
|
||||
interface InstallPhaseEvent {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
InstallEvent: ["throw new Error ('No object defined for the InstallEvent interface')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: event.replace()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#replace-method">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`replace()` interacts with `waitUntil` method in the following way:
|
||||
|
||||
- Successful installation can be delayed by `waitUntil`, perhaps by
|
||||
subsequent event handlers.
|
||||
- Replacement only happens upon successful installation
|
||||
- Therefore, replacement of the [active worker][1] (if any) is not
|
||||
immediate, however it may occur as soon as the end of the current turn.
|
||||
|
||||
|
||||
|
||||
[1]: #navigator-service-worker-active
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section event.replace() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: activate Event</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#activate-event">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
An event named `[activate][1]` using the `[InstallPhaseEvent][2]` interface is
|
||||
dispatched on `ServiceWorkerGlobalScope` object when the state of the
|
||||
associated `ServiceWorker` changes its value to `activating`. (See step 6 of
|
||||
[_Activation algorithm][3])
|
||||
|
||||
Service Workers use the `[InstallPhaseEvent][4]` interface for `[activate][1]`
|
||||
event.
|
||||
|
||||
|
||||
|
||||
[1]: #activate-event
|
||||
[2]: #install-phase-event
|
||||
[3]: #activation-algorithm
|
||||
[4]: #install-phase-event-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section activate Event so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: FetchEvent</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#fetch-event-section">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script src=/resources/WebIDLParser.js></script>
|
||||
<script src=/resources/idlharness.js></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script type=text/plain id="idl_0">
|
||||
[Constructor]
|
||||
interface FetchEvent : Event {
|
||||
readonly attribute Request request;
|
||||
readonly attribute Client client; // The window issuing the request.
|
||||
readonly attribute Context context;
|
||||
readonly attribute boolean isReload;
|
||||
|
||||
void respondWith(Promise<AbstractResponse> r);
|
||||
Promise<any> forwardTo(ScalarValueString url);
|
||||
Promise<any> default();
|
||||
};
|
||||
|
||||
enum Context {
|
||||
"connect",
|
||||
"font",
|
||||
"img",
|
||||
"object",
|
||||
"script",
|
||||
"style",
|
||||
"worker",
|
||||
"popup",
|
||||
"child",
|
||||
"navigate"
|
||||
};
|
||||
</script>
|
||||
|
||||
<!--
|
||||
Service Workers use the `[FetchEvent][1]` interface for `[fetch][2]` event.
|
||||
|
||||
[1]: #fetch-event-interface
|
||||
[2]: #fetch-event
|
||||
-->
|
||||
|
||||
|
||||
<script type=text/plain id="untested_idls">
|
||||
interface Request {};
|
||||
interface Client {};
|
||||
interface AbstractResponse {};
|
||||
interface ScalarValueString {};
|
||||
interface Event {};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById("untested_idls").textContent);
|
||||
idl_array.add_idls(document.getElementById("idl_0").textContent);
|
||||
idl_array.add_objects({
|
||||
FetchEvent: ["throw new Error ('No object defined for the FetchEvent interface')"],
|
||||
Context: ["throw new Error ('No object defined for the Context enum')"]
|
||||
});
|
||||
idl_array.test();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: event.respondWith(r)</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#respond-with-method">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`event.respondWith(r)` method must run the steps, from step 10 to step 15,
|
||||
defined in the [_OnFetchRequest algorithm][1].
|
||||
|
||||
The `r` argument must resolve with a [AbstractResponse][2], else a
|
||||
[NetworkError][3] is thrown. If the request is a top-level navigation and the
|
||||
return value is a [OpaqueResponse][4] (an opaque response body), a
|
||||
[NetworkError][3] is thrown. The final URL of all successful (non
|
||||
network-error) responses is the [requested][5] URL. Renderer-side security
|
||||
checks about tainting for cross-origin content are tied to the transparency (or
|
||||
opacity) of the [Response][6] body, not URLs.
|
||||
|
||||
|
||||
|
||||
[1]: #on-fetch-request-algorithm
|
||||
[2]: #abstract-response-interface
|
||||
[3]: http://w3c.github.io/dom/#networkerror
|
||||
[4]: #opaque-response-interface
|
||||
[5]: #request-objects
|
||||
[6]: #response-interface
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section event.respondWith(r) so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: event.default()</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#default-method">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
`event.default()` method must run these steps:
|
||||
|
||||
1. Let `promise` be a newly-created [promise][1].
|
||||
2. Return `promise.`
|
||||
3. Run the following steps asynchronously:
|
||||
1. Let `request` be `event`'s `request`.
|
||||
2. Set `request`'s [skip service worker flag][2].
|
||||
3. Let `response` be the result of running [fetch algorithm][3] with
|
||||
`request` as its argument.
|
||||
4. If `response` is a [network error][4], then:
|
||||
1. Reject `promise` with a new [DOMException][5] whose name is
|
||||
"[NetworkError][6]".
|
||||
5. Else,
|
||||
1. Resolve `promise` with a new [Response][7] object associated
|
||||
with `response`.
|
||||
|
||||
|
||||
|
||||
[1]: http://goo.gl/3TobQS
|
||||
[2]: http://goo.gl/gP7IWW
|
||||
[3]: http://goo.gl/fGMifs
|
||||
[4]: http://goo.gl/jprjjc
|
||||
[5]: http://goo.gl/A0U8qC
|
||||
[6]: http://goo.gl/lud5HB
|
||||
[7]: http://goo.gl/Deazjv
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section event.default() so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: event.isReload</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#is-reload-attribute">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
Returns true if `event` was dispatched with the user's intention for the page
|
||||
reload, and false otherwise. Pressing the refresh button should be considered a
|
||||
reload while clicking a link and pressing the back button should not. The
|
||||
behavior of the `Ctrl+l enter` is left to the implementations of the user
|
||||
agents.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section event.isReload so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Origin Relativity</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#origin-relativity">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
One of the advanced concerns that major applications would encounter is whether
|
||||
they can be hosted from a CDN. By definition, these are servers in other
|
||||
places, often on other domains. Therefore, Service Workers cannot be hosted on
|
||||
CDNs. But they can include resources via [importScripts()][1]. The reason for
|
||||
this restriction is that Service Workers create the opportunity for a bad actor
|
||||
to turn a bad day into a bad eternity.
|
||||
|
||||
[1]: http://goo.gl/Owcfs2
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section Origin Relativity so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>Service Workers: Cross-Origin Resources & CORS</title>
|
||||
<head>
|
||||
<link rel="help" href="https://w3c.github.io/ServiceWorker/#cross-origin-resources">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
|
||||
Applications tend to cache items that come from a CDN or other domain. It is
|
||||
possible to request many of them directly using <script>, <img>, <video> and
|
||||
<link> elements. It would be hugely limiting if this sort of runtime
|
||||
collaboration broke when offline. Similarly, it is possible to XHR many sorts
|
||||
of off-domain resources when appropriate CORS headers are set.
|
||||
|
||||
ServiceWorkers enable this by allowing `Cache`s to fetch and cache off-origin
|
||||
items. Some restrictions apply, however. First, unlike same-origin resources
|
||||
which are managed in the `Cache` as `[Promise][1]`s for `Response` instances,
|
||||
the objects stored are `[Promise][1]`s for `OpaqueResponse` instances.
|
||||
`OpaqueResponse` provides a much less expressive API than `Response`; the
|
||||
bodies and headers cannot be read or set, nor many of the other aspects of
|
||||
their content inspected. They can be passed to `respondWith()` and
|
||||
`forwardTo()` in the same manner as `Response`s, but cannot be meaningfully
|
||||
created programmatically. These limitations are necessary to preserve the
|
||||
security invariants of the platform. Allowing `Cache`s to store them allows
|
||||
applications to avoid re-architecting in most cases.
|
||||
|
||||
|
||||
|
||||
[1]: http://goo.gl/3TobQS
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
// not_implemented();
|
||||
}, "There are no tests for section Cross-Origin Resources & CORS so far.");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Загрузка…
Ссылка в новой задаче