OLD | NEW |
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 "sync/internal_api/sync_manager_impl.h" | 5 #include "sync/internal_api/sync_manager_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
419 credentials.email, absolute_db_path).Pass(); | 419 credentials.email, absolute_db_path).Pass(); |
420 | 420 |
421 DCHECK(backing_store.get()); | 421 DCHECK(backing_store.get()); |
422 share_.name = credentials.email; | 422 share_.name = credentials.email; |
423 share_.directory.reset( | 423 share_.directory.reset( |
424 new syncable::Directory(encryptor_, | 424 new syncable::Directory(encryptor_, |
425 unrecoverable_error_handler_, | 425 unrecoverable_error_handler_, |
426 report_unrecoverable_error_function_, | 426 report_unrecoverable_error_function_, |
427 backing_store.release())); | 427 backing_store.release())); |
428 | 428 |
429 connection_manager_.reset(new SyncAPIServerConnectionManager( | |
430 sync_server_and_path, port, use_ssl, post_factory.release())); | |
431 connection_manager_->AddListener(this); | |
432 | |
433 DVLOG(1) << "Username: " << username_for_share(); | 429 DVLOG(1) << "Username: " << username_for_share(); |
434 if (!OpenDirectory()) { | 430 if (!OpenDirectory()) { |
435 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, | 431 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, |
436 OnInitializationComplete( | 432 OnInitializationComplete( |
437 MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()), | 433 MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()), |
438 false, syncer::ModelTypeSet())); | 434 false, syncer::ModelTypeSet())); |
439 return false; | 435 return false; |
440 } | 436 } |
441 | 437 |
| 438 connection_manager_.reset(new SyncAPIServerConnectionManager( |
| 439 sync_server_and_path, port, use_ssl, post_factory.release())); |
| 440 connection_manager_->set_client_id(directory()->cache_guid()); |
| 441 connection_manager_->AddListener(this); |
| 442 |
442 // Retrieve and set the sync notifier state. | 443 // Retrieve and set the sync notifier state. |
443 std::string unique_id = directory()->cache_guid(); | 444 std::string unique_id = directory()->cache_guid(); |
444 DVLOG(1) << "Read notification unique ID: " << unique_id; | 445 DVLOG(1) << "Read notification unique ID: " << unique_id; |
445 allstatus_.SetUniqueId(unique_id); | 446 allstatus_.SetUniqueId(unique_id); |
446 sync_notifier_->SetUniqueId(unique_id); | 447 sync_notifier_->SetUniqueId(unique_id); |
447 | 448 |
448 std::string state = directory()->GetNotificationState(); | 449 std::string state = directory()->GetNotificationState(); |
449 if (VLOG_IS_ON(1)) { | 450 if (VLOG_IS_ON(1)) { |
450 std::string encoded_state; | 451 std::string encoded_state; |
451 base::Base64Encode(state, &encoded_state); | 452 base::Base64Encode(state, &encoded_state); |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
678 // does not support a migration while it's already in the middle of a | 679 // does not support a migration while it's already in the middle of a |
679 // configuration. As a result, any partially synced datatype can stall the | 680 // configuration. As a result, any partially synced datatype can stall the |
680 // DTM, waiting for the configuration to complete, which it never will due | 681 // DTM, waiting for the configuration to complete, which it never will due |
681 // to the migration error. In addition, a partially synced nigori will | 682 // to the migration error. In addition, a partially synced nigori will |
682 // trigger the migration logic before the backend is initialized, resulting | 683 // trigger the migration logic before the backend is initialized, resulting |
683 // in crashes. We therefore detect and purge any partially synced types as | 684 // in crashes. We therefore detect and purge any partially synced types as |
684 // part of initialization. | 685 // part of initialization. |
685 if (!PurgePartiallySyncedTypes()) | 686 if (!PurgePartiallySyncedTypes()) |
686 return false; | 687 return false; |
687 | 688 |
688 connection_manager_->set_client_id(directory()->cache_guid()); | |
689 return true; | 689 return true; |
690 } | 690 } |
691 | 691 |
692 bool SyncManagerImpl::PurgePartiallySyncedTypes() { | 692 bool SyncManagerImpl::PurgePartiallySyncedTypes() { |
693 ModelTypeSet partially_synced_types = ModelTypeSet::All(); | 693 ModelTypeSet partially_synced_types = ModelTypeSet::All(); |
694 partially_synced_types.RemoveAll(InitialSyncEndedTypes()); | 694 partially_synced_types.RemoveAll(InitialSyncEndedTypes()); |
695 partially_synced_types.RemoveAll(GetTypesWithEmptyProgressMarkerToken( | 695 partially_synced_types.RemoveAll(GetTypesWithEmptyProgressMarkerToken( |
696 ModelTypeSet::All())); | 696 ModelTypeSet::All())); |
697 | 697 |
698 UMA_HISTOGRAM_COUNTS("Sync.PartiallySyncedTypes", | 698 UMA_HISTOGRAM_COUNTS("Sync.PartiallySyncedTypes", |
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1873 int SyncManagerImpl::GetDefaultNudgeDelay() { | 1873 int SyncManagerImpl::GetDefaultNudgeDelay() { |
1874 return kDefaultNudgeDelayMilliseconds; | 1874 return kDefaultNudgeDelayMilliseconds; |
1875 } | 1875 } |
1876 | 1876 |
1877 // static. | 1877 // static. |
1878 int SyncManagerImpl::GetPreferencesNudgeDelay() { | 1878 int SyncManagerImpl::GetPreferencesNudgeDelay() { |
1879 return kPreferencesNudgeDelayMilliseconds; | 1879 return kPreferencesNudgeDelayMilliseconds; |
1880 } | 1880 } |
1881 | 1881 |
1882 } // namespace syncer | 1882 } // namespace syncer |
OLD | NEW |