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

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

Issue 2600113003: (SUSPENDED) SharedWorker: Mojofy Renderer(Document)->Browser communication for SharedWorker
Patch Set: address review comments 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_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

Powered by Google App Engine
This is Rietveld 408576698