Chromium Code Reviews| Index: content/browser/service_worker/service_worker_dispatcher_host.cc |
| diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc |
| index 2afe6668d3cfce2aba57c507ffda61ff2db0b0bf..bf570075f3d0500edbdd2993de97b4c05be4c19a 100644 |
| --- a/content/browser/service_worker/service_worker_dispatcher_host.cc |
| +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc |
| @@ -697,7 +697,8 @@ void ServiceWorkerDispatcherHost::OnPostMessageToWorker( |
| void ServiceWorkerDispatcherHost::OnProviderCreated( |
| int provider_id, |
| int route_id, |
| - ServiceWorkerProviderType provider_type) { |
| + ServiceWorkerProviderType provider_type, |
| + int navigation_provider_id) { |
|
michaeln
2015/07/30 01:35:08
i don't like long names but 'nav_provider_id' is v
Fabrice (no longer in Chrome)
2015/08/06 15:39:15
Not using PlzNavigate prefix in variable/class nam
|
| // TODO(pkasting): Remove ScopedTracker below once crbug.com/477117 is fixed. |
| tracked_objects::ScopedTracker tracking_profile( |
| FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| @@ -711,6 +712,19 @@ void ServiceWorkerDispatcherHost::OnProviderCreated( |
| bad_message::SWDH_PROVIDER_CREATED_NO_HOST); |
| return; |
| } |
| + |
| + // PlzNavigate: |
| + if (navigation_provider_id != kInvalidServiceWorkerProviderId) { |
| + DCHECK_EQ(SERVICE_WORKER_PROVIDER_FOR_WINDOW, provider_type); |
| + scoped_ptr<ServiceWorkerProviderHost> navigation_provider_host( |
| + GetContext()->TakeNavigationProviderHost(navigation_provider_id)); |
| + DCHECK(navigation_provider_host); |
|
michaeln
2015/07/30 01:35:08
we can't trust these values are legit, !nav_provid
|
| + navigation_provider_host->CompleteCrossSiteTransfer( |
| + render_process_id_, route_id, provider_id, provider_type, this); |
| + GetContext()->AddProviderHost(navigation_provider_host.Pass()); |
| + return; |
| + } |
| + |
| scoped_ptr<ServiceWorkerProviderHost> provider_host( |
| new ServiceWorkerProviderHost(render_process_id_, route_id, provider_id, |
| provider_type, GetContext()->AsWeakPtr(), |