| Index: Source/modules/serviceworkers/ServiceWorkerRegistration.cpp
|
| diff --git a/Source/modules/serviceworkers/ServiceWorkerRegistration.cpp b/Source/modules/serviceworkers/ServiceWorkerRegistration.cpp
|
| index f67669ca0e77c8ae39493c02ce92e7b2ea58dd8d..8a231f5c0d565f1009da95e829485bcfe9f1b2e6 100644
|
| --- a/Source/modules/serviceworkers/ServiceWorkerRegistration.cpp
|
| +++ b/Source/modules/serviceworkers/ServiceWorkerRegistration.cpp
|
| @@ -16,6 +16,7 @@
|
| #include "modules/EventTargetModules.h"
|
| #include "modules/serviceworkers/ServiceWorkerContainerClient.h"
|
| #include "modules/serviceworkers/ServiceWorkerError.h"
|
| +#include "platform/serviceworkers/ServiceWorkerRegistrationProxy.h"
|
| #include "public/platform/WebServiceWorkerProvider.h"
|
|
|
| namespace blink {
|
| @@ -80,10 +81,10 @@ void ServiceWorkerRegistration::setActive(WebServiceWorker* serviceWorker)
|
| m_active = ServiceWorker::from(executionContext(), serviceWorker);
|
| }
|
|
|
| -PassRefPtrWillBeRawPtr<ServiceWorkerRegistration> ServiceWorkerRegistration::take(ScriptPromiseResolver* resolver, WebType* registration)
|
| +ServiceWorkerRegistration* ServiceWorkerRegistration::take(ScriptPromiseResolver* resolver, WebType* registration)
|
| {
|
| if (!registration)
|
| - return nullptr;
|
| + return 0;
|
| return getOrCreate(resolver->scriptState()->executionContext(), registration);
|
| }
|
|
|
| @@ -119,28 +120,28 @@ ScriptPromise ServiceWorkerRegistration::unregister(ScriptState* scriptState)
|
| return promise;
|
| }
|
|
|
| -PassRefPtrWillBeRawPtr<ServiceWorkerRegistration> ServiceWorkerRegistration::getOrCreate(ExecutionContext* executionContext, WebServiceWorkerRegistration* outerRegistration)
|
| +ServiceWorkerRegistration* ServiceWorkerRegistration::getOrCreate(ExecutionContext* executionContext, WebServiceWorkerRegistration* outerRegistration)
|
| {
|
| if (!outerRegistration)
|
| - return nullptr;
|
| + return 0;
|
|
|
| WebServiceWorkerRegistrationProxy* proxy = outerRegistration->proxy();
|
| if (proxy) {
|
| - ServiceWorkerRegistration* existingRegistration = *proxy;
|
| - if (existingRegistration) {
|
| - ASSERT(existingRegistration->executionContext() == executionContext);
|
| - return existingRegistration;
|
| + ServiceWorkerRegistrationProxy* existingRegistrationProxy = *proxy;
|
| + if (existingRegistrationProxy) {
|
| + ASSERT(existingRegistrationProxy->registration()->executionContext() == executionContext);
|
| + return existingRegistrationProxy->registration();
|
| }
|
| }
|
|
|
| - RefPtrWillBeRawPtr<ServiceWorkerRegistration> registration = adoptRefWillBeNoop(new ServiceWorkerRegistration(executionContext, adoptPtr(outerRegistration)));
|
| + ServiceWorkerRegistration* registration = adoptRefCountedGarbageCollectedWillBeNoop(new ServiceWorkerRegistration(executionContext, adoptPtr(outerRegistration)));
|
| registration->suspendIfNeeded();
|
| - return registration.release();
|
| + return registration;
|
| }
|
|
|
| ServiceWorkerRegistration::ServiceWorkerRegistration(ExecutionContext* executionContext, PassOwnPtr<WebServiceWorkerRegistration> outerRegistration)
|
| : ActiveDOMObject(executionContext)
|
| - , WebServiceWorkerRegistrationProxy(this)
|
| + , WebServiceWorkerRegistrationProxy(ServiceWorkerRegistrationProxy::create(this))
|
| , m_outerRegistration(outerRegistration)
|
| , m_provider(0)
|
| , m_stopped(false)
|
|
|