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

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

Issue 972123003: Fixed behavior in case of disabled devtools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 e7df5db09306f69a05b55d33ff77849d65d1cdd6..b97787fc36cd4db1432e3e58ad380f214d683a6a 100644
--- a/chrome/browser/devtools/devtools_window.cc
+++ b/chrome/browser/devtools/devtools_window.cc
@@ -172,6 +172,14 @@ BrowserWindow* DevToolsToolboxDelegate::GetInspectedBrowserWindow() {
return NULL;
}
+bool AreDeveloperToolsDisabled(
+ const WebContents* const inspected_web_contents) {
+ if (!inspected_web_contents) return false;
+ Profile* profile =
+ Profile::FromBrowserContext(inspected_web_contents->GetBrowserContext());
+ return profile->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled);
+}
+
} // namespace
// DevToolsEventForwarder -----------------------------------------------------
@@ -388,17 +396,20 @@ bool DevToolsWindow::IsDevToolsWindow(content::WebContents* web_contents) {
}
// static
-DevToolsWindow* DevToolsWindow::OpenDevToolsWindowForWorker(
+void DevToolsWindow::OpenDevToolsWindowForWorker(
Profile* profile,
const scoped_refptr<DevToolsAgentHost>& worker_agent) {
DevToolsWindow* window = FindDevToolsWindow(worker_agent.get());
if (!window) {
window = DevToolsWindow::CreateDevToolsWindowForWorker(profile);
+
DCHECK(window);
dgozman 2015/03/10 19:36:34 Remove DCHECK.
+ if (!window)
+ return;
+
window->bindings_->AttachTo(worker_agent);
}
window->ScheduleShow(DevToolsToggleAction::Show());
- return window;
}
// static
@@ -409,45 +420,48 @@ DevToolsWindow* DevToolsWindow::CreateDevToolsWindowForWorker(
}
// static
-DevToolsWindow* DevToolsWindow::OpenDevToolsWindow(
+void DevToolsWindow::OpenDevToolsWindow(
content::WebContents* inspected_web_contents) {
- return ToggleDevToolsWindow(
- inspected_web_contents, true, DevToolsToggleAction::Show(), "");
+ DevToolsWindow::OpenDevToolsWindow(inspected_web_contents,
dgozman 2015/03/10 19:36:34 nit: let's revert back to ToggleDevToolsWindow
+ DevToolsToggleAction::Show());
}
// static
-DevToolsWindow* DevToolsWindow::OpenDevToolsWindow(
+void DevToolsWindow::OpenDevToolsWindow(
content::WebContents* inspected_web_contents,
const DevToolsToggleAction& action) {
- return ToggleDevToolsWindow(inspected_web_contents, true, action, "");
+ ToggleDevToolsWindow(inspected_web_contents, true, action, "");
}
// static
-DevToolsWindow* DevToolsWindow::OpenDevToolsWindow(
+void DevToolsWindow::OpenDevToolsWindow(
Profile* profile,
const scoped_refptr<content::DevToolsAgentHost>& agent_host) {
DevToolsWindow* window = FindDevToolsWindow(agent_host.get());
if (!window) {
window = DevToolsWindow::Create(
profile, GURL(), nullptr, false, std::string(), false, std::string());
+
DCHECK(window);
dgozman 2015/03/10 19:36:34 remove DCHECK
+ if (!window)
+ return;
+
window->bindings_->AttachTo(agent_host);
}
window->ScheduleShow(DevToolsToggleAction::Show());
- return window;
}
// static
-DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
+void DevToolsWindow::ToggleDevToolsWindow(
Browser* browser,
const DevToolsToggleAction& action) {
if (action.type() == DevToolsToggleAction::kToggle &&
browser->is_devtools()) {
browser->tab_strip_model()->CloseAllTabs();
- return NULL;
+ return;
}
- return ToggleDevToolsWindow(
+ ToggleDevToolsWindow(
browser->tab_strip_model()->GetActiveWebContents(),
action.type() == DevToolsToggleAction::kInspect,
action, "");
@@ -463,15 +477,18 @@ void DevToolsWindow::OpenExternalFrontend(
if (!window) {
window = Create(profile, GURL(), nullptr, isWorker,
DevToolsUI::GetProxyURL(frontend_url).spec(), false, std::string());
- if (window)
- window->bindings_->AttachTo(agent_host);
+
+ if (!window)
+ return;
+
+ window->bindings_->AttachTo(agent_host);
}
- if (window)
- window->ScheduleShow(DevToolsToggleAction::Show());
+
+ window->ScheduleShow(DevToolsToggleAction::Show());
}
// static
-DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
+void DevToolsWindow::ToggleDevToolsWindow(
content::WebContents* inspected_web_contents,
bool force_open,
const DevToolsToggleAction& action,
@@ -487,7 +504,11 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
base::UserMetricsAction("DevTools_InspectRenderer"));
window = Create(profile, GURL(), inspected_web_contents,
false, std::string(), true, settings);
+
DCHECK(window);
dgozman 2015/03/10 19:36:34 remove DCHECK
+ if (!window)
+ return;
+
window->bindings_->AttachTo(agent.get());
do_open = true;
}
@@ -501,8 +522,6 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow(
window->ScheduleShow(action);
else
window->CloseWindow();
-
- return window;
}
// static
@@ -517,8 +536,10 @@ void DevToolsWindow::InspectElement(
base::TimeTicks start_time = base::TimeTicks::Now();
// TODO(loislo): we should initiate DevTools window opening from within
// renderer. Otherwise, we still can hit a race condition here.
- DevToolsWindow* window = OpenDevToolsWindow(inspected_web_contents);
- if (should_measure_time)
+ OpenDevToolsWindow(inspected_web_contents);
+
+ DevToolsWindow* window = FindDevToolsWindow(agent.get());
+ if (should_measure_time && window)
window->inspect_element_start_time_ = start_time;
}
@@ -722,6 +743,9 @@ DevToolsWindow* DevToolsWindow::Create(
const std::string& remote_frontend,
bool can_dock,
const std::string& settings) {
+ // If development tools disabled by policy don't open the window.
+ if (AreDeveloperToolsDisabled(inspected_web_contents))
dgozman 2015/03/10 19:36:34 I'd just inline the function here. Note that |prof
+ return nullptr;
if (inspected_web_contents) {
// Check for a place to dock.
Browser* browser = NULL;

Powered by Google App Engine
This is Rietveld 408576698