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

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

Issue 2378073002: Reland of ServiceWorker: Implement StartWorker by using mojo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 3 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/embedded_worker_registry.cc
diff --git a/content/browser/service_worker/embedded_worker_registry.cc b/content/browser/service_worker/embedded_worker_registry.cc
index 1b75f9407f63cec6135191da510dd9a6c5908fab..3859b5aa1de6a0028ed0da8bbd66bef0321dd271 100644
--- a/content/browser/service_worker/embedded_worker_registry.cc
+++ b/content/browser/service_worker/embedded_worker_registry.cc
@@ -249,7 +249,7 @@
}
ServiceWorkerStatusCode EmbeddedWorkerRegistry::SendStartWorker(
- std::unique_ptr<EmbeddedWorkerMsg_StartWorker_Params> params,
+ std::unique_ptr<EmbeddedWorkerStartParams> params,
int process_id) {
if (!context_)
return SERVICE_WORKER_ERROR_ABORT;
@@ -269,8 +269,23 @@
ServiceWorkerStatusCode status =
Send(process_id, new EmbeddedWorkerMsg_StartWorker(*params));
if (status == SERVICE_WORKER_OK)
- worker_process_map_[process_id].insert(embedded_worker_id);
+ BindWorkerToProcess(process_id, embedded_worker_id);
return status;
+}
+
+void EmbeddedWorkerRegistry::BindWorkerToProcess(int process_id,
+ int embedded_worker_id) {
+ // The ServiceWorkerDispatcherHost is supposed to be created when the process
+ // is created, and keep an entry in process_sender_map_ for its whole
+ // lifetime.
+ DCHECK(base::ContainsKey(process_sender_map_, process_id));
+ DCHECK(GetWorker(embedded_worker_id));
+ DCHECK_EQ(GetWorker(embedded_worker_id)->process_id(), process_id);
+ DCHECK(
+ !base::ContainsKey(worker_process_map_, process_id) ||
+ !base::ContainsKey(worker_process_map_[process_id], embedded_worker_id));
+
+ worker_process_map_[process_id].insert(embedded_worker_id);
}
ServiceWorkerStatusCode EmbeddedWorkerRegistry::Send(

Powered by Google App Engine
This is Rietveld 408576698