OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/loader/resource_request_info_impl.h" | 5 #include "content/browser/loader/resource_request_info_impl.h" |
6 | 6 |
7 #include "content/browser/frame_host/frame_tree_node.h" | 7 #include "content/browser/frame_host/frame_tree_node.h" |
8 #include "content/browser/loader/global_routing_id.h" | 8 #include "content/browser/loader/global_routing_id.h" |
9 #include "content/browser/loader/resource_message_filter.h" | 9 #include "content/browser/loader/resource_message_filter.h" |
10 #include "content/browser/web_contents/web_contents_impl.h" | 10 #include "content/browser/web_contents/web_contents_impl.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 WebContents* GetWebContentsFromFTNID(int frame_tree_node_id) { | 23 WebContents* GetWebContentsFromFTNID(int frame_tree_node_id) { |
24 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 24 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
25 FrameTreeNode* frame_tree_node = | 25 FrameTreeNode* frame_tree_node = |
26 FrameTreeNode::GloballyFindByID(frame_tree_node_id); | 26 FrameTreeNode::GloballyFindByID(frame_tree_node_id); |
27 if (!frame_tree_node) | 27 if (!frame_tree_node) |
28 return nullptr; | 28 return nullptr; |
29 | 29 |
30 return WebContentsImpl::FromFrameTreeNode(frame_tree_node); | 30 return WebContentsImpl::FromFrameTreeNode(frame_tree_node); |
31 } | 31 } |
32 | 32 |
| 33 RenderFrameHost* GetRenderFrameHostFromFTNID(int frame_tree_node_id) { |
| 34 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 35 FrameTreeNode* frame_tree_node = |
| 36 FrameTreeNode::GloballyFindByID(frame_tree_node_id); |
| 37 if (!frame_tree_node) |
| 38 return nullptr; |
| 39 return frame_tree_node->current_frame_host(); |
| 40 } |
| 41 |
33 } // namespace | 42 } // namespace |
34 | 43 |
35 // ---------------------------------------------------------------------------- | 44 // ---------------------------------------------------------------------------- |
36 // ResourceRequestInfo | 45 // ResourceRequestInfo |
37 | 46 |
38 // static | 47 // static |
39 const ResourceRequestInfo* ResourceRequestInfo::ForRequest( | 48 const ResourceRequestInfo* ResourceRequestInfo::ForRequest( |
40 const net::URLRequest* request) { | 49 const net::URLRequest* request) { |
41 return ResourceRequestInfoImpl::ForRequest(request); | 50 return ResourceRequestInfoImpl::ForRequest(request); |
42 } | 51 } |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 int render_frame_host_id = -1; | 214 int render_frame_host_id = -1; |
206 if (!GetAssociatedRenderFrame(&render_process_host_id, | 215 if (!GetAssociatedRenderFrame(&render_process_host_id, |
207 &render_frame_host_id)) { | 216 &render_frame_host_id)) { |
208 NOTREACHED(); | 217 NOTREACHED(); |
209 } | 218 } |
210 | 219 |
211 return base::Bind(&WebContentsImpl::FromRenderFrameHostID, | 220 return base::Bind(&WebContentsImpl::FromRenderFrameHostID, |
212 render_process_host_id, render_frame_host_id); | 221 render_process_host_id, render_frame_host_id); |
213 } | 222 } |
214 | 223 |
| 224 ResourceRequestInfo::RenderFrameHostGetter |
| 225 ResourceRequestInfoImpl::GetRenderFrameHostGetterForRequest() const { |
| 226 // PlzNavigate: navigation requests are created with a valid FrameTreeNode |
| 227 // ID and invalid RenderProcessHost and RenderFrameHost IDs. The |
| 228 // FrameTreeNode ID should be used to access the RenderFrameHost. |
| 229 if (frame_tree_node_id_ != -1) { |
| 230 DCHECK(IsBrowserSideNavigationEnabled()); |
| 231 return base::Bind(&GetRenderFrameHostFromFTNID, frame_tree_node_id_); |
| 232 } |
| 233 |
| 234 // In other cases, use the RenderProcessHost ID + RenderFrameHost ID to get |
| 235 // the WebContents. |
| 236 int render_process_host_id = -1; |
| 237 int render_frame_host_id = -1; |
| 238 if (!GetAssociatedRenderFrame(&render_process_host_id, |
| 239 &render_frame_host_id)) { |
| 240 NOTREACHED(); |
| 241 } |
| 242 |
| 243 return base::Bind(&RenderFrameHost::FromID, render_process_host_id, |
| 244 render_frame_host_id); |
| 245 } |
| 246 |
215 ResourceContext* ResourceRequestInfoImpl::GetContext() const { | 247 ResourceContext* ResourceRequestInfoImpl::GetContext() const { |
216 return context_; | 248 return context_; |
217 } | 249 } |
218 | 250 |
219 int ResourceRequestInfoImpl::GetChildID() const { | 251 int ResourceRequestInfoImpl::GetChildID() const { |
220 return requester_info_->child_id(); | 252 return requester_info_->child_id(); |
221 } | 253 } |
222 | 254 |
223 int ResourceRequestInfoImpl::GetRouteID() const { | 255 int ResourceRequestInfoImpl::GetRouteID() const { |
224 return route_id_; | 256 return route_id_; |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 on_transfer_.Run(std::move(url_loader_request), | 376 on_transfer_.Run(std::move(url_loader_request), |
345 std::move(url_loader_client)); | 377 std::move(url_loader_client)); |
346 } | 378 } |
347 } | 379 } |
348 | 380 |
349 void ResourceRequestInfoImpl::ResetBody() { | 381 void ResourceRequestInfoImpl::ResetBody() { |
350 body_ = nullptr; | 382 body_ = nullptr; |
351 } | 383 } |
352 | 384 |
353 } // namespace content | 385 } // namespace content |
OLD | NEW |