Index: content/browser/shared_worker/shared_worker_message_filter.cc |
diff --git a/content/browser/shared_worker/shared_worker_message_filter.cc b/content/browser/shared_worker/shared_worker_message_filter.cc |
index ddc37450225a12d47870ba7631e4580083d367ec..5d8cbf3532b155099f1700d5edd4150182e3ff3a 100644 |
--- a/content/browser/shared_worker/shared_worker_message_filter.cc |
+++ b/content/browser/shared_worker/shared_worker_message_filter.cc |
@@ -34,6 +34,9 @@ SharedWorkerMessageFilter::SharedWorkerMessageFilter( |
resource_context_(resource_context), |
partition_(partition), |
message_port_message_filter_(message_port_message_filter) { |
+ AddAssociatedInterface(mojom::SharedWorkerMessageFilter::Name_, |
+ base::Bind(&SharedWorkerMessageFilter::AddMojoBinding, |
+ base::Unretained(this))); |
} |
SharedWorkerMessageFilter::~SharedWorkerMessageFilter() { |
@@ -48,11 +51,6 @@ void SharedWorkerMessageFilter::OnChannelClosing() { |
bool SharedWorkerMessageFilter::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(SharedWorkerMessageFilter, message) |
- // Only sent from renderer for now, until we have nested workers. |
- IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWorker, OnCreateWorker) |
- IPC_MESSAGE_HANDLER(ViewHostMsg_ConnectToWorker, OnConnectToWorker) |
- // Only sent from renderer. |
- IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentDetached, OnDocumentDetached) |
// Only sent from SharedWorker in renderer. |
IPC_MESSAGE_HANDLER(WorkerHostMsg_WorkerContextClosed, |
OnWorkerContextClosed) |
@@ -80,22 +78,24 @@ int SharedWorkerMessageFilter::GetNextRoutingID() { |
} |
void SharedWorkerMessageFilter::OnCreateWorker( |
- const ViewHostMsg_CreateWorker_Params& params, |
- ViewHostMsg_CreateWorker_Reply* reply) { |
- reply->route_id = GetNextRoutingID(); |
- reply->error = SharedWorkerServiceImpl::GetInstance()->CreateWorker( |
- params, reply->route_id, this, resource_context_, |
- WorkerStoragePartitionId(partition_)); |
-} |
- |
-void SharedWorkerMessageFilter::OnConnectToWorker(int route_id, |
- int sent_message_port_id) { |
+ mojom::SharedWorkerCreateParamsPtr params, |
+ const OnCreateWorkerCallback& callback) { |
+ int route_id = GetNextRoutingID(); |
+ blink::WebWorkerCreationError error = |
+ SharedWorkerServiceImpl::GetInstance()->CreateWorker( |
+ std::move(params), route_id, this, resource_context_, |
+ WorkerStoragePartitionId(partition_)); |
+ callback.Run(route_id, error); |
+} |
+ |
+void SharedWorkerMessageFilter::OnConnectToWorker( |
+ int32_t route_id, |
+ int32_t sent_message_port_id) { |
SharedWorkerServiceImpl::GetInstance()->ConnectToWorker( |
route_id, sent_message_port_id, this); |
} |
-void SharedWorkerMessageFilter::OnDocumentDetached( |
- unsigned long long document_id) { |
+void SharedWorkerMessageFilter::OnDocumentDetached(uint64_t document_id) { |
SharedWorkerServiceImpl::GetInstance()->DocumentDetached(document_id, this); |
} |
@@ -154,4 +154,11 @@ void SharedWorkerMessageFilter::OnAllowIndexedDB(int worker_route_id, |
this); |
} |
+void SharedWorkerMessageFilter::AddMojoBinding( |
+ mojo::ScopedInterfaceEndpointHandle handle) { |
+ bindings_.AddBinding( |
+ this, mojo::MakeAssociatedRequest<mojom::SharedWorkerMessageFilter>( |
+ std::move(handle))); |
+} |
+ |
} // namespace content |