Commit 8bba431f authored by Hiroki Nakagawa's avatar Hiroki Nakagawa Committed by Commit Bot

ServiceWorker: Expose ServiceWorker interface to ServiceWorker

The ServiceWorker spec requires to expose it to ServiceWorker, but Blink
has exposed it only to Window:
https://w3c.github.io/ServiceWorker/#serviceworker-interface

Instances of the ServiceWorker interface have been available on
ServiceWorkerGlobalScope for a long time via |self.registration|, so this isn't
exposing anything new (see https://crbug.com/437677).

Ideally, this should also be exposed to DedicatedWorker and SharedWorker, but
this CL doesn't do it. This is because Blink hasn't supported ServiceWorker APIs
on the workers yet, and exposing the interface to the workers may churn feature
detections etc (see https://crbug.com/371690).

Bug: 999023
Change-Id: I5b36706d4d09dd830af00097bc9c724e3adf56b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1775942
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: default avatarKent Tamura <tkent@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692391}
parent 78c473c9
...@@ -40,7 +40,11 @@ enum ServiceWorkerState { ...@@ -40,7 +40,11 @@ enum ServiceWorkerState {
[ [
ActiveScriptWrappable, ActiveScriptWrappable,
SecureContext SecureContext,
// TODO(https://crbug.com/999023): Expose this to Worker (not only to
// ServiceWorker) after Service Worker APIs are supported on dedicated
// workers and shared workers.
Exposed=(Window,ServiceWorker)
] interface ServiceWorker : EventTarget { ] interface ServiceWorker : EventTarget {
[CallWith=ScriptState, RaisesException] void postMessage(any message, sequence<object> transfer); [CallWith=ScriptState, RaisesException] void postMessage(any message, sequence<object> transfer);
......
...@@ -1247,6 +1247,16 @@ interface SecurityPolicyViolationEvent : Event ...@@ -1247,6 +1247,16 @@ interface SecurityPolicyViolationEvent : Event
getter statusCode getter statusCode
getter violatedDirective getter violatedDirective
method constructor method constructor
interface ServiceWorker : EventTarget
attribute @@toStringTag
getter onerror
getter onstatechange
getter scriptURL
getter state
method constructor
method postMessage
setter onerror
setter onstatechange
interface ServiceWorkerGlobalScope : WorkerGlobalScope interface ServiceWorkerGlobalScope : WorkerGlobalScope
attribute @@toStringTag attribute @@toStringTag
method constructor method constructor
......
...@@ -1089,6 +1089,16 @@ interface SecurityPolicyViolationEvent : Event ...@@ -1089,6 +1089,16 @@ interface SecurityPolicyViolationEvent : Event
getter statusCode getter statusCode
getter violatedDirective getter violatedDirective
method constructor method constructor
interface ServiceWorker : EventTarget
attribute @@toStringTag
getter onerror
getter onstatechange
getter scriptURL
getter state
method constructor
method postMessage
setter onerror
setter onstatechange
interface ServiceWorkerGlobalScope : WorkerGlobalScope interface ServiceWorkerGlobalScope : WorkerGlobalScope
attribute @@toStringTag attribute @@toStringTag
method constructor method constructor
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment