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(); |