| Index: Source/modules/serviceworkers/ServiceWorkerContainer.h
|
| diff --git a/Source/modules/serviceworkers/ServiceWorkerContainer.h b/Source/modules/serviceworkers/ServiceWorkerContainer.h
|
| index 7490808ed173553212f8069f6469d1fe9e1c4d41..66cd0dd07e0aa0a0d37f7c2e345d9c7c36c042c6 100644
|
| --- a/Source/modules/serviceworkers/ServiceWorkerContainer.h
|
| +++ b/Source/modules/serviceworkers/ServiceWorkerContainer.h
|
| @@ -35,6 +35,7 @@
|
| #include "bindings/core/v8/ScriptPromiseProperty.h"
|
| #include "bindings/core/v8/ScriptWrappable.h"
|
| #include "core/dom/ContextLifecycleObserver.h"
|
| +#include "core/events/EventTarget.h"
|
| #include "modules/serviceworkers/RegistrationOptions.h"
|
| #include "modules/serviceworkers/ServiceWorker.h"
|
| #include "modules/serviceworkers/ServiceWorkerRegistration.h"
|
| @@ -52,11 +53,13 @@ class WebServiceWorkerProvider;
|
| class WebServiceWorkerRegistration;
|
|
|
| class ServiceWorkerContainer final
|
| - : public GarbageCollectedFinalized<ServiceWorkerContainer>
|
| - , public ScriptWrappable
|
| + : public RefCountedGarbageCollectedWillBeGarbageCollectedFinalized<ServiceWorkerContainer>
|
| + , public EventTargetWithInlineData
|
| , public ContextLifecycleObserver
|
| , public WebServiceWorkerProviderClient {
|
| DEFINE_WRAPPERTYPEINFO();
|
| + DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(RefCountedGarbageCollected<ServiceWorkerContainer>);
|
| + WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ServiceWorkerContainer);
|
| public:
|
| static ServiceWorkerContainer* create(ExecutionContext*);
|
| ~ServiceWorkerContainer();
|
| @@ -73,10 +76,16 @@ public:
|
| ScriptPromise getRegistration(ScriptState*, const String& documentURL);
|
|
|
| // WebServiceWorkerProviderClient overrides.
|
| - virtual void setController(WebServiceWorker*) override;
|
| + virtual void setController(WebServiceWorker*, bool shouldNotifyControllerChange) override;
|
| virtual void setReadyRegistration(WebServiceWorkerRegistration*) override;
|
| virtual void dispatchMessageEvent(const WebString& message, const WebMessagePortChannelArray&) override;
|
|
|
| + // EventTarget overrides.
|
| + virtual ExecutionContext* executionContext() const override { return ContextLifecycleObserver::executionContext(); }
|
| + virtual const AtomicString& interfaceName() const override;
|
| +
|
| + DEFINE_ATTRIBUTE_EVENT_LISTENER(controllerchange);
|
| +
|
| private:
|
| explicit ServiceWorkerContainer(ExecutionContext*);
|
|
|
|
|