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 69142b991381e2d431819920ad3d9bc6a39f1c03..fe575db55d5c892fa3312f979d3508b4bdb6718c 100644 |
--- a/content/browser/devtools/render_frame_devtools_agent_host.cc |
+++ b/content/browser/devtools/render_frame_devtools_agent_host.cc |
@@ -13,6 +13,7 @@ |
#include "content/browser/bad_message.h" |
#include "content/browser/child_process_security_policy_impl.h" |
#include "content/browser/devtools/devtools_frame_trace_recorder.h" |
+#include "content/browser/devtools/devtools_manager.h" |
#include "content/browser/devtools/devtools_protocol_handler.h" |
#include "content/browser/devtools/page_navigation_throttle.h" |
#include "content/browser/devtools/protocol/browser_handler.h" |
@@ -860,8 +861,27 @@ void RenderFrameDevToolsAgentHost::ConnectWebContents(WebContents* wc) { |
WebContentsObserver::Observe(WebContents::FromRenderFrameHost(host)); |
} |
-DevToolsAgentHost::Type RenderFrameDevToolsAgentHost::GetType() { |
- return IsChildFrame() ? TYPE_FRAME : TYPE_WEB_CONTENTS; |
+std::string RenderFrameDevToolsAgentHost::GetParentId() { |
+ if (IsChildFrame()) { |
+ RenderFrameHostImpl* frame_host = current_->host(); |
+ while (frame_host && !ShouldCreateDevToolsFor(frame_host)) |
+ frame_host = frame_host->GetParent(); |
+ if (frame_host) |
+ return DevToolsAgentHost::GetOrCreateFor(frame_host)->GetId(); |
+ } |
+ |
+ WebContentsImpl* contents = static_cast<WebContentsImpl*>(web_contents()); |
+ if (!contents) |
+ return ""; |
+ contents = contents->GetOuterWebContents(); |
+ if (contents) |
+ return DevToolsAgentHost::GetOrCreateFor(contents)->GetId(); |
+ return ""; |
+} |
+ |
+std::string RenderFrameDevToolsAgentHost::GetType() { |
dgozman
2016/08/23 23:48:31
Let's save it in constructor.
pfeldman
2016/08/24 00:22:32
I don't yet have current_ there - need graceful co
|
+ DevToolsManager* manager = DevToolsManager::GetInstance(); |
+ return manager->delegate()->GetTargetType(current_->host()); |
dgozman
2016/08/23 23:48:31
There sill could be no delegate.
|
} |
std::string RenderFrameDevToolsAgentHost::GetTitle() { |
@@ -872,6 +892,10 @@ std::string RenderFrameDevToolsAgentHost::GetTitle() { |
return ""; |
} |
+std::string RenderFrameDevToolsAgentHost::GetDescription() { |
+ return ""; |
+} |
+ |
GURL RenderFrameDevToolsAgentHost::GetURL() { |
// Order is important here. |
WebContents* web_contents = GetWebContents(); |
@@ -884,6 +908,10 @@ GURL RenderFrameDevToolsAgentHost::GetURL() { |
return GURL(); |
} |
+GURL RenderFrameDevToolsAgentHost::GetFaviconURL() { |
+ return GURL(); |
+} |
+ |
bool RenderFrameDevToolsAgentHost::Activate() { |
WebContentsImpl* wc = static_cast<WebContentsImpl*>(web_contents()); |
if (wc) { |
@@ -893,6 +921,12 @@ bool RenderFrameDevToolsAgentHost::Activate() { |
return false; |
} |
+void RenderFrameDevToolsAgentHost::Reload() { |
+ WebContentsImpl* wc = static_cast<WebContentsImpl*>(web_contents()); |
+ if (wc) |
+ wc->GetController().Reload(true); |
+} |
+ |
bool RenderFrameDevToolsAgentHost::Close() { |
if (web_contents()) { |
web_contents()->ClosePage(); |
@@ -901,6 +935,12 @@ bool RenderFrameDevToolsAgentHost::Close() { |
return false; |
} |
+base::TimeTicks RenderFrameDevToolsAgentHost::GetLastActivityTime() { |
+ if (content::WebContents* contents = web_contents()) |
+ return contents->GetLastActiveTime(); |
+ return base::TimeTicks(); |
+} |
+ |
void RenderFrameDevToolsAgentHost::OnSwapCompositorFrame( |
const IPC::Message& message) { |
ViewHostMsg_SwapCompositorFrame::Param param; |
@@ -955,8 +995,7 @@ void RenderFrameDevToolsAgentHost::OnRequestNewWindow( |
if (IsAttached() && sender->GetRoutingID() != new_routing_id && frame_host) { |
scoped_refptr<DevToolsAgentHost> agent = |
DevToolsAgentHost::GetOrCreateFor(frame_host); |
- success = static_cast<DevToolsAgentHostImpl*>(agent.get())-> |
- Inspect(agent->GetBrowserContext()); |
+ success = agent->Inspect(); |
} |
sender->Send(new DevToolsAgentMsg_RequestNewWindow_ACK( |