Chromium Code Reviews| Index: chrome/browser/lifetime/browser_close_manager.cc |
| diff --git a/chrome/browser/lifetime/browser_close_manager.cc b/chrome/browser/lifetime/browser_close_manager.cc |
| index 234eeb484b6b531581a8d97c5c6efa8bae555a2e..bb764802994151653049f0eeb279c23940f91aaa 100644 |
| --- a/chrome/browser/lifetime/browser_close_manager.cc |
| +++ b/chrome/browser/lifetime/browser_close_manager.cc |
| @@ -12,7 +12,6 @@ |
| #include "chrome/browser/download/download_service_factory.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/ui/browser.h" |
| -#include "chrome/browser/ui/browser_iterator.h" |
| #include "chrome/browser/ui/browser_list.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/browser/ui/chrome_pages.h" |
| @@ -56,8 +55,8 @@ void BrowserCloseManager::StartClosingBrowsers() { |
| void BrowserCloseManager::CancelBrowserClose() { |
| browser_shutdown::SetTryingToQuit(false); |
| - for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
| - it->ResetBeforeUnloadHandlers(); |
| + for (auto& browser : *BrowserList::GetInstance()) { |
| + browser->ResetBeforeUnloadHandlers(); |
| } |
| } |
| @@ -67,10 +66,10 @@ void BrowserCloseManager::TryToCloseBrowsers() { |
| // stop closing. CallBeforeUnloadHandlers prompts the user and calls |
| // OnBrowserReportCloseable with the result. If the user confirms the close, |
| // this will trigger TryToCloseBrowsers to try again. |
| - for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
| - if (it->CallBeforeUnloadHandlers( |
| + for (auto& browser : *BrowserList::GetInstance()) { |
| + if (browser->CallBeforeUnloadHandlers( |
| base::Bind(&BrowserCloseManager::OnBrowserReportCloseable, this))) { |
| - current_browser_ = *it; |
| + current_browser_ = browser; |
| return; |
| } |
| } |
| @@ -152,13 +151,12 @@ void BrowserCloseManager::CloseBrowsers() { |
| bool session_ending = |
| browser_shutdown::GetShutdownType() == browser_shutdown::END_SESSION; |
| - for (scoped_ptr<chrome::BrowserIterator> it_ptr( |
| - new chrome::BrowserIterator()); |
| - !it_ptr->done();) { |
| - Browser* browser = **it_ptr; |
| - browser->window()->Close(); |
| + for (BrowserList::const_iterator browser = |
|
scottmg
2016/01/28 02:19:54
This is the only one that's non-trivial because of
|
| + BrowserList::GetInstance()->begin(); |
| + browser != BrowserList::GetInstance()->end();) { |
| + (*browser)->window()->Close(); |
| if (!session_ending) { |
| - it_ptr->Next(); |
| + browser++; |
| } else { |
| // This path is hit during logoff/power-down. In this case we won't get |
| // a final message and so we force the browser to be deleted. |
| @@ -167,11 +165,13 @@ void BrowserCloseManager::CloseBrowsers() { |
| // session we need to make sure the browser is destroyed now. So, invoke |
| // DestroyBrowser to make sure the browser is deleted and cleanup can |
| // happen. |
| - while (browser->tab_strip_model()->count()) |
| - delete browser->tab_strip_model()->GetWebContentsAt(0); |
| - browser->window()->DestroyBrowser(); |
| - it_ptr.reset(new chrome::BrowserIterator()); |
| - if (!it_ptr->done() && browser == **it_ptr) { |
| + while ((*browser)->tab_strip_model()->count()) |
| + delete (*browser)->tab_strip_model()->GetWebContentsAt(0); |
| + Browser* before = (*browser); |
| + (*browser)->window()->DestroyBrowser(); |
| + browser = BrowserList::GetInstance()->begin(); |
| + if (browser != BrowserList::GetInstance()->end() && |
| + (*browser) == before) { |
| // Destroying the browser should have removed it from the browser list. |
| // We should never get here. |
| NOTREACHED(); |