Index: content/browser/loader/resource_scheduler_filter.cc |
diff --git a/content/browser/loader/resource_scheduler_filter.cc b/content/browser/loader/resource_scheduler_filter.cc |
index 4c825dab987fa728e2f23f21366bc39e6dead45b..3732c6ac78ef28e003af4e0f3bfc2ffa8c6b67ff 100644 |
--- a/content/browser/loader/resource_scheduler_filter.cc |
+++ b/content/browser/loader/resource_scheduler_filter.cc |
@@ -45,7 +45,15 @@ bool ResourceSchedulerFilter::OnMessageReceived(const IPC::Message& message) { |
} |
if (PageTransitionIsMainFrame(params.transition) && |
!params.was_within_same_page) { |
- scheduler->OnNavigate(child_id_, message.routing_id()); |
+ // We need to track the RenderViewHost routing_id because of downstream |
+ // dependencies (crbug.com/392171 DownloadRequestHandle, |
+ // SaveFileManager, ResourceDispatcherHostImpl, MediaStreamUIProxy, |
+ // SpeechRecognitionDispatcherHost and possibly others). They look up |
+ // the view based on the ID stored in the resource requests. |
+ // Once those dependencies are unwound or moved to RenderFrameHost |
+ // (crbug.com/304341) we can move the client to be based on the |
+ // routing_id of the RenderFrameHost. |
+ scheduler->OnNavigate(child_id_, params.render_view_routing_id); |
} |
break; |
} |