Chromium Code Reviews| Index: headless/public/util/generic_url_request_job.cc |
| diff --git a/headless/public/util/generic_url_request_job.cc b/headless/public/util/generic_url_request_job.cc |
| index 4cf9bdd257cff27157b88b9279bd6988f9b5083d..56bb60360671ec3fbb8447dd6aa564508c61b334 100644 |
| --- a/headless/public/util/generic_url_request_job.cc |
| +++ b/headless/public/util/generic_url_request_job.cc |
| @@ -12,6 +12,8 @@ |
| #include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/resource_request_info.h" |
| #include "content/public/browser/web_contents.h" |
| +#include "headless/lib/browser/headless_browser_context_impl.h" |
| +#include "headless/public/headless_browser_context.h" |
| #include "headless/public/util/url_request_dispatcher.h" |
| #include "net/base/io_buffer.h" |
| #include "net/base/net_errors.h" |
| @@ -42,13 +44,15 @@ GenericURLRequestJob::GenericURLRequestJob( |
| net::NetworkDelegate* network_delegate, |
| URLRequestDispatcher* url_request_dispatcher, |
| std::unique_ptr<URLFetcher> url_fetcher, |
| - Delegate* delegate) |
| + Delegate* delegate, |
| + HeadlessBrowserContext* headless_browser_context) |
| : ManagedDispatchURLRequestJob(request, |
| network_delegate, |
| url_request_dispatcher), |
| url_fetcher_(std::move(url_fetcher)), |
| origin_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| delegate_(delegate), |
| + headless_browser_context_(headless_browser_context), |
| request_resource_info_( |
| content::ResourceRequestInfo::ForRequest(request_)), |
| request_id_(next_request_id_++), |
| @@ -199,7 +203,13 @@ int GenericURLRequestJob::GetFrameTreeNodeId() const { |
| int render_process_id; |
| int render_frame_id; |
| if (content::ResourceRequestInfo::GetRenderFrameForRequest( |
| - request_, &render_process_id, &render_frame_id)) { |
| + request_, &render_process_id, &render_frame_id) && |
| + render_process_id != -1) { |
| + if (headless_browser_context_) { |
| + return static_cast<HeadlessBrowserContextImpl*>(headless_browser_context_) |
| + ->GetFrameTreeNodeId(render_process_id, render_frame_id); |
| + } |
| + // TODO(alexclarke): Remove this. |
| content::RenderFrameHost* render_frame_host = |
| content::RenderFrameHost::FromID(render_process_id, render_frame_id); |
|
Charlie Reis
2017/04/26 19:52:56
I'm trying to understand this a bit more, but I ca
alex clarke (OOO till 29th)
2017/04/27 08:49:44
I expect this will be called on the IO thread.
|
| DCHECK(render_frame_host); |