Index: Source/modules/serviceworkers/ServiceWorker.cpp |
diff --git a/Source/modules/serviceworkers/ServiceWorker.cpp b/Source/modules/serviceworkers/ServiceWorker.cpp |
index e3cc277a709b963dc7b96dd3da5a9a910beca887..01bc49e2b990ef72ff11c3d58b6d437b80161744 100644 |
--- a/Source/modules/serviceworkers/ServiceWorker.cpp |
+++ b/Source/modules/serviceworkers/ServiceWorker.cpp |
@@ -84,18 +84,15 @@ void ServiceWorker::postMessage(PassRefPtr<SerializedScriptValue> message, const |
m_outerWorker->postMessage(messageString, webChannels.leakPtr()); |
} |
-void ServiceWorker::onStateChanged(blink::WebServiceWorkerState state) |
+bool ServiceWorker::isReady() |
{ |
- if (m_isPromisePending) |
- m_queuedStates.append(state); |
- else |
- changeState(state); |
+ return !m_isPromisePending; |
} |
-// FIXME: To be removed, this is just here as part of a three-sided patch. |
void ServiceWorker::dispatchStateChangeEvent() |
{ |
- changeState(m_outerWorker->state()); |
+ // FIXME: Add ASSERT(isReady()) when Chromium side change rolls in. |
+ this->dispatchEvent(Event::create(EventTypeNames::statechange)); |
} |
const AtomicString& ServiceWorker::state() const |
@@ -143,24 +140,17 @@ void ServiceWorker::onPromiseResolved() |
{ |
ASSERT(m_isPromisePending); |
m_isPromisePending = false; |
- for (Vector<blink::WebServiceWorkerState>::iterator iterator = m_queuedStates.begin(); iterator != m_queuedStates.end(); ++iterator) |
- changeState(*iterator); |
- m_queuedStates.clear(); |
+ m_outerWorker->proxyReadyChanged(); |
} |
void ServiceWorker::waitOnPromise(ScriptPromise promise) |
{ |
ASSERT(!m_isPromisePending); |
m_isPromisePending = true; |
+ m_outerWorker->proxyReadyChanged(); |
promise.then(ThenFunction::create(this)); |
} |
-void ServiceWorker::changeState(blink::WebServiceWorkerState state) |
-{ |
- m_outerWorker->setState(state); |
- this->dispatchEvent(Event::create(EventTypeNames::statechange)); |
-} |
- |
PassRefPtr<ServiceWorker> ServiceWorker::create(ExecutionContext* executionContext, PassOwnPtr<blink::WebServiceWorker> outerWorker) |
{ |
RefPtr<ServiceWorker> worker = adoptRef(new ServiceWorker(executionContext, outerWorker)); |