Chromium Code Reviews| 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..71a2c2ce45a44b067888ba8bd64a8e00ce2d2a36 100644 |
| --- a/chrome/browser/devtools/devtools_window.cc |
| +++ b/chrome/browser/devtools/devtools_window.cc |
| @@ -171,7 +171,6 @@ BrowserWindow* DevToolsToolboxDelegate::GetInspectedBrowserWindow() { |
| return browser->window(); |
| return NULL; |
| } |
| - |
| } // namespace |
| // DevToolsEventForwarder ----------------------------------------------------- |
| @@ -388,17 +387,17 @@ 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); |
| + if (!window) |
| + return; |
| window->bindings_->AttachTo(worker_agent); |
| } |
| window->ScheduleShow(DevToolsToggleAction::Show()); |
| - return window; |
| } |
| // static |
| @@ -409,45 +408,45 @@ DevToolsWindow* DevToolsWindow::CreateDevToolsWindowForWorker( |
| } |
| // static |
| -DevToolsWindow* DevToolsWindow::OpenDevToolsWindow( |
| +void DevToolsWindow::OpenDevToolsWindow( |
| content::WebContents* inspected_web_contents) { |
| - return ToggleDevToolsWindow( |
| - inspected_web_contents, true, DevToolsToggleAction::Show(), ""); |
| + ToggleDevToolsWindow( |
| + inspected_web_contents, true, 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); |
| + 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 +462,16 @@ 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 +487,8 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow( |
| base::UserMetricsAction("DevTools_InspectRenderer")); |
| window = Create(profile, GURL(), inspected_web_contents, |
| false, std::string(), true, settings); |
| - DCHECK(window); |
| + if (!window) |
| + return; |
| window->bindings_->AttachTo(agent.get()); |
| do_open = true; |
| } |
| @@ -501,8 +502,6 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow( |
| window->ScheduleShow(action); |
| else |
| window->CloseWindow(); |
| - |
| - return window; |
| } |
| // static |
| @@ -517,8 +516,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 +723,10 @@ 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. |
|
dgozman
2015/03/11 10:32:31
nit: "development" -> "developer"
|
| + if (profile->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled)) |
| + return nullptr; |
| + |
| if (inspected_web_contents) { |
| // Check for a place to dock. |
| Browser* browser = NULL; |