| Index: chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
| diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
| index be878bc0d285bd5d245ed9353688604527b62aa8..a2d189801cc6cc6b364663c419dfd1dbd9801f86 100644
|
| --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
| +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
| @@ -56,6 +56,7 @@
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/plugin_service.h"
|
| #include "content/public/browser/plugin_service_filter.h"
|
| +#include "content/public/browser/render_frame_host.h"
|
| #include "content/public/browser/render_process_host.h"
|
| #include "content/public/browser/render_view_host.h"
|
| #include "content/public/browser/resource_context.h"
|
| @@ -178,15 +179,22 @@ void UpdatePrerenderNetworkBytesCallback(content::WebContents* web_contents,
|
| void SendExecuteMimeTypeHandlerEvent(
|
| std::unique_ptr<content::StreamInfo> stream,
|
| int64_t expected_content_size,
|
| - int render_process_id,
|
| - int render_frame_id,
|
| const std::string& extension_id,
|
| const std::string& view_id,
|
| - bool embedded) {
|
| + bool embedded,
|
| + int frame_tree_node_id,
|
| + int render_process_id,
|
| + int render_frame_id) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
| - content::WebContents* web_contents =
|
| - tab_util::GetWebContentsByFrameID(render_process_id, render_frame_id);
|
| + content::WebContents* web_contents = nullptr;
|
| + if (frame_tree_node_id != -1) {
|
| + web_contents =
|
| + content::WebContents::FromFrameTreeNodeId(frame_tree_node_id);
|
| + } else {
|
| + web_contents = content::WebContents::FromRenderFrameHost(
|
| + content::RenderFrameHost::FromID(render_process_id, render_frame_id));
|
| + }
|
| if (!web_contents)
|
| return;
|
|
|
| @@ -206,8 +214,8 @@ void SendExecuteMimeTypeHandlerEvent(
|
| if (!streams_private)
|
| return;
|
| streams_private->ExecuteMimeTypeHandler(
|
| - extension_id, web_contents, std::move(stream), view_id,
|
| - expected_content_size, embedded, render_process_id, render_frame_id);
|
| + extension_id, std::move(stream), view_id, expected_content_size, embedded,
|
| + frame_tree_node_id, render_process_id, render_frame_id);
|
| }
|
| #endif // !defined(ENABLE_EXTENSIONS)
|
|
|
| @@ -718,9 +726,9 @@ void ChromeResourceDispatcherHostDelegate::OnStreamCreated(
|
| content::BrowserThread::PostTask(
|
| content::BrowserThread::UI, FROM_HERE,
|
| base::Bind(&SendExecuteMimeTypeHandlerEvent, base::Passed(&stream),
|
| - request->GetExpectedContentSize(), info->GetChildID(),
|
| - info->GetRenderFrameID(), ix->second.extension_id,
|
| - ix->second.view_id, embedded));
|
| + request->GetExpectedContentSize(), ix->second.extension_id,
|
| + ix->second.view_id, embedded, info->GetFrameTreeNodeId(),
|
| + info->GetChildID(), info->GetRenderFrameID()));
|
| stream_target_info_.erase(request);
|
| #endif
|
| }
|
|
|