Chromium Code Reviews| Index: content/child/service_worker/service_worker_dispatcher.cc |
| diff --git a/content/child/service_worker/service_worker_dispatcher.cc b/content/child/service_worker/service_worker_dispatcher.cc |
| index c1934f515c181edec240f2fc7081ef25eac5cdae..20f03930b82924485af84b7bfe117f5868ddc666 100644 |
| --- a/content/child/service_worker/service_worker_dispatcher.cc |
| +++ b/content/child/service_worker/service_worker_dispatcher.cc |
| @@ -523,21 +523,15 @@ void ServiceWorkerDispatcher::OnDidGetRegistrations( |
| if (!callbacks) |
| return; |
| - typedef blink::WebVector<blink::WebServiceWorkerRegistration::Handle*> |
| - WebServiceWorkerRegistrationArray; |
| - std::unique_ptr<WebServiceWorkerRegistrationArray> registrations( |
| - new WebServiceWorkerRegistrationArray(infos.size())); |
| + using WebServiceWorkerRegistrationHandles = |
| + WebServiceWorkerProvider::WebServiceWorkerRegistrationHandles; |
| + std::unique_ptr<WebServiceWorkerRegistrationHandles> registrations( |
| + new WebServiceWorkerRegistrationHandles(infos.size())); |
|
shimazu
2016/12/12 11:04:53
nit: base::MakeUnique would be better than the bar
nhiroki
2016/12/13 03:16:27
Done.
|
| for (size_t i = 0; i < infos.size(); ++i) { |
| - if (infos[i].handle_id != kInvalidServiceWorkerHandleId) { |
| - ServiceWorkerRegistrationObjectInfo info(infos[i]); |
| - ServiceWorkerVersionAttributes attr(attrs[i]); |
| - |
| - // WebServiceWorkerGetRegistrationsCallbacks cannot receive an array of |
| - // std::unique_ptr<WebServiceWorkerRegistration::Handle>, so create leaky |
| - // handles instead. |
| - (*registrations)[i] = WebServiceWorkerRegistrationImpl::CreateLeakyHandle( |
| - GetOrAdoptRegistration(info, attr)); |
| - } |
| + if (infos[i].handle_id == kInvalidServiceWorkerHandleId) |
| + continue; |
| + (*registrations)[i] = WebServiceWorkerRegistrationImpl::CreateHandle( |
| + GetOrAdoptRegistration(infos[i], attrs[i])); |
| } |
| callbacks->onSuccess(std::move(registrations)); |