Chromium Code Reviews| Index: Source/modules/serviceworkers/ServiceWorkerContainer.h |
| diff --git a/Source/modules/serviceworkers/ServiceWorkerContainer.h b/Source/modules/serviceworkers/ServiceWorkerContainer.h |
| index 7490808ed173553212f8069f6469d1fe9e1c4d41..c1ada076c5239476fe9c5bb8c270c8dc36e31280 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,14 @@ class WebServiceWorkerProvider; |
| class WebServiceWorkerRegistration; |
| class ServiceWorkerContainer final |
| - : public GarbageCollectedFinalized<ServiceWorkerContainer> |
| - , public ScriptWrappable |
| + : public RefCountedGarbageCollectedWillBeGarbageCollectedFinalized<ServiceWorkerContainer> |
| + , public EventTargetWithInlineData |
| , public ContextLifecycleObserver |
| - , public WebServiceWorkerProviderClient { |
| + , public WebServiceWorkerProviderClient |
| + , public HeapSupplementable<ServiceWorkerContainer> { |
|
tkent
2014/12/01 07:57:13
Why is this HeapSupplementable?
xiang
2014/12/02 02:31:48
It's not needed, my mistake.
|
| DEFINE_WRAPPERTYPEINFO(); |
| + DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(RefCountedGarbageCollected<ServiceWorkerContainer>); |
| + USING_GARBAGE_COLLECTED_MIXIN(ServiceWorkerContainer); |
| public: |
| static ServiceWorkerContainer* create(ExecutionContext*); |
| ~ServiceWorkerContainer(); |
| @@ -73,10 +77,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*); |