Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1361)

Unified Diff: content/browser/shared_worker/shared_worker_host.cc

Issue 2601893002: SharedWorker: Remove message forwarding mechanism (Closed)
Patch Set: style fix Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/shared_worker/shared_worker_host.cc
diff --git a/content/browser/shared_worker/shared_worker_host.cc b/content/browser/shared_worker/shared_worker_host.cc
index ceecae238b5a3884b098271572b22b94abb11951..10093207086d2bc0d1095ce1afb8c08c12e296a9 100644
--- a/content/browser/shared_worker/shared_worker_host.cc
+++ b/content/browser/shared_worker/shared_worker_host.cc
@@ -98,12 +98,14 @@ void SharedWorkerHost::Start(bool pause_on_start) {
info.filter()->Send(new ViewMsg_WorkerCreated(info.route_id()));
}
-bool SharedWorkerHost::FilterMessage(const IPC::Message& message,
- SharedWorkerMessageFilter* filter) {
- if (!IsAvailable() || !HasFilter(filter, message.routing_id()))
+bool SharedWorkerHost::FilterConnectionMessage(
+ int route_id,
+ int sent_message_port_id,
+ SharedWorkerMessageFilter* incoming_filter) {
+ if (!IsAvailable() || !HasFilter(incoming_filter, route_id))
return false;
- RelayMessage(message, filter);
+ Connect(route_id, sent_message_port_id, incoming_filter);
return true;
}
@@ -222,42 +224,6 @@ void SharedWorkerHost::AllowIndexedDB(const GURL& url,
url, name, instance_->resource_context(), GetRenderFrameIDsForWorker());
}
-void SharedWorkerHost::RelayMessage(
- const IPC::Message& message,
- SharedWorkerMessageFilter* incoming_filter) {
- if (!instance_)
- return;
- if (message.type() == WorkerMsg_Connect::ID) {
- // Crack the SharedWorker Connect message to setup routing for the port.
- WorkerMsg_Connect::Param param;
- if (!WorkerMsg_Connect::Read(&message, &param))
- return;
- int sent_message_port_id = std::get<0>(param);
- int new_routing_id = std::get<1>(param);
-
- DCHECK(container_render_filter_);
- new_routing_id = container_render_filter_->GetNextRoutingID();
- MessagePortService::GetInstance()->UpdateMessagePort(
- sent_message_port_id,
- container_render_filter_->message_port_message_filter(),
- new_routing_id);
- SetMessagePortID(
- incoming_filter, message.routing_id(), sent_message_port_id);
- // Resend the message with the new routing id.
- Send(new WorkerMsg_Connect(
- worker_route_id_, sent_message_port_id, new_routing_id));
-
- // Send any queued messages for the sent port.
- MessagePortService::GetInstance()->SendQueuedMessagesIfPossible(
- sent_message_port_id);
- } else {
- IPC::Message* new_message = new IPC::Message(message);
- new_message->set_routing_id(worker_route_id_);
- Send(new_message);
- return;
- }
-}
-
void SharedWorkerHost::TerminateWorker() {
termination_message_sent_ = true;
if (!closed_)
@@ -311,6 +277,26 @@ bool SharedWorkerHost::HasFilter(SharedWorkerMessageFilter* filter,
return false;
}
+void SharedWorkerHost::Connect(int route_id,
+ int sent_message_port_id,
+ SharedWorkerMessageFilter* incoming_filter) {
+ DCHECK(IsAvailable());
+ DCHECK(HasFilter(incoming_filter, route_id));
+ DCHECK(container_render_filter_);
+
+ int new_routing_id = container_render_filter_->GetNextRoutingID();
+ MessagePortService::GetInstance()->UpdateMessagePort(
+ sent_message_port_id,
+ container_render_filter_->message_port_message_filter(), new_routing_id);
+ SetMessagePortID(incoming_filter, route_id, sent_message_port_id);
+ Send(new WorkerMsg_Connect(worker_route_id_, sent_message_port_id,
+ new_routing_id));
+
+ // Send any queued messages for the sent port.
+ MessagePortService::GetInstance()->SendQueuedMessagesIfPossible(
+ sent_message_port_id);
+}
+
void SharedWorkerHost::SetMessagePortID(SharedWorkerMessageFilter* filter,
int route_id,
int message_port_id) {
« no previous file with comments | « content/browser/shared_worker/shared_worker_host.h ('k') | content/browser/shared_worker/shared_worker_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698