| Index: Source/modules/serviceworkers/ServiceWorker.h
|
| diff --git a/Source/modules/serviceworkers/ServiceWorker.h b/Source/modules/serviceworkers/ServiceWorker.h
|
| index 3224675d0f4737aefb01b57c415ec39fdc601a80..3fd6639d888760741f8fd1b287ae6cea51fb2c98 100644
|
| --- a/Source/modules/serviceworkers/ServiceWorker.h
|
| +++ b/Source/modules/serviceworkers/ServiceWorker.h
|
| @@ -31,6 +31,7 @@
|
| #ifndef ServiceWorker_h
|
| #define ServiceWorker_h
|
|
|
| +#include "bindings/v8/ScriptPromise.h"
|
| #include "bindings/v8/ScriptWrappable.h"
|
| #include "bindings/v8/SerializedScriptValue.h"
|
| #include "core/workers/AbstractWorker.h"
|
| @@ -48,6 +49,7 @@ class WebServiceWorker;
|
| namespace WebCore {
|
|
|
| class NewScriptState;
|
| +class ScriptPromiseResolverWithContext;
|
|
|
| class ServiceWorker
|
| : public AbstractWorker
|
| @@ -60,7 +62,7 @@ public:
|
|
|
| // For CallbackPromiseAdapter
|
| typedef blink::WebServiceWorker WebType;
|
| - static PassRefPtr<ServiceWorker> from(NewScriptState*, WebType* worker);
|
| + static PassRefPtr<ServiceWorker> from(ScriptPromiseResolverWithContext*, WebType* worker);
|
|
|
| void postMessage(PassRefPtr<SerializedScriptValue> message, const MessagePortArray*, ExceptionState&);
|
|
|
| @@ -68,15 +70,23 @@ public:
|
| DEFINE_ATTRIBUTE_EVENT_LISTENER(statechange);
|
|
|
| // WebServiceWorkerProxy overrides.
|
| + virtual void onStateChanged(blink::WebServiceWorkerState) OVERRIDE;
|
| virtual void dispatchStateChangeEvent() OVERRIDE;
|
|
|
| // AbstractWorker overrides.
|
| virtual const AtomicString& interfaceName() const OVERRIDE;
|
|
|
| private:
|
| + class ThenFunction;
|
| +
|
| ServiceWorker(ExecutionContext*, PassOwnPtr<blink::WebServiceWorker>);
|
| + void onPromiseResolved();
|
| + void waitOnPromise(ScriptPromise);
|
| + void changeState(blink::WebServiceWorkerState);
|
|
|
| OwnPtr<blink::WebServiceWorker> m_outerWorker;
|
| + bool m_isPromisePending;
|
| + Vector<blink::WebServiceWorkerState> m_queuedStates;
|
| };
|
|
|
| } // namespace WebCore
|
|
|