diff options
author | tc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-20 18:26:36 +0000 |
---|---|---|
committer | tc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-20 18:26:36 +0000 |
commit | 02b9cd6fa95f4797bb23dff09ac5a0a0529f2e9c (patch) | |
tree | c9d1378a22acc3363c15ae96a42722c4a3c6f382 /chrome/browser/browser_list.cc | |
parent | dfb96df122af2da6adc25320742ae44aede063de (diff) | |
download | chromium_src-02b9cd6fa95f4797bb23dff09ac5a0a0529f2e9c.zip chromium_src-02b9cd6fa95f4797bb23dff09ac5a0a0529f2e9c.tar.gz chromium_src-02b9cd6fa95f4797bb23dff09ac5a0a0529f2e9c.tar.bz2 |
Revert "revert r8217 until memory tests are fixed." This re-applies r8217.
This reverts commit r8245.
TBR=ben
Review URL: http://codereview.chromium.org/18410
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8292 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_list.cc')
-rw-r--r-- | chrome/browser/browser_list.cc | 39 |
1 files changed, 5 insertions, 34 deletions
diff --git a/chrome/browser/browser_list.cc b/chrome/browser/browser_list.cc index 69fb122..90ccb56 100644 --- a/chrome/browser/browser_list.cc +++ b/chrome/browser/browser_list.cc @@ -14,11 +14,9 @@ #include "chrome/browser/profile_manager.h" #include "chrome/browser/tab_contents/web_contents.h" #include "chrome/common/notification_service.h" -#include "chrome/views/window.h" BrowserList::list_type BrowserList::browsers_; std::vector<BrowserList::Observer*> BrowserList::observers_; -BrowserList::DependentWindowList BrowserList::dependent_windows_; // static void BrowserList::AddBrowser(Browser* browser) { @@ -60,27 +58,12 @@ void BrowserList::RemoveBrowser(Browser* browser) { // If the last Browser object was destroyed, make sure we try to close any // remaining dependent windows too. - if (browsers_.empty()) - CloseAllDependentWindows(); - - g_browser_process->ReleaseModule(); -} - -// static -void BrowserList::AddDependentWindow(views::Window* window) { - DependentWindowList::const_iterator existing = - find(dependent_windows_.begin(), dependent_windows_.end(), window); - DCHECK(existing == dependent_windows_.end()); - dependent_windows_.push_back(window); - g_browser_process->AddRefModule(); -} + if (browsers_.empty()) { + NotificationService::current()->Notify(NOTIFY_ALL_APPWINDOWS_CLOSED, + NotificationService::AllSources(), + NotificationService::NoDetails()); + } -// static -void BrowserList::RemoveDependentWindow(views::Window* window) { - DependentWindowList::iterator existing = - find(dependent_windows_.begin(), dependent_windows_.end(), window); - DCHECK(existing != dependent_windows_.end()); - dependent_windows_.erase(existing); g_browser_process->ReleaseModule(); } @@ -242,18 +225,6 @@ bool BrowserList::IsOffTheRecordSessionActive() { } // static -void BrowserList::CloseAllDependentWindows() { - // Note that |dependent_windows_| is guaranteed to be consistent for the - // duration of this operation because windows are not actually closed - // (destroyed, then deleted, and thus removed from this list) until we return - // to the message loop. So this basically just schedules a bunch of close - // operations to be performed asynchronously. - DependentWindowList::iterator window = dependent_windows_.begin(); - for (; window != dependent_windows_.end(); ++window) - (*window)->Close(); -} - -// static void BrowserList::RemoveBrowserFrom(Browser* browser, list_type* browser_list) { const iterator remove_browser = find(browser_list->begin(), browser_list->end(), browser); |