| Index: sync/internal_api/sync_manager_impl.cc
|
| diff --git a/sync/internal_api/sync_manager.cc b/sync/internal_api/sync_manager_impl.cc
|
| similarity index 91%
|
| rename from sync/internal_api/sync_manager.cc
|
| rename to sync/internal_api/sync_manager_impl.cc
|
| index e8ba9dd45dcadeb6335191a7f8cb8a61723361e8..107ed606e743b2bdbd91d550541e84f238a5b35f 100644
|
| --- a/sync/internal_api/sync_manager.cc
|
| +++ b/sync/internal_api/sync_manager_impl.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "sync/internal_api/public/sync_manager.h"
|
| +#include "sync/internal_api/sync_manager_impl.h"
|
|
|
| #include <string>
|
|
|
| @@ -32,6 +32,7 @@
|
| #include "sync/internal_api/public/base_node.h"
|
| #include "sync/internal_api/public/configure_reason.h"
|
| #include "sync/internal_api/public/engine/polling_constants.h"
|
| +#include "sync/internal_api/public/http_post_provider_factory.h"
|
| #include "sync/internal_api/public/read_node.h"
|
| #include "sync/internal_api/public/read_transaction.h"
|
| #include "sync/internal_api/public/user_share.h"
|
| @@ -67,6 +68,8 @@ using sync_pb::GetUpdatesCallerInfo;
|
| namespace {
|
|
|
| // Delays for syncer nudges.
|
| +static const int kDefaultNudgeDelayMilliseconds = 200;
|
| +static const int kPreferencesNudgeDelayMilliseconds = 2000;
|
| static const int kSyncRefreshDelayMsec = 500;
|
| static const int kSyncSchedulerDelayMsec = 250;
|
|
|
| @@ -100,16 +103,13 @@ using sessions::SyncSessionContext;
|
| using syncable::ImmutableWriteTransactionInfo;
|
| using syncable::SPECIFICS;
|
|
|
| -const int SyncManager::kDefaultNudgeDelayMilliseconds = 200;
|
| -const int SyncManager::kPreferencesNudgeDelayMilliseconds = 2000;
|
| -
|
| // Maximum count and size for traffic recorder.
|
| const unsigned int kMaxMessagesToRecord = 10;
|
| const unsigned int kMaxMessageSizeToRecord = 5 * 1024;
|
|
|
| //////////////////////////////////////////////////////////////////////////
|
| -// SyncManager's implementation: SyncManager::SyncInternal
|
| -class SyncManager::SyncInternal
|
| +// SyncManagerImpl's implementation: SyncManagerImpl::SyncInternal
|
| +class SyncManagerImpl::SyncInternal
|
| : public net::NetworkChangeNotifier::IPAddressObserver,
|
| public syncer::Cryptographer::Observer,
|
| public syncer::SyncNotifierObserver,
|
| @@ -142,28 +142,28 @@ class SyncManager::SyncInternal
|
| // Bind message handlers.
|
| BindJsMessageHandler(
|
| "getNotificationState",
|
| - &SyncManager::SyncInternal::GetNotificationState);
|
| + &SyncManagerImpl::SyncInternal::GetNotificationState);
|
| BindJsMessageHandler(
|
| "getNotificationInfo",
|
| - &SyncManager::SyncInternal::GetNotificationInfo);
|
| + &SyncManagerImpl::SyncInternal::GetNotificationInfo);
|
| BindJsMessageHandler(
|
| "getRootNodeDetails",
|
| - &SyncManager::SyncInternal::GetRootNodeDetails);
|
| + &SyncManagerImpl::SyncInternal::GetRootNodeDetails);
|
| BindJsMessageHandler(
|
| "getNodeSummariesById",
|
| - &SyncManager::SyncInternal::GetNodeSummariesById);
|
| + &SyncManagerImpl::SyncInternal::GetNodeSummariesById);
|
| BindJsMessageHandler(
|
| "getNodeDetailsById",
|
| - &SyncManager::SyncInternal::GetNodeDetailsById);
|
| + &SyncManagerImpl::SyncInternal::GetNodeDetailsById);
|
| BindJsMessageHandler(
|
| "getAllNodes",
|
| - &SyncManager::SyncInternal::GetAllNodes);
|
| + &SyncManagerImpl::SyncInternal::GetAllNodes);
|
| BindJsMessageHandler(
|
| "getChildNodeIds",
|
| - &SyncManager::SyncInternal::GetChildNodeIds);
|
| + &SyncManagerImpl::SyncInternal::GetChildNodeIds);
|
| BindJsMessageHandler(
|
| "getClientServerTraffic",
|
| - &SyncManager::SyncInternal::GetClientServerTraffic);
|
| + &SyncManagerImpl::SyncInternal::GetClientServerTraffic);
|
| }
|
|
|
| virtual ~SyncInternal() {
|
| @@ -176,16 +176,16 @@ class SyncManager::SyncInternal
|
| int port,
|
| bool use_ssl,
|
| const scoped_refptr<base::TaskRunner>& blocking_task_runner,
|
| - HttpPostProviderFactory* post_factory,
|
| + scoped_ptr<HttpPostProviderFactory> post_factory,
|
| const syncer::ModelSafeRoutingInfo& model_safe_routing_info,
|
| const std::vector<syncer::ModelSafeWorker*>& workers,
|
| syncer::ExtensionsActivityMonitor*
|
| extensions_activity_monitor,
|
| - ChangeDelegate* change_delegate,
|
| + SyncManager::ChangeDelegate* change_delegate,
|
| const SyncCredentials& credentials,
|
| - syncer::SyncNotifier* sync_notifier,
|
| + scoped_ptr<syncer::SyncNotifier> sync_notifier,
|
| const std::string& restored_key_for_bootstrapping,
|
| - TestingMode testing_mode,
|
| + SyncManager::TestingMode testing_mode,
|
| Encryptor* encryptor,
|
| UnrecoverableErrorHandler* unrecoverable_error_handler,
|
| ReportUnrecoverableErrorFunction
|
| @@ -418,7 +418,8 @@ class SyncManager::SyncInternal
|
|
|
| typedef std::map<syncer::ModelType, NotificationInfo> NotificationInfoMap;
|
| typedef JsArgList
|
| - (SyncManager::SyncInternal::*UnboundJsMessageHandler)(const JsArgList&);
|
| + (SyncManagerImpl::SyncInternal::*UnboundJsMessageHandler)(
|
| + const JsArgList&);
|
| typedef base::Callback<JsArgList(const JsArgList&)> JsMessageHandler;
|
| typedef std::map<std::string, JsMessageHandler> JsMessageHandlerMap;
|
|
|
| @@ -591,7 +592,7 @@ class SyncManager::SyncInternal
|
| // Can be used to disable communication with the server and the use of an
|
| // on-disk file for maintaining syncer state.
|
| // TODO(117836): Clean up implementation of SyncManager unit tests.
|
| - TestingMode testing_mode_;
|
| + SyncManager::TestingMode testing_mode_;
|
|
|
| bool observing_ip_address_changes_;
|
|
|
| @@ -628,7 +629,7 @@ class SyncManager::SyncInternal
|
| class NudgeStrategy {
|
| public:
|
| static TimeDelta GetNudgeDelayTimeDelta(const ModelType& model_type,
|
| - SyncManager::SyncInternal* core) {
|
| + SyncManagerImpl::SyncInternal* core) {
|
| NudgeDelayStrategy delay_type = GetNudgeDelayStrategy(model_type);
|
| return GetNudgeDelayTimeDeltaFromType(delay_type,
|
| model_type,
|
| @@ -665,14 +666,14 @@ class NudgeStrategy {
|
|
|
| static TimeDelta GetNudgeDelayTimeDeltaFromType(
|
| const NudgeDelayStrategy& delay_type, const ModelType& model_type,
|
| - const SyncManager::SyncInternal* core) {
|
| + const SyncManagerImpl::SyncInternal* core) {
|
| CHECK(core);
|
| TimeDelta delay = TimeDelta::FromMilliseconds(
|
| - SyncManager::kDefaultNudgeDelayMilliseconds);
|
| + kDefaultNudgeDelayMilliseconds);
|
| switch (delay_type) {
|
| case IMMEDIATE:
|
| delay = TimeDelta::FromMilliseconds(
|
| - SyncManager::kDefaultNudgeDelayMilliseconds);
|
| + kDefaultNudgeDelayMilliseconds);
|
| break;
|
| case ACCOMPANY_ONLY:
|
| delay = TimeDelta::FromSeconds(
|
| @@ -682,7 +683,7 @@ class NudgeStrategy {
|
| switch (model_type) {
|
| case syncer::PREFERENCES:
|
| delay = TimeDelta::FromMilliseconds(
|
| - SyncManager::kPreferencesNudgeDelayMilliseconds);
|
| + kPreferencesNudgeDelayMilliseconds);
|
| break;
|
| case syncer::SESSIONS:
|
| delay = core->scheduler()->sessions_commit_delay();
|
| @@ -698,36 +699,30 @@ class NudgeStrategy {
|
| }
|
| };
|
|
|
| -SyncManager::ChangeDelegate::~ChangeDelegate() {}
|
| -
|
| -SyncManager::ChangeObserver::~ChangeObserver() {}
|
| -
|
| -SyncManager::Observer::~Observer() {}
|
| -
|
| -SyncManager::SyncManager(const std::string& name)
|
| +SyncManagerImpl::SyncManagerImpl(const std::string& name)
|
| : data_(new SyncInternal(name)) {}
|
|
|
| -bool SyncManager::Init(
|
| +bool SyncManagerImpl::Init(
|
| const FilePath& database_location,
|
| const WeakHandle<JsEventHandler>& event_handler,
|
| const std::string& sync_server_and_path,
|
| int sync_server_port,
|
| bool use_ssl,
|
| const scoped_refptr<base::TaskRunner>& blocking_task_runner,
|
| - HttpPostProviderFactory* post_factory,
|
| + scoped_ptr<HttpPostProviderFactory> post_factory,
|
| const syncer::ModelSafeRoutingInfo& model_safe_routing_info,
|
| const std::vector<syncer::ModelSafeWorker*>& workers,
|
| syncer::ExtensionsActivityMonitor* extensions_activity_monitor,
|
| - ChangeDelegate* change_delegate,
|
| + SyncManager::ChangeDelegate* change_delegate,
|
| const SyncCredentials& credentials,
|
| - syncer::SyncNotifier* sync_notifier,
|
| + scoped_ptr<syncer::SyncNotifier> sync_notifier,
|
| const std::string& restored_key_for_bootstrapping,
|
| - TestingMode testing_mode,
|
| + SyncManager::TestingMode testing_mode,
|
| Encryptor* encryptor,
|
| UnrecoverableErrorHandler* unrecoverable_error_handler,
|
| ReportUnrecoverableErrorFunction report_unrecoverable_error_function) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - DCHECK(post_factory);
|
| + DCHECK(post_factory.get());
|
| DVLOG(1) << "SyncManager starting Init...";
|
| std::string server_string(sync_server_and_path);
|
| return data_->Init(database_location,
|
| @@ -736,13 +731,13 @@ bool SyncManager::Init(
|
| sync_server_port,
|
| use_ssl,
|
| blocking_task_runner,
|
| - post_factory,
|
| + post_factory.Pass(),
|
| model_safe_routing_info,
|
| workers,
|
| extensions_activity_monitor,
|
| change_delegate,
|
| credentials,
|
| - sync_notifier,
|
| + sync_notifier.Pass(),
|
| restored_key_for_bootstrapping,
|
| testing_mode,
|
| encryptor,
|
| @@ -750,54 +745,54 @@ bool SyncManager::Init(
|
| report_unrecoverable_error_function);
|
| }
|
|
|
| -void SyncManager::UpdateCredentials(const SyncCredentials& credentials) {
|
| +void SyncManagerImpl::UpdateCredentials(const SyncCredentials& credentials) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->UpdateCredentials(credentials);
|
| }
|
|
|
| -void SyncManager::UpdateEnabledTypes(const ModelTypeSet& enabled_types) {
|
| +void SyncManagerImpl::UpdateEnabledTypes(const ModelTypeSet& enabled_types) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->UpdateEnabledTypes(enabled_types);
|
| }
|
|
|
| -void SyncManager::ThrowUnrecoverableError() {
|
| +void SyncManagerImpl::ThrowUnrecoverableError() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| ReadTransaction trans(FROM_HERE, GetUserShare());
|
| trans.GetWrappedTrans()->OnUnrecoverableError(
|
| FROM_HERE, "Simulating unrecoverable error for testing purposes.");
|
| }
|
|
|
| -syncer::ModelTypeSet SyncManager::InitialSyncEndedTypes() {
|
| +syncer::ModelTypeSet SyncManagerImpl::InitialSyncEndedTypes() {
|
| return data_->InitialSyncEndedTypes();
|
| }
|
|
|
| -syncer::ModelTypeSet SyncManager::GetTypesWithEmptyProgressMarkerToken(
|
| +syncer::ModelTypeSet SyncManagerImpl::GetTypesWithEmptyProgressMarkerToken(
|
| syncer::ModelTypeSet types) {
|
| return data_->GetTypesWithEmptyProgressMarkerToken(types);
|
| }
|
|
|
| -bool SyncManager::PurgePartiallySyncedTypes() {
|
| +bool SyncManagerImpl::PurgePartiallySyncedTypes() {
|
| return data_->PurgePartiallySyncedTypes();
|
| }
|
|
|
| -void SyncManager::StartSyncingNormally(
|
| +void SyncManagerImpl::StartSyncingNormally(
|
| const syncer::ModelSafeRoutingInfo& routing_info) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->StartSyncingNormally(routing_info);
|
| }
|
|
|
| -void SyncManager::SetEncryptionPassphrase(const std::string& passphrase,
|
| +void SyncManagerImpl::SetEncryptionPassphrase(const std::string& passphrase,
|
| bool is_explicit) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->SetEncryptionPassphrase(passphrase, is_explicit);
|
| }
|
|
|
| -void SyncManager::SetDecryptionPassphrase(const std::string& passphrase) {
|
| +void SyncManagerImpl::SetDecryptionPassphrase(const std::string& passphrase) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->SetDecryptionPassphrase(passphrase);
|
| }
|
|
|
| -void SyncManager::EnableEncryptEverything() {
|
| +void SyncManagerImpl::EnableEncryptEverything() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| {
|
| // Update the cryptographer to know we're now encrypting everything.
|
| @@ -815,16 +810,16 @@ void SyncManager::EnableEncryptEverything() {
|
| data_->RefreshEncryption();
|
| }
|
|
|
| -bool SyncManager::EncryptEverythingEnabledForTest() const {
|
| +bool SyncManagerImpl::EncryptEverythingEnabledForTest() const {
|
| ReadTransaction trans(FROM_HERE, GetUserShare());
|
| return trans.GetCryptographer()->encrypt_everything();
|
| }
|
|
|
| -bool SyncManager::IsUsingExplicitPassphrase() {
|
| +bool SyncManagerImpl::IsUsingExplicitPassphrase() {
|
| return data_ && data_->IsUsingExplicitPassphrase();
|
| }
|
|
|
| -void SyncManager::ConfigureSyncer(
|
| +void SyncManagerImpl::ConfigureSyncer(
|
| ConfigureReason reason,
|
| const syncer::ModelTypeSet& types_to_config,
|
| const syncer::ModelSafeRoutingInfo& new_routing_info,
|
| @@ -847,7 +842,7 @@ void SyncManager::ConfigureSyncer(
|
|
|
| if (!data_->scheduler()) {
|
| LOG(INFO)
|
| - << "SyncManager::ConfigureSyncer: could not configure because "
|
| + << "SyncManagerImpl::ConfigureSyncer: could not configure because "
|
| << "scheduler is null";
|
| params.ready_task.Run();
|
| return;
|
| @@ -859,22 +854,22 @@ void SyncManager::ConfigureSyncer(
|
|
|
| }
|
|
|
| -bool SyncManager::SyncInternal::Init(
|
| +bool SyncManagerImpl::SyncInternal::Init(
|
| const FilePath& database_location,
|
| const WeakHandle<JsEventHandler>& event_handler,
|
| const std::string& sync_server_and_path,
|
| int port,
|
| bool use_ssl,
|
| const scoped_refptr<base::TaskRunner>& blocking_task_runner,
|
| - HttpPostProviderFactory* post_factory,
|
| + scoped_ptr<HttpPostProviderFactory> post_factory,
|
| const syncer::ModelSafeRoutingInfo& model_safe_routing_info,
|
| const std::vector<syncer::ModelSafeWorker*>& workers,
|
| syncer::ExtensionsActivityMonitor* extensions_activity_monitor,
|
| - ChangeDelegate* change_delegate,
|
| + SyncManager::ChangeDelegate* change_delegate,
|
| const SyncCredentials& credentials,
|
| - syncer::SyncNotifier* sync_notifier,
|
| + scoped_ptr<syncer::SyncNotifier> sync_notifier,
|
| const std::string& restored_key_for_bootstrapping,
|
| - TestingMode testing_mode,
|
| + SyncManager::TestingMode testing_mode,
|
| Encryptor* encryptor,
|
| UnrecoverableErrorHandler* unrecoverable_error_handler,
|
| ReportUnrecoverableErrorFunction report_unrecoverable_error_function) {
|
| @@ -891,7 +886,7 @@ bool SyncManager::SyncInternal::Init(
|
| change_delegate_ = change_delegate;
|
| testing_mode_ = testing_mode;
|
|
|
| - sync_notifier_.reset(sync_notifier);
|
| + sync_notifier_ = sync_notifier.Pass();
|
|
|
| AddObserver(&js_sync_manager_observer_);
|
| SetJsEventHandler(event_handler);
|
| @@ -925,7 +920,7 @@ bool SyncManager::SyncInternal::Init(
|
| backing_store));
|
|
|
| connection_manager_.reset(new SyncAPIServerConnectionManager(
|
| - sync_server_and_path, port, use_ssl, post_factory));
|
| + sync_server_and_path, port, use_ssl, post_factory.release()));
|
|
|
| net::NetworkChangeNotifier::AddIPAddressObserver(this);
|
| observing_ip_address_changes_ = true;
|
| @@ -1003,20 +998,20 @@ bool SyncManager::SyncInternal::Init(
|
| return success;
|
| }
|
|
|
| -void SyncManager::SyncInternal::UpdateCryptographerAndNigori(
|
| +void SyncManagerImpl::SyncInternal::UpdateCryptographerAndNigori(
|
| const std::string& chrome_version,
|
| const base::Closure& done_callback) {
|
| DCHECK(initialized_);
|
| syncer::GetSessionName(
|
| blocking_task_runner_,
|
| base::Bind(
|
| - &SyncManager::SyncInternal::UpdateCryptographerAndNigoriCallback,
|
| + &SyncManagerImpl::SyncInternal::UpdateCryptographerAndNigoriCallback,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| chrome_version,
|
| done_callback));
|
| }
|
|
|
| -void SyncManager::SyncInternal::UpdateNigoriEncryptionState(
|
| +void SyncManagerImpl::SyncInternal::UpdateNigoriEncryptionState(
|
| Cryptographer* cryptographer,
|
| WriteNode* nigori_node) {
|
| DCHECK(nigori_node);
|
| @@ -1050,7 +1045,7 @@ void SyncManager::SyncInternal::UpdateNigoriEncryptionState(
|
| nigori_node->SetNigoriSpecifics(nigori);
|
| }
|
|
|
| -void SyncManager::SyncInternal::UpdateCryptographerAndNigoriCallback(
|
| +void SyncManagerImpl::SyncInternal::UpdateCryptographerAndNigoriCallback(
|
| const std::string& chrome_version,
|
| const base::Closure& done_callback,
|
| const std::string& session_name) {
|
| @@ -1131,7 +1126,7 @@ void SyncManager::SyncInternal::UpdateCryptographerAndNigoriCallback(
|
| done_callback.Run();
|
| }
|
|
|
| -void SyncManager::SyncInternal::NotifyCryptographerState(
|
| +void SyncManagerImpl::SyncInternal::NotifyCryptographerState(
|
| Cryptographer * cryptographer) {
|
| // TODO(lipalani): Explore the possibility of hooking this up to
|
| // SyncManager::Observer and making |AllStatus| a listener for that.
|
| @@ -1142,7 +1137,7 @@ void SyncManager::SyncInternal::NotifyCryptographerState(
|
| cryptographer->has_pending_keys());
|
| }
|
|
|
| -void SyncManager::SyncInternal::StartSyncingNormally(
|
| +void SyncManagerImpl::SyncInternal::StartSyncingNormally(
|
| const syncer::ModelSafeRoutingInfo& routing_info) {
|
| // Start the sync scheduler.
|
| if (scheduler()) { // NULL during certain unittests.
|
| @@ -1155,7 +1150,7 @@ void SyncManager::SyncInternal::StartSyncingNormally(
|
| }
|
| }
|
|
|
| -bool SyncManager::SyncInternal::OpenDirectory() {
|
| +bool SyncManagerImpl::SyncInternal::OpenDirectory() {
|
| DCHECK(!initialized_) << "Should only happen once";
|
|
|
| // Set before Open().
|
| @@ -1176,7 +1171,7 @@ bool SyncManager::SyncInternal::OpenDirectory() {
|
| return true;
|
| }
|
|
|
| -bool SyncManager::SyncInternal::SignIn(const SyncCredentials& credentials) {
|
| +bool SyncManagerImpl::SyncInternal::SignIn(const SyncCredentials& credentials) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK(share_.name.empty());
|
| share_.name = credentials.email;
|
| @@ -1205,7 +1200,7 @@ bool SyncManager::SyncInternal::SignIn(const SyncCredentials& credentials) {
|
| return true;
|
| }
|
|
|
| -bool SyncManager::SyncInternal::PurgePartiallySyncedTypes() {
|
| +bool SyncManagerImpl::SyncInternal::PurgePartiallySyncedTypes() {
|
| syncer::ModelTypeSet partially_synced_types =
|
| syncer::ModelTypeSet::All();
|
| partially_synced_types.RemoveAll(InitialSyncEndedTypes());
|
| @@ -1219,7 +1214,7 @@ bool SyncManager::SyncInternal::PurgePartiallySyncedTypes() {
|
| return directory()->PurgeEntriesWithTypeIn(partially_synced_types);
|
| }
|
|
|
| -void SyncManager::SyncInternal::UpdateCredentials(
|
| +void SyncManagerImpl::SyncInternal::UpdateCredentials(
|
| const SyncCredentials& credentials) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK_EQ(credentials.email, share_.name);
|
| @@ -1236,13 +1231,13 @@ void SyncManager::SyncInternal::UpdateCredentials(
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::UpdateEnabledTypes(
|
| +void SyncManagerImpl::SyncInternal::UpdateEnabledTypes(
|
| const ModelTypeSet& enabled_types) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| sync_notifier_->UpdateEnabledTypes(enabled_types);
|
| }
|
|
|
| -void SyncManager::SyncInternal::SetEncryptionPassphrase(
|
| +void SyncManagerImpl::SyncInternal::SetEncryptionPassphrase(
|
| const std::string& passphrase,
|
| bool is_explicit) {
|
| // We do not accept empty passphrases.
|
| @@ -1357,7 +1352,7 @@ void SyncManager::SyncInternal::SetEncryptionPassphrase(
|
| success, bootstrap_token, is_explicit, &trans, &node);
|
| }
|
|
|
| -void SyncManager::SyncInternal::SetDecryptionPassphrase(
|
| +void SyncManagerImpl::SyncInternal::SetDecryptionPassphrase(
|
| const std::string& passphrase) {
|
| // We do not accept empty passphrases.
|
| if (passphrase.empty()) {
|
| @@ -1499,7 +1494,7 @@ void SyncManager::SyncInternal::SetDecryptionPassphrase(
|
| &node);
|
| }
|
|
|
| -void SyncManager::SyncInternal::FinishSetPassphrase(
|
| +void SyncManagerImpl::SyncInternal::FinishSetPassphrase(
|
| bool success,
|
| const std::string& bootstrap_token,
|
| bool is_explicit,
|
| @@ -1556,7 +1551,7 @@ void SyncManager::SyncInternal::FinishSetPassphrase(
|
| ReEncryptEverything(trans);
|
| }
|
|
|
| -bool SyncManager::SyncInternal::IsUsingExplicitPassphrase() {
|
| +bool SyncManagerImpl::SyncInternal::IsUsingExplicitPassphrase() {
|
| ReadTransaction trans(FROM_HERE, &share_);
|
| ReadNode node(&trans);
|
| if (node.InitByTagLookup(kNigoriTag) != syncer::BaseNode::INIT_OK) {
|
| @@ -1568,7 +1563,7 @@ bool SyncManager::SyncInternal::IsUsingExplicitPassphrase() {
|
| return node.GetNigoriSpecifics().using_explicit_passphrase();
|
| }
|
|
|
| -void SyncManager::SyncInternal::RefreshEncryption() {
|
| +void SyncManagerImpl::SyncInternal::RefreshEncryption() {
|
| DCHECK(initialized_);
|
|
|
| WriteTransaction trans(FROM_HERE, GetUserShare());
|
| @@ -1608,7 +1603,8 @@ void SyncManager::SyncInternal::RefreshEncryption() {
|
| // which data for some or all types is not currently available. In that case,
|
| // the lookup of the root node will fail and we will skip encryption for that
|
| // type.
|
| -void SyncManager::SyncInternal::ReEncryptEverything(WriteTransaction* trans) {
|
| +void SyncManagerImpl::SyncInternal::ReEncryptEverything(
|
| + WriteTransaction* trans) {
|
| Cryptographer* cryptographer = trans->GetCryptographer();
|
| if (!cryptographer || !cryptographer->is_ready())
|
| return;
|
| @@ -1669,29 +1665,30 @@ void SyncManager::SyncInternal::ReEncryptEverything(WriteTransaction* trans) {
|
| }
|
|
|
| // NOTE: We notify from within a transaction.
|
| - FOR_EACH_OBSERVER(SyncManager::Observer, observers_, OnEncryptionComplete());
|
| + FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
|
| + OnEncryptionComplete());
|
| }
|
|
|
| -SyncManager::~SyncManager() {
|
| +SyncManagerImpl::~SyncManagerImpl() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| delete data_;
|
| }
|
|
|
| -void SyncManager::AddObserver(Observer* observer) {
|
| +void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->AddObserver(observer);
|
| }
|
|
|
| -void SyncManager::RemoveObserver(Observer* observer) {
|
| +void SyncManagerImpl::RemoveObserver(SyncManager::Observer* observer) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->RemoveObserver(observer);
|
| }
|
|
|
| -void SyncManager::StopSyncingForShutdown(const base::Closure& callback) {
|
| +void SyncManagerImpl::StopSyncingForShutdown(const base::Closure& callback) {
|
| data_->StopSyncingForShutdown(callback);
|
| }
|
|
|
| -void SyncManager::SyncInternal::StopSyncingForShutdown(
|
| +void SyncManagerImpl::SyncInternal::StopSyncingForShutdown(
|
| const base::Closure& callback) {
|
| DVLOG(2) << "StopSyncingForShutdown";
|
| if (scheduler()) // May be null in tests.
|
| @@ -1703,12 +1700,12 @@ void SyncManager::SyncInternal::StopSyncingForShutdown(
|
| connection_manager_->TerminateAllIO();
|
| }
|
|
|
| -void SyncManager::ShutdownOnSyncThread() {
|
| +void SyncManagerImpl::ShutdownOnSyncThread() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->ShutdownOnSyncThread();
|
| }
|
|
|
| -void SyncManager::SyncInternal::ShutdownOnSyncThread() {
|
| +void SyncManagerImpl::SyncInternal::ShutdownOnSyncThread() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| // Prevent any in-flight method calls from running. Also
|
| @@ -1759,7 +1756,7 @@ void SyncManager::SyncInternal::ShutdownOnSyncThread() {
|
| weak_handle_this_.Reset();
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnIPAddressChanged() {
|
| +void SyncManagerImpl::SyncInternal::OnIPAddressChanged() {
|
| DVLOG(1) << "IP address change detected";
|
| if (!observing_ip_address_changes_) {
|
| DVLOG(1) << "IP address change dropped.";
|
| @@ -1769,13 +1766,13 @@ void SyncManager::SyncInternal::OnIPAddressChanged() {
|
| OnIPAddressChangedImpl();
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnIPAddressChangedImpl() {
|
| +void SyncManagerImpl::SyncInternal::OnIPAddressChangedImpl() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (scheduler())
|
| scheduler()->OnConnectionStatusChange();
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnServerConnectionEvent(
|
| +void SyncManagerImpl::SyncInternal::OnServerConnectionEvent(
|
| const ServerConnectionEvent& event) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (event.connection_code ==
|
| @@ -1797,7 +1794,7 @@ void SyncManager::SyncInternal::OnServerConnectionEvent(
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::HandleTransactionCompleteChangeEvent(
|
| +void SyncManagerImpl::SyncInternal::HandleTransactionCompleteChangeEvent(
|
| ModelTypeSet models_with_changes) {
|
| // This notification happens immediately after the transaction mutex is
|
| // released. This allows work to be performed without blocking other threads
|
| @@ -1810,12 +1807,14 @@ void SyncManager::SyncInternal::HandleTransactionCompleteChangeEvent(
|
| it.Good(); it.Inc()) {
|
| change_delegate_->OnChangesComplete(it.Get());
|
| change_observer_.Call(
|
| - FROM_HERE, &SyncManager::ChangeObserver::OnChangesComplete, it.Get());
|
| + FROM_HERE,
|
| + &SyncManager::ChangeObserver::OnChangesComplete,
|
| + it.Get());
|
| }
|
| }
|
|
|
| ModelTypeSet
|
| - SyncManager::SyncInternal::HandleTransactionEndingChangeEvent(
|
| + SyncManagerImpl::SyncInternal::HandleTransactionEndingChangeEvent(
|
| const ImmutableWriteTransactionInfo& write_transaction_info,
|
| syncable::BaseTransaction* trans) {
|
| // This notification happens immediately before a syncable WriteTransaction
|
| @@ -1855,7 +1854,8 @@ ModelTypeSet
|
| return models_with_changes;
|
| }
|
|
|
| -void SyncManager::SyncInternal::HandleCalculateChangesChangeEventFromSyncApi(
|
| +void SyncManagerImpl::SyncInternal::
|
| + HandleCalculateChangesChangeEventFromSyncApi(
|
| const ImmutableWriteTransactionInfo& write_transaction_info,
|
| syncable::BaseTransaction* trans) {
|
| if (!scheduler()) {
|
| @@ -1904,7 +1904,7 @@ void SyncManager::SyncInternal::HandleCalculateChangesChangeEventFromSyncApi(
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::SetExtraChangeRecordData(int64 id,
|
| +void SyncManagerImpl::SyncInternal::SetExtraChangeRecordData(int64 id,
|
| syncer::ModelType type, ChangeReorderBuffer* buffer,
|
| Cryptographer* cryptographer, const syncable::EntryKernel& original,
|
| bool existed_before, bool exists_now) {
|
| @@ -1934,7 +1934,7 @@ void SyncManager::SyncInternal::SetExtraChangeRecordData(int64 id,
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::HandleCalculateChangesChangeEventFromSyncer(
|
| +void SyncManagerImpl::SyncInternal::HandleCalculateChangesChangeEventFromSyncer(
|
| const ImmutableWriteTransactionInfo& write_transaction_info,
|
| syncable::BaseTransaction* trans) {
|
| // We only expect one notification per sync step, so change_buffers_ should
|
| @@ -1973,11 +1973,11 @@ void SyncManager::SyncInternal::HandleCalculateChangesChangeEventFromSyncer(
|
| }
|
| }
|
|
|
| -SyncStatus SyncManager::SyncInternal::GetStatus() {
|
| +SyncStatus SyncManagerImpl::SyncInternal::GetStatus() {
|
| return allstatus_.status();
|
| }
|
|
|
| -void SyncManager::SyncInternal::RequestNudge(
|
| +void SyncManagerImpl::SyncInternal::RequestNudge(
|
| const tracked_objects::Location& location) {
|
| if (scheduler()) {
|
| scheduler()->ScheduleNudgeAsync(
|
| @@ -1986,12 +1986,12 @@ void SyncManager::SyncInternal::RequestNudge(
|
| }
|
| }
|
|
|
| -TimeDelta SyncManager::SyncInternal::GetNudgeDelayTimeDelta(
|
| +TimeDelta SyncManagerImpl::SyncInternal::GetNudgeDelayTimeDelta(
|
| const ModelType& model_type) {
|
| return NudgeStrategy::GetNudgeDelayTimeDelta(model_type, this);
|
| }
|
|
|
| -void SyncManager::SyncInternal::RequestNudgeForDataTypes(
|
| +void SyncManagerImpl::SyncInternal::RequestNudgeForDataTypes(
|
| const tracked_objects::Location& nudge_location,
|
| ModelTypeSet types) {
|
| if (!scheduler()) {
|
| @@ -2011,7 +2011,7 @@ void SyncManager::SyncInternal::RequestNudgeForDataTypes(
|
| nudge_location);
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnSyncEngineEvent(
|
| +void SyncManagerImpl::SyncInternal::OnSyncEngineEvent(
|
| const SyncEngineEvent& event) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| // Only send an event if this is due to a cycle ending and this cycle
|
| @@ -2110,14 +2110,14 @@ void SyncManager::SyncInternal::OnSyncEngineEvent(
|
|
|
| }
|
|
|
| -void SyncManager::SyncInternal::SetJsEventHandler(
|
| +void SyncManagerImpl::SyncInternal::SetJsEventHandler(
|
| const WeakHandle<JsEventHandler>& event_handler) {
|
| js_event_handler_ = event_handler;
|
| js_sync_manager_observer_.SetJsEventHandler(js_event_handler_);
|
| js_mutation_event_observer_.SetJsEventHandler(js_event_handler_);
|
| }
|
|
|
| -void SyncManager::SyncInternal::ProcessJsMessage(
|
| +void SyncManagerImpl::SyncInternal::ProcessJsMessage(
|
| const std::string& name, const JsArgList& args,
|
| const WeakHandle<JsReplyHandler>& reply_handler) {
|
| if (!initialized_) {
|
| @@ -2143,14 +2143,14 @@ void SyncManager::SyncInternal::ProcessJsMessage(
|
| name, js_message_handler.Run(args));
|
| }
|
|
|
| -void SyncManager::SyncInternal::BindJsMessageHandler(
|
| +void SyncManagerImpl::SyncInternal::BindJsMessageHandler(
|
| const std::string& name,
|
| UnboundJsMessageHandler unbound_message_handler) {
|
| js_message_handlers_[name] =
|
| base::Bind(unbound_message_handler, base::Unretained(this));
|
| }
|
|
|
| -DictionaryValue* SyncManager::SyncInternal::NotificationInfoToValue(
|
| +DictionaryValue* SyncManagerImpl::SyncInternal::NotificationInfoToValue(
|
| const NotificationInfoMap& notification_info) {
|
| DictionaryValue* value = new DictionaryValue();
|
|
|
| @@ -2164,7 +2164,7 @@ DictionaryValue* SyncManager::SyncInternal::NotificationInfoToValue(
|
| return value;
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetNotificationState(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetNotificationState(
|
| const JsArgList& args) {
|
| bool notifications_enabled = allstatus_.status().notifications_enabled;
|
| ListValue return_args;
|
| @@ -2172,14 +2172,14 @@ JsArgList SyncManager::SyncInternal::GetNotificationState(
|
| return JsArgList(&return_args);
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetNotificationInfo(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetNotificationInfo(
|
| const JsArgList& args) {
|
| ListValue return_args;
|
| return_args.Append(NotificationInfoToValue(notification_info_map_));
|
| return JsArgList(&return_args);
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetRootNodeDetails(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetRootNodeDetails(
|
| const JsArgList& args) {
|
| ReadTransaction trans(FROM_HERE, GetUserShare());
|
| ReadNode root(&trans);
|
| @@ -2189,7 +2189,7 @@ JsArgList SyncManager::SyncInternal::GetRootNodeDetails(
|
| return JsArgList(&return_args);
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetClientServerTraffic(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetClientServerTraffic(
|
| const JsArgList& args) {
|
| ListValue return_args;
|
| ListValue* value = traffic_recorder_.ToValue();
|
| @@ -2240,17 +2240,17 @@ JsArgList GetNodeInfoById(const JsArgList& args,
|
|
|
| } // namespace
|
|
|
| -JsArgList SyncManager::SyncInternal::GetNodeSummariesById(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetNodeSummariesById(
|
| const JsArgList& args) {
|
| return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetSummaryAsValue);
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetNodeDetailsById(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetNodeDetailsById(
|
| const JsArgList& args) {
|
| return GetNodeInfoById(args, GetUserShare(), &BaseNode::GetDetailsAsValue);
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetAllNodes(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetAllNodes(
|
| const JsArgList& args) {
|
| ListValue return_args;
|
| ListValue* result = new ListValue();
|
| @@ -2269,7 +2269,7 @@ JsArgList SyncManager::SyncInternal::GetAllNodes(
|
| return JsArgList(&return_args);
|
| }
|
|
|
| -JsArgList SyncManager::SyncInternal::GetChildNodeIds(
|
| +JsArgList SyncManagerImpl::SyncInternal::GetChildNodeIds(
|
| const JsArgList& args) {
|
| ListValue return_args;
|
| ListValue* child_ids = new ListValue();
|
| @@ -2289,7 +2289,7 @@ JsArgList SyncManager::SyncInternal::GetChildNodeIds(
|
| return JsArgList(&return_args);
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnEncryptedTypesChanged(
|
| +void SyncManagerImpl::SyncInternal::OnEncryptedTypesChanged(
|
| syncer::ModelTypeSet encrypted_types,
|
| bool encrypt_everything) {
|
| // NOTE: We're in a transaction.
|
| @@ -2298,7 +2298,7 @@ void SyncManager::SyncInternal::OnEncryptedTypesChanged(
|
| OnEncryptedTypesChanged(encrypted_types, encrypt_everything));
|
| }
|
|
|
| -void SyncManager::SyncInternal::UpdateNotificationInfo(
|
| +void SyncManagerImpl::SyncInternal::UpdateNotificationInfo(
|
| const syncer::ModelTypePayloadMap& type_payloads) {
|
| for (syncer::ModelTypePayloadMap::const_iterator it = type_payloads.begin();
|
| it != type_payloads.end(); ++it) {
|
| @@ -2308,7 +2308,7 @@ void SyncManager::SyncInternal::UpdateNotificationInfo(
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnNotificationsEnabled() {
|
| +void SyncManagerImpl::SyncInternal::OnNotificationsEnabled() {
|
| DVLOG(1) << "Notifications enabled";
|
| allstatus_.SetNotificationsEnabled(true);
|
| if (scheduler()) {
|
| @@ -2326,7 +2326,7 @@ void SyncManager::SyncInternal::OnNotificationsEnabled() {
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnNotificationsDisabled(
|
| +void SyncManagerImpl::SyncInternal::OnNotificationsDisabled(
|
| syncer::NotificationsDisabledReason reason) {
|
| DVLOG(1) << "Notifications disabled with reason "
|
| << syncer::NotificationsDisabledReasonToString(reason);
|
| @@ -2346,7 +2346,7 @@ void SyncManager::SyncInternal::OnNotificationsDisabled(
|
| // error.
|
| }
|
|
|
| -void SyncManager::SyncInternal::OnIncomingNotification(
|
| +void SyncManagerImpl::SyncInternal::OnIncomingNotification(
|
| const syncer::ModelTypePayloadMap& type_payloads,
|
| syncer::IncomingNotificationSource source) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| @@ -2391,39 +2391,39 @@ void SyncManager::SyncInternal::OnIncomingNotification(
|
| }
|
| }
|
|
|
| -void SyncManager::SyncInternal::AddObserver(
|
| +void SyncManagerImpl::SyncInternal::AddObserver(
|
| SyncManager::Observer* observer) {
|
| observers_.AddObserver(observer);
|
| }
|
|
|
| -void SyncManager::SyncInternal::RemoveObserver(
|
| +void SyncManagerImpl::SyncInternal::RemoveObserver(
|
| SyncManager::Observer* observer) {
|
| observers_.RemoveObserver(observer);
|
| }
|
|
|
| -void SyncManager::SyncInternal::SetSyncSchedulerForTest(
|
| +void SyncManagerImpl::SyncInternal::SetSyncSchedulerForTest(
|
| scoped_ptr<SyncScheduler> sync_scheduler) {
|
| scheduler_ = sync_scheduler.Pass();
|
| }
|
|
|
| -SyncStatus SyncManager::GetDetailedStatus() const {
|
| +SyncStatus SyncManagerImpl::GetDetailedStatus() const {
|
| return data_->GetStatus();
|
| }
|
|
|
| -void SyncManager::SaveChanges() {
|
| +void SyncManagerImpl::SaveChanges() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->SaveChanges();
|
| }
|
|
|
| -void SyncManager::SyncInternal::SaveChanges() {
|
| +void SyncManagerImpl::SyncInternal::SaveChanges() {
|
| directory()->SaveChanges();
|
| }
|
|
|
| -UserShare* SyncManager::GetUserShare() const {
|
| +UserShare* SyncManagerImpl::GetUserShare() const {
|
| return data_->GetUserShare();
|
| }
|
|
|
| -void SyncManager::RefreshNigori(const std::string& chrome_version,
|
| +void SyncManagerImpl::RefreshNigori(const std::string& chrome_version,
|
| const base::Closure& done_callback) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->UpdateCryptographerAndNigori(
|
| @@ -2431,22 +2431,23 @@ void SyncManager::RefreshNigori(const std::string& chrome_version,
|
| done_callback);
|
| }
|
|
|
| -TimeDelta SyncManager::GetNudgeDelayTimeDelta(
|
| +TimeDelta SyncManagerImpl::GetNudgeDelayTimeDelta(
|
| const ModelType& model_type) {
|
| return data_->GetNudgeDelayTimeDelta(model_type);
|
| }
|
|
|
| -void SyncManager::SetSyncSchedulerForTest(scoped_ptr<SyncScheduler> scheduler) {
|
| +void SyncManagerImpl::SetSyncSchedulerForTest(
|
| + scoped_ptr<SyncScheduler> scheduler) {
|
| data_->SetSyncSchedulerForTest(scheduler.Pass());
|
| }
|
|
|
| -syncer::ModelTypeSet SyncManager::GetEncryptedDataTypesForTest() const {
|
| +syncer::ModelTypeSet SyncManagerImpl::GetEncryptedDataTypesForTest() const {
|
| ReadTransaction trans(FROM_HERE, GetUserShare());
|
| return GetEncryptedTypes(&trans);
|
| }
|
|
|
| -bool SyncManager::ReceivedExperiment(syncer::Experiments* experiments)
|
| - const {
|
| +bool SyncManagerImpl::ReceivedExperiment(
|
| + syncer::Experiments* experiments) const {
|
| ReadTransaction trans(FROM_HERE, GetUserShare());
|
| ReadNode node(&trans);
|
| if (node.InitByTagLookup(kNigoriTag) != syncer::BaseNode::INIT_OK) {
|
| @@ -2461,23 +2462,23 @@ bool SyncManager::ReceivedExperiment(syncer::Experiments* experiments)
|
| return found_experiment;
|
| }
|
|
|
| -bool SyncManager::HasUnsyncedItems() const {
|
| +bool SyncManagerImpl::HasUnsyncedItems() const {
|
| syncer::ReadTransaction trans(FROM_HERE, GetUserShare());
|
| return (trans.GetWrappedTrans()->directory()->unsynced_entity_count() != 0);
|
| }
|
|
|
| -void SyncManager::SimulateEnableNotificationsForTest() {
|
| +void SyncManagerImpl::SimulateEnableNotificationsForTest() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->OnNotificationsEnabled();
|
| }
|
|
|
| -void SyncManager::SimulateDisableNotificationsForTest(int reason) {
|
| +void SyncManagerImpl::SimulateDisableNotificationsForTest(int reason) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| data_->OnNotificationsDisabled(
|
| static_cast<syncer::NotificationsDisabledReason>(reason));
|
| }
|
|
|
| -void SyncManager::TriggerOnIncomingNotificationForTest(
|
| +void SyncManagerImpl::TriggerOnIncomingNotificationForTest(
|
| ModelTypeSet model_types) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| syncer::ModelTypePayloadMap model_types_with_payloads =
|
| @@ -2488,45 +2489,14 @@ void SyncManager::TriggerOnIncomingNotificationForTest(
|
| syncer::REMOTE_NOTIFICATION);
|
| }
|
|
|
| -const char* ConnectionStatusToString(ConnectionStatus status) {
|
| - switch (status) {
|
| - case CONNECTION_OK:
|
| - return "CONNECTION_OK";
|
| - case CONNECTION_AUTH_ERROR:
|
| - return "CONNECTION_AUTH_ERROR";
|
| - case CONNECTION_SERVER_ERROR:
|
| - return "CONNECTION_SERVER_ERROR";
|
| - default:
|
| - NOTREACHED();
|
| - return "INVALID_CONNECTION_STATUS";
|
| - }
|
| +// static.
|
| +int SyncManagerImpl::GetDefaultNudgeDelay() {
|
| + return kDefaultNudgeDelayMilliseconds;
|
| }
|
|
|
| -// Helper function that converts a PassphraseRequiredReason value to a string.
|
| -const char* PassphraseRequiredReasonToString(
|
| - PassphraseRequiredReason reason) {
|
| - switch (reason) {
|
| - case REASON_PASSPHRASE_NOT_REQUIRED:
|
| - return "REASON_PASSPHRASE_NOT_REQUIRED";
|
| - case REASON_ENCRYPTION:
|
| - return "REASON_ENCRYPTION";
|
| - case REASON_DECRYPTION:
|
| - return "REASON_DECRYPTION";
|
| - default:
|
| - NOTREACHED();
|
| - return "INVALID_REASON";
|
| - }
|
| -}
|
| -
|
| -// Helper function to determine if initial sync had ended for types.
|
| -bool InitialSyncEndedForTypes(syncer::ModelTypeSet types,
|
| - syncer::UserShare* share) {
|
| - for (syncer::ModelTypeSet::Iterator i = types.First();
|
| - i.Good(); i.Inc()) {
|
| - if (!share->directory->initial_sync_ended_for_type(i.Get()))
|
| - return false;
|
| - }
|
| - return true;
|
| +// static.
|
| +int SyncManagerImpl::GetPreferencesNudgeDelay() {
|
| + return kPreferencesNudgeDelayMilliseconds;
|
| }
|
|
|
| } // namespace syncer
|
|
|