diff options
Diffstat (limited to 'components/signin')
-rw-r--r-- | components/signin/core/browser/account_reconcilor.cc | 14 | ||||
-rw-r--r-- | components/signin/core/browser/account_reconcilor.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/components/signin/core/browser/account_reconcilor.cc b/components/signin/core/browser/account_reconcilor.cc index 3103479..b39062b 100644 --- a/components/signin/core/browser/account_reconcilor.cc +++ b/components/signin/core/browser/account_reconcilor.cc @@ -65,6 +65,7 @@ AccountReconcilor::AccountReconcilor(ProfileOAuth2TokenService* token_service, NULL), registered_with_token_service_(false), registered_with_merge_session_helper_(false), + registered_with_content_settings_(false), is_reconcile_started_(false), first_execution_(true), are_gaia_accounts_set_(false), @@ -144,11 +145,24 @@ void AccountReconcilor::UnregisterWithSigninManager() { } void AccountReconcilor::RegisterWithContentSettings() { + VLOG(1) << "AccountReconcilor::RegisterWithContentSettings"; + // During re-auth, the reconcilor will get a callback about successful signin + // even when the profile is already connected. Avoid re-registering + // with the token service since this will DCHECK. + if (registered_with_content_settings_) + return; + client_->AddContentSettingsObserver(this); + registered_with_content_settings_ = true; } void AccountReconcilor::UnregisterWithContentSettings() { + VLOG(1) << "AccountReconcilor::UnregisterWithContentSettings"; + if (!registered_with_content_settings_) + return; + client_->RemoveContentSettingsObserver(this); + registered_with_content_settings_ = false; } void AccountReconcilor::RegisterWithTokenService() { diff --git a/components/signin/core/browser/account_reconcilor.h b/components/signin/core/browser/account_reconcilor.h index 1b903aa..1d7adcf 100644 --- a/components/signin/core/browser/account_reconcilor.h +++ b/components/signin/core/browser/account_reconcilor.h @@ -193,6 +193,7 @@ class AccountReconcilor : public KeyedService, scoped_ptr<GaiaAuthFetcher> gaia_fetcher_; bool registered_with_token_service_; bool registered_with_merge_session_helper_; + bool registered_with_content_settings_; // True while the reconcilor is busy checking or managing the accounts in // this profile. |