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

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

Issue 509016: Refactored code to allow associating workers with multiple renderers. (Closed)
Patch Set: Disabled overly-aggressive assertion in ResourceDispatcherHost. Created 10 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: chrome/browser/renderer_host/resource_dispatcher_host.cc
diff --git a/chrome/browser/renderer_host/resource_dispatcher_host.cc b/chrome/browser/renderer_host/resource_dispatcher_host.cc
index 65182c275b5d353b777b3ba1f867340bab8583a1..2907d7fd26571488ee33a9146b4e4df0afd34d00 100644
--- a/chrome/browser/renderer_host/resource_dispatcher_host.cc
+++ b/chrome/browser/renderer_host/resource_dispatcher_host.cc
@@ -159,7 +159,11 @@ class RVHDelegateNotificationTask : public Task {
if (!ResourceDispatcherHost::RenderViewForRequest(request,
&render_process_host_id_,
&render_view_host_id_)) {
- NOTREACHED();
+ // Issue a warning here - this can happen during normal operation (for
+ // example, if a worker exits while a network operation is pending), but
+ // it should be fairly rare.
+ DLOG(WARNING) << "Trying to deliver a message to a RenderViewHost" <<
+ " that has already exited or has never existed.";
}
}
@@ -1451,8 +1455,13 @@ bool ResourceDispatcherHost::RenderViewForRequest(const URLRequest* request,
*render_view_host_id = -1;
return false;
}
- *render_process_host_id = worker_instance->renderer_id();
- *render_view_host_id = worker_instance->render_view_route_id();
+ DCHECK(!worker_instance->worker_document_set()->IsEmpty());
+ const WorkerDocumentSet::DocumentInfoSet& parents =
+ worker_instance->worker_document_set()->documents();
+ // Need to display some related UI for this network request - pick an
+ // arbitrary parent to do so.
+ *render_process_host_id = parents.begin()->renderer_id();
+ *render_view_host_id = parents.begin()->render_view_route_id();
} else {
*render_process_host_id = info->child_id();
*render_view_host_id = info->route_id();
« no previous file with comments | « chrome/browser/automation/automation_provider_observers.cc ('k') | chrome/browser/renderer_host/resource_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698