summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_list.h
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-17 00:01:57 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-17 00:01:57 +0000
commitf92a69826846102dfe32ac44bc36df79f803beb6 (patch)
tree35995131920888be482b8eea6cbce3d96803e15b /chrome/browser/browser_list.h
parentcb1cdf49dfef2a86f5616be04f07381ec00ce1b9 (diff)
downloadchromium_src-f92a69826846102dfe32ac44bc36df79f803beb6.zip
chromium_src-f92a69826846102dfe32ac44bc36df79f803beb6.tar.gz
chromium_src-f92a69826846102dfe32ac44bc36df79f803beb6.tar.bz2
revert r8217 until memory tests are fixed.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8245 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_list.h')
-rw-r--r--chrome/browser/browser_list.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/browser/browser_list.h b/chrome/browser/browser_list.h
index 72262a9..cda32a9 100644
--- a/chrome/browser/browser_list.h
+++ b/chrome/browser/browser_list.h
@@ -10,6 +10,12 @@
#include "chrome/browser/browser.h"
+namespace views {
+class AppModalDialogDelegate;
+class Window;
+};
+class WebContents;
+
// Stores a list of all Browser objects.
class BrowserList {
public:
@@ -35,6 +41,13 @@ class BrowserList {
static void AddBrowser(Browser* browser);
static void RemoveBrowser(Browser* browser);
+ // Adds and removes non-browser dependent windows. These are windows that are
+ // top level, but whose lifetime is associated wtih the existence of at least
+ // one active Browser. When the last Browser is destroyed, all open dependent
+ // windows are closed.
+ static void AddDependentWindow(views::Window* window);
+ static void RemoveDependentWindow(views::Window* window);
+
static void AddObserver(Observer* observer);
static void RemoveObserver(Observer* observer);
@@ -100,12 +113,20 @@ class BrowserList {
static bool IsOffTheRecordSessionActive();
private:
+ // Closes all registered dependent windows.
+ static void CloseAllDependentWindows();
+
// Helper method to remove a browser instance from a list of browsers
static void RemoveBrowserFrom(Browser* browser, list_type* browser_list);
static list_type browsers_;
static std::vector<Observer*> observers_;
static list_type last_active_browsers_;
+ typedef std::vector<views::Window*> DependentWindowList;
+ static DependentWindowList dependent_windows_;
+
+ // Set to the currently showing modal dialog delegate if any, NULL otherwise.
+ static views::AppModalDialogDelegate* app_modal_dialog_;
};
class WebContents;