summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_list.cc
diff options
context:
space:
mode:
authortc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-20 18:26:36 +0000
committertc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-20 18:26:36 +0000
commit02b9cd6fa95f4797bb23dff09ac5a0a0529f2e9c (patch)
treec9d1378a22acc3363c15ae96a42722c4a3c6f382 /chrome/browser/browser_list.cc
parentdfb96df122af2da6adc25320742ae44aede063de (diff)
downloadchromium_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.cc39
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);