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 f3c189c5b82d8615e021f3621d2962281e9f2442..75f824aa9004f9fd38f28f1b5d65492102eaa401 100644 |
| --- a/chrome/browser/devtools/devtools_window.cc |
| +++ b/chrome/browser/devtools/devtools_window.cc |
| @@ -394,6 +394,7 @@ DevToolsWindow* DevToolsWindow::OpenDevToolsWindowForWorker( |
| DevToolsWindow* window = FindDevToolsWindow(worker_agent.get()); |
| if (!window) { |
| window = DevToolsWindow::CreateDevToolsWindowForWorker(profile); |
| + DCHECK(window); |
| window->bindings_->AttachTo(worker_agent); |
| } |
| window->ScheduleShow(DevToolsToggleAction::Show()); |
| @@ -445,11 +446,13 @@ void DevToolsWindow::OpenExternalFrontend( |
| bool isWorker) { |
| DevToolsWindow* window = FindDevToolsWindow(agent_host.get()); |
| if (!window) { |
| - window = Create(profile, GURL(), NULL, isWorker, |
| - DevToolsUI::GetProxyURL(frontend_url).spec(), false, ""); |
| - window->bindings_->AttachTo(agent_host); |
| + window = Create(profile, GURL(), nullptr, isWorker, |
| + DevToolsUI::GetProxyURL(frontend_url).spec(), false, std::string()); |
| + if (window) |
|
dgozman
2015/01/30 13:02:08
I'd just |if (!window) return;|.
|
| + window->bindings_->AttachTo(agent_host); |
| } |
| - window->ScheduleShow(DevToolsToggleAction::Show()); |
| + if (window) |
| + window->ScheduleShow(DevToolsToggleAction::Show()); |
| } |
| // static |
| @@ -469,6 +472,7 @@ DevToolsWindow* DevToolsWindow::ToggleDevToolsWindow( |
| base::UserMetricsAction("DevTools_InspectRenderer")); |
| window = Create(profile, GURL(), inspected_web_contents, |
| false, std::string(), true, settings); |
| + DCHECK(window); |
| window->bindings_->AttachTo(agent.get()); |
| do_open = true; |
| } |
| @@ -672,7 +676,8 @@ DevToolsWindow::DevToolsWindow(Profile* profile, |
| ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string()); |
| bindings_ = DevToolsUIBindings::ForWebContents(main_web_contents_); |
| - DCHECK(bindings_); |
| + if (!bindings_) |
| + return; |
| // Bindings take ownership over devtools as its delegate. |
| bindings_->SetDelegate(this); |
| @@ -727,7 +732,13 @@ DevToolsWindow* DevToolsWindow::Create( |
| shared_worker_frontend, |
| remote_frontend, |
| can_dock, settings)); |
| - return new DevToolsWindow(profile, url, inspected_web_contents, can_dock); |
| + DevToolsWindow* window = |
| + new DevToolsWindow(profile, url, inspected_web_contents, can_dock); |
| + if (!window->bindings_) { |
| + delete window; |
| + window = nullptr; |
| + } |
| + return window; |
| } |
| // static |