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

Unified Diff: content/browser/service_worker/service_worker_provider_host.cc

Issue 246023007: Chromium-side plumbing for ServiceWorker -> Document postMessage (2/3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: message port threading fix Created 6 years, 7 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/service_worker/service_worker_provider_host.cc
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc
index a2f3cd3264d9d0c9e9050d99d02993115ecdc279..2da7d3e66571aa1969e915ddc4c91dcec7d9b8b6 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -5,6 +5,7 @@
#include "content/browser/service_worker/service_worker_provider_host.h"
#include "base/stl_util.h"
+#include "content/browser/message_port_message_filter.h"
#include "content/browser/service_worker/service_worker_context_core.h"
#include "content/browser/service_worker/service_worker_context_request_handler.h"
#include "content/browser/service_worker/service_worker_controllee_request_handler.h"
@@ -118,4 +119,23 @@ ServiceWorkerProviderHost::CreateRequestHandler(
return scoped_ptr<ServiceWorkerRequestHandler>();
}
+void ServiceWorkerProviderHost::PostMessage(
+ const base::string16& message,
+ const std::vector<int>& sent_message_port_ids) {
+ if (!dispatcher_host_)
+ return; // Could be NULL in some tests.
+
+ std::vector<int> new_routing_ids;
+ dispatcher_host_->message_port_message_filter()->
+ UpdateMessagePortsWithNewRoutes(sent_message_port_ids,
+ &new_routing_ids);
+
+ dispatcher_host_->Send(
+ new ServiceWorkerMsg_MessageToDocument(
+ kDocumentMainThreadId, provider_id(),
+ message,
+ sent_message_port_ids,
+ new_routing_ids));
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698