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()) |