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

Unified Diff: chrome/browser/renderer_host/resource_message_filter.cc

Issue 390017: Added lifecycle management and sharing support for SharedWorkers. SharedWorkers (Closed)
Patch Set: Changed WebWorkerBase not not call a virtual function from the destructor Created 11 years, 1 month 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: chrome/browser/renderer_host/resource_message_filter.cc
diff --git a/chrome/browser/renderer_host/resource_message_filter.cc b/chrome/browser/renderer_host/resource_message_filter.cc
index a7d53c0068c49f40ea4a0c473dac5fa16651612e..d40e247865e3fa49d395655c1720af8626e38ce6 100644
--- a/chrome/browser/renderer_host/resource_message_filter.cc
+++ b/chrome/browser/renderer_host/resource_message_filter.cc
@@ -310,6 +310,8 @@ bool ResourceMessageFilter::OnMessageReceived(const IPC::Message& msg) {
OnOpenChannelToPlugin)
IPC_MESSAGE_HANDLER(ViewHostMsg_LaunchNaCl, OnLaunchNaCl)
IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWorker, OnCreateWorker)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_LookupSharedWorker, OnLookupSharedWorker)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentDetached, OnDocumentDetached)
IPC_MESSAGE_HANDLER(ViewHostMsg_CancelCreateDedicatedWorker,
OnCancelCreateDedicatedWorker)
IPC_MESSAGE_HANDLER(ViewHostMsg_ForwardToWorker,
@@ -654,15 +656,32 @@ void ResourceMessageFilter::OnCreateWorker(const GURL& url,
int* route_id) {
*route_id = render_widget_helper_->GetNextRoutingID();
WorkerService::GetInstance()->CreateWorker(
- url, is_shared, name, id(), render_view_route_id, this, id(), *route_id);
+ url, is_shared, name, id(), render_view_route_id, this, *route_id);
+}
+
+void ResourceMessageFilter::OnLookupSharedWorker(const GURL& url,
+ const string16& name,
+ unsigned long long document_id,
+ int* route_id,
+ bool* url_mismatch) {
+ int new_route_id = render_widget_helper_->GetNextRoutingID();
+ bool worker_found = WorkerService::GetInstance()->LookupSharedWorker(
+ url, name, document_id, this, new_route_id, url_mismatch);
+ *route_id = worker_found ? new_route_id : MSG_ROUTING_NONE;
+}
+
+void ResourceMessageFilter::OnDocumentDetached(unsigned long long document_id) {
+ // Notify the WorkerService that the passed document was detached so any
+ // associated shared workers can be shut down.
+ WorkerService::GetInstance()->DocumentDetached(this, document_id);
}
void ResourceMessageFilter::OnCancelCreateDedicatedWorker(int route_id) {
- WorkerService::GetInstance()->CancelCreateDedicatedWorker(id(), route_id);
+ WorkerService::GetInstance()->CancelCreateDedicatedWorker(this, route_id);
}
void ResourceMessageFilter::OnForwardToWorker(const IPC::Message& message) {
- WorkerService::GetInstance()->ForwardMessage(message, id());
+ WorkerService::GetInstance()->ForwardMessage(message, this);
}
void ResourceMessageFilter::OnDownloadUrl(const IPC::Message& message,

Powered by Google App Engine
This is Rietveld 408576698