- onmessage #service-worker-global-scope-onmessage-attributeReferenced in:4.1. ServiceWorkerGlobalScope
+ | onmessage #service-worker-global-scope-onmessage-attributeReferenced in:4.1. ServiceWorkerGlobalScope
| message
@@ -2387,46 +2373,46 @@
-[Constructor(DOMString type, optional ExtendableMessageEventInit eventInitDict), Exposed=ServiceWorker]
+[Constructor(DOMString type, optional ExtendableMessageEventInit eventInitDict), Exposed=ServiceWorker]
interface ExtendableMessageEvent : ExtendableEvent {
readonly attribute any data;
readonly attribute DOMString origin;
@@ -3076,7 +3062,7 @@ MessagePort>? ports;
};
-dictionary ExtendableMessageEventInit#dictdef-extendablemessageevent-extendablemessageeventinitReferenced in:4.8. ExtendableMessageEvent : ExtendableEventInit {
+dictionary ExtendableMessageEventInit#dictdef-extendablemessageevent-extendablemessageeventinitReferenced in:4.8. ExtendableMessageEvent : ExtendableEventInit {
any data;
DOMString origin;
DOMString lastEventId;
@@ -3084,26 +3070,26 @@ MessagePort>? ports;
};
- Service workers define the extendable message event that extends the message event defined in [HTML] to allow extending the lifetime of the event. For the message event, service workers use the ExtendableMessageEvent#extendablemessage-event-interfaceReferenced in:3.1.3. postMessage(message, transfer)4.8. ExtendableMessageEvent (2)4.9. Events interface which extends the ExtendableEvent interface.
+ Service workers define the extendable message event that extends the message event defined in [HTML] to allow extending the lifetime of the event. For the message event, service workers use the ExtendableMessageEvent#extendablemessage-event-interfaceReferenced in:3.1.3. postMessage(message, transfer)4.8. ExtendableMessageEvent (2)4.9. Events interface which extends the ExtendableEvent interface.
@@ -3117,23 +3103,23 @@ Dispatched when…
- install #service-worker-global-scope-install-eventReferenced in:2.1. Service Worker4.1.4. Event handlers4.4. ExtendableEvent (2)4.4.1. event.waitUntil(f)Install
+ | install #service-worker-global-scope-install-eventReferenced in:2.1. Service Worker4.1.4. Event handlers4.4. ExtendableEvent (2)4.4.1. event.waitUntil(f)Install
| InstallEvent
| [Lifecycle event] The service worker’s containing service worker registration’s installing worker changes. (See step 11.2 of the Install algorithm.)
|
- activate #service-worker-global-scope-activate-eventReferenced in:2.1. Service Worker4.1.4. Event handlers4.4. ExtendableEvent (2)4.4.1. event.waitUntil(f)Activate
+ | activate #service-worker-global-scope-activate-eventReferenced in:2.1. Service Worker4.1.4. Event handlers4.4. ExtendableEvent (2)4.4.1. event.waitUntil(f)Activate
| ExtendableEvent
| [Lifecycle event] The service worker’s containing service worker registration’s active worker changes. (See step 12.2 of the Activate algorithm.)
|
- fetch #service-worker-global-scope-fetch-eventReferenced in:2.1. Service Worker2.5. Task Sources4.1.4. Event handlers4.6. FetchEvent (2)6.5. Implementer ConcernsHandle Fetch
+ | fetch #service-worker-global-scope-fetch-eventReferenced in:2.1. Service Worker2.5. Task Sources4.1.4. Event handlers4.6. FetchEvent (2)6.5. Implementer ConcernsHandle Fetch
| FetchEvent
| [Functional event] The http fetch invokes Handle Fetch with request. As a result of performing Handle Fetch, the service worker returns a response to the http fetch. The response, represented by a Response object, can be retrieved from a Cache object or directly from network using self.fetch(input, init) method. (A custom Response object can be another option.)
|
- foreignfetch #service-worker-global-scope-foreignfetch-eventReferenced in:4.1.4. Event handlers4.7. ForeignFetchEvent (2)Handle Foreign Fetch
+ | foreignfetch #service-worker-global-scope-foreignfetch-eventReferenced in:4.1.4. Event handlers4.7. ForeignFetchEvent (2)Handle Foreign Fetch
| FetchEvent
| [Functional event] The http fetch invokes Handle Foreign Fetch with request. As a result of performing Handle Foreign Fetch, the service worker returns a response to the http fetch. The response, represented by a Response object, can be retrieved from a Cache object or directly from network using self.fetch(input, init) method. (A custom Response object can be another option.)
|
- message #service-worker-global-scope-message-eventReferenced in:3.1.3. postMessage(message, transfer)4.1.4. Event handlers4.8. ExtendableMessageEvent (2)
+ | message #service-worker-global-scope-message-eventReferenced in:3.1.3. postMessage(message, transfer)4.1.4. Event handlers4.8. ExtendableMessageEvent (2)
| ExtendableMessageEvent
| When it receives a message.
@@ -3144,10 +3130,10 @@ Window and the WorkerGlobalScope provide the asynchronous caching methods that open and manipulate Cache objects. An origin can have multiple, named Cache objects, whose contents are entirely under the control of scripts. Caches are not shared across origins, and they are completely isolated from the browser’s HTTP cache.
5.1. Constructs
- A fetching record#dfn-fetching-recordReferenced in:5.1. Constructs (2) (3)5.4.2. matchAll(request, options) (2)5.4.4. addAll(requests) (2)5.4.5. put(request, response) (2)5.4.7. keys(request, options)Query CacheBatch Cache Operations (2) (3) is a Record {[[key]], [[value]]} where [[key]] is a Request and [[value]] is a Response .
- A fetching record has an associated incumbent record#dfn-incumbent-recordReferenced in:5.4.2. matchAll(request, options)5.4.4. addAll(requests) (2)5.4.5. put(request, response) (2) (a fetching record). It is initially set to null.
- A request to response map#dfn-request-to-response-mapReferenced in:5.4. Cache (2)5.4.2. matchAll(request, options) (2)5.4.4. addAll(requests) (2) (3) (4) (5)5.4.5. put(request, response) (2) (3) (4) (5)5.4.7. keys(request, options)6.6. PrivacyQuery CacheBatch Cache Operations (2) (3) (4) (5) (6) is a List of fetching records.
- A name to cache map#dfn-name-to-cache-mapReferenced in:5.1. Constructs5.5. CacheStorage (2)5.5.1. match(request, options) (2)5.5.2. has(cacheName)5.5.3. open(cacheName) (2)5.5.4. delete(cacheName)5.5.5. keys()6.6. Privacy is a List of the Record {[[key]], [[value]]} where [[key]] is a string that represents a name of the Cache object and [[value]] is a Cache object.
+ A fetching record#dfn-fetching-recordReferenced in:5.1. Constructs (2) (3)5.4.2. matchAll(request, options) (2)5.4.4. addAll(requests) (2)5.4.5. put(request, response) (2)5.4.7. keys(request, options)Query CacheBatch Cache Operations (2) (3) is a Record {[[key]], [[value]]} where [[key]] is a Request and [[value]] is a Response .
+ A fetching record has an associated incumbent record#dfn-incumbent-recordReferenced in:5.4.2. matchAll(request, options)5.4.4. addAll(requests) (2)5.4.5. put(request, response) (2) (a fetching record). It is initially set to null.
+ A request to response map#dfn-request-to-response-mapReferenced in:5.4. Cache (2)5.4.2. matchAll(request, options) (2)5.4.4. addAll(requests) (2) (3) (4) (5)5.4.5. put(request, response) (2) (3) (4) (5)5.4.7. keys(request, options)6.6. PrivacyQuery CacheBatch Cache Operations (2) (3) (4) (5) (6) is a List of fetching records.
+ A name to cache map#dfn-name-to-cache-mapReferenced in:5.1. Constructs5.5. CacheStorage (2)5.5.1. match(request, options) (2)5.5.2. has(cacheName)5.5.3. open(cacheName) (2)5.5.4. delete(cacheName)5.5.5. keys()6.6. Privacy is a List of the Record {[[key]], [[value]]} where [[key]] is a string that represents a name of the Cache object and [[value]] is a Cache object.
Each origin has an associated name to cache map.
@@ -3182,25 +3168,25 @@ 5.4.
[NewObject] Promise<sequence<Request>> keys(optional RequestInfo request, optional CacheQueryOptions options);
};
-dictionary CacheQueryOptions#dictdef-cache-cachequeryoptionsReferenced in:5.4. Cache (2) (3) (4) (5)5.5. CacheStorageQuery Cache {
- boolean ignoreSearch#dom-cachequeryoptions-ignoresearchReferenced in:Query Cache = false;
- boolean ignoreMethod#dom-cachequeryoptions-ignoremethodReferenced in:Query Cache = false;
- boolean ignoreVary#dom-cachequeryoptions-ignorevaryReferenced in:Query Cache = false;
- DOMString cacheName#dom-cachequeryoptions-cachenameReferenced in:5.5.1. match(request, options) (2);
+dictionary CacheQueryOptions#dictdef-cache-cachequeryoptionsReferenced in:5.4. Cache (2) (3) (4) (5)5.5. CacheStorageQuery Cache {
+ boolean ignoreSearch#dom-cachequeryoptions-ignoresearchReferenced in:Query Cache = false;
+ boolean ignoreMethod#dom-cachequeryoptions-ignoremethodReferenced in:Query Cache = false;
+ boolean ignoreVary#dom-cachequeryoptions-ignorevaryReferenced in:Query Cache = false;
+ DOMString cacheName#dom-cachequeryoptions-cachenameReferenced in:5.5.1. match(request, options) (2);
};
-dictionary CacheBatchOperation#dictdef-cache-cachebatchoperationReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)Batch Cache Operations {
- DOMString type#dom-cachebatchoperation-typeReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)Batch Cache Operations (2) (3) (4);
- Request request#dom-cachebatchoperation-requestReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)Batch Cache Operations (2) (3) (4) (5);
- Response response#dom-cachebatchoperation-responseReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)Batch Cache Operations (2) (3) (4) (5);
- CacheQueryOptions options#dom-cachebatchoperation-optionsReferenced in:5.4.6. delete(request, options)Batch Cache Operations (2) (3);
+dictionary CacheBatchOperation#dictdef-cache-cachebatchoperationReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)Batch Cache Operations {
+ DOMString type#dom-cachebatchoperation-typeReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)Batch Cache Operations (2) (3) (4);
+ Request request#dom-cachebatchoperation-requestReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)Batch Cache Operations (2) (3) (4) (5);
+ Response response#dom-cachebatchoperation-responseReferenced in:5.4.4. addAll(requests)5.4.5. put(request, response)Batch Cache Operations (2) (3) (4) (5);
+ CacheQueryOptions options#dom-cachebatchoperation-optionsReferenced in:5.4.6. delete(request, options)Batch Cache Operations (2) (3);
};
- A Cache#cache-interfaceReferenced in:4.9. Events (2)5. Caches (2)5.1. Constructs (2)5.2. Understanding Cache Lifetimes (2) (3) (4) (5)5.4. Cache (2) (3) (4)5.5. CacheStorage5.5.1. match(request, options) (2)5.5.3. open(cacheName) (2)6.4. Cross-Origin Resources and CORS (2) (3) object represents a request to response map. Multiple separate objects implementing the Cache interface across document environments and worker environments can all be associated with the same request to response map simultaneously.
+ A Cache#cache-interfaceReferenced in:4.9. Events (2)5. Caches (2)5.1. Constructs (2)5.2. Understanding Cache Lifetimes (2) (3) (4) (5)5.4. Cache (2) (3) (4)5.5. CacheStorage5.5.1. match(request, options) (2)5.5.3. open(cacheName) (2)6.4. Cross-Origin Resources and CORS (2) (3) object represents a request to response map. Multiple separate objects implementing the Cache interface across document environments and worker environments can all be associated with the same request to response map simultaneously.
Cache objects are always enumerable via self.caches in insertion order (per ECMAScript 6 Map objects).
5.4.1. match(request, options)
- match(request, options) #cache-match-methodReferenced in:5.4. Cache5.4.1. match(request, options)5.5.1. match(request, options) (2) (3) (4) method must run these steps or their equivalent:
+ match(request, options) #cache-match-methodReferenced in:5.4. Cache5.4.1. match(request, options)5.5.1. match(request, options) (2) (3) (4) method must run these steps or their equivalent:
- Let promise be a new promise.
-
@@ -3233,7 +3219,7 @@
5.4.2. matchAll(request, options)
- matchAll(request, options) #cache-matchall-methodReferenced in:5.4. Cache5.4.1. match(request, options)5.4.2. matchAll(request, options) method must run these steps or their equivalent:
+ matchAll(request, options) #cache-matchall-methodReferenced in:5.4. Cache5.4.1. match(request, options)5.4.2. matchAll(request, options) method must run these steps or their equivalent:
- Let r be null.
-
@@ -3294,7 +3280,7 @@
5.4.3. add(request)
- add(request) #cache-add-methodReferenced in:5.4. Cache5.4.3. add(request) method must run these steps or their equivalent:
+ add(request) #cache-add-methodReferenced in:5.4. Cache5.4.3. add(request) method must run these steps or their equivalent:
- Let requests be an array containing only request.
- Set responseArrayPromise to the result of running the algorithm specified in
addAll(requests) passing requests as the argument.
@@ -3303,7 +3289,7 @@
5.4.4. addAll(requests)
- addAll(requests) #cache-addAll-methodReferenced in:5.4. Cache5.4.3. add(request)5.4.4. addAll(requests) method must run these steps or their equivalent:
+ addAll(requests) #cache-addAll-methodReferenced in:5.4. Cache5.4.3. add(request)5.4.4. addAll(requests) method must run these steps or their equivalent:
- Let responsePromiseArray be an empty array.
- Let requestArray be an empty array.
@@ -3421,7 +3407,7 @@
5.4.5. put(request, response)
- put(request, response) #cache-put-methodReferenced in:5.4. Cache5.4.5. put(request, response) method must run these steps or their equivalent:
+ put(request, response) #cache-put-methodReferenced in:5.4. Cache5.4.5. put(request, response) method must run these steps or their equivalent:
- Let r be null.
-
@@ -3500,7 +3486,7 @@
5.4.6. delete(request, options)
- delete(request, options) #cache-delete-methodReferenced in:5.4. Cache5.4.6. delete(request, options) method must run these steps or their equivalent:
+ delete(request, options) #cache-delete-methodReferenced in:5.4. Cache5.4.6. delete(request, options) method must run these steps or their equivalent:
- Let r be null.
-
@@ -3532,7 +3518,7 @@
5.4.7. keys(request, options)
- keys(request, options) #cache-keys-methodReferenced in:5.4. Cache5.4.7. keys(request, options) method must run these steps or their equivalent:
+ keys(request, options) #cache-keys-methodReferenced in:5.4. Cache5.4.7. keys(request, options) method must run these steps or their equivalent:
- Let promise be a new promise.
-
@@ -3590,10 +3576,10 @@
CacheStorage interface is designed to largely conform to ECMAScript 6 Map objects but entirely async, and with additional convenience methods. The methods, clear , forEach , entries and values , are intentionally excluded from the scope of the first version resorting to the ongoing discussion about the async iteration by TC39.
The user agent must create a CacheStorage object when a Window object or a WorkerGlobalScope object is created and associate it with that object.
- A CacheStorage#cache-storage-interfaceReferenced in:5.3. self.caches (2)5.3.1. caches5.5. CacheStorage (2) (3) (4) (5) object represents a name to cache map of its associated global object’s environment settings object’s origin. Multiple separate objects implementing the CacheStorage interface across document environments and worker environments can all be associated with the same name to cache map simultaneously.
+ A CacheStorage#cache-storage-interfaceReferenced in:5.3. self.caches (2)5.3.1. caches5.5. CacheStorage (2) (3) (4) (5) object represents a name to cache map of its associated global object’s environment settings object’s origin. Multiple separate objects implementing the CacheStorage interface across document environments and worker environments can all be associated with the same name to cache map simultaneously.
5.5.1. match(request, options)
- match(request, options) #cache-storage-match-methodReferenced in:5.5. CacheStorage5.5.1. match(request, options) method must run these steps or their equivalent:
+ match(request, options) #cache-storage-match-methodReferenced in:5.5. CacheStorage5.5.1. match(request, options) method must run these steps or their equivalent:
-
If options.
cacheName is present, then:
@@ -3634,7 +3620,7 @@
5.5.2. has(cacheName)
- has(cacheName) #cache-storage-has-methodReferenced in:5.5. CacheStorage5.5.2. has(cacheName)5.5.4. delete(cacheName) method must run these steps or their equivalent:
+ has(cacheName) #cache-storage-has-methodReferenced in:5.5. CacheStorage5.5.2. has(cacheName)5.5.4. delete(cacheName) method must run these steps or their equivalent:
-
Return a promise p resolved with the result of running the following substeps:
@@ -3654,7 +3640,7 @@
5.5.3. open(cacheName)
- open(cacheName) #cache-storage-open-methodReferenced in:5.5. CacheStorage5.5.3. open(cacheName) method must run these steps or their equivalent:
+ open(cacheName) #cache-storage-open-methodReferenced in:5.5. CacheStorage5.5.3. open(cacheName) method must run these steps or their equivalent:
- Let p be a new promise.
-
@@ -3679,7 +3665,7 @@
5.5.4. delete(cacheName)
- delete(cacheName) #cache-storage-delete-methodReferenced in:5.5. CacheStorage5.5.4. delete(cacheName) method must run these steps or their equivalent:
+ delete(cacheName) #cache-storage-delete-methodReferenced in:5.5. CacheStorage5.5.4. delete(cacheName) method must run these steps or their equivalent:
- Let p be the result of running the algorithm specified in
has(cacheName) method with cacheName as the argument.
-
@@ -3703,7 +3689,7 @@
5.5.5. keys()
- keys() #cache-storage-keys-methodReferenced in:5.5. CacheStorage5.5.5. keys() method must run these steps or their equivalent:
+ keys() #cache-storage-keys-methodReferenced in:5.5. CacheStorage5.5.5. keys() method must run these steps or their equivalent:
The promise returned from this method resolves with the sequence of keys, cache names in DOMString, in insertion order.
- Let resultArray be an empty array.
@@ -3746,11 +3732,11 @@
6.3.2. importScripts(urls)
- When the importScripts(urls) #importscripts-methodReferenced in:6.3.1. Origin restriction method is called on a ServiceWorkerGlobalScope object, the user agent must import scripts into worker global scope, with the following options:
+ When the importScripts(urls) #importscripts-methodReferenced in:6.3.1. Origin restriction method is called on a ServiceWorkerGlobalScope object, the user agent must import scripts into worker global scope, with the following options:
To validate the state, the user agent must do nothing.
To get a fetch result, the user agent must run the following steps:
- - Let serviceWorker be the settings object’s global object’s service worker.
+
- Let serviceWorker be the settings object’s global object’s service worker.
-
If serviceWorker’s imported scripts updated flag is unset, then:
@@ -3840,29 +3826,29 @@ 8.4. Request Functional Event Dispatch
To request a functional event dispatch to a service worker, specifications may invoke Handle Functional Event algorithm, or its equivalent, with its service worker registration registration and the algorithm callbackSteps as the arguments.
Specifications may define an algorithm callbackSteps where the corresponding functional event can be created and fired with specification specific objects. The algorithm is passed globalObject (a ServiceWorkerGlobalScope object) at which it may fire its functional events. This algorithm is called on a task queued by Handle Functional Event algorithm.
- See an example hook defined in Notifications API.
+ See an example hook defined in Notifications API.
Appendix A: Algorithms
The following definitions are the user agent’s internal data structures used throughout the specification.
- A scope to registration map#dfn-scope-to-registration-mapReferenced in:2.2.1. Lifetime2.4. Selection and Use (2)3.4.2. ready3.4.5. getRegistrations()6.6. PrivacyHandle Functional EventHandle User Agent ShutdownSet RegistrationClear RegistrationMatch Service Worker RegistrationGet Registration is a List of the Record {[[key]], [[value]]} where [[key]] is a string that represents a scope url and [[value]] is a service worker registration.
- A job#dfn-jobReferenced in:Appendix A: Algorithms (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)Create Job (2)Schedule JobFinish JobResolve Job PromiseReject Job PromiseRegisterUpdateInstallUnregister is an abstraction of one of register, update, and unregister request for a service worker registration.
- A job has a job type#dfn-job-typeReferenced in:Appendix A: AlgorithmsCreate Job (2)Run Job (2) (3)Update, which is one of register, update, and unregister.
- A job has a scope url#dfn-job-scope-urlReferenced in:Appendix A: Algorithms (2) (3)Create JobRegister (2) (3)UpdateUnregister (2) (a URL).
- A job has a script url#dfn-job-script-urlReferenced in:Appendix A: AlgorithmsCreate JobRegister (2) (3)Update (2) (3) (4) (5) (6) (7) (a URL).
- A job has a worker type#dfn-job-worker-typeReferenced in:3.2.5. update()3.4.3. register(scriptURL, options)Update (2)Soft Update ("classic " or "module ").
- A job has a client#dfn-job-clientReferenced in:Create JobRegister (2)Update (2)Unregister (a service worker client). It is initially null.
- A job has a promise#dfn-job-promiseReferenced in:Create JobSchedule Job (2)Resolve Job PromiseReject Job PromiseInstall (a promise). It is initially null.
- A job has a list of equivalent job promises#dfn-job-list-of-equivalent-job-promisesReferenced in:Schedule JobResolve Job PromiseReject Job Promise (a list of promises). It is initially the empty list.
- A job has a force bypass cache flag#dfn-job-force-bypass-cache-flagReferenced in:Soft Update It is initially unset.
- Two jobs are equivalent#dfn-job-equivalentReferenced in:Schedule Job when their job type is the same and:
+ A scope to registration map#dfn-scope-to-registration-mapReferenced in:2.2.1. Lifetime2.4. Selection and Use (2)3.4.2. ready3.4.5. getRegistrations()6.6. PrivacyHandle Functional EventHandle User Agent ShutdownSet RegistrationClear RegistrationMatch Service Worker RegistrationGet Registration is a List of the Record {[[key]], [[value]]} where [[key]] is a string that represents a scope url and [[value]] is a service worker registration.
+ A job#dfn-jobReferenced in:Appendix A: Algorithms (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)Create Job (2)Schedule JobFinish JobResolve Job PromiseReject Job PromiseRegisterUpdateInstallUnregister is an abstraction of one of register, update, and unregister request for a service worker registration.
+ A job has a job type#dfn-job-typeReferenced in:Appendix A: AlgorithmsCreate Job (2)Run Job (2) (3)Update, which is one of register, update, and unregister.
+ A job has a scope url#dfn-job-scope-urlReferenced in:Appendix A: Algorithms (2) (3)Create JobRegister (2) (3)UpdateUnregister (2) (a URL).
+ A job has a script url#dfn-job-script-urlReferenced in:Appendix A: AlgorithmsCreate JobRegister (2) (3)Update (2) (3) (4) (5) (6) (7) (a URL).
+ A job has a worker type#dfn-job-worker-typeReferenced in:3.2.5. update()3.4.3. register(scriptURL, options)Update (2)Soft Update ("classic " or "module ").
+ A job has a client#dfn-job-clientReferenced in:Create JobRegister (2)Update (2)Unregister (a service worker client). It is initially null.
+ A job has a promise#dfn-job-promiseReferenced in:Create JobSchedule Job (2)Resolve Job PromiseReject Job PromiseInstall (a promise). It is initially null.
+ A job has a list of equivalent job promises#dfn-job-list-of-equivalent-job-promisesReferenced in:Schedule JobResolve Job PromiseReject Job Promise (a list of promises). It is initially the empty list.
+ A job has a force bypass cache flag#dfn-job-force-bypass-cache-flagReferenced in:Soft Update It is initially unset.
+ Two jobs are equivalent#dfn-job-equivalentReferenced in:Schedule Job when their job type is the same and:
- A job queue#dfn-job-queueReferenced in:Appendix A: Algorithms (2) (3) (4) (5) (6)Schedule Job (2) (3) (4)Run Job (2)Finish Job (2) (3) (4) is a thread safe queue used to synchronize the set of concurrent jobs. The job queue contains jobs as its elements. The job queue should satisfy the general properties of FIFO queue. A user agent must maintain a separate job queue for each service worker registration keyed by its scope url. A job queue is initially empty. Unless stated otherwise, the job queue referenced from the algorithm steps is a job queue for the job’s scope url.
+ A job queue#dfn-job-queueReferenced in:Appendix A: Algorithms (2) (3) (4) (5) (6)Schedule Job (2) (3) (4)Run Job (2)Finish Job (2) (3) (4) is a thread safe queue used to synchronize the set of concurrent jobs. The job queue contains jobs as its elements. The job queue should satisfy the general properties of FIFO queue. A user agent must maintain a separate job queue for each service worker registration keyed by its scope url. A job queue is initially empty. Unless stated otherwise, the job queue referenced from the algorithm steps is a job queue for the job’s scope url.
Create Job
@@ -4202,7 +4188,7 @@ In
Queue a task task to run the following substeps:
- Create a trusted event e that uses the
InstallEvent interface, with the event type install , which does not bubble, is not cancelable, and has no default action.
- - Dispatch e at installingWorker’s environment settings object’s global object globalObject.
+
- Dispatch e at installingWorker’s environment settings object’s global object globalObject.
- Let extendLifetimePromises be an empty array.
-
For each event listener invoked:
@@ -4292,7 +4278,7 @@
Acti
For each service worker client client whose creation url matches registration’s scope url:
- If client is a window client, unassociate client’s responsible document from its application cache, if it has one.
-
- Else if client is a shared worker client, unassociate client’s global object from its application cache, if it has one.
+
- Else if client is a shared worker client, unassociate client’s global object from its application cache, if it has one.
Resources will now use the service worker registration instead of the existing application cache.
-
@@ -4307,7 +4293,7 @@
Acti
Queue a task task to run the following substeps:
- Create a trusted event e that uses the
ExtendableEvent interface, with the event type activate , which does not bubble, is not cancelable, and has no default action.
- - Dispatch e at activeWorker’s environment settings object’s global object.
+
- Dispatch e at activeWorker’s environment settings object’s global object.
- Let extendLifetimePromises be an empty array.
-
For each event listener invoked:
@@ -4342,13 +4328,13 @@
JavaScript execution context.
- Let workerEventLoop be a newly created event loop.
-
- Let workerGlobalScope be realmExecutionContext’s global object.
+
- Let workerGlobalScope be realmExecutionContext’s global object.
-
Let settingsObject be a new environment settings object whose algorithms are defined as follows:
- The realm execution context
- Return realmExecutionContext.
-
- The global object
+
- The global object
- Return workerGlobalScope.
- The responsible event loop
- Return workerEventLoop.
@@ -4359,7 +4345,7 @@
API base URL
- Return serviceWorker’s script url.
-
- The origin and effective script origin
+
- The origin and effective script origin
- Return its registering service worker client’s origin.
- The creation URL
- Return workerGlobalScope’s url.
@@ -4378,7 +4364,7 @@
has ever been evaluated flag is unset, then:
-
- Set workerGlobalScope’s associated service worker’s set of event types to handle to the set of event types created from settingsObject’s global object’s associated list of event listeners' event types.
+ Set workerGlobalScope’s associated service worker’s set of event types to handle to the set of event types created from settingsObject’s global object’s associated list of event listeners' event types.
If the global object’s associated list of event listeners does not have any event listener added at this moment, the service worker’s set of event types to handle is set to an empty set. The user agents are encouraged to show a warning that the event listeners must be added on the very first evaluation of the worker script.
- Set script’s has ever been evaluated flag.
@@ -4396,7 +4382,7 @@
- If serviceWorker is not running, abort these steps.
-
- Let serviceWorkerGlobalScope be serviceWorker environment settings object’s global object.
+
- Let serviceWorkerGlobalScope be serviceWorker environment settings object’s global object.
- Set serviceWorkerGlobalScope’s closing flag to true.
-
If there are any tasks, whose task source is either the handle fetch task source or the handle functional event task source, queued in serviceWorkerGlobalScope’s event loop’s task queues, queue them to serviceWorker’s containing service worker registration’s corresponding task queues in the same order using their original task sources, and discard all the tasks (including tasks whose task source is neither the handle fetch task source nor the handle functional event task source) from serviceWorkerGlobalScope’s event loop’s task queues without processing them.
@@ -4459,7 +4445,7 @@
request attribute of e be initialized to r.
- Let the clientId attribute of e be initialized to client’s id if request is not a non-subresource request, and to null otherwise.
- Let the isReload attribute of e be initialized to
true if request’s client is a window client and the event was dispatched with the user’s intention for the page reload, and false otherwise.
- - Dispatch e at activeWorker’s environment settings object’s global object.
+
- Dispatch e at activeWorker’s environment settings object’s global object.
-
For each event listener invoked:
@@ -4547,7 +4533,7 @@
- Create a trusted event e that uses the
ForeignFetchEvent interface, with the event type foreignfetch , which does not bubble and has no default action.
- Let the
request attribute of e be initialized to r.
- - Dispatch e at activeWorker’s environment settings object’s global object.
+
- Dispatch e at activeWorker’s environment settings object’s global object.
-
For each event listener invoked:
@@ -4644,7 +4630,7 @@ state is activating, wait for activeWorker’s state to become activated.
- Invoke Run Service Worker algorithm with activeWorker as the argument.
-
- Queue a task task to invoke callbackSteps with activeWorker’s environment settings object’s global object as its argument.
+ Queue a task task to invoke callbackSteps with activeWorker’s environment settings object’s global object as its argument.
The task must use activeWorker’s event loop and the handle functional event task source.
- Wait for task to have executed or been discarded.
- If the time difference in seconds calculated by the current time minus registration’s last update check time is greater than 86400, invoke Soft Update algorithm, or its equivalent, with registration.
@@ -5184,7 +5170,7 @@
Default scope:
-// Maximum allowed scope defaults to the path the script sits in
+// Maximum allowed scope defaults to the path the script sits in
// "/js" in this example
navigator.serviceWorker.register("/js/sw.js").then(function() {
console.log("Install succeeded with the default scope '/js'.");
@@ -5192,7 +5178,7 @@
Upper path without Service-Worker-Allowed header:
-// Set the scope to an upper path of the script location
+// Set the scope to an upper path of the script location
// Response has no Service-Worker-Allowed header
navigator.serviceWorker.register("/js/sw.js", { scope: "/" }).catch(function() {
console.error("Install failed due to the path restriction violation.");
@@ -5200,7 +5186,7 @@
Upper path with Service-Worker-Allowed header:
-// Set the scope to an upper path of the script location
+// Set the scope to an upper path of the script location
// Response included "Service-Worker-Allowed : /"
navigator.serviceWorker.register("/js/sw.js", { scope: "/" }).then(function() {
console.log("Install succeeded as the max allowed scope was overriden to '/'.");
@@ -5208,7 +5194,7 @@
A path restriction voliation even with Service-Worker-Allowed header:
-// Set the scope to an upper path of the script location
+// Set the scope to an upper path of the script location
// Response included "Service-Worker-Allowed : /foo"
navigator.serviceWorker.register("/foo/bar/sw.js", { scope: "/" }).catch(function() {
console.error("Install failed as the scope is still out of the overriden maximum allowed scope.");
@@ -5234,42 +5220,46 @@ Conformance
- Document conventions
- Conformance requirements are expressed with a combination of
+
+ Conformance
+ Document conventions
+ Conformance requirements are expressed with a combination of
descriptive assertions and RFC 2119 terminology. The key words “MUST”,
“MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
“RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
document are to be interpreted as described in RFC 2119.
However, for readability, these words do not appear in all uppercase
letters in this specification.
- All of the text of this specification is normative except sections
+ All of the text of this specification is normative except sections
explicitly marked as non-normative, examples, and notes. [RFC2119]
- Examples in this specification are introduced with the words “for example”
+ Examples in this specification are introduced with the words “for example”
or are set apart from the normative text with class="example" ,
like this:
-
-
- This is an example of an informative example.
-
- Informative notes begin with the word “Note” and are set apart from the
+
+
+ This is an example of an informative example.
+
+ Informative notes begin with the word “Note” and are set apart from the
normative text with class="note" , like this:
- Note, this is an informative note.
- Conformant Algorithms
- Requirements phrased in the imperative as part of algorithms (such as
+ Note, this is an informative note.
+ Conformant Algorithms
+ Requirements phrased in the imperative as part of algorithms (such as
"strip any leading space characters" or "return false and abort these
steps") are to be interpreted with the meaning of the key word ("must",
"should", "may", etc) used in introducing the algorithm.
- Conformance requirements phrased as algorithms or specific steps can be
- implemented in any manner, so long as the end result is equivalent#dfn-processing-equivalenceReferenced in:3.1.3. postMessage(message, transfer)3.2.5. update()3.2.6. unregister()3.4.1. controller3.4.2. ready (2)3.4.3. register(scriptURL, options)3.4.4. getRegistration(clientURL)3.4.5. getRegistrations()4.1.3. skipWaiting() (2)4.2.4. postMessage(message, transfer)4.2.7. focus() (2)4.2.8. navigate(url) (2)4.3.1. get(id) (2) (3)4.3.2. matchAll(options) (2) (3) (4) (5)4.3.3. openWindow(url) (2)4.3.4. claim()4.4.1. event.waitUntil(f) (2)4.5.1. event.registerForeignFetch(options)4.6.4. event.respondWith(r)4.7.2. event.respondWith(r)5.4.1. match(request, options)5.4.2. matchAll(request, options)5.4.3. add(request)5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)5.4.7. keys(request, options)5.5.1. match(request, options)5.5.2. has(cacheName)5.5.3. open(cacheName)5.5.4. delete(cacheName)5.5.5. keys()8.4. Request Functional Event DispatchRegisterUpdateInstall (2)Handle Fetch (2) (3) (4)Handle Functional EventHandle Service Worker Client Unload (2). In
+ Conformance requirements phrased as algorithms or specific steps can be
+ implemented in any manner, so long as the end result is equivalent#dfn-processing-equivalenceReferenced in:3.1.3. postMessage(message, transfer)3.2.5. update()3.2.6. unregister()3.4.1. controller3.4.2. ready (2)3.4.3. register(scriptURL, options)3.4.4. getRegistration(clientURL)3.4.5. getRegistrations()4.1.3. skipWaiting() (2)4.2.4. postMessage(message, transfer)4.2.7. focus() (2)4.2.8. navigate(url) (2)4.3.1. get(id) (2) (3)4.3.2. matchAll(options) (2) (3) (4) (5)4.3.3. openWindow(url) (2)4.3.4. claim()4.4.1. event.waitUntil(f) (2)4.5.1. event.registerForeignFetch(options)4.6.4. event.respondWith(r)4.7.2. event.respondWith(r)5.4.1. match(request, options)5.4.2. matchAll(request, options)5.4.3. add(request)5.4.4. addAll(requests)5.4.5. put(request, response)5.4.6. delete(request, options)5.4.7. keys(request, options)5.5.1. match(request, options)5.5.2. has(cacheName)5.5.3. open(cacheName)5.5.4. delete(cacheName)5.5.5. keys()8.4. Request Functional Event DispatchRegisterUpdateInstall (2)Handle Fetch (2) (3) (4)Handle Functional EventHandle Service Worker Client Unload (2). In
particular, the algorithms defined in this specification are intended to
be easy to understand and are not intended to be performant. Implementers
are encouraged to optimize.
+
Index
Terms defined by this specification
- activate, in §4.9
+
- "activated", in §3.1
+
- "activating", in §3.1
- active, in §3.2.3
-
active worker
@@ -5279,6 +5269,8 @@
addAll(requests), in §5.4.4
- add(request), in §5.4.3
+
- "all", in §4.3
+
- "auxiliary", in §4.2
- Cache, in §5.4
- CacheBatchOperation, in §5.4
- cacheName, in §5.4
@@ -5323,9 +5315,11 @@
error, in §3.6
- ExtendableEvent, in §4.4
- ExtendableEventInit, in §4.4
+
- ExtendableEvent(type), in §4.4
- ExtendableEvent(type, eventInitDict), in §4.4
- ExtendableMessageEvent, in §4.8
- ExtendableMessageEventInit, in §4.8
+
- ExtendableMessageEvent(type), in §4.8
- ExtendableMessageEvent(type, eventInitDict), in §4.8
- extend lifetime promises, in §4.4
- fetch, in §4.9
@@ -5372,8 +5366,11 @@
includeUncontrolled, in §4.3
- incumbent record, in §5.1
- install, in §4.9
+
- "installed", in §3.1
- InstallEvent, in §4.5
+
- InstallEvent(type), in §4.5
- InstallEvent(type, eventInitDict), in §4.5
+
- "installing", in §3.1
- installing, in §3.2.1
- installing worker, in §2.2
-
@@ -5437,6 +5434,8 @@
name to cache map, in §5.1
- navigate(url), in §4.2.8
+
- "nested", in §4.2
+
- "none", in §4.2
- onactivate, in §4.1.4
- oncontrollerchange, in §3.4.6
- onerror, in §3.4.6
@@ -5490,6 +5489,7 @@
put(request, response), in §5.4.5
- ready, in §3.4.2
- ready promise, in §3.4
+
- "redundant", in §3.1
- registerForeignFetch(options), in §4.5.1
- registering script url, in §2.2
- register(scriptURL), in §3.4.3
@@ -5554,9 +5554,9 @@
scriptURL, in §3.1.1
- selection, in §2.4
+
- serviceWorker, in §3.3
- Service-Worker, in §Unnumbered section
- ServiceWorker, in §3.1
-
- serviceWorker, in §3.3
-
service worker
@@ -5575,6 +5575,7 @@ ServiceWorkerGlobalScope, in §4.1
- ServiceWorkerMessageEvent, in §3.5
- ServiceWorkerMessageEventInit, in §3.5
+
- ServiceWorkerMessageEvent(type), in §3.5
- ServiceWorkerMessageEvent(type, eventInitDict), in §3.5
- ServiceWorkerRegistration, in §3.2
-
@@ -5585,6 +5586,7 @@
ServiceWorkerState, in §3.1.2
- set of event types to handle, in §2.1
+
- "sharedworker", in §4.3
- shared worker client, in §2.3
- skipWaiting(), in §4.1.3
- skip waiting flag, in §2.1
@@ -5604,6 +5606,7 @@
statechange, in §3.6
- task queues, in §2.2
+
- "top-level", in §4.2
-
type
@@ -5629,21 +5632,23 @@ dfn for ForeignFetchEvent, in §4.7
- waitUntil(f), in §4.4.1
+
- "window", in §4.3
- window client, in §2.3
- WindowClient, in §4.2
+
- "worker", in §4.3
- worker client, in §2.3
- worker type, in §Unnumbered section
Terms defined by reference
Normative References
- - [CSP2]
+
- [CSP2]
- Mike West; Adam Barth; Daniel Veditz. Content Security Policy Level 2. 21 July 2015. CR. URL: https://w3c.github.io/webappsec/specs/CSP2/
-
- [ECMA-262]
+
- [ECMASCRIPT]
- ECMAScript Language Specification. URL: https://tc39.github.io/ecma262/
-
- [FETCH]
+
- [FETCH]
- Anne van Kesteren. Fetch Standard. Living Standard. URL: https://fetch.spec.whatwg.org/
-
- [HTML]
+
- [HTML]
- Ian Hickson. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
-
- [WHATWG-DOM]
-
- Anne van Kesteren. DOM Standard. Living Standard. URL: https://dom.spec.whatwg.org/
-
- [WHATWG-URL]
-
- Anne van Kesteren; Sam Ruby. URL Standard. Living Standard. URL: https://url.spec.whatwg.org/
-
- [WebIDL]
-
- Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 4 August 2015. WD. URL: https://heycam.github.io/webidl/
-
- [PAGE-VISIBILITY]
+
- [PAGE-VISIBILITY]
- Jatinder Mann; Arvind Jain. Page Visibility (Second Edition). 29 October 2013. REC. URL: http://www.w3.org/TR/page-visibility/
-
- [POWERFUL-FEATURES]
-
- Mike West; Yan Zhu. Privileged Contexts. 24 April 2015. WD. URL: https://w3c.github.io/webappsec/specs/powerfulfeatures/
-
- [PROMISES-GUIDE]
+
- [PROMISES-GUIDE]
- Writing Promise-Using Specifications. 24 July 2015. Finding of the W3C TAG. URL: https://www.w3.org/2001/tag/doc/promises-guide
-
- [QUOTA-API]
-
- Kinuko Yasuda. Quota Management API. 15 December 2015. WD. URL: http://www.w3.org/TR/quota-api/
-
- [RFC2119]
+
- [QUOTA-API]
+
- Kinuko Yasuda. Quota Management API. 15 December 2015. WD. URL: https://w3c.github.io/quota-api/
+
- [RFC2119]
- S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
-
- [RFC5234]
+
- [RFC5234]
- D. Crocker, Ed.; P. Overell. Augmented BNF for Syntax Specifications: ABNF. January 2008. Internet Standard. URL: https://tools.ietf.org/html/rfc5234
-
- [RFC7230]
+
- [RFC7230]
- R. Fielding, Ed.; J. Reschke, Ed.. Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. June 2014. Proposed Standard. URL: https://tools.ietf.org/html/rfc7230
-
- [RFC7231]
+
- [RFC7231]
- R. Fielding, Ed.; J. Reschke, Ed.. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. June 2014. Proposed Standard. URL: https://tools.ietf.org/html/rfc7231
+
- [SECURE-CONTEXTS]
+
- Mike West. Secure Contexts. 26 April 2016. WD. URL: https://w3c.github.io/webappsec-secure-contexts/
+
- [WebIDL-1]
+
- Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 8 March 2016. CR. URL: https://heycam.github.io/webidl/
+
- [WHATWG-DOM]
+
- Anne van Kesteren. DOM Standard. Living Standard. URL: https://dom.spec.whatwg.org/
+
- [WHATWG-URL]
+
- Anne van Kesteren; Sam Ruby. URL Standard. Living Standard. URL: https://url.spec.whatwg.org/
Informative References
- - [WHATWG-NOTIFICATIONS]
+
- [NOTIFICATIONS]
- Anne van Kesteren. Notifications API Standard. Living Standard. URL: https://notifications.spec.whatwg.org/
-
- [UNSANCTIONED-TRACKING]
+
- [UNSANCTIONED-TRACKING]
- Unsanctioned Web Tracking. 17 July 2015. Finding of the W3C TAG. URL: https://www.w3.org/2001/tag/doc/unsanctioned-tracking
IDL Index
@@ -5944,11 +5947,11 @@ I
ServiceWorker implements AbstractWorker;
enum ServiceWorkerState {
- "installing",
- "installed",
- "activating",
- "activated",
- "redundant"
+ "installing",
+ "installed",
+ "activating",
+ "activated",
+ "redundant"
};
[Exposed=(Window,Worker)]
@@ -6029,8 +6032,6 @@ I
// event
attribute EventHandler onmessage; // event.source of the message events is Client object
-
- // close() method inherited from WorkerGlobalScope should not be accessible.
};
[Exposed=ServiceWorker]
@@ -6050,10 +6051,10 @@ I
};
enum FrameType {
- "auxiliary",
- "top-level",
- "nested",
- "none"
+ "auxiliary",
+ "top-level",
+ "nested",
+ "none"
};
[Exposed=ServiceWorker]
@@ -6071,10 +6072,10 @@ I
};
enum ClientType {
- "window",
- "worker",
- "sharedworker",
- "all"
+ "window",
+ "worker",
+ "sharedworker",
+ "all"
};
[Constructor(DOMString type, optional ExtendableEventInit eventInitDict), Exposed=ServiceWorker]
@@ -6195,7 +6196,8 @@ Remove this definition after sorting out the referencing sites. ↵
This needs an extra step in the HTTP fetch algorithm in between step 3 and 4, to call this algorithm for all requests if response is null at that point. ↵
-
Index
Terms defined by this specification
- activate, in §4.7
+
- "activated", in §3.1
+
- "activating", in §3.1
- active, in §3.2.3
-
active worker
@@ -4931,6 +4920,8 @@
addAll(requests), in §5.4.4
- add(request), in §5.4.3
+
- "all", in §4.3
+
- "auxiliary", in §4.2
- Cache, in §5.4
- CacheBatchOperation, in §5.4
- cacheName, in §5.4
@@ -4975,9 +4966,11 @@
error, in §3.6
- ExtendableEvent, in §4.4
- ExtendableEventInit, in §4.4
+
- ExtendableEvent(type), in §4.4
- ExtendableEvent(type, eventInitDict), in §4.4
- ExtendableMessageEvent, in §4.6
- ExtendableMessageEventInit, in §4.6
+
- ExtendableMessageEvent(type), in §4.6
- ExtendableMessageEvent(type, eventInitDict), in §4.6
- extend lifetime promises, in §4.4
- fetch, in §4.7
@@ -5016,6 +5009,8 @@
includeUncontrolled, in §4.3
- incumbent record, in §5.1
- install, in §4.7
+
- "installed", in §3.1
+
- "installing", in §3.1
- installing, in §3.2.1
- installing worker, in §2.2
-
@@ -5076,6 +5071,8 @@
name to cache map, in §5.1
- navigate(url), in §4.2.8
+
- "nested", in §4.2
+
- "none", in §4.2
- onactivate, in §4.1.4
- oncontrollerchange, in §3.4.6
- onerror, in §3.4.6
@@ -5120,6 +5117,7 @@
put(request, response), in §5.4.5
- ready, in §3.4.2
- ready promise, in §3.4
+
- "redundant", in §3.1
- registering script url, in §2.2
- register(scriptURL), in §3.4.3
- register(scriptURL, options), in §3.4.3
@@ -5160,9 +5158,9 @@
scriptURL, in §3.1.1
- selection, in §2.4
-
- Service-Worker, in §Unnumbered section
- ServiceWorker, in §3.1
- serviceWorker, in §3.3
+
- Service-Worker, in §Unnumbered section
-
service worker
@@ -5182,6 +5180,7 @@ ServiceWorkerGlobalScope, in §4.1
- ServiceWorkerMessageEvent, in §3.5
- ServiceWorkerMessageEventInit, in §3.5
+
- ServiceWorkerMessageEvent(type), in §3.5
- ServiceWorkerMessageEvent(type, eventInitDict), in §3.5
- ServiceWorkerRegistration, in §3.2
-
@@ -5192,6 +5191,7 @@
ServiceWorkerState, in §3.1.2
- set of event types to handle, in §2.1
+
- "sharedworker", in §4.3
- shared worker client, in §2.3
- skipWaiting(), in §4.1.3
- skip waiting flag, in §2.1
@@ -5211,6 +5211,7 @@
statechange, in §3.6
- task queues, in §2.2
+
- "top-level", in §4.2
-
type
@@ -5229,20 +5230,22 @@ waiting worker, in §2.2
- wait to respond flag, in §4.5
- waitUntil(f), in §4.4.1
+
- "window", in §4.3
- window client, in §2.3
- WindowClient, in §4.2
+
- "worker", in §4.3
- worker client, in §2.3
Terms defined by reference
Normative References
- - [CSP2]
+
- [CSP2]
- Mike West; Adam Barth; Daniel Veditz. Content Security Policy Level 2. 21 July 2015. CR. URL: https://w3c.github.io/webappsec/specs/CSP2/
-
- [ECMA-262]
+
- [ECMASCRIPT]
- ECMAScript Language Specification. URL: https://tc39.github.io/ecma262/
-
- [FETCH]
+
- [FETCH]
- Anne van Kesteren. Fetch Standard. Living Standard. URL: https://fetch.spec.whatwg.org/
-
- [HTML]
+
- [HTML]
- Ian Hickson. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
-
- [WHATWG-DOM]
-
- Anne van Kesteren. DOM Standard. Living Standard. URL: https://dom.spec.whatwg.org/
-
- [WHATWG-URL]
-
- Anne van Kesteren; Sam Ruby. URL Standard. Living Standard. URL: https://url.spec.whatwg.org/
-
- [WebIDL]
-
- Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 4 August 2015. WD. URL: https://heycam.github.io/webidl/
-
- [PAGE-VISIBILITY]
+
- [PAGE-VISIBILITY]
- Jatinder Mann; Arvind Jain. Page Visibility (Second Edition). 29 October 2013. REC. URL: http://www.w3.org/TR/page-visibility/
-
- [POWERFUL-FEATURES]
-
- Mike West; Yan Zhu. Privileged Contexts. 24 April 2015. WD. URL: https://w3c.github.io/webappsec/specs/powerfulfeatures/
-
- [PROMISES-GUIDE]
+
- [PROMISES-GUIDE]
- Writing Promise-Using Specifications. 24 July 2015. Finding of the W3C TAG. URL: https://www.w3.org/2001/tag/doc/promises-guide
-
- [QUOTA-API]
-
- Kinuko Yasuda. Quota Management API. 15 December 2015. WD. URL: http://www.w3.org/TR/quota-api/
-
- [RFC2119]
+
- [QUOTA-API]
+
- Kinuko Yasuda. Quota Management API. 15 December 2015. WD. URL: https://w3c.github.io/quota-api/
+
- [RFC2119]
- S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
-
- [RFC5234]
+
- [RFC5234]
- D. Crocker, Ed.; P. Overell. Augmented BNF for Syntax Specifications: ABNF. January 2008. Internet Standard. URL: https://tools.ietf.org/html/rfc5234
-
- [RFC7230]
+
- [RFC7230]
- R. Fielding, Ed.; J. Reschke, Ed.. Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. June 2014. Proposed Standard. URL: https://tools.ietf.org/html/rfc7230
-
- [RFC7231]
+
- [RFC7231]
- R. Fielding, Ed.; J. Reschke, Ed.. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. June 2014. Proposed Standard. URL: https://tools.ietf.org/html/rfc7231
+
- [SECURE-CONTEXTS]
+
- Mike West. Secure Contexts. 26 April 2016. WD. URL: https://w3c.github.io/webappsec-secure-contexts/
+
- [WebIDL-1]
+
- Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 8 March 2016. CR. URL: https://heycam.github.io/webidl/
+
- [WHATWG-DOM]
+
- Anne van Kesteren. DOM Standard. Living Standard. URL: https://dom.spec.whatwg.org/
+
- [WHATWG-URL]
+
- Anne van Kesteren; Sam Ruby. URL Standard. Living Standard. URL: https://url.spec.whatwg.org/
Informative References
- - [WHATWG-NOTIFICATIONS]
+
- [NOTIFICATIONS]
- Anne van Kesteren. Notifications API Standard. Living Standard. URL: https://notifications.spec.whatwg.org/
-
- [UNSANCTIONED-TRACKING]
+
- [UNSANCTIONED-TRACKING]
- Unsanctioned Web Tracking. 17 July 2015. Finding of the W3C TAG. URL: https://www.w3.org/2001/tag/doc/unsanctioned-tracking
IDL Index
@@ -5528,11 +5529,11 @@ I
ServiceWorker implements AbstractWorker;
enum ServiceWorkerState {
- "installing",
- "installed",
- "activating",
- "activated",
- "redundant"
+ "installing",
+ "installed",
+ "activating",
+ "activated",
+ "redundant"
};
[Exposed=(Window,Worker)]
@@ -5611,8 +5612,6 @@ I
// event
attribute EventHandler onmessage; // event.source of the message events is Client object
-
- // close() method inherited from WorkerGlobalScope should not be accessible.
};
[Exposed=ServiceWorker]
@@ -5632,10 +5631,10 @@ I
};
enum FrameType {
- "auxiliary",
- "top-level",
- "nested",
- "none"
+ "auxiliary",
+ "top-level",
+ "nested",
+ "none"
};
[Exposed=ServiceWorker]
@@ -5653,10 +5652,10 @@ I
};
enum ClientType {
- "window",
- "worker",
- "sharedworker",
- "all"
+ "window",
+ "worker",
+ "sharedworker",
+ "all"
};
[Constructor(DOMString type, optional ExtendableEventInit eventInitDict), Exposed=ServiceWorker]
@@ -5747,7 +5746,8 @@
These substeps will be replaced by using pipe when the algorithm for pipeTo becomes stable. ↵
- | |