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*); |