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

Unified Diff: chrome/browser/devtools/devtools_window.cc

Issue 2361613002: DevTools: untangle device discovery request from the devtools android bridge. (Closed)
Patch Set: for landing Created 4 years, 3 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: chrome/browser/devtools/devtools_window.cc
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc
index 1aa1aaf5d7b6f087b5832471a3e38a31878b214e..60245ddf91bd6ea2cb781bc83edb0d5844ac4ec2 100644
--- a/chrome/browser/devtools/devtools_window.cc
+++ b/chrome/browser/devtools/devtools_window.cc
@@ -466,13 +466,49 @@ void DevToolsWindow::OpenDevToolsWindow(
// static
void DevToolsWindow::OpenDevToolsWindow(
+ scoped_refptr<content::DevToolsAgentHost> agent_host,
+ Profile* profile) {
+ if (!profile)
+ profile = Profile::FromBrowserContext(agent_host->GetBrowserContext());
+
+ if (!profile)
+ return;
+
+ std::string type = agent_host->GetType();
+ bool is_worker = type == DevToolsAgentHost::kTypeServiceWorker ||
+ type == DevToolsAgentHost::kTypeSharedWorker;
+
+ if (!agent_host->GetFrontendURL().empty()) {
+ bool is_v8_only = type == "node";
+ DevToolsWindow::OpenExternalFrontend(profile, agent_host->GetFrontendURL(),
+ agent_host, is_worker, is_v8_only);
+ return;
+ }
+
+ if (is_worker) {
+ DevToolsWindow::OpenDevToolsWindowForWorker(profile, agent_host);
+ return;
+ }
+
+ if (type == content::DevToolsAgentHost::kTypeFrame) {
+ DevToolsWindow::OpenDevToolsWindowForFrame(profile, agent_host);
+ return;
+ }
+
+ content::WebContents* web_contents = agent_host->GetWebContents();
+ if (web_contents)
+ DevToolsWindow::OpenDevToolsWindow(web_contents);
+}
+
+// static
+void DevToolsWindow::OpenDevToolsWindow(
content::WebContents* inspected_web_contents,
const DevToolsToggleAction& action) {
ToggleDevToolsWindow(inspected_web_contents, true, action, "");
}
// static
-void DevToolsWindow::OpenDevToolsWindow(
+void DevToolsWindow::OpenDevToolsWindowForFrame(
Profile* profile,
const scoped_refptr<content::DevToolsAgentHost>& agent_host) {
DevToolsWindow* window = FindDevToolsWindow(agent_host.get());
@@ -569,8 +605,8 @@ void DevToolsWindow::InspectElement(
if (agent->GetType() == content::DevToolsAgentHost::kTypePage) {
OpenDevToolsWindow(agent->GetWebContents());
} else {
- OpenDevToolsWindow(Profile::FromBrowserContext(agent->GetBrowserContext()),
- agent);
+ OpenDevToolsWindowForFrame(Profile::FromBrowserContext(
+ agent->GetBrowserContext()), agent);
}
DevToolsWindow* window = FindDevToolsWindow(agent.get());
if (window) {
@@ -1078,6 +1114,10 @@ void DevToolsWindow::CloseWindow() {
main_web_contents_->DispatchBeforeUnload();
}
+void DevToolsWindow::Inspect(scoped_refptr<content::DevToolsAgentHost> host) {
+ DevToolsWindow::OpenDevToolsWindow(host, nullptr);
+}
+
void DevToolsWindow::SetInspectedPageBounds(const gfx::Rect& rect) {
DevToolsContentsResizingStrategy strategy(rect);
if (contents_resizing_strategy_.Equals(strategy))

Powered by Google App Engine
This is Rietveld 408576698