Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(912)

Unified Diff: content/browser/devtools/render_frame_devtools_agent_host.cc

Issue 2263843002: DevTools: merge devtools target with devtools host, part 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for landing 3 Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..861cd62c7bee9b1bfa8c59619b67e54862868bec 100644
--- a/content/browser/devtools/render_frame_devtools_agent_host.cc
+++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
@@ -7,12 +7,14 @@
#include <tuple>
#include <utility>
+#include "base/guid.h"
#include "base/lazy_instance.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#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"
@@ -370,7 +372,8 @@ RenderFrameDevToolsAgentHost::CreateThrottleForNavigation(
RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
RenderFrameHostImpl* host)
- : browser_handler_(new devtools::browser::BrowserHandler()),
+ : DevToolsAgentHostImpl(base::GenerateGUID()),
+ browser_handler_(new devtools::browser::BrowserHandler()),
dom_handler_(new devtools::dom::DOMHandler()),
input_handler_(new devtools::input::InputHandler()),
inspector_handler_(new devtools::inspector::InspectorHandler()),
@@ -860,15 +863,45 @@ 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() {
+ DevToolsManager* manager = DevToolsManager::GetInstance();
+ if (manager->delegate())
+ return manager->delegate()->GetTargetType(current_->host());
+ return kTypeOther;
}
std::string RenderFrameDevToolsAgentHost::GetTitle() {
- if (IsChildFrame())
- return GetURL().spec();
- if (WebContents* web_contents = GetWebContents())
- return base::UTF16ToUTF8(web_contents->GetTitle());
+ DevToolsManager* manager = DevToolsManager::GetInstance();
+ std::string result;
+ if (manager->delegate())
+ result = manager->delegate()->GetTargetTitle(current_->host());
+ if (!result.empty())
+ return result;
+ content::WebContents* web_contents = GetWebContents();
+ if (web_contents)
+ result = base::UTF16ToUTF8(web_contents->GetTitle());
+ return GetURL().spec();
+}
+
+std::string RenderFrameDevToolsAgentHost::GetDescription() {
return "";
}
@@ -884,6 +917,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 +930,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 +944,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 +1004,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(

Powered by Google App Engine
This is Rietveld 408576698