diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-17 18:16:20 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-17 18:16:20 +0000 |
commit | 7cb412e7ef57da8f15615de206e698c27f5fb096 (patch) | |
tree | d80e44dda27d2b406d4d52c524caad6397b5e855 | |
parent | 98d2bd1334920f3468757e3bad770753ba44f9b9 (diff) | |
download | chromium_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.cc | 12 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/login_html_dialog.cc | 2 | ||||
-rw-r--r-- | chrome/browser/sync/glue/session_change_processor.cc | 2 |
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() { |