Index: Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
diff --git a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
index fd56d84d22a656f9136c466411d523bb8e6d2e3d..794180db893fe958a83d4240f26ac3bcac7c0d1f 100644 |
--- a/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
+++ b/Source/modules/serviceworkers/ServiceWorkerContainer.cpp |
@@ -64,22 +64,18 @@ public: |
: m_resolver(resolver) { } |
~RegistrationCallback() override { } |
- // Takes ownership of |registrationRaw|. |
- void onSuccess(WebServiceWorkerRegistration* registrationRaw) override |
+ void onSuccess(WebPassOwnPtr<WebServiceWorkerRegistration> registration) override |
{ |
- OwnPtr<WebServiceWorkerRegistration> registration = adoptPtr(registrationRaw); |
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) |
return; |
m_resolver->resolve(ServiceWorkerRegistration::create(m_resolver->executionContext(), registration.release())); |
} |
- // Takes ownership of |errorRaw|. |
- void onError(WebServiceWorkerError* errorRaw) override |
+ void onError(const WebServiceWorkerError& error) override |
{ |
- OwnPtr<WebServiceWorkerError> error = adoptPtr(errorRaw); |
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) |
return; |
- m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), *error)); |
+ m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), error)); |
} |
private: |
@@ -93,10 +89,9 @@ public: |
: m_resolver(resolver) { } |
~GetRegistrationCallback() override { } |
- // Takes ownership of |registrationRaw|. |
- void onSuccess(WebServiceWorkerRegistration* registrationRaw) override |
+ void onSuccess(WebPassOwnPtr<WebServiceWorkerRegistration> r) override |
{ |
- OwnPtr<WebServiceWorkerRegistration> registration = adoptPtr(registrationRaw); |
+ OwnPtr<WebServiceWorkerRegistration> registration = r.release(); |
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) |
return; |
if (!registration) { |
@@ -107,13 +102,11 @@ public: |
m_resolver->resolve(ServiceWorkerRegistration::create(m_resolver->executionContext(), registration.release())); |
} |
- // Takes ownership of |errorRaw|. |
- void onError(WebServiceWorkerError* errorRaw) override |
+ void onError(const WebServiceWorkerError& error) override |
{ |
- OwnPtr<WebServiceWorkerError> error = adoptPtr(errorRaw); |
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) |
return; |
- m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), *error)); |
+ m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), error)); |
} |
private: |
@@ -127,22 +120,24 @@ public: |
: m_resolver(resolver) { } |
~GetRegistrationsCallback() override { } |
- // Takes ownership of |registrationsRaw|. |
- void onSuccess(WebVector<WebServiceWorkerRegistration*>* registrationsRaw) override |
+ void onSuccess(WebPassOwnPtr<WebVector<WebServiceWorkerRegistration*>> webPassRegistrations) override |
{ |
- OwnPtr<WebVector<WebServiceWorkerRegistration*>> registrations = adoptPtr(registrationsRaw); |
+ Vector<OwnPtr<WebServiceWorkerRegistration>> registrations; |
+ OwnPtr<WebVector<WebServiceWorkerRegistration*>> webRegistrations = webPassRegistrations.release(); |
+ for (auto& registration : *webRegistrations) { |
+ registrations.append(adoptPtr(registration)); |
+ } |
+ |
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) |
return; |
- m_resolver->resolve(ServiceWorkerRegistrationArray::take(m_resolver.get(), registrations.release())); |
+ m_resolver->resolve(ServiceWorkerRegistrationArray::take(m_resolver.get(), ®istrations)); |
} |
- // Takes ownership of |errorRaw|. |
- void onError(WebServiceWorkerError* errorRaw) override |
+ void onError(const WebServiceWorkerError& error) override |
{ |
- OwnPtr<WebServiceWorkerError> error = adoptPtr(errorRaw); |
if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) |
return; |
- m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), *error)); |
+ m_resolver->reject(ServiceWorkerError::take(m_resolver.get(), error)); |
} |
private: |
@@ -154,15 +149,12 @@ class ServiceWorkerContainer::GetRegistrationForReadyCallback : public WebServic |
public: |
explicit GetRegistrationForReadyCallback(ReadyProperty* ready) |
: m_ready(ready) { } |
- ~GetRegistrationForReadyCallback() { } |
+ ~GetRegistrationForReadyCallback() override { } |
- // Takes ownership of |registrationRaw|. |
- void onSuccess(WebServiceWorkerRegistration* registrationRaw) override |
+ void onSuccess(WebPassOwnPtr<WebServiceWorkerRegistration> registration) override |
{ |
- ASSERT(registrationRaw); |
ASSERT(m_ready->state() == ReadyProperty::Pending); |
- OwnPtr<WebServiceWorkerRegistration> registration = adoptPtr(registrationRaw); |
if (m_ready->executionContext() && !m_ready->executionContext()->activeDOMObjectsAreStopped()) |
m_ready->resolve(ServiceWorkerRegistration::create(m_ready->executionContext(), registration.release())); |
} |