| Index: Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| diff --git a/Source/modules/serviceworkers/NavigatorServiceWorker.cpp b/Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| index 172589dabc8495c7d21d80b0122b92f60e03ac66..5cd299c96fdaead7c6a323c9d4013e2f62873089 100644
|
| --- a/Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| +++ b/Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| @@ -41,10 +41,12 @@
|
| #include "core/workers/SharedWorker.h"
|
| #include "modules/serviceworkers/CallbackPromiseAdapter.h"
|
| #include "modules/serviceworkers/ServiceWorker.h"
|
| -#include "public/platform/WebServiceWorkerRegistry.h"
|
| +#include "public/platform/WebServiceWorkerProvider.h"
|
| #include "public/platform/WebString.h"
|
| #include "public/platform/WebURL.h"
|
|
|
| +using WebKit::WebServiceWorkerProvider;
|
| +
|
| namespace WebCore {
|
|
|
| NavigatorServiceWorker::NavigatorServiceWorker(Navigator* navigator)
|
| @@ -61,6 +63,15 @@ const char* NavigatorServiceWorker::supplementName()
|
| return "NavigatorServiceWorker";
|
| }
|
|
|
| +WebServiceWorkerProvider* NavigatorServiceWorker::serviceWorkerProvider()
|
| +{
|
| + if (!m_provider) {
|
| + FrameLoaderClient* client = m_navigator->frame()->loader()->client();
|
| + m_provider = adoptPtr(client->createServiceWorkerProvider(this));
|
| + }
|
| + return m_provider.get();
|
| +}
|
| +
|
| NavigatorServiceWorker* NavigatorServiceWorker::from(Navigator* navigator)
|
| {
|
| NavigatorServiceWorker* supplement = toNavigatorServiceWorker(navigator);
|
| @@ -80,14 +91,13 @@ ScriptPromise NavigatorServiceWorker::registerServiceWorker(ScriptExecutionConte
|
| ScriptPromise NavigatorServiceWorker::registerServiceWorker(ScriptExecutionContext* scriptExecutionContext, const String& pattern, const String& scriptSrc, ExceptionState& es)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::serviceWorkerEnabled());
|
| - FrameLoaderClient* client = m_navigator->frame()->loader()->client();
|
| // WTF? Surely there's a better way to resolve a url?
|
| KURL scriptUrl = m_navigator->frame()->document()->completeURL(scriptSrc);
|
| - WebKit::WebServiceWorkerRegistry* peer = client->serviceWorkerRegistry();
|
| RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptExecutionContext);
|
|
|
| - if (peer)
|
| - peer->registerServiceWorker(pattern, scriptUrl, new CallbackPromiseAdapter(resolver, scriptExecutionContext));
|
| + WebKit::WebServiceWorkerProvider* provider = serviceWorkerProvider();
|
| + if (provider)
|
| + provider->registerServiceWorker(pattern, scriptUrl, new CallbackPromiseAdapter(resolver, scriptExecutionContext));
|
| else
|
| resolver->reject(PassRefPtr<ServiceWorker>(0));
|
| // call here?
|
| @@ -103,10 +113,10 @@ ScriptPromise NavigatorServiceWorker::unregisterServiceWorker(ScriptExecutionCon
|
| {
|
| ASSERT(RuntimeEnabledFeatures::serviceWorkerEnabled());
|
| FrameLoaderClient* client = m_navigator->frame()->loader()->client();
|
| - WebKit::WebServiceWorkerRegistry* peer = client->serviceWorkerRegistry();
|
| + WebKit::WebServiceWorkerProvider* provider = serviceWorkerProvider();
|
| RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptExecutionContext);
|
| - if (peer)
|
| - peer->unregisterServiceWorker(pattern, new CallbackPromiseAdapter(resolver, scriptExecutionContext));
|
| + if (provider)
|
| + provider->unregisterServiceWorker(pattern, new CallbackPromiseAdapter(resolver, scriptExecutionContext));
|
| else
|
| resolver->reject(PassRefPtr<ServiceWorker>(0));
|
| return resolver->promise();
|
|
|