summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser_list.cc
diff options
context:
space:
mode:
authorgab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-14 04:18:49 +0000
committergab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-14 04:18:49 +0000
commitedd3cd1925df11fae7349e034af243eab4689e86 (patch)
tree3b3ae639b912a499e3190be0767ae96bae32d830 /chrome/browser/ui/browser_list.cc
parent7c60f50438f48400252f330c313a99897b5b7ca9 (diff)
downloadchromium_src-edd3cd1925df11fae7349e034af243eab4689e86.zip
chromium_src-edd3cd1925df11fae7349e034af243eab4689e86.tar.gz
chromium_src-edd3cd1925df11fae7349e034af243eab4689e86.tar.bz2
Make BrowserList::(Add|Remove)Observer add the observer to every desktop's browser list.
Also make it impossible to call AddObserver on an individual list from outside BrowserList. This is to make sure the paradigm becomes that the consumer code is in charge of checking for HostDesktopType (should he care) upon receiving an event; allowing AddObserver to be called on an individual list would put burden on the reader to understand whether the events are coming from multiple browser lists or a single one (which seems unecessary for now). BUG=129187 Review URL: https://chromiumcodereview.appspot.com/12258019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/browser_list.cc')
-rw-r--r--chrome/browser/ui/browser_list.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/chrome/browser/ui/browser_list.cc b/chrome/browser/ui/browser_list.cc
index ef5f75f..8ac380a 100644
--- a/chrome/browser/ui/browser_list.cc
+++ b/chrome/browser/ui/browser_list.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/ui/browser_list_impl.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/host_desktop.h"
using content::WebContents;
@@ -35,12 +36,20 @@ void BrowserList::RemoveBrowser(Browser* browser) {
// static
void BrowserList::AddObserver(chrome::BrowserListObserver* observer) {
- GetNativeList()->AddObserver(observer);
+ for (chrome::HostDesktopType t = chrome::HOST_DESKTOP_TYPE_FIRST;
+ t < chrome::HOST_DESKTOP_TYPE_COUNT;
+ t = static_cast<chrome::HostDesktopType>(t + 1)) {
+ chrome::BrowserListImpl::GetInstance(t)->AddObserver(observer);
+ }
}
// static
void BrowserList::RemoveObserver(chrome::BrowserListObserver* observer) {
- GetNativeList()->RemoveObserver(observer);
+ for (chrome::HostDesktopType t = chrome::HOST_DESKTOP_TYPE_FIRST;
+ t < chrome::HOST_DESKTOP_TYPE_COUNT;
+ t = static_cast<chrome::HostDesktopType>(t + 1)) {
+ chrome::BrowserListImpl::GetInstance(t)->RemoveObserver(observer);
+ }
}
void BrowserList::CloseAllBrowsersWithProfile(Profile* profile) {