Index: Source/modules/serviceworkers/ServiceWorkerRegistration.h |
diff --git a/Source/modules/serviceworkers/ServiceWorkerRegistration.h b/Source/modules/serviceworkers/ServiceWorkerRegistration.h |
index 4745492582c4876b75a2df622375521c85bb06fb..d5160fd18f3aa1a62b71d44b3555a90ddd933cc8 100644 |
--- a/Source/modules/serviceworkers/ServiceWorkerRegistration.h |
+++ b/Source/modules/serviceworkers/ServiceWorkerRegistration.h |
@@ -7,7 +7,9 @@ |
#include "core/dom/ActiveDOMObject.h" |
#include "core/events/EventTarget.h" |
+#include "modules/serviceworkers/ServiceWorker.h" |
#include "public/platform/WebServiceWorkerRegistration.h" |
+#include "public/platform/WebServiceWorkerRegistrationProxy.h" |
#include "wtf/OwnPtr.h" |
#include "wtf/PassOwnPtr.h" |
#include "wtf/PassRefPtr.h" |
@@ -23,30 +25,47 @@ class WebServiceWorkerProvider; |
class ServiceWorkerRegistration FINAL |
: public RefCountedWillBeRefCountedGarbageCollected<ServiceWorkerRegistration> |
, public ActiveDOMObject |
- , public EventTargetWithInlineData { |
+ , public EventTargetWithInlineData |
+ , public WebServiceWorkerRegistrationProxy { |
REFCOUNTED_EVENT_TARGET(ServiceWorkerRegistration); |
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ServiceWorkerRegistration); |
public: |
virtual ~ServiceWorkerRegistration() { } |
- // EventTarget override. |
+ // EventTarget overrides. |
virtual const AtomicString& interfaceName() const OVERRIDE; |
virtual ExecutionContext* executionContext() const OVERRIDE { return ActiveDOMObject::executionContext(); } |
+ // WebServiceWorkerRegistrationProxy overrides. |
+ virtual void dispatchUpdateFoundEvent() OVERRIDE; |
+ virtual void setInstalling(WebServiceWorker*) OVERRIDE; |
+ virtual void setWaiting(WebServiceWorker*) OVERRIDE; |
+ virtual void setActive(WebServiceWorker*) OVERRIDE; |
+ |
// For CallbackPromiseAdapter. |
typedef WebServiceWorkerRegistration WebType; |
static PassRefPtrWillBeRawPtr<ServiceWorkerRegistration> take(ScriptPromiseResolver*, WebType* registration); |
+ static void dispose(WebType* registration); |
+ |
+ PassRefPtrWillBeRawPtr<ServiceWorker> installing() { return m_installing.get(); } |
+ PassRefPtrWillBeRawPtr<ServiceWorker> waiting() { return m_waiting.get(); } |
+ PassRefPtrWillBeRawPtr<ServiceWorker> active() { return m_active.get(); } |
String scope() const; |
ScriptPromise unregister(ScriptState*); |
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(updatefound); |
+ |
private: |
static PassRefPtrWillBeRawPtr<ServiceWorkerRegistration> create(ExecutionContext*, PassOwnPtr<WebServiceWorkerRegistration>); |
ServiceWorkerRegistration(ExecutionContext*, PassOwnPtr<WebServiceWorkerRegistration>); |
OwnPtr<WebServiceWorkerRegistration> m_outerRegistration; |
WebServiceWorkerProvider* m_provider; |
+ RefPtrWillBeMember<ServiceWorker> m_installing; |
+ RefPtrWillBeMember<ServiceWorker> m_waiting; |
+ RefPtrWillBeMember<ServiceWorker> m_active; |
}; |
} // namespace blink |