Index: chrome/browser/sync/sessions/browser_list_router_helper.cc |
diff --git a/chrome/browser/sync/sessions/browser_list_router_helper.cc b/chrome/browser/sync/sessions/browser_list_router_helper.cc |
index 2b551df9d6f5e6bb4e3dd6292184af4d50f162eb..472ef4e470baee9bab1917772bce70d3c352bd7a 100644 |
--- a/chrome/browser/sync/sessions/browser_list_router_helper.cc |
+++ b/chrome/browser/sync/sessions/browser_list_router_helper.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/browser/sync/sessions/browser_list_router_helper.h" |
+#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_list.h" |
#include "chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h" |
@@ -12,34 +13,48 @@ |
namespace sync_sessions { |
BrowserListRouterHelper::BrowserListRouterHelper( |
- SyncSessionsWebContentsRouter* router) |
- : router_(router) { |
+ SyncSessionsWebContentsRouter* router, |
+ Profile* profile) |
+ : router_(router), profile_(profile) { |
BrowserList* browser_list = BrowserList::GetInstance(); |
- for (Browser* browser : *browser_list) |
- browser->tab_strip_model()->AddObserver(this); |
+ for (Browser* browser : *browser_list) { |
+ if (browser->profile() == profile_) { |
+ browser->tab_strip_model()->AddObserver(this); |
+ } |
+ } |
browser_list->AddObserver(this); |
} |
BrowserListRouterHelper::~BrowserListRouterHelper() { |
BrowserList* browser_list = BrowserList::GetInstance(); |
- for (Browser* browser : *browser_list) |
- browser->tab_strip_model()->RemoveObserver(this); |
+ for (Browser* browser : *browser_list) { |
+ if (browser->profile() == profile_) { |
+ browser->tab_strip_model()->RemoveObserver(this); |
+ } |
+ } |
+ |
BrowserList::GetInstance()->RemoveObserver(this); |
} |
void BrowserListRouterHelper::OnBrowserAdded(Browser* browser) { |
- browser->tab_strip_model()->AddObserver(this); |
+ if (browser->profile() == profile_) { |
+ browser->tab_strip_model()->AddObserver(this); |
+ } |
} |
void BrowserListRouterHelper::OnBrowserRemoved(Browser* browser) { |
- browser->tab_strip_model()->RemoveObserver(this); |
+ if (browser->profile() == profile_) { |
+ browser->tab_strip_model()->RemoveObserver(this); |
+ } |
} |
void BrowserListRouterHelper::TabInsertedAt(TabStripModel* model, |
content::WebContents* web_contents, |
int index, |
bool foreground) { |
- router_->NotifyTabModified(web_contents, false); |
+ if (web_contents && Profile::FromBrowserContext( |
+ web_contents->GetBrowserContext()) == profile_) |
+ router_->NotifyTabModified(web_contents, false); |
} |
} // namespace sync_sessions |