Index: sync/internal_api/sync_manager_impl.cc |
diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc |
index 6a164d8f0ff2aac4ff56893cfc13914c323e1737..a170d01861925ef78a30e44df29e2d11cba95e3a 100644 |
--- a/sync/internal_api/sync_manager_impl.cc |
+++ b/sync/internal_api/sync_manager_impl.cc |
@@ -369,7 +369,6 @@ bool SyncManagerImpl::Init( |
bool use_ssl, |
const scoped_refptr<base::TaskRunner>& blocking_task_runner, |
scoped_ptr<HttpPostProviderFactory> post_factory, |
- const ModelSafeRoutingInfo& model_safe_routing_info, |
const std::vector<ModelSafeWorker*>& workers, |
ExtensionsActivityMonitor* extensions_activity_monitor, |
SyncManager::ChangeDelegate* change_delegate, |
@@ -383,6 +382,8 @@ bool SyncManagerImpl::Init( |
CHECK(!initialized_); |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(post_factory.get()); |
+ DCHECK(!credentials.email.empty()); |
+ DCHECK(!credentials.sync_token.empty()); |
DVLOG(1) << "SyncManager starting Init..."; |
weak_handle_this_ = MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()); |
@@ -411,6 +412,7 @@ bool SyncManagerImpl::Init( |
credentials.email, absolute_db_path).Pass(); |
DCHECK(backing_store.get()); |
+ share_.name = credentials.email; |
rlarocque
2012/07/25 18:45:08
Formerly part of SignIn()
|
share_.directory.reset( |
new syncable::Directory(encryptor_, |
unrecoverable_error_handler_, |
@@ -425,28 +427,48 @@ bool SyncManagerImpl::Init( |
connection_manager_->AddListener(this); |
- // Build a SyncSessionContext and store the worker in it. |
- DVLOG(1) << "Sync is bringing up SyncSessionContext."; |
- std::vector<SyncEngineEventListener*> listeners; |
- listeners.push_back(&allstatus_); |
- listeners.push_back(this); |
- session_context_ = internal_components_factory->BuildContext( |
- connection_manager_.get(), |
- directory(), |
- model_safe_routing_info, |
- workers, |
- extensions_activity_monitor, |
- &throttled_data_type_tracker_, |
- listeners, |
- &debug_info_event_listener_, |
- &traffic_recorder_).Pass(); |
- session_context_->set_account_name(credentials.email); |
- scheduler_ = internal_components_factory->BuildScheduler( |
- name_, session_context_.get()).Pass(); |
- |
- bool success = SignIn(credentials); |
- |
+ DVLOG(1) << "Username: " << username_for_share(); |
rlarocque
2012/07/25 18:45:08
Inlined SignIn code begins here.
|
+ bool success = OpenDirectory(); |
if (success) { |
tim (not reviewing)
2012/07/26 18:48:05
I know this code did if (success) { before, but no
rlarocque
2012/07/26 21:59:54
Good idea.
|
+ // Retrieve and set the sync notifier state. |
+ std::string unique_id = directory()->cache_guid(); |
+ DVLOG(1) << "Read notification unique ID: " << unique_id; |
+ allstatus_.SetUniqueId(unique_id); |
+ sync_notifier_->SetUniqueId(unique_id); |
+ |
+ std::string state = directory()->GetNotificationState(); |
+ if (VLOG_IS_ON(1)) { |
+ std::string encoded_state; |
+ base::Base64Encode(state, &encoded_state); |
+ DVLOG(1) << "Read notification state: " << encoded_state; |
+ } |
+ |
+ // TODO(tim): Remove once invalidation state has been migrated to new |
+ // InvalidationStateTracker store. Bug 124140. |
+ sync_notifier_->SetStateDeprecated(state); |
+ |
+ connection_manager_->set_auth_token(credentials.sync_token); |
rlarocque
2012/07/25 18:45:08
These two lines are effectively what UpdateCredent
tim (not reviewing)
2012/07/26 18:48:05
What is the benefit of not calling UpdateCredentia
rlarocque
2012/07/26 21:59:54
It's debatable. The arguments for are:
- UpdateCr
|
+ sync_notifier_->UpdateCredentials(credentials.email, |
rlarocque
2012/07/25 18:45:08
I think it's safe to initialize the sync_notifier
tim (not reviewing)
2012/07/26 18:48:05
I think this is okay too - the call to AddObserver
|
+ credentials.sync_token); |
+ |
+ // Build a SyncSessionContext and store the worker in it. |
+ DVLOG(1) << "Sync is bringing up SyncSessionContext."; |
+ std::vector<SyncEngineEventListener*> listeners; |
+ listeners.push_back(&allstatus_); |
+ listeners.push_back(this); |
+ session_context_ = internal_components_factory->BuildContext( |
rlarocque
2012/07/25 18:45:08
Warning: Real code change here.
We used to create
tim (not reviewing)
2012/07/26 18:48:05
Agreed, it would be strange if we were relying on
|
+ connection_manager_.get(), |
+ directory(), |
+ workers, |
+ extensions_activity_monitor, |
+ &throttled_data_type_tracker_, |
+ listeners, |
+ &debug_info_event_listener_, |
+ &traffic_recorder_).Pass(); |
+ session_context_->set_account_name(credentials.email); |
+ scheduler_ = internal_components_factory->BuildScheduler( |
+ name_, session_context_.get()).Pass(); |
+ |
scheduler_->Start(SyncScheduler::CONFIGURATION_MODE); |
initialized_ = true; |
@@ -482,7 +504,8 @@ bool SyncManagerImpl::Init( |
FOR_EACH_OBSERVER(SyncManager::Observer, observers_, |
OnInitializationComplete( |
MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()), |
- success)); |
+ success, success ? InitialSyncEndedTypes() |
+ : syncer::ModelTypeSet())); |
if (!success) |
return false; |
@@ -668,35 +691,6 @@ bool SyncManagerImpl::OpenDirectory() { |
return true; |
} |
-bool SyncManagerImpl::SignIn(const SyncCredentials& credentials) { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- DCHECK(share_.name.empty()); |
- share_.name = credentials.email; |
- |
- DVLOG(1) << "Signing in user: " << username_for_share(); |
- if (!OpenDirectory()) |
- return false; |
- |
- // Retrieve and set the sync notifier state. This should be done |
- // only after OpenDirectory is called. |
- std::string unique_id = directory()->cache_guid(); |
- std::string state = directory()->GetNotificationState(); |
- DVLOG(1) << "Read notification unique ID: " << unique_id; |
- if (VLOG_IS_ON(1)) { |
- std::string encoded_state; |
- base::Base64Encode(state, &encoded_state); |
- DVLOG(1) << "Read notification state: " << encoded_state; |
- } |
- allstatus_.SetUniqueId(unique_id); |
- sync_notifier_->SetUniqueId(unique_id); |
- // TODO(tim): Remove once invalidation state has been migrated to new |
- // InvalidationStateTracker store. Bug 124140. |
- sync_notifier_->SetStateDeprecated(state); |
- |
- UpdateCredentials(credentials); |
- return true; |
-} |
- |
bool SyncManagerImpl::PurgePartiallySyncedTypes() { |
ModelTypeSet partially_synced_types = ModelTypeSet::All(); |
partially_synced_types.RemoveAll(InitialSyncEndedTypes()); |