summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-17 18:16:20 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-17 18:16:20 +0000
commit7cb412e7ef57da8f15615de206e698c27f5fb096 (patch)
treed80e44dda27d2b406d4d52c524caad6397b5e855
parent98d2bd1334920f3468757e3bad770753ba44f9b9 (diff)
downloadchromium_src-7cb412e7ef57da8f15615de206e698c27f5fb096.zip
chromium_src-7cb412e7ef57da8f15615de206e698c27f5fb096.tar.gz
chromium_src-7cb412e7ef57da8f15615de206e698c27f5fb096.tar.bz2
Profiles: Fix overlistening on LOAD_COMPLETED_MAIN_FRAME.
BUG=87457 TEST=none R=dilmah TBR=zea Review URL: http://codereview.chromium.org/7624007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97169 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/locale_change_guard.cc12
-rw-r--r--chrome/browser/chromeos/login/login_html_dialog.cc2
-rw-r--r--chrome/browser/sync/glue/session_change_processor.cc2
3 files changed, 9 insertions, 7 deletions
diff --git a/chrome/browser/chromeos/locale_change_guard.cc b/chrome/browser/chromeos/locale_change_guard.cc
index 501f0ff..3e5a2d3 100644
--- a/chrome/browser/chromeos/locale_change_guard.cc
+++ b/chrome/browser/chromeos/locale_change_guard.cc
@@ -52,7 +52,7 @@ LocaleChangeGuard::~LocaleChangeGuard() {}
void LocaleChangeGuard::OnLogin() {
registrar_.Add(this, content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
- NotificationService::AllSources());
+ NotificationService::AllBrowserContextsAndSources());
}
void LocaleChangeGuard::RevertLocaleChange(const ListValue* list) {
@@ -84,10 +84,12 @@ void LocaleChangeGuard::Observe(int type,
}
switch (type) {
case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME: {
- // We need to perform locale change check only once, so unsubscribe.
- registrar_.Remove(this, content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
- NotificationService::AllSources());
- Check();
+ if (profile_ == Source<TabContents>(source)->browser_context()) {
+ // We need to perform locale change check only once, so unsubscribe.
+ registrar_.Remove(this, content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
+ NotificationService::AllSources());
+ Check();
+ }
break;
}
case chrome::NOTIFICATION_OWNERSHIP_CHECKED: {
diff --git a/chrome/browser/chromeos/login/login_html_dialog.cc b/chrome/browser/chromeos/login/login_html_dialog.cc
index 263025c..9d3c4ef 100644
--- a/chrome/browser/chromeos/login/login_html_dialog.cc
+++ b/chrome/browser/chromeos/login/login_html_dialog.cc
@@ -64,7 +64,7 @@ void LoginHtmlDialog::Show() {
bubble_frame_view_->StartThrobber();
notification_registrar_.Add(
this, content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
- NotificationService::AllSources());
+ Source<TabContents>(html_view->tab_contents()));
}
html_view->InitDialog();
html_view->GetWidget()->Show();
diff --git a/chrome/browser/sync/glue/session_change_processor.cc b/chrome/browser/sync/glue/session_change_processor.cc
index d8829bb..b889853 100644
--- a/chrome/browser/sync/glue/session_change_processor.cc
+++ b/chrome/browser/sync/glue/session_change_processor.cc
@@ -286,7 +286,7 @@ void SessionChangeProcessor::StartObserving() {
NotificationService::AllSources());
notification_registrar_.Add(this,
content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
- NotificationService::AllSources());
+ NotificationService::AllBrowserContextsAndSources());
}
void SessionChangeProcessor::StopObserving() {