| 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..30de55926d18de5a4269f2690aac9bc9e0fbf4dc 100644
|
| --- a/chrome/browser/sync/sessions/browser_list_router_helper.cc
|
| +++ b/chrome/browser/sync/sessions/browser_list_router_helper.cc
|
| @@ -12,27 +12,41 @@
|
| 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);
|
| + attached_browsers_.insert(browser);
|
| + }
|
| + }
|
| 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 : attached_browsers_) {
|
| + 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);
|
| + attached_browsers_.insert(browser);
|
| + }
|
| }
|
|
|
| void BrowserListRouterHelper::OnBrowserRemoved(Browser* browser) {
|
| - browser->tab_strip_model()->RemoveObserver(this);
|
| + if (browser->profile() == profile_) {
|
| + browser->tab_strip_model()->RemoveObserver(this);
|
| + attached_browsers_.erase(browser);
|
| + }
|
| }
|
|
|
| void BrowserListRouterHelper::TabInsertedAt(TabStripModel* model,
|
|
|