| Index: content/browser/loader/resource_request_info_impl.cc
|
| diff --git a/content/browser/loader/resource_request_info_impl.cc b/content/browser/loader/resource_request_info_impl.cc
|
| index 2f4ffd4f1139ac64d036e6e92f18eb8e8bc1caa2..2a2114109fd267f821c8543b5b5abcda8976c8a4 100644
|
| --- a/content/browser/loader/resource_request_info_impl.cc
|
| +++ b/content/browser/loader/resource_request_info_impl.cc
|
| @@ -30,6 +30,15 @@ WebContents* GetWebContentsFromFTNID(int frame_tree_node_id) {
|
| return WebContentsImpl::FromFrameTreeNode(frame_tree_node);
|
| }
|
|
|
| +RenderFrameHost* GetRenderFrameHostFromFTNID(int frame_tree_node_id) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + FrameTreeNode* frame_tree_node =
|
| + FrameTreeNode::GloballyFindByID(frame_tree_node_id);
|
| + if (!frame_tree_node)
|
| + return nullptr;
|
| + return frame_tree_node->current_frame_host();
|
| +}
|
| +
|
| } // namespace
|
|
|
| // ----------------------------------------------------------------------------
|
| @@ -212,6 +221,29 @@ ResourceRequestInfoImpl::GetWebContentsGetterForRequest() const {
|
| render_process_host_id, render_frame_host_id);
|
| }
|
|
|
| +ResourceRequestInfo::RenderFrameHostGetter
|
| +ResourceRequestInfoImpl::GetRenderFrameHostGetterForRequest() const {
|
| + // PlzNavigate: navigation requests are created with a valid FrameTreeNode
|
| + // ID and invalid RenderProcessHost and RenderFrameHost IDs. The
|
| + // FrameTreeNode ID should be used to access the RenderFrameHost.
|
| + if (frame_tree_node_id_ != -1) {
|
| + DCHECK(IsBrowserSideNavigationEnabled());
|
| + return base::Bind(&GetRenderFrameHostFromFTNID, frame_tree_node_id_);
|
| + }
|
| +
|
| + // In other cases, use the RenderProcessHost ID + RenderFrameHost ID to get
|
| + // the WebContents.
|
| + int render_process_host_id = -1;
|
| + int render_frame_host_id = -1;
|
| + if (!GetAssociatedRenderFrame(&render_process_host_id,
|
| + &render_frame_host_id)) {
|
| + NOTREACHED();
|
| + }
|
| +
|
| + return base::Bind(&RenderFrameHost::FromID, render_process_host_id,
|
| + render_frame_host_id);
|
| +}
|
| +
|
| ResourceContext* ResourceRequestInfoImpl::GetContext() const {
|
| return context_;
|
| }
|
|
|