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