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

Side by Side Diff: chrome/browser/sync/profile_sync_service.cc

Issue 11817045: Move auth-error reporting code out of SyncGlobalError and into SigninGlobalError (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Disabled ExtensionActionContextMenuTest.BrowserAction Created 7 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync/profile_sync_service.h" 5 #include "chrome/browser/sync/profile_sync_service.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 // sync servers. Users with officially-branded Chrome stable and beta builds 155 // sync servers. Users with officially-branded Chrome stable and beta builds
156 // will go to the standard sync servers. 156 // will go to the standard sync servers.
157 // 157 //
158 // GetChannel hits the registry on Windows. See http://crbug.com/70380. 158 // GetChannel hits the registry on Windows. See http://crbug.com/70380.
159 base::ThreadRestrictions::ScopedAllowIO allow_io; 159 base::ThreadRestrictions::ScopedAllowIO allow_io;
160 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 160 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
161 if (channel == chrome::VersionInfo::CHANNEL_STABLE || 161 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
162 channel == chrome::VersionInfo::CHANNEL_BETA) { 162 channel == chrome::VersionInfo::CHANNEL_BETA) {
163 sync_service_url_ = GURL(kSyncServerUrl); 163 sync_service_url_ = GURL(kSyncServerUrl);
164 } 164 }
165 if (signin_)
166 signin_->signin_global_error()->AddProvider(this);
165 } 167 }
166 168
167 ProfileSyncService::~ProfileSyncService() { 169 ProfileSyncService::~ProfileSyncService() {
168 sync_prefs_.RemoveSyncPrefObserver(this); 170 sync_prefs_.RemoveSyncPrefObserver(this);
169 // Shutdown() should have been called before destruction. 171 // Shutdown() should have been called before destruction.
170 CHECK(!backend_initialized_); 172 CHECK(!backend_initialized_);
171 } 173 }
172 174
173 bool ProfileSyncService::IsSyncEnabledAndLoggedIn() { 175 bool ProfileSyncService::IsSyncEnabledAndLoggedIn() {
174 // Exit if sync is disabled. 176 // Exit if sync is disabled.
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 ObjectIdSetToInvalidationMap(notify_ids, payload); 527 ObjectIdSetToInvalidationMap(notify_ids, payload);
526 OnIncomingInvalidation(invalidation_map, syncer::REMOTE_INVALIDATION); 528 OnIncomingInvalidation(invalidation_map, syncer::REMOTE_INVALIDATION);
527 } 529 }
528 530
529 void ProfileSyncService::Shutdown() { 531 void ProfileSyncService::Shutdown() {
530 DCHECK(invalidator_registrar_.get()); 532 DCHECK(invalidator_registrar_.get());
531 // Reset |invalidator_registrar_| first so that ShutdownImpl cannot 533 // Reset |invalidator_registrar_| first so that ShutdownImpl cannot
532 // use it. 534 // use it.
533 invalidator_registrar_.reset(); 535 invalidator_registrar_.reset();
534 536
537 if (signin_)
538 signin_->signin_global_error()->RemoveProvider(this);
539
535 ShutdownImpl(false); 540 ShutdownImpl(false);
536 } 541 }
537 542
538 void ProfileSyncService::ShutdownImpl(bool sync_disabled) { 543 void ProfileSyncService::ShutdownImpl(bool sync_disabled) {
539 // First, we spin down the backend and wait for it to stop syncing completely 544 // First, we spin down the backend and wait for it to stop syncing completely
540 // before we Stop the data type manager. This is to avoid a late sync cycle 545 // before we Stop the data type manager. This is to avoid a late sync cycle
541 // applying changes to the sync db that wouldn't get applied via 546 // applying changes to the sync db that wouldn't get applied via
542 // ChangeProcessors, leading to back-from-the-dead bugs. 547 // ChangeProcessors, leading to back-from-the-dead bugs.
543 base::Time shutdown_start_time = base::Time::Now(); 548 base::Time shutdown_start_time = base::Time::Now();
544 if (backend_.get()) { 549 if (backend_.get()) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 is_auth_in_progress_ = false; 588 is_auth_in_progress_ = false;
584 backend_initialized_ = false; 589 backend_initialized_ = false;
585 // NULL if we're called from Shutdown(). 590 // NULL if we're called from Shutdown().
586 if (invalidator_registrar_.get()) 591 if (invalidator_registrar_.get())
587 UpdateInvalidatorRegistrarState(); 592 UpdateInvalidatorRegistrarState();
588 cached_passphrase_.clear(); 593 cached_passphrase_.clear();
589 encryption_pending_ = false; 594 encryption_pending_ = false;
590 encrypt_everything_ = false; 595 encrypt_everything_ = false;
591 encrypted_types_ = syncer::SyncEncryptionHandler::SensitiveTypes(); 596 encrypted_types_ = syncer::SyncEncryptionHandler::SensitiveTypes();
592 passphrase_required_reason_ = syncer::REASON_PASSPHRASE_NOT_REQUIRED; 597 passphrase_required_reason_ = syncer::REASON_PASSPHRASE_NOT_REQUIRED;
593 last_auth_error_ = AuthError::None(); 598 // Revert to "no auth error".
599 if (last_auth_error_.state() != GoogleServiceAuthError::NONE)
600 UpdateAuthErrorState(GoogleServiceAuthError::None());
594 601
595 if (sync_global_error_.get()) { 602 if (sync_global_error_.get()) {
596 GlobalErrorServiceFactory::GetForProfile(profile_)->RemoveGlobalError( 603 GlobalErrorServiceFactory::GetForProfile(profile_)->RemoveGlobalError(
597 sync_global_error_.get()); 604 sync_global_error_.get());
598 RemoveObserver(sync_global_error_.get()); 605 RemoveObserver(sync_global_error_.get());
599 sync_global_error_.reset(NULL); 606 sync_global_error_.reset(NULL);
600 } 607 }
601 } 608 }
602 609
603 void ProfileSyncService::DisableForUser() { 610 void ProfileSyncService::DisableForUser() {
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 916
910 current_experiments_ = experiments; 917 current_experiments_ = experiments;
911 } 918 }
912 919
913 void ProfileSyncService::UpdateAuthErrorState(const AuthError& error) { 920 void ProfileSyncService::UpdateAuthErrorState(const AuthError& error) {
914 is_auth_in_progress_ = false; 921 is_auth_in_progress_ = false;
915 last_auth_error_ = error; 922 last_auth_error_ = error;
916 923
917 // Fan the notification out to interested UI-thread components. 924 // Fan the notification out to interested UI-thread components.
918 NotifyObservers(); 925 NotifyObservers();
926 if (signin())
927 signin()->signin_global_error()->AuthStatusChanged();
919 } 928 }
920 929
921 namespace { 930 namespace {
922 931
923 AuthError ConnectionStatusToAuthError( 932 AuthError ConnectionStatusToAuthError(
924 syncer::ConnectionStatus status) { 933 syncer::ConnectionStatus status) {
925 switch (status) { 934 switch (status) {
926 case syncer::CONNECTION_OK: 935 case syncer::CONNECTION_OK:
927 return AuthError::None(); 936 return AuthError::None();
928 break; 937 break;
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
1209 status.sync_protocol_error = last_actionable_error_; 1218 status.sync_protocol_error = last_actionable_error_;
1210 *result = status; 1219 *result = status;
1211 return false; 1220 return false;
1212 } 1221 }
1213 } 1222 }
1214 1223
1215 const AuthError& ProfileSyncService::GetAuthError() const { 1224 const AuthError& ProfileSyncService::GetAuthError() const {
1216 return last_auth_error_; 1225 return last_auth_error_;
1217 } 1226 }
1218 1227
1228 GoogleServiceAuthError ProfileSyncService::GetAuthStatus() const {
1229 return GetAuthError();
1230 }
1231
1219 bool ProfileSyncService::FirstSetupInProgress() const { 1232 bool ProfileSyncService::FirstSetupInProgress() const {
1220 return !HasSyncSetupCompleted() && setup_in_progress_; 1233 return !HasSyncSetupCompleted() && setup_in_progress_;
1221 } 1234 }
1222 1235
1223 void ProfileSyncService::SetSetupInProgress(bool setup_in_progress) { 1236 void ProfileSyncService::SetSetupInProgress(bool setup_in_progress) {
1224 bool was_in_progress = setup_in_progress_; 1237 bool was_in_progress = setup_in_progress_;
1225 setup_in_progress_ = setup_in_progress; 1238 setup_in_progress_ = setup_in_progress;
1226 if (!setup_in_progress && was_in_progress) { 1239 if (!setup_in_progress && was_in_progress) {
1227 if (sync_initialized()) { 1240 if (sync_initialized()) {
1228 ReconfigureDatatypeManager(); 1241 ReconfigureDatatypeManager();
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
1913 // See http://stackoverflow.com/questions/6224121/is-new-this-myclass-undefine d-behaviour-after-directly-calling-the-destru. 1926 // See http://stackoverflow.com/questions/6224121/is-new-this-myclass-undefine d-behaviour-after-directly-calling-the-destru.
1914 ProfileSyncService* old_this = this; 1927 ProfileSyncService* old_this = this;
1915 this->~ProfileSyncService(); 1928 this->~ProfileSyncService();
1916 new(old_this) ProfileSyncService( 1929 new(old_this) ProfileSyncService(
1917 new ProfileSyncComponentsFactoryImpl(profile, 1930 new ProfileSyncComponentsFactoryImpl(profile,
1918 CommandLine::ForCurrentProcess()), 1931 CommandLine::ForCurrentProcess()),
1919 profile, 1932 profile,
1920 signin, 1933 signin,
1921 behavior); 1934 behavior);
1922 } 1935 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/profile_sync_service_harness.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698