| 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
 | 
| 
 |