Index: chrome/browser/devtools/devtools_window.cc |
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc |
index a517f18ba8532dc828cdcae38af6451a50683541..247bf851e7ba25d55c70438b89a2410c328a46a8 100644 |
--- a/chrome/browser/devtools/devtools_window.cc |
+++ b/chrome/browser/devtools/devtools_window.cc |
@@ -172,6 +172,13 @@ BrowserWindow* DevToolsToolboxDelegate::GetInspectedBrowserWindow() { |
return NULL; |
} |
+bool AreDeveloperToolsDisabled( |
+ const WebContents* const inspected_web_contents) { |
+ Profile* profile = |
+ Profile::FromBrowserContext(inspected_web_contents->GetBrowserContext()); |
+ return profile->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled); |
+} |
+ |
} // namespace |
// DevToolsEventForwarder ----------------------------------------------------- |
@@ -409,30 +416,30 @@ 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, |
+ 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::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, ""); |
@@ -456,11 +463,15 @@ void DevToolsWindow::OpenExternalFrontend( |
} |
// static |
-DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow( |
+void DevToolsWindow::ToggleDevToolsWindow( |
content::WebContents* inspected_web_contents, |
bool force_open, |
const DevToolsToggleAction& action, |
const std::string& settings) { |
+ // If development tools disabled by policy don't open the window. |
+ if (AreDeveloperToolsDisabled(inspected_web_contents)) |
+ return; |
+ |
scoped_refptr<DevToolsAgentHost> agent( |
DevToolsAgentHost::GetOrCreateFor(inspected_web_contents)); |
DevToolsWindow* window = FindDevToolsWindow(agent.get()); |
@@ -486,8 +497,6 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow( |
window->ScheduleShow(action); |
else |
window->CloseWindow(); |
- |
- return window; |
} |
// static |
@@ -502,8 +511,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; |
} |