| 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 16fb50bccb0a67e027eab7d8582195a4d1e3e39c..f3b0b808981162c3c100e7924eaea588d1481f34 100644
|
| --- a/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| +++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
|
| @@ -567,7 +567,9 @@ void ServiceWorkerDispatcherHost::OnPostMessageToWorker(
|
| void ServiceWorkerDispatcherHost::OnProviderCreated(
|
| int provider_id,
|
| int render_frame_id,
|
| - ServiceWorkerProviderType provider_type) {
|
| + int shared_worker_route_id) {
|
| + DCHECK(render_frame_id == MSG_ROUTING_NONE ||
|
| + shared_worker_route_id == MSG_ROUTING_NONE);
|
| // TODO(pkasting): Remove ScopedTracker below once crbug.com/477117 is fixed.
|
| tracked_objects::ScopedTracker tracking_profile(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| @@ -576,18 +578,17 @@ void ServiceWorkerDispatcherHost::OnProviderCreated(
|
| "ServiceWorkerDispatcherHost::OnProviderCreated");
|
| if (!GetContext())
|
| return;
|
| - if (GetContext()->GetProviderHost(render_process_id_, provider_id)) {
|
| + if (GetContext()->GetProviderHost(render_process_id_, provider_id) ||
|
| + (render_frame_id != MSG_ROUTING_NONE &&
|
| + shared_worker_route_id != MSG_ROUTING_NONE)) {
|
| bad_message::ReceivedBadMessage(this,
|
| bad_message::SWDH_PROVIDER_CREATED_NO_HOST);
|
| return;
|
| }
|
| scoped_ptr<ServiceWorkerProviderHost> provider_host(
|
| - new ServiceWorkerProviderHost(render_process_id_,
|
| - render_frame_id,
|
| - provider_id,
|
| - provider_type,
|
| - GetContext()->AsWeakPtr(),
|
| - this));
|
| + new ServiceWorkerProviderHost(render_process_id_, render_frame_id,
|
| + shared_worker_route_id, provider_id,
|
| + GetContext()->AsWeakPtr(), this));
|
| GetContext()->AddProviderHost(provider_host.Pass());
|
| }
|
|
|
|
|