Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Unified Diff: chrome/browser/sync/sessions/browser_list_router_helper.cc

Issue 2887513002: [sync] Scope BrowserListRouterHelper to browsers with a matching profile (Closed)
Patch Set: fix last memory leak Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698