Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 6ccb9f5995949069dbeadc97faa76fd507a3ac9b..5d5c1ee9fc4e0f10cdecd2bd336c5124935d37a3 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2954,6 +2954,14 @@ void RenderFrameImpl::UpdateURL(blink::WebFrame* frame) { |
params.is_post = false; |
params.post_id = -1; |
params.page_id = render_view_->page_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. |
+ params.render_view_routing_id = render_view_->routing_id(); |
params.socket_address.set_host(response.remoteIPAddress().utf8()); |
params.socket_address.set_port(response.remotePort()); |
WebURLResponseExtraDataImpl* extra_data = GetExtraDataFromResponse(response); |