OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/glue/sync_backend_host_core.h" | 5 #include "chrome/browser/sync/glue/sync_backend_host_core.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "chrome/browser/sync/glue/device_info.h" | 9 #include "chrome/browser/sync/glue/device_info.h" |
10 #include "chrome/browser/sync/glue/invalidation_adapter.h" | 10 #include "chrome/browser/sync/glue/invalidation_adapter.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 scoped_ptr<syncer::HttpPostProviderFactory> http_bridge_factory, | 63 scoped_ptr<syncer::HttpPostProviderFactory> http_bridge_factory, |
64 const syncer::SyncCredentials& credentials, | 64 const syncer::SyncCredentials& credentials, |
65 const std::string& invalidator_client_id, | 65 const std::string& invalidator_client_id, |
66 scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, | 66 scoped_ptr<syncer::SyncManagerFactory> sync_manager_factory, |
67 bool delete_sync_data_folder, | 67 bool delete_sync_data_folder, |
68 const std::string& restored_key_for_bootstrapping, | 68 const std::string& restored_key_for_bootstrapping, |
69 const std::string& restored_keystore_key_for_bootstrapping, | 69 const std::string& restored_keystore_key_for_bootstrapping, |
70 scoped_ptr<syncer::InternalComponentsFactory> internal_components_factory, | 70 scoped_ptr<syncer::InternalComponentsFactory> internal_components_factory, |
71 scoped_ptr<syncer::UnrecoverableErrorHandler> unrecoverable_error_handler, | 71 scoped_ptr<syncer::UnrecoverableErrorHandler> unrecoverable_error_handler, |
72 syncer::ReportUnrecoverableErrorFunction | 72 syncer::ReportUnrecoverableErrorFunction |
73 report_unrecoverable_error_function) | 73 report_unrecoverable_error_function, |
| 74 const std::string& signin_scoped_device_id) |
74 : sync_loop(sync_loop), | 75 : sync_loop(sync_loop), |
75 registrar(registrar), | 76 registrar(registrar), |
76 routing_info(routing_info), | 77 routing_info(routing_info), |
77 workers(workers), | 78 workers(workers), |
78 extensions_activity(extensions_activity), | 79 extensions_activity(extensions_activity), |
79 event_handler(event_handler), | 80 event_handler(event_handler), |
80 service_url(service_url), | 81 service_url(service_url), |
81 http_bridge_factory(http_bridge_factory.Pass()), | 82 http_bridge_factory(http_bridge_factory.Pass()), |
82 credentials(credentials), | 83 credentials(credentials), |
83 invalidator_client_id(invalidator_client_id), | 84 invalidator_client_id(invalidator_client_id), |
84 sync_manager_factory(sync_manager_factory.Pass()), | 85 sync_manager_factory(sync_manager_factory.Pass()), |
85 delete_sync_data_folder(delete_sync_data_folder), | 86 delete_sync_data_folder(delete_sync_data_folder), |
86 restored_key_for_bootstrapping(restored_key_for_bootstrapping), | 87 restored_key_for_bootstrapping(restored_key_for_bootstrapping), |
87 restored_keystore_key_for_bootstrapping( | 88 restored_keystore_key_for_bootstrapping( |
88 restored_keystore_key_for_bootstrapping), | 89 restored_keystore_key_for_bootstrapping), |
89 internal_components_factory(internal_components_factory.Pass()), | 90 internal_components_factory(internal_components_factory.Pass()), |
90 unrecoverable_error_handler(unrecoverable_error_handler.Pass()), | 91 unrecoverable_error_handler(unrecoverable_error_handler.Pass()), |
91 report_unrecoverable_error_function( | 92 report_unrecoverable_error_function(report_unrecoverable_error_function), |
92 report_unrecoverable_error_function) { | 93 signin_scoped_device_id(signin_scoped_device_id) { |
93 } | 94 } |
94 | 95 |
95 DoInitializeOptions::~DoInitializeOptions() {} | 96 DoInitializeOptions::~DoInitializeOptions() {} |
96 | 97 |
97 DoConfigureSyncerTypes::DoConfigureSyncerTypes() {} | 98 DoConfigureSyncerTypes::DoConfigureSyncerTypes() {} |
98 | 99 |
99 DoConfigureSyncerTypes::~DoConfigureSyncerTypes() {} | 100 DoConfigureSyncerTypes::~DoConfigureSyncerTypes() {} |
100 | 101 |
101 SyncBackendHostCore::SyncBackendHostCore( | 102 SyncBackendHostCore::SyncBackendHostCore( |
102 const std::string& name, | 103 const std::string& name, |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 } | 396 } |
396 } | 397 } |
397 } | 398 } |
398 | 399 |
399 void SyncBackendHostCore::DoInitialize( | 400 void SyncBackendHostCore::DoInitialize( |
400 scoped_ptr<DoInitializeOptions> options) { | 401 scoped_ptr<DoInitializeOptions> options) { |
401 DCHECK(!sync_loop_); | 402 DCHECK(!sync_loop_); |
402 sync_loop_ = options->sync_loop; | 403 sync_loop_ = options->sync_loop; |
403 DCHECK(sync_loop_); | 404 DCHECK(sync_loop_); |
404 | 405 |
| 406 signin_scoped_device_id_ = options->signin_scoped_device_id; |
| 407 |
405 // Finish initializing the HttpBridgeFactory. We do this here because | 408 // Finish initializing the HttpBridgeFactory. We do this here because |
406 // building the user agent may block on some platforms. | 409 // building the user agent may block on some platforms. |
407 chrome::VersionInfo version_info; | 410 chrome::VersionInfo version_info; |
408 options->http_bridge_factory->Init( | 411 options->http_bridge_factory->Init( |
409 DeviceInfo::MakeUserAgentForSyncApi(version_info)); | 412 DeviceInfo::MakeUserAgentForSyncApi(version_info)); |
410 | 413 |
411 // Blow away the partial or corrupt sync data folder before doing any more | 414 // Blow away the partial or corrupt sync data folder before doing any more |
412 // initialization, if necessary. | 415 // initialization, if necessary. |
413 if (options->delete_sync_data_folder) { | 416 if (options->delete_sync_data_folder) { |
414 DeleteSyncDataFolder(); | 417 DeleteSyncDataFolder(); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 &SyncBackendHostImpl::HandleInitializationFailureOnFrontendLoop); | 502 &SyncBackendHostImpl::HandleInitializationFailureOnFrontendLoop); |
500 return; | 503 return; |
501 } | 504 } |
502 | 505 |
503 // Initialize device info. This is asynchronous on some platforms, so we | 506 // Initialize device info. This is asynchronous on some platforms, so we |
504 // provide a callback for when it finishes. | 507 // provide a callback for when it finishes. |
505 synced_device_tracker_.reset( | 508 synced_device_tracker_.reset( |
506 new SyncedDeviceTracker(sync_manager_->GetUserShare(), | 509 new SyncedDeviceTracker(sync_manager_->GetUserShare(), |
507 sync_manager_->cache_guid())); | 510 sync_manager_->cache_guid())); |
508 synced_device_tracker_->InitLocalDeviceInfo( | 511 synced_device_tracker_->InitLocalDeviceInfo( |
| 512 signin_scoped_device_id_, |
509 base::Bind(&SyncBackendHostCore::DoFinishInitialProcessControlTypes, | 513 base::Bind(&SyncBackendHostCore::DoFinishInitialProcessControlTypes, |
510 weak_ptr_factory_.GetWeakPtr())); | 514 weak_ptr_factory_.GetWeakPtr())); |
511 } | 515 } |
512 | 516 |
513 void SyncBackendHostCore::DoFinishInitialProcessControlTypes() { | 517 void SyncBackendHostCore::DoFinishInitialProcessControlTypes() { |
514 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); | 518 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); |
515 | 519 |
516 registrar_->ActivateDataType(syncer::DEVICE_INFO, | 520 registrar_->ActivateDataType(syncer::DEVICE_INFO, |
517 syncer::GROUP_PASSIVE, | 521 syncer::GROUP_PASSIVE, |
518 synced_device_tracker_.get(), | 522 synced_device_tracker_.get(), |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 this, &SyncBackendHostCore::SaveChanges); | 745 this, &SyncBackendHostCore::SaveChanges); |
742 } | 746 } |
743 | 747 |
744 void SyncBackendHostCore::SaveChanges() { | 748 void SyncBackendHostCore::SaveChanges() { |
745 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); | 749 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); |
746 sync_manager_->SaveChanges(); | 750 sync_manager_->SaveChanges(); |
747 } | 751 } |
748 | 752 |
749 } // namespace browser_sync | 753 } // namespace browser_sync |
750 | 754 |
OLD | NEW |