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 c3353de2d8600b2fae66b7c54b0b03b84daa4515..e9cdd3d2011a1b68fa501713b6c0da23e7b14480 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" |
| @@ -857,8 +858,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/22 23:09:07
Let's save it in constructor.
|
| + DevToolsManager* manager = DevToolsManager::GetInstance(); |
| + return manager->delegate()->GetTargetType(current_->host()); |
|
dgozman
2016/08/22 23:09:07
There could be no delegate.
|
| } |
| std::string RenderFrameDevToolsAgentHost::GetTitle() { |
| @@ -869,6 +889,10 @@ std::string RenderFrameDevToolsAgentHost::GetTitle() { |
| return ""; |
| } |
| +std::string RenderFrameDevToolsAgentHost::GetDescription() { |
| + return ""; |
| +} |
| + |
| GURL RenderFrameDevToolsAgentHost::GetURL() { |
| // Order is important here. |
| WebContents* web_contents = GetWebContents(); |
| @@ -881,6 +905,10 @@ GURL RenderFrameDevToolsAgentHost::GetURL() { |
| return GURL(); |
| } |
| +GURL RenderFrameDevToolsAgentHost::GetFaviconURL() { |
| + return GURL(); |
| +} |
| + |
| bool RenderFrameDevToolsAgentHost::Activate() { |
| WebContentsImpl* wc = static_cast<WebContentsImpl*>(web_contents()); |
| if (wc) { |
| @@ -890,6 +918,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(); |
| @@ -898,6 +932,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; |