| Index: third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.h
|
| diff --git a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.h b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.h
|
| index e5599ca2a2ec25c94afbfb8c1f63de8af937d07f..e24774a5f915119dc6885eeef1c433f8bb9d9697 100644
|
| --- a/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.h
|
| +++ b/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerRegistration.h
|
| @@ -37,6 +37,12 @@ class ServiceWorkerRegistration final
|
| USING_PRE_FINALIZER(ServiceWorkerRegistration, dispose);
|
|
|
| public:
|
| + // Called from CallbackPromiseAdapter.
|
| + using WebType = std::unique_ptr<WebServiceWorkerRegistration::Handle>;
|
| + static ServiceWorkerRegistration* take(
|
| + ScriptPromiseResolver*,
|
| + std::unique_ptr<WebServiceWorkerRegistration::Handle>);
|
| +
|
| // ScriptWrappable overrides.
|
| bool hasPendingActivity() const final;
|
|
|
| @@ -102,14 +108,17 @@ class ServiceWorkerRegistrationArray {
|
| STATIC_ONLY(ServiceWorkerRegistrationArray);
|
|
|
| public:
|
| + // Called from CallbackPromiseAdapter.
|
| + using WebType = std::unique_ptr<
|
| + WebVector<std::unique_ptr<WebServiceWorkerRegistration::Handle>>>;
|
| static HeapVector<Member<ServiceWorkerRegistration>> take(
|
| ScriptPromiseResolver* resolver,
|
| - Vector<std::unique_ptr<WebServiceWorkerRegistration::Handle>>*
|
| - webServiceWorkerRegistrations) {
|
| + WebType webServiceWorkerRegistrations) {
|
| HeapVector<Member<ServiceWorkerRegistration>> registrations;
|
| - for (auto& registration : *webServiceWorkerRegistrations)
|
| - registrations.append(ServiceWorkerRegistration::getOrCreate(
|
| - resolver->getExecutionContext(), std::move(registration)));
|
| + for (auto& registration : *webServiceWorkerRegistrations) {
|
| + registrations.append(
|
| + ServiceWorkerRegistration::take(resolver, std::move(registration)));
|
| + }
|
| return registrations;
|
| }
|
| };
|
|
|