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

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

Issue 334713008: Use AttachmentUploadImpl instead of FakeAttachmentUploader. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Apply CR feedback from tim. Created 6 years, 6 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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 bool ShouldShowActionOnUI( 179 bool ShouldShowActionOnUI(
180 const syncer::SyncProtocolError& error) { 180 const syncer::SyncProtocolError& error) {
181 return (error.action != syncer::UNKNOWN_ACTION && 181 return (error.action != syncer::UNKNOWN_ACTION &&
182 error.action != syncer::DISABLE_SYNC_ON_CLIENT && 182 error.action != syncer::DISABLE_SYNC_ON_CLIENT &&
183 error.action != syncer::STOP_SYNC_FOR_DISABLED_ACCOUNT); 183 error.action != syncer::STOP_SYNC_FOR_DISABLED_ACCOUNT);
184 } 184 }
185 185
186 ProfileSyncService::ProfileSyncService( 186 ProfileSyncService::ProfileSyncService(
187 ProfileSyncComponentsFactory* factory, 187 ProfileSyncComponentsFactory* factory,
188 Profile* profile, 188 Profile* profile,
189 ManagedUserSigninManagerWrapper* signin_wrapper, 189 scoped_ptr<ManagedUserSigninManagerWrapper> signin_wrapper,
190 ProfileOAuth2TokenService* oauth2_token_service, 190 ProfileOAuth2TokenService* oauth2_token_service,
191 ProfileSyncServiceStartBehavior start_behavior) 191 ProfileSyncServiceStartBehavior start_behavior)
192 : OAuth2TokenService::Consumer("sync"), 192 : OAuth2TokenService::Consumer("sync"),
193 last_auth_error_(AuthError::AuthErrorNone()), 193 last_auth_error_(AuthError::AuthErrorNone()),
194 passphrase_required_reason_(syncer::REASON_PASSPHRASE_NOT_REQUIRED), 194 passphrase_required_reason_(syncer::REASON_PASSPHRASE_NOT_REQUIRED),
195 factory_(factory), 195 factory_(factory),
196 profile_(profile), 196 profile_(profile),
197 sync_prefs_(profile_->GetPrefs()), 197 sync_prefs_(profile_->GetPrefs()),
198 sync_service_url_(kDevServerUrl), 198 sync_service_url_(GetSyncServiceURL(*CommandLine::ForCurrentProcess())),
199 is_first_time_sync_configure_(false), 199 is_first_time_sync_configure_(false),
200 backend_initialized_(false), 200 backend_initialized_(false),
201 sync_disabled_by_admin_(false), 201 sync_disabled_by_admin_(false),
202 is_auth_in_progress_(false), 202 is_auth_in_progress_(false),
203 signin_(signin_wrapper), 203 signin_(signin_wrapper.Pass()),
204 unrecoverable_error_reason_(ERROR_REASON_UNSET), 204 unrecoverable_error_reason_(ERROR_REASON_UNSET),
205 expect_sync_configuration_aborted_(false), 205 expect_sync_configuration_aborted_(false),
206 encrypted_types_(syncer::SyncEncryptionHandler::SensitiveTypes()), 206 encrypted_types_(syncer::SyncEncryptionHandler::SensitiveTypes()),
207 encrypt_everything_(false), 207 encrypt_everything_(false),
208 encryption_pending_(false), 208 encryption_pending_(false),
209 configure_status_(DataTypeManager::UNKNOWN), 209 configure_status_(DataTypeManager::UNKNOWN),
210 oauth2_token_service_(oauth2_token_service), 210 oauth2_token_service_(oauth2_token_service),
211 request_access_token_backoff_(&kRequestAccessTokenBackoffPolicy), 211 request_access_token_backoff_(&kRequestAccessTokenBackoffPolicy),
212 weak_factory_(this), 212 weak_factory_(this),
213 startup_controller_weak_factory_(this), 213 startup_controller_weak_factory_(this),
214 connection_status_(syncer::CONNECTION_NOT_ATTEMPTED), 214 connection_status_(syncer::CONNECTION_NOT_ATTEMPTED),
215 last_get_token_error_(GoogleServiceAuthError::AuthErrorNone()), 215 last_get_token_error_(GoogleServiceAuthError::AuthErrorNone()),
216 network_resources_(new syncer::HttpBridgeNetworkResources), 216 network_resources_(new syncer::HttpBridgeNetworkResources),
217 startup_controller_( 217 startup_controller_(
218 start_behavior, 218 start_behavior,
219 oauth2_token_service, 219 oauth2_token_service,
220 &sync_prefs_, 220 &sync_prefs_,
221 signin_wrapper, 221 signin_.get(),
222 base::Bind(&ProfileSyncService::StartUpSlowBackendComponents, 222 base::Bind(&ProfileSyncService::StartUpSlowBackendComponents,
223 startup_controller_weak_factory_.GetWeakPtr(), 223 startup_controller_weak_factory_.GetWeakPtr(),
224 SYNC)), 224 SYNC)),
225 backup_rollback_controller_( 225 backup_rollback_controller_(
226 &sync_prefs_, signin_wrapper, 226 &sync_prefs_,
227 signin_.get(),
227 base::Bind(&ProfileSyncService::StartUpSlowBackendComponents, 228 base::Bind(&ProfileSyncService::StartUpSlowBackendComponents,
228 startup_controller_weak_factory_.GetWeakPtr(), 229 startup_controller_weak_factory_.GetWeakPtr(),
229 BACKUP), 230 BACKUP),
230 base::Bind(&ProfileSyncService::StartUpSlowBackendComponents, 231 base::Bind(&ProfileSyncService::StartUpSlowBackendComponents,
231 startup_controller_weak_factory_.GetWeakPtr(), 232 startup_controller_weak_factory_.GetWeakPtr(),
232 ROLLBACK)), 233 ROLLBACK)),
233 backend_mode_(IDLE), 234 backend_mode_(IDLE),
234 backup_start_delay_(base::TimeDelta::FromSeconds(kBackupStartDelay)), 235 backup_start_delay_(base::TimeDelta::FromSeconds(kBackupStartDelay)),
235 clear_browsing_data_(base::Bind(&ClearBrowsingData)) { 236 clear_browsing_data_(base::Bind(&ClearBrowsingData)) {
236 DCHECK(profile); 237 DCHECK(profile);
237 // By default, dev, canary, and unbranded Chromium users will go to the
238 // development servers. Development servers have more features than standard
239 // sync servers. Users with officially-branded Chrome stable and beta builds
240 // will go to the standard sync servers.
241 //
242 // GetChannel hits the registry on Windows. See http://crbug.com/70380.
243 base::ThreadRestrictions::ScopedAllowIO allow_io;
244 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
245 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
246 channel == chrome::VersionInfo::CHANNEL_BETA) {
247 sync_service_url_ = GURL(kSyncServerUrl);
248 }
249
250 syncer::SyncableService::StartSyncFlare flare( 238 syncer::SyncableService::StartSyncFlare flare(
251 sync_start_util::GetFlareForSyncableService(profile->GetPath())); 239 sync_start_util::GetFlareForSyncableService(profile->GetPath()));
252 scoped_ptr<browser_sync::LocalSessionEventRouter> router( 240 scoped_ptr<browser_sync::LocalSessionEventRouter> router(
253 new NotificationServiceSessionsRouter(profile, flare)); 241 new NotificationServiceSessionsRouter(profile, flare));
254 sessions_sync_manager_.reset( 242 sessions_sync_manager_.reset(
255 new SessionsSyncManager(profile, this, router.Pass())); 243 new SessionsSyncManager(profile, this, router.Pass()));
256 } 244 }
257 245
258 ProfileSyncService::~ProfileSyncService() { 246 ProfileSyncService::~ProfileSyncService() {
259 sync_prefs_.RemoveSyncPrefObserver(this); 247 sync_prefs_.RemoveSyncPrefObserver(this);
(...skipping 12 matching lines...) Expand all
272 260
273 bool ProfileSyncService::IsOAuthRefreshTokenAvailable() { 261 bool ProfileSyncService::IsOAuthRefreshTokenAvailable() {
274 if (!oauth2_token_service_) 262 if (!oauth2_token_service_)
275 return false; 263 return false;
276 264
277 return oauth2_token_service_->RefreshTokenIsAvailable( 265 return oauth2_token_service_->RefreshTokenIsAvailable(
278 signin_->GetAccountIdToUse()); 266 signin_->GetAccountIdToUse());
279 } 267 }
280 268
281 void ProfileSyncService::Initialize() { 269 void ProfileSyncService::Initialize() {
282 InitSettings();
283
284 // We clear this here (vs Shutdown) because we want to remember that an error 270 // We clear this here (vs Shutdown) because we want to remember that an error
285 // happened on shutdown so we can display details (message, location) about it 271 // happened on shutdown so we can display details (message, location) about it
286 // in about:sync. 272 // in about:sync.
287 ClearStaleErrors(); 273 ClearStaleErrors();
288 274
289 sync_prefs_.AddSyncPrefObserver(this); 275 sync_prefs_.AddSyncPrefObserver(this);
290 276
291 // For now, the only thing we can do through policy is to turn sync off. 277 // For now, the only thing we can do through policy is to turn sync off.
292 if (IsManaged()) { 278 if (IsManaged()) {
293 DisableForUser(); 279 DisableForUser();
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 495
510 void ProfileSyncService::GetDataTypeControllerStates( 496 void ProfileSyncService::GetDataTypeControllerStates(
511 browser_sync::DataTypeController::StateMap* state_map) const { 497 browser_sync::DataTypeController::StateMap* state_map) const {
512 for (browser_sync::DataTypeController::TypeMap::const_iterator iter = 498 for (browser_sync::DataTypeController::TypeMap::const_iterator iter =
513 directory_data_type_controllers_.begin(); 499 directory_data_type_controllers_.begin();
514 iter != directory_data_type_controllers_.end(); 500 iter != directory_data_type_controllers_.end();
515 ++iter) 501 ++iter)
516 (*state_map)[iter->first] = iter->second.get()->state(); 502 (*state_map)[iter->first] = iter->second.get()->state();
517 } 503 }
518 504
519 void ProfileSyncService::InitSettings() {
520 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
521
522 // Override the sync server URL from the command-line, if sync server
523 // command-line argument exists.
524 if (command_line.HasSwitch(switches::kSyncServiceURL)) {
525 std::string value(command_line.GetSwitchValueASCII(
526 switches::kSyncServiceURL));
527 if (!value.empty()) {
528 GURL custom_sync_url(value);
529 if (custom_sync_url.is_valid()) {
530 sync_service_url_ = custom_sync_url;
531 } else {
532 LOG(WARNING) << "The following sync URL specified at the command-line "
533 << "is invalid: " << value;
534 }
535 }
536 }
537 }
538
539 SyncCredentials ProfileSyncService::GetCredentials() { 505 SyncCredentials ProfileSyncService::GetCredentials() {
540 SyncCredentials credentials; 506 SyncCredentials credentials;
541 if (backend_mode_ == SYNC) { 507 if (backend_mode_ == SYNC) {
542 credentials.email = signin_->GetEffectiveUsername(); 508 credentials.email = signin_->GetEffectiveUsername();
543 DCHECK(!credentials.email.empty()); 509 DCHECK(!credentials.email.empty());
544 credentials.sync_token = access_token_; 510 credentials.sync_token = access_token_;
545 511
546 if (credentials.sync_token.empty()) 512 if (credentials.sync_token.empty())
547 credentials.sync_token = "credentials_lost"; 513 credentials.sync_token = "credentials_lost";
548 } 514 }
(...skipping 2003 matching lines...) Expand 10 before | Expand all | Expand 10 after
2552 if (first_sync_time.is_null()) 2518 if (first_sync_time.is_null())
2553 return; 2519 return;
2554 2520
2555 clear_browsing_data_.Run(profile_, first_sync_time, base::Time::Now()); 2521 clear_browsing_data_.Run(profile_, first_sync_time, base::Time::Now());
2556 } 2522 }
2557 2523
2558 void ProfileSyncService::SetClearingBrowseringDataForTesting( 2524 void ProfileSyncService::SetClearingBrowseringDataForTesting(
2559 base::Callback<void(Profile*, base::Time, base::Time)> c) { 2525 base::Callback<void(Profile*, base::Time, base::Time)> c) {
2560 clear_browsing_data_ = c; 2526 clear_browsing_data_ = c;
2561 } 2527 }
2528
2529 GURL ProfileSyncService::GetSyncServiceURL(
2530 const base::CommandLine& command_line) {
2531 // By default, dev, canary, and unbranded Chromium users will go to the
2532 // development servers. Development servers have more features than standard
2533 // sync servers. Users with officially-branded Chrome stable and beta builds
2534 // will go to the standard sync servers.
2535 GURL result(kDevServerUrl);
2536
2537 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
2538 if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
2539 channel == chrome::VersionInfo::CHANNEL_BETA) {
2540 result = GURL(kSyncServerUrl);
2541 }
2542
2543 // Override the sync server URL from the command-line, if sync server
2544 // command-line argument exists.
2545 if (command_line.HasSwitch(switches::kSyncServiceURL)) {
2546 std::string value(command_line.GetSwitchValueASCII(
2547 switches::kSyncServiceURL));
2548 if (!value.empty()) {
2549 GURL custom_sync_url(value);
2550 if (custom_sync_url.is_valid()) {
2551 result = custom_sync_url;
2552 } else {
2553 LOG(WARNING) << "The following sync URL specified at the command-line "
2554 << "is invalid: " << value;
2555 }
2556 }
2557 }
2558 return result;
2559 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/profile_sync_service_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698