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 0ddaaf1da74e358ad6789831445c42867cef462c..ded0a37bb3a92b2f18ac5f5111642223beeb576d 100644 |
--- a/content/browser/service_worker/service_worker_dispatcher_host.cc |
+++ b/content/browser/service_worker/service_worker_dispatcher_host.cc |
@@ -100,8 +100,8 @@ bool ServiceWorkerDispatcherHost::OnMessageReceived( |
OnProviderDestroyed) |
IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_SetVersionId, |
OnSetHostedVersionId) |
- IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessage, |
- OnPostMessage) |
+ IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessageToWorker, |
+ OnPostMessageToWorker) |
IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoaded, |
OnWorkerScriptLoaded) |
IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerScriptLoadFailed, |
@@ -224,30 +224,26 @@ void ServiceWorkerDispatcherHost::OnUnregisterServiceWorker( |
request_id)); |
} |
-void ServiceWorkerDispatcherHost::OnPostMessage( |
+void ServiceWorkerDispatcherHost::OnPostMessageToWorker( |
int handle_id, |
const base::string16& message, |
const std::vector<int>& sent_message_port_ids) { |
if (!context_ || !ServiceWorkerUtils::IsFeatureEnabled()) |
return; |
- std::vector<int> new_routing_ids(sent_message_port_ids.size()); |
- for (size_t i = 0; i < sent_message_port_ids.size(); ++i) { |
- new_routing_ids[i] = message_port_message_filter_->GetNextRoutingID(); |
- MessagePortService::GetInstance()->UpdateMessagePort( |
- sent_message_port_ids[i], |
- message_port_message_filter_, |
- new_routing_ids[i]); |
- } |
- |
ServiceWorkerHandle* handle = handles_.Lookup(handle_id); |
if (!handle) { |
BadMessageReceived(); |
return; |
} |
+ std::vector<int> new_routing_ids; |
+ message_port_message_filter_->UpdateMessagePortsWithNewRoutes( |
+ sent_message_port_ids, &new_routing_ids); |
handle->version()->SendMessage( |
- ServiceWorkerMsg_Message(message, sent_message_port_ids, new_routing_ids), |
+ ServiceWorkerMsg_MessageToWorker(message, |
+ sent_message_port_ids, |
+ new_routing_ids), |
base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
} |