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

Unified Diff: chrome/browser/sync/test_profile_sync_service.cc

Issue 10804039: Make SyncBackendRegistrar aware of loaded data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/test_profile_sync_service.h ('k') | sync/engine/sync_scheduler_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/test_profile_sync_service.cc
diff --git a/chrome/browser/sync/test_profile_sync_service.cc b/chrome/browser/sync/test_profile_sync_service.cc
index 6cd5ad55f55235654e101732d7cae1cdb2866bfc..063b8edd4cb67386b5a8412be6bcf9688cf43c6e 100644
--- a/chrome/browser/sync/test_profile_sync_service.cc
+++ b/chrome/browser/sync/test_profile_sync_service.cc
@@ -32,12 +32,17 @@ SyncBackendHostForProfileSyncTest::SyncBackendHostForProfileSyncTest(
Profile* profile,
const base::WeakPtr<SyncPrefs>& sync_prefs,
const base::WeakPtr<InvalidatorStorage>& invalidator_storage,
+ syncer::TestIdFactory& id_factory,
+ base::Closure& callback,
bool set_initial_sync_ended_on_init,
bool synchronous_init,
bool fail_initial_download,
bool use_real_database)
: browser_sync::SyncBackendHost(
profile->GetDebugName(), profile, sync_prefs, invalidator_storage),
+ id_factory_(id_factory),
+ callback_(callback),
+ set_initial_sync_ended_on_init_(set_initial_sync_ended_on_init),
synchronous_init_(synchronous_init),
fail_initial_download_(fail_initial_download),
use_real_database_(use_real_database) {}
@@ -94,6 +99,54 @@ void SyncBackendHostForProfileSyncTest::RequestConfigureSyncer(
ready_task);
}
+void SyncBackendHostForProfileSyncTest
+ ::HandleSyncManagerInitializationOnFrontendLoop(
+ const syncer::WeakHandle<syncer::JsBackend>& js_backend, bool success,
+ syncer::ModelTypeSet restored_types) {
+ // Here's our opportunity to pretend to do things that the SyncManager would
+ // normally do during initialization, but can't because this is a test.
+ bool send_passphrase_required = false;
+ if (success) {
+ // Set up any nodes the test wants around before model association.
+ if (!callback_.is_null()) {
+ callback_.Run();
+ }
+
+ // Pretend we downloaded initial updates and set initial sync ended bits
+ // if we were asked to.
+ if (set_initial_sync_ended_on_init_) {
+ UserShare* user_share = GetUserShare();
+ Directory* directory = user_share->directory.get();
+
+ if (!directory->initial_sync_ended_for_type(syncer::NIGORI)) {
+ ProfileSyncServiceTestHelper::CreateRoot(
+ syncer::NIGORI, user_share, &id_factory_);
+
+ // A side effect of adding the NIGORI mode (normally done by the
+ // syncer) is a decryption attempt, which will fail the first time.
+ send_passphrase_required = true;
+ }
+
+ SetInitialSyncEndedForAllTypes();
+ restored_types = syncer::ModelTypeSet::All();
+ }
+ }
+
+ SyncBackendHost::HandleSyncManagerInitializationOnFrontendLoop(
+ js_backend, success, restored_types);
+}
+
+void SyncBackendHostForProfileSyncTest::SetInitialSyncEndedForAllTypes() {
+ UserShare* user_share = GetUserShare();
+ Directory* directory = user_share->directory.get();
+
+ for (int i = syncer::FIRST_REAL_MODEL_TYPE;
+ i < syncer::MODEL_TYPE_COUNT; ++i) {
+ directory->set_initial_sync_ended_for_type(
+ syncer::ModelTypeFromInt(i), true);
+ }
+}
+
} // namespace browser_sync
syncer::TestIdFactory* TestProfileSyncService::id_factory() {
@@ -130,54 +183,10 @@ TestProfileSyncService::TestProfileSyncService(
TestProfileSyncService::~TestProfileSyncService() {
}
-void TestProfileSyncService::SetInitialSyncEndedForAllTypes() {
- UserShare* user_share = GetUserShare();
- Directory* directory = user_share->directory.get();
-
- for (int i = syncer::FIRST_REAL_MODEL_TYPE;
- i < syncer::MODEL_TYPE_COUNT; ++i) {
- directory->set_initial_sync_ended_for_type(
- syncer::ModelTypeFromInt(i), true);
- }
-}
-
void TestProfileSyncService::OnBackendInitialized(
const syncer::WeakHandle<syncer::JsBackend>& backend,
bool success) {
- bool send_passphrase_required = false;
- if (success) {
- // Set this so below code can access GetUserShare().
- backend_initialized_ = true;
-
- // Set up any nodes the test wants around before model association.
- if (!callback_.is_null()) {
- callback_.Run();
- callback_.Reset();
- }
-
- // Pretend we downloaded initial updates and set initial sync ended bits
- // if we were asked to.
- if (set_initial_sync_ended_on_init_) {
- UserShare* user_share = GetUserShare();
- Directory* directory = user_share->directory.get();
-
- if (!directory->initial_sync_ended_for_type(syncer::NIGORI)) {
- ProfileSyncServiceTestHelper::CreateRoot(
- syncer::NIGORI, GetUserShare(),
- id_factory());
-
- // A side effect of adding the NIGORI mode (normally done by the
- // syncer) is a decryption attempt, which will fail the first time.
- send_passphrase_required = true;
- }
-
- SetInitialSyncEndedForAllTypes();
- }
- }
-
ProfileSyncService::OnBackendInitialized(backend, success);
- if (success && send_passphrase_required)
- OnPassphraseRequired(syncer::REASON_DECRYPTION, sync_pb::EncryptedData());
// TODO(akalin): Figure out a better way to do this.
if (synchronous_backend_initialization_) {
@@ -196,6 +205,10 @@ void TestProfileSyncService::Observe(
}
}
+UserShare* TestProfileSyncService::GetUserShare() const {
+ return backend_->GetUserShare();
+}
+
void TestProfileSyncService::dont_set_initial_sync_ended_on_init() {
set_initial_sync_ended_on_init_ = false;
}
@@ -214,6 +227,8 @@ void TestProfileSyncService::CreateBackend() {
profile(),
sync_prefs_.AsWeakPtr(),
invalidator_storage_.AsWeakPtr(),
+ id_factory_,
+ callback_,
set_initial_sync_ended_on_init_,
synchronous_backend_initialization_,
fail_initial_download_,
« no previous file with comments | « chrome/browser/sync/test_profile_sync_service.h ('k') | sync/engine/sync_scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698