Chromium Code Reviews| Index: content/browser/devtools/render_frame_devtools_agent_host.cc |
| diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc |
| index a4654300f607c71b842624e1dd7d95183f7c1c96..4f55898ee15a0b8ee58fc3a026da5f969ea23973 100644 |
| --- a/content/browser/devtools/render_frame_devtools_agent_host.cc |
| +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc |
| @@ -92,6 +92,16 @@ bool ShouldCreateDevToolsFor(RenderFrameHost* rfh) { |
| return rfh->IsCrossProcessSubframe() || !rfh->GetParent(); |
| } |
| +bool ShouldCreateDevToolsForNode(FrameTreeNode* ftn) { |
| + return ShouldCreateDevToolsFor(ftn->current_frame_host()); |
|
clamy
2017/01/11 13:47:29
I'm not sure if we should check for the Speculativ
dgozman
2017/01/11 18:24:31
Good question. Let's not for now - I hope PlzNavig
|
| +} |
| + |
| +static RenderFrameDevToolsAgentHost* GetAgentHostFor(FrameTreeNode* ftn) { |
| + while (ftn && !ShouldCreateDevToolsForNode(ftn)) |
| + ftn = ftn->parent(); |
| + return FindAgentHost(ftn); |
| +} |
| + |
| } // namespace |
| // RenderFrameDevToolsAgentHost::FrameHostHolder ------------------------------- |
| @@ -395,7 +405,7 @@ RenderFrameDevToolsAgentHost::CreateThrottleForNavigation( |
| // static |
| bool RenderFrameDevToolsAgentHost::IsNetworkHandlerEnabled( |
| FrameTreeNode* frame_tree_node) { |
| - RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(frame_tree_node); |
| + RenderFrameDevToolsAgentHost* agent_host = GetAgentHostFor(frame_tree_node); |
| if (!agent_host || !agent_host->session()) |
| return false; |
| return protocol::NetworkHandler::FromSession(agent_host->session()) |
| @@ -405,7 +415,7 @@ bool RenderFrameDevToolsAgentHost::IsNetworkHandlerEnabled( |
| // static |
| std::string RenderFrameDevToolsAgentHost::UserAgentOverride( |
| FrameTreeNode* frame_tree_node) { |
| - RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(frame_tree_node); |
| + RenderFrameDevToolsAgentHost* agent_host = GetAgentHostFor(frame_tree_node); |
| if (!agent_host || !agent_host->session()) |
| return std::string(); |
| return protocol::NetworkHandler::FromSession(agent_host->session()) |