Index: headless/lib/browser/headless_web_contents_impl.cc |
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc |
index 508302cc0ba708893ac0ef43646e1a2faf7d844b..fe9cbd461fbcbea8e56678cf0d8cc278d0b8f8f6 100644 |
--- a/headless/lib/browser/headless_web_contents_impl.cc |
+++ b/headless/lib/browser/headless_web_contents_impl.cc |
@@ -216,6 +216,10 @@ void HeadlessWebContentsImpl::RenderFrameCreated( |
browser()->BrowserMainThread()); |
} |
+ browser_context_->SetFrameTreeNodeId(render_frame_host->GetProcess()->GetID(), |
+ render_frame_host->GetRoutingID(), |
+ render_frame_host->GetFrameTreeNodeId()); |
+ |
std::string devtools_agent_host_id = |
content::DevToolsAgentHost::GetOrCreateFor(render_frame_host)->GetId(); |
render_frame_host_to_devtools_agent_host_id_[render_frame_host] = |
@@ -226,6 +230,10 @@ void HeadlessWebContentsImpl::RenderFrameCreated( |
void HeadlessWebContentsImpl::RenderFrameDeleted( |
content::RenderFrameHost* render_frame_host) { |
+ browser_context_->RemoveFrameTreeNode( |
+ render_frame_host->GetProcess()->GetID(), |
+ render_frame_host->GetRoutingID()); |
+ |
auto find_it = |
render_frame_host_to_devtools_agent_host_id_.find(render_frame_host); |
if (find_it == render_frame_host_to_devtools_agent_host_id_.end()) |
@@ -246,6 +254,19 @@ bool HeadlessWebContentsImpl::GetFrameTreeNodeIdForDevToolsAgentHostId( |
return true; |
} |
+std::string |
+HeadlessWebContentsImpl::GetUntrustedDevToolsFrameIdForFrameTreeNodeId( |
+ int process_id, |
+ int frame_tree_node_id) const { |
+ return content::DevToolsAgentHost:: |
+ GetUntrustedDevToolsFrameIdForFrameTreeNodeId(process_id, |
+ frame_tree_node_id); |
+} |
+ |
+int HeadlessWebContentsImpl::GetMainFrameRenderProcessId() const { |
+ return web_contents()->GetMainFrame()->GetProcess()->GetID(); |
+} |
+ |
bool HeadlessWebContentsImpl::OpenURL(const GURL& url) { |
if (!url.is_valid()) |
return false; |