summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
Diffstat (limited to 'sync')
-rw-r--r--sync/BUILD.gn3
-rw-r--r--sync/internal_api/internal_components_factory_impl.cc17
-rw-r--r--sync/internal_api/public/internal_components_factory.h16
-rw-r--r--sync/internal_api/public/internal_components_factory_impl.h6
-rw-r--r--sync/internal_api/public/test/test_internal_components_factory.h17
-rw-r--r--sync/internal_api/sync_backup_manager.cc14
-rw-r--r--sync/internal_api/sync_backup_manager.h1
-rw-r--r--sync/internal_api/sync_backup_manager_unittest.cc41
-rw-r--r--sync/internal_api/sync_manager_impl.cc4
-rw-r--r--sync/internal_api/sync_manager_impl_unittest.cc14
-rw-r--r--sync/internal_api/sync_rollback_manager.cc1
-rw-r--r--sync/internal_api/sync_rollback_manager_base.cc10
-rw-r--r--sync/internal_api/sync_rollback_manager_base.h8
-rw-r--r--sync/internal_api/sync_rollback_manager_base_unittest.cc7
-rw-r--r--sync/internal_api/sync_rollback_manager_unittest.cc22
-rw-r--r--sync/internal_api/test/test_internal_components_factory.cc19
-rw-r--r--sync/sync.gyp2
-rw-r--r--sync/sync_tests.gypi1
-rw-r--r--sync/syncable/deferred_on_disk_directory_backing_store.cc73
-rw-r--r--sync/syncable/deferred_on_disk_directory_backing_store.h45
-rw-r--r--sync/syncable/deferred_on_disk_directory_backing_store_unittest.cc114
21 files changed, 56 insertions, 379 deletions
diff --git a/sync/BUILD.gn b/sync/BUILD.gn
index daa4d5d..02d38e1 100644
--- a/sync/BUILD.gn
+++ b/sync/BUILD.gn
@@ -311,8 +311,6 @@ source_set("sync_core") {
"sessions/sync_session_context.h",
"sessions/sync_session.h",
"syncable/blob.h",
- "syncable/deferred_on_disk_directory_backing_store.cc",
- "syncable/deferred_on_disk_directory_backing_store.h",
"syncable/directory_backing_store.cc",
"syncable/directory_backing_store.h",
"syncable/directory.cc",
@@ -617,7 +615,6 @@ test("sync_unit_tests") {
"sessions/model_type_registry_unittest.cc",
"sessions/nudge_tracker_unittest.cc",
"sessions/status_controller_unittest.cc",
- "syncable/deferred_on_disk_directory_backing_store_unittest.cc",
"syncable/directory_backing_store_unittest.cc",
"syncable/directory_unittest.cc",
"syncable/directory_unittest.h",
diff --git a/sync/internal_api/internal_components_factory_impl.cc b/sync/internal_api/internal_components_factory_impl.cc
index dbc4243..e764a16 100644
--- a/sync/internal_api/internal_components_factory_impl.cc
+++ b/sync/internal_api/internal_components_factory_impl.cc
@@ -8,7 +8,6 @@
#include "sync/engine/syncer.h"
#include "sync/engine/sync_scheduler_impl.h"
#include "sync/sessions/sync_session_context.h"
-#include "sync/syncable/deferred_on_disk_directory_backing_store.h"
#include "sync/syncable/on_disk_directory_backing_store.h"
using base::TimeDelta;
@@ -60,19 +59,9 @@ InternalComponentsFactoryImpl::BuildContext(
scoped_ptr<syncable::DirectoryBackingStore>
InternalComponentsFactoryImpl::BuildDirectoryBackingStore(
- StorageOption storage, const std::string& dir_name,
- const base::FilePath& backing_filepath) {
- if (storage == STORAGE_ON_DISK) {
- return scoped_ptr<syncable::DirectoryBackingStore>(
- new syncable::OnDiskDirectoryBackingStore(dir_name, backing_filepath));
- } else if (storage == STORAGE_ON_DISK_DEFERRED) {
- return scoped_ptr<syncable::DirectoryBackingStore>(
- new syncable::DeferredOnDiskDirectoryBackingStore(dir_name,
- backing_filepath));
- } else {
- NOTREACHED();
- return scoped_ptr<syncable::DirectoryBackingStore>();
- }
+ const std::string& dir_name, const base::FilePath& backing_filepath) {
+ return scoped_ptr<syncable::DirectoryBackingStore>(
+ new syncable::OnDiskDirectoryBackingStore(dir_name, backing_filepath));
}
InternalComponentsFactory::Switches
diff --git a/sync/internal_api/public/internal_components_factory.h b/sync/internal_api/public/internal_components_factory.h
index f077af0..f43804a 100644
--- a/sync/internal_api/public/internal_components_factory.h
+++ b/sync/internal_api/public/internal_components_factory.h
@@ -72,21 +72,6 @@ class SYNC_EXPORT InternalComponentsFactory {
PreCommitUpdatesPolicy pre_commit_updates_policy;
};
- // For selecting the types of storage to use to persist sync data when
- // BuildDirectoryBackingStore() is called.
- enum StorageOption {
- // BuildDirectoryBackingStore should not use persistent on-disk storage.
- STORAGE_IN_MEMORY,
- // Use this if you want BuildDirectoryBackingStore to create/use a real
- // on disk store.
- STORAGE_ON_DISK,
- // Use this to defer creating on-disk database until
- // DirectoryBackingStore::SaveChanges() is called.
- STORAGE_ON_DISK_DEFERRED,
- // Use this to test the case where a directory fails to load.
- STORAGE_INVALID
- };
-
virtual ~InternalComponentsFactory() {}
virtual scoped_ptr<SyncScheduler> BuildScheduler(
@@ -105,7 +90,6 @@ class SYNC_EXPORT InternalComponentsFactory {
virtual scoped_ptr<syncable::DirectoryBackingStore>
BuildDirectoryBackingStore(
- StorageOption storage,
const std::string& dir_name,
const base::FilePath& backing_filepath) = 0;
diff --git a/sync/internal_api/public/internal_components_factory_impl.h b/sync/internal_api/public/internal_components_factory_impl.h
index c727509..7c364dc 100644
--- a/sync/internal_api/public/internal_components_factory_impl.h
+++ b/sync/internal_api/public/internal_components_factory_impl.h
@@ -34,9 +34,9 @@ class SYNC_EXPORT InternalComponentsFactoryImpl
const std::string& invalidator_client_id) OVERRIDE;
virtual scoped_ptr<syncable::DirectoryBackingStore>
- BuildDirectoryBackingStore(StorageOption storage,
- const std::string& dir_name,
- const base::FilePath& backing_filepath) OVERRIDE;
+ BuildDirectoryBackingStore(
+ const std::string& dir_name,
+ const base::FilePath& backing_filepath) OVERRIDE;
virtual Switches GetSwitches() const OVERRIDE;
diff --git a/sync/internal_api/public/test/test_internal_components_factory.h b/sync/internal_api/public/test/test_internal_components_factory.h
index 0c6b909..3b7d3c5 100644
--- a/sync/internal_api/public/test/test_internal_components_factory.h
+++ b/sync/internal_api/public/test/test_internal_components_factory.h
@@ -9,11 +9,20 @@
namespace syncer {
+enum StorageOption {
+ // BuildDirectoryBackingStore should not use persistent on-disk storage.
+ STORAGE_IN_MEMORY,
+ // Use this if you want BuildDirectoryBackingStore to create a real
+ // on disk store.
+ STORAGE_ON_DISK,
+ // Use this to test the case where a directory fails to load.
+ STORAGE_INVALID
+};
+
class TestInternalComponentsFactory : public InternalComponentsFactory {
public:
explicit TestInternalComponentsFactory(const Switches& switches,
- StorageOption option,
- StorageOption* storage_used);
+ StorageOption option);
virtual ~TestInternalComponentsFactory();
virtual scoped_ptr<SyncScheduler> BuildScheduler(
@@ -32,7 +41,6 @@ class TestInternalComponentsFactory : public InternalComponentsFactory {
virtual scoped_ptr<syncable::DirectoryBackingStore>
BuildDirectoryBackingStore(
- StorageOption storage,
const std::string& dir_name,
const base::FilePath& backing_filepath) OVERRIDE;
@@ -40,8 +48,7 @@ class TestInternalComponentsFactory : public InternalComponentsFactory {
private:
const Switches switches_;
- const StorageOption storage_override_;
- StorageOption* storage_used_;
+ const StorageOption storage_option_;
DISALLOW_COPY_AND_ASSIGN(TestInternalComponentsFactory);
};
diff --git a/sync/internal_api/sync_backup_manager.cc b/sync/internal_api/sync_backup_manager.cc
index d626229..be8b872 100644
--- a/sync/internal_api/sync_backup_manager.cc
+++ b/sync/internal_api/sync_backup_manager.cc
@@ -23,7 +23,6 @@ void SyncBackupManager::Init(InitArgs* args) {
if (SyncRollbackManagerBase::InitInternal(
args->database_location,
args->internal_components_factory.get(),
- InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED,
args->unrecoverable_error_handler.Pass(),
args->report_unrecoverable_error_function)) {
GetUserShare()->directory->CollectMetaHandleCounts(
@@ -35,8 +34,10 @@ void SyncBackupManager::Init(InitArgs* args) {
}
void SyncBackupManager::SaveChanges() {
- if (initialized())
+ if (initialized()) {
NormalizeEntries();
+ GetUserShare()->directory->SaveChanges();
+ }
}
SyncStatus SyncBackupManager::GetDetailedStatus() const {
@@ -121,15 +122,6 @@ void SyncBackupManager::HideSyncPreference(ModelType type) {
}
}
-void SyncBackupManager::ShutdownOnSyncThread(ShutdownReason reason) {
- if (reason == SWITCH_MODE_SYNC) {
- NormalizeEntries();
- GetUserShare()->directory->SaveChanges();
- }
-
- SyncRollbackManagerBase::ShutdownOnSyncThread(reason);
-}
-
void SyncBackupManager::RegisterDirectoryTypeDebugInfoObserver(
syncer::TypeDebugInfoObserver* observer) {}
diff --git a/sync/internal_api/sync_backup_manager.h b/sync/internal_api/sync_backup_manager.h
index 9a9fdbc..f8fa1aa 100644
--- a/sync/internal_api/sync_backup_manager.h
+++ b/sync/internal_api/sync_backup_manager.h
@@ -24,7 +24,6 @@ class SYNC_EXPORT_PRIVATE SyncBackupManager : public SyncRollbackManagerBase {
virtual void Init(InitArgs* args) OVERRIDE;
virtual void SaveChanges() OVERRIDE;
virtual SyncStatus GetDetailedStatus() const OVERRIDE;
- virtual void ShutdownOnSyncThread(ShutdownReason reason) OVERRIDE;
// DirectoryChangeDelegate implementation.
virtual ModelTypeSet HandleTransactionEndingChangeEvent(
diff --git a/sync/internal_api/sync_backup_manager_unittest.cc b/sync/internal_api/sync_backup_manager_unittest.cc
index 7c6c568..e771ea3 100644
--- a/sync/internal_api/sync_backup_manager_unittest.cc
+++ b/sync/internal_api/sync_backup_manager_unittest.cc
@@ -49,8 +49,7 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
CHECK(temp_dir_.CreateUniqueTempDir());
}
- void InitManager(SyncManager* manager,
- InternalComponentsFactory::StorageOption storage_option) {
+ void InitManager(SyncManager* manager, StorageOption storage_option) {
manager_ = manager;
EXPECT_CALL(*this, OnInitializationComplete(_, _, _, _))
.WillOnce(WithArgs<2>(Invoke(this,
@@ -66,11 +65,8 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
args.service_url = GURL("https://example.com/");
args.post_factory = scoped_ptr<HttpPostProviderFactory>().Pass();
args.internal_components_factory.reset(new TestInternalComponentsFactory(
- InternalComponentsFactory::Switches(), storage_option,
- &storage_used_));
+ InternalComponentsFactory::Switches(), storage_option));
manager->Init(&args);
- EXPECT_EQ(InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED,
- storage_used_);
loop_.PostTask(FROM_HERE, run_loop.QuitClosure());
run_loop.Run();
}
@@ -86,6 +82,7 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
node.InitUniqueByCreation(type, type_root, client_tag));
}
+ private:
void ConfigureSyncer() {
manager_->ConfigureSyncer(CONFIGURE_REASON_NEW_CLIENT,
ModelTypeSet(SEARCH_ENGINES),
@@ -108,12 +105,11 @@ class SyncBackupManagerTest : public syncer::SyncManager::Observer,
base::ScopedTempDir temp_dir_;
base::MessageLoop loop_; // Needed for WeakHandle
SyncManager* manager_;
- InternalComponentsFactory::StorageOption storage_used_;
};
-TEST_F(SyncBackupManagerTest, NormalizeEntry) {
+TEST_F(SyncBackupManagerTest, NormalizeAndPersist) {
scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
- InitManager(manager.get(), InternalComponentsFactory::STORAGE_IN_MEMORY);
+ InitManager(manager.get(), STORAGE_ON_DISK);
CreateEntry(manager->GetUserShare(), SEARCH_ENGINES, "test");
@@ -138,20 +134,11 @@ TEST_F(SyncBackupManagerTest, NormalizeEntry) {
EXPECT_TRUE(pref.GetEntry()->GetId().ServerKnows());
EXPECT_FALSE(pref.GetEntry()->GetIsUnsynced());
}
-}
-
-TEST_F(SyncBackupManagerTest, PersistWithSwitchToSyncShutdown) {
- scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
- InitManager(manager.get(),
- InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED);
-
- CreateEntry(manager->GetUserShare(), SEARCH_ENGINES, "test");
- manager->SaveChanges();
- manager->ShutdownOnSyncThread(SWITCH_MODE_SYNC);
+ manager->ShutdownOnSyncThread(STOP_SYNC);
// Reopen db to verify entry is persisted.
manager.reset(new SyncBackupManager);
- InitManager(manager.get(), InternalComponentsFactory::STORAGE_ON_DISK);
+ InitManager(manager.get(), STORAGE_ON_DISK);
{
ReadTransaction trans(FROM_HERE, manager->GetUserShare());
ReadNode pref(&trans);
@@ -162,22 +149,10 @@ TEST_F(SyncBackupManagerTest, PersistWithSwitchToSyncShutdown) {
}
}
-TEST_F(SyncBackupManagerTest, DontPersistWithOtherShutdown) {
- scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
- InitManager(manager.get(),
- InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED);
-
- CreateEntry(manager->GetUserShare(), SEARCH_ENGINES, "test");
- manager->SaveChanges();
- manager->ShutdownOnSyncThread(STOP_SYNC);
- EXPECT_FALSE(base::PathExists(
- temp_dir_.path().Append(syncable::Directory::kSyncDatabaseFilename)));
-}
-
TEST_F(SyncBackupManagerTest, FailToInitialize) {
// Test graceful shutdown on initialization failure.
scoped_ptr<SyncBackupManager> manager(new SyncBackupManager);
- InitManager(manager.get(), InternalComponentsFactory::STORAGE_INVALID);
+ InitManager(manager.get(), STORAGE_INVALID);
}
} // anonymous namespace
diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc
index 8c8894c..30bbafd 100644
--- a/sync/internal_api/sync_manager_impl.cc
+++ b/sync/internal_api/sync_manager_impl.cc
@@ -344,8 +344,8 @@ void SyncManagerImpl::Init(InitArgs* args) {
scoped_ptr<syncable::DirectoryBackingStore> backing_store =
args->internal_components_factory->BuildDirectoryBackingStore(
- InternalComponentsFactory::STORAGE_ON_DISK,
- args->credentials.email, absolute_db_path).Pass();
+ args->credentials.email,
+ absolute_db_path).Pass();
DCHECK(backing_store.get());
share_.directory.reset(
diff --git a/sync/internal_api/sync_manager_impl_unittest.cc b/sync/internal_api/sync_manager_impl_unittest.cc
index f7c700e..5518d4f 100644
--- a/sync/internal_api/sync_manager_impl_unittest.cc
+++ b/sync/internal_api/sync_manager_impl_unittest.cc
@@ -834,8 +834,6 @@ class SyncManagerTest : public testing::Test,
sync_manager_.GetEncryptionHandler()->AddObserver(&encryption_observer_);
EXPECT_TRUE(js_backend_.IsInitialized());
- EXPECT_EQ(InternalComponentsFactory::STORAGE_ON_DISK,
- storage_used_);
if (initialization_succeeded_) {
for (ModelSafeRoutingInfo::iterator i = routing_info.begin();
@@ -953,9 +951,7 @@ class SyncManagerTest : public testing::Test,
}
virtual InternalComponentsFactory* GetFactory() {
- return new TestInternalComponentsFactory(
- GetSwitches(), InternalComponentsFactory::STORAGE_IN_MEMORY,
- &storage_used_);
+ return new TestInternalComponentsFactory(GetSwitches(), STORAGE_IN_MEMORY);
}
// Returns true if we are currently encrypting all sync data. May
@@ -1015,7 +1011,6 @@ class SyncManagerTest : public testing::Test,
StrictMock<SyncManagerObserverMock> manager_observer_;
StrictMock<SyncEncryptionHandlerObserverMock> encryption_observer_;
InternalComponentsFactory::Switches switches_;
- InternalComponentsFactory::StorageOption storage_used_;
};
TEST_F(SyncManagerTest, GetAllNodesForTypeTest) {
@@ -2415,8 +2410,7 @@ class ComponentsFactory : public TestInternalComponentsFactory {
ComponentsFactory(const Switches& switches,
SyncScheduler* scheduler_to_use,
sessions::SyncSessionContext** session_context)
- : TestInternalComponentsFactory(
- switches, InternalComponentsFactory::STORAGE_IN_MEMORY, NULL),
+ : TestInternalComponentsFactory(switches, syncer::STORAGE_IN_MEMORY),
scheduler_to_use_(scheduler_to_use),
session_context_(session_context) {}
virtual ~ComponentsFactory() {}
@@ -3183,9 +3177,7 @@ class SyncManagerInitInvalidStorageTest : public SyncManagerTest {
}
virtual InternalComponentsFactory* GetFactory() OVERRIDE {
- return new TestInternalComponentsFactory(
- GetSwitches(), InternalComponentsFactory::STORAGE_INVALID,
- &storage_used_);
+ return new TestInternalComponentsFactory(GetSwitches(), STORAGE_INVALID);
}
};
diff --git a/sync/internal_api/sync_rollback_manager.cc b/sync/internal_api/sync_rollback_manager.cc
index e7b8ea6..b4100c7 100644
--- a/sync/internal_api/sync_rollback_manager.cc
+++ b/sync/internal_api/sync_rollback_manager.cc
@@ -26,7 +26,6 @@ void SyncRollbackManager::Init(InitArgs* args) {
if (SyncRollbackManagerBase::InitInternal(
args->database_location,
args->internal_components_factory.get(),
- InternalComponentsFactory::STORAGE_ON_DISK,
args->unrecoverable_error_handler.Pass(),
args->report_unrecoverable_error_function)) {
change_delegate_ = args->change_delegate;
diff --git a/sync/internal_api/sync_rollback_manager_base.cc b/sync/internal_api/sync_rollback_manager_base.cc
index a2f14e4..67e152b 100644
--- a/sync/internal_api/sync_rollback_manager_base.cc
+++ b/sync/internal_api/sync_rollback_manager_base.cc
@@ -5,6 +5,7 @@
#include "sync/internal_api/sync_rollback_manager_base.h"
#include "sync/internal_api/public/base/model_type.h"
+#include "sync/internal_api/public/internal_components_factory.h"
#include "sync/internal_api/public/read_node.h"
#include "sync/internal_api/public/read_transaction.h"
#include "sync/internal_api/public/write_transaction.h"
@@ -52,13 +53,12 @@ SyncRollbackManagerBase::~SyncRollbackManagerBase() {
bool SyncRollbackManagerBase::InitInternal(
const base::FilePath& database_location,
InternalComponentsFactory* internal_components_factory,
- InternalComponentsFactory::StorageOption storage,
scoped_ptr<UnrecoverableErrorHandler> unrecoverable_error_handler,
ReportUnrecoverableErrorFunction report_unrecoverable_error_function) {
unrecoverable_error_handler_ = unrecoverable_error_handler.Pass();
report_unrecoverable_error_function_ = report_unrecoverable_error_function;
- if (!InitBackupDB(database_location, internal_components_factory, storage)) {
+ if (!InitBackupDB(database_location, internal_components_factory)) {
NotifyInitializationFailure();
return false;
}
@@ -140,6 +140,7 @@ void SyncRollbackManagerBase::SaveChanges() {
void SyncRollbackManagerBase::ShutdownOnSyncThread(ShutdownReason reason) {
if (initialized_) {
+ SaveChanges();
share_.directory->Close();
share_.directory.reset();
initialized_ = false;
@@ -238,13 +239,12 @@ scoped_ptr<base::ListValue> SyncRollbackManagerBase::GetAllNodesForType(
bool SyncRollbackManagerBase::InitBackupDB(
const base::FilePath& sync_folder,
- InternalComponentsFactory* internal_components_factory,
- InternalComponentsFactory::StorageOption storage) {
+ InternalComponentsFactory* internal_components_factory) {
base::FilePath backup_db_path = sync_folder.Append(
syncable::Directory::kSyncDatabaseFilename);
scoped_ptr<syncable::DirectoryBackingStore> backing_store =
internal_components_factory->BuildDirectoryBackingStore(
- storage, "backup", backup_db_path).Pass();
+ "backup", backup_db_path).Pass();
DCHECK(backing_store.get());
share_.directory.reset(
diff --git a/sync/internal_api/sync_rollback_manager_base.h b/sync/internal_api/sync_rollback_manager_base.h
index b92cafb..b6ffcd7 100644
--- a/sync/internal_api/sync_rollback_manager_base.h
+++ b/sync/internal_api/sync_rollback_manager_base.h
@@ -10,7 +10,6 @@
#include "sync/base/sync_export.h"
#include "sync/internal_api/public/http_post_provider_factory.h"
-#include "sync/internal_api/public/internal_components_factory.h"
#include "sync/internal_api/public/sync_manager.h"
#include "sync/internal_api/public/user_share.h"
#include "sync/syncable/directory_change_delegate.h"
@@ -100,7 +99,6 @@ class SYNC_EXPORT_PRIVATE SyncRollbackManagerBase :
bool InitInternal(
const base::FilePath& database_location,
InternalComponentsFactory* internal_components_factory,
- InternalComponentsFactory::StorageOption storage,
scoped_ptr<UnrecoverableErrorHandler> unrecoverable_error_handler,
ReportUnrecoverableErrorFunction report_unrecoverable_error_function);
@@ -120,9 +118,9 @@ class SYNC_EXPORT_PRIVATE SyncRollbackManagerBase :
void NotifyInitializationSuccess();
void NotifyInitializationFailure();
- bool InitBackupDB(const base::FilePath& sync_folder,
- InternalComponentsFactory* internal_components_factory,
- InternalComponentsFactory::StorageOption storage);
+ bool InitBackupDB(
+ const base::FilePath& sync_folder,
+ InternalComponentsFactory* internal_components_factory);
bool InitTypeRootNode(ModelType type);
void InitBookmarkFolder(const std::string& folder);
diff --git a/sync/internal_api/sync_rollback_manager_base_unittest.cc b/sync/internal_api/sync_rollback_manager_base_unittest.cc
index 95662f6..a0866ea 100644
--- a/sync/internal_api/sync_rollback_manager_base_unittest.cc
+++ b/sync/internal_api/sync_rollback_manager_base_unittest.cc
@@ -25,7 +25,6 @@ class SyncTestRollbackManager : public SyncRollbackManagerBase {
SyncRollbackManagerBase::InitInternal(
args->database_location,
args->internal_components_factory.get(),
- InternalComponentsFactory::STORAGE_IN_MEMORY,
args->unrecoverable_error_handler.Pass(),
args->report_unrecoverable_error_function);
}
@@ -38,16 +37,12 @@ class SyncRollbackManagerBaseTest : public testing::Test {
args.database_location = base::FilePath(base::FilePath::kCurrentDirectory);
args.service_url = GURL("https://example.com/");
args.internal_components_factory.reset(new TestInternalComponentsFactory(
- InternalComponentsFactory::Switches(),
- InternalComponentsFactory::STORAGE_IN_MEMORY,
- &storage_used_));
+ InternalComponentsFactory::Switches(), STORAGE_IN_MEMORY));
manager_.Init(&args);
- EXPECT_EQ(InternalComponentsFactory::STORAGE_IN_MEMORY, storage_used_);
}
SyncTestRollbackManager manager_;
base::MessageLoop loop_; // Needed for WeakHandle
- InternalComponentsFactory::StorageOption storage_used_;
};
TEST_F(SyncRollbackManagerBaseTest, InitTypeOnConfiguration) {
diff --git a/sync/internal_api/sync_rollback_manager_unittest.cc b/sync/internal_api/sync_rollback_manager_unittest.cc
index ebf9fed..b243552 100644
--- a/sync/internal_api/sync_rollback_manager_unittest.cc
+++ b/sync/internal_api/sync_rollback_manager_unittest.cc
@@ -102,8 +102,7 @@ class SyncRollbackManagerTest : public testing::Test,
}
void InitManager(SyncManager* manager, ModelTypeSet types,
- TestChangeDelegate* delegate,
- InternalComponentsFactory::StorageOption storage_option) {
+ TestChangeDelegate* delegate, StorageOption storage_option) {
manager_ = manager;
types_ = types;
@@ -119,12 +118,9 @@ class SyncRollbackManagerTest : public testing::Test,
args.service_url = GURL("https://example.com/");
args.workers.push_back(worker_);
args.change_delegate = delegate;
-
- InternalComponentsFactory::StorageOption storage_used;
args.internal_components_factory.reset(new TestInternalComponentsFactory(
- InternalComponentsFactory::Switches(), storage_option, &storage_used));
+ InternalComponentsFactory::Switches(), storage_option));
manager->Init(&args);
- EXPECT_EQ(storage_option, storage_used);
loop_.PostTask(FROM_HERE, run_loop.QuitClosure());
run_loop.Run();
}
@@ -134,9 +130,9 @@ class SyncRollbackManagerTest : public testing::Test,
SyncBackupManager backup_manager;
TestChangeDelegate delegate;
InitManager(&backup_manager, ModelTypeSet(type), &delegate,
- InternalComponentsFactory::STORAGE_ON_DISK_DEFERRED);
+ STORAGE_ON_DISK);
CreateEntry(backup_manager.GetUserShare(), type, client_tag);
- backup_manager.ShutdownOnSyncThread(SWITCH_MODE_SYNC);
+ backup_manager.ShutdownOnSyncThread(STOP_SYNC);
}
// Verify entry with |client_tag| exists in sync directory.
@@ -187,7 +183,7 @@ TEST_F(SyncRollbackManagerTest, RollbackBasic) {
TestChangeDelegate delegate;
SyncRollbackManager rollback_manager;
InitManager(&rollback_manager, ModelTypeSet(PREFERENCES), &delegate,
- InternalComponentsFactory::STORAGE_ON_DISK);
+ STORAGE_ON_DISK);
// Simulate a new entry added during type initialization.
int64 new_pref_id =
@@ -211,7 +207,7 @@ TEST_F(SyncRollbackManagerTest, NoRollbackOfTypesNotBackedUp) {
TestChangeDelegate delegate;
SyncRollbackManager rollback_manager;
InitManager(&rollback_manager, ModelTypeSet(PREFERENCES, APPS), &delegate,
- InternalComponentsFactory::STORAGE_ON_DISK);
+ STORAGE_ON_DISK);
// Simulate new entry added during type initialization.
int64 new_pref_id =
@@ -239,7 +235,7 @@ TEST_F(SyncRollbackManagerTest, BackupDbNotChangedOnAbort) {
scoped_ptr<SyncRollbackManager> rollback_manager(
new SyncRollbackManager);
InitManager(rollback_manager.get(), ModelTypeSet(PREFERENCES), &delegate,
- InternalComponentsFactory::STORAGE_ON_DISK);
+ STORAGE_ON_DISK);
// Simulate a new entry added during type initialization.
CreateEntry(rollback_manager->GetUserShare(), PREFERENCES, "pref2");
@@ -250,7 +246,7 @@ TEST_F(SyncRollbackManagerTest, BackupDbNotChangedOnAbort) {
// Verify new entry was not persisted.
rollback_manager.reset(new SyncRollbackManager);
InitManager(rollback_manager.get(), ModelTypeSet(PREFERENCES), &delegate,
- InternalComponentsFactory::STORAGE_ON_DISK);
+ STORAGE_ON_DISK);
EXPECT_FALSE(VerifyEntry(rollback_manager->GetUserShare(), PREFERENCES,
"pref2"));
}
@@ -260,7 +256,7 @@ TEST_F(SyncRollbackManagerTest, OnInitializationFailure) {
scoped_ptr<SyncRollbackManager> rollback_manager(
new SyncRollbackManager);
InitManager(rollback_manager.get(), ModelTypeSet(PREFERENCES), NULL,
- InternalComponentsFactory::STORAGE_ON_DISK);
+ STORAGE_ON_DISK);
}
} // anonymous namespace
diff --git a/sync/internal_api/test/test_internal_components_factory.cc b/sync/internal_api/test/test_internal_components_factory.cc
index 34c678b..c7d94e9 100644
--- a/sync/internal_api/test/test_internal_components_factory.cc
+++ b/sync/internal_api/test/test_internal_components_factory.cc
@@ -5,7 +5,6 @@
#include "sync/internal_api/public/test/test_internal_components_factory.h"
#include "sync/sessions/sync_session_context.h"
-#include "sync/syncable/deferred_on_disk_directory_backing_store.h"
#include "sync/syncable/in_memory_directory_backing_store.h"
#include "sync/syncable/on_disk_directory_backing_store.h"
#include "sync/syncable/invalid_directory_backing_store.h"
@@ -15,11 +14,9 @@ namespace syncer {
TestInternalComponentsFactory::TestInternalComponentsFactory(
const Switches& switches,
- StorageOption option,
- StorageOption* storage_used)
+ StorageOption option)
: switches_(switches),
- storage_override_(option),
- storage_used_(storage_used) {
+ storage_option_(option) {
}
TestInternalComponentsFactory::~TestInternalComponentsFactory() { }
@@ -57,12 +54,8 @@ TestInternalComponentsFactory::BuildContext(
scoped_ptr<syncable::DirectoryBackingStore>
TestInternalComponentsFactory::BuildDirectoryBackingStore(
- StorageOption storage, const std::string& dir_name,
- const base::FilePath& backing_filepath) {
- if (storage_used_)
- *storage_used_ = storage;
-
- switch (storage_override_) {
+ const std::string& dir_name, const base::FilePath& backing_filepath) {
+ switch (storage_option_) {
case STORAGE_IN_MEMORY:
return scoped_ptr<syncable::DirectoryBackingStore>(
new syncable::InMemoryDirectoryBackingStore(dir_name));
@@ -70,10 +63,6 @@ TestInternalComponentsFactory::BuildDirectoryBackingStore(
return scoped_ptr<syncable::DirectoryBackingStore>(
new syncable::OnDiskDirectoryBackingStore(dir_name,
backing_filepath));
- case STORAGE_ON_DISK_DEFERRED:
- return scoped_ptr<syncable::DirectoryBackingStore>(
- new syncable::DeferredOnDiskDirectoryBackingStore(dir_name,
- backing_filepath));
case STORAGE_INVALID:
return scoped_ptr<syncable::DirectoryBackingStore>(
new syncable::InvalidDirectoryBackingStore());
diff --git a/sync/sync.gyp b/sync/sync.gyp
index 9ced955..ad8fd34 100644
--- a/sync/sync.gyp
+++ b/sync/sync.gyp
@@ -353,8 +353,6 @@
'sessions/sync_session_context.cc',
'sessions/sync_session_context.h',
'syncable/blob.h',
- 'syncable/deferred_on_disk_directory_backing_store.cc',
- 'syncable/deferred_on_disk_directory_backing_store.h',
'syncable/dir_open_result.h',
'syncable/directory.cc',
'syncable/directory.h',
diff --git a/sync/sync_tests.gypi b/sync/sync_tests.gypi
index ddcdf25..b7b68c3 100644
--- a/sync/sync_tests.gypi
+++ b/sync/sync_tests.gypi
@@ -317,7 +317,6 @@
'sessions/model_type_registry_unittest.cc',
'sessions/nudge_tracker_unittest.cc',
'sessions/status_controller_unittest.cc',
- 'syncable/deferred_on_disk_directory_backing_store_unittest.cc',
'syncable/directory_backing_store_unittest.cc',
'syncable/directory_unittest.cc',
'syncable/directory_unittest.h',
diff --git a/sync/syncable/deferred_on_disk_directory_backing_store.cc b/sync/syncable/deferred_on_disk_directory_backing_store.cc
deleted file mode 100644
index 0367e5b..0000000
--- a/sync/syncable/deferred_on_disk_directory_backing_store.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "sync/syncable/deferred_on_disk_directory_backing_store.h"
-
-#include "base/logging.h"
-#include "base/metrics/histogram.h"
-#include "base/stl_util.h"
-#include "sync/syncable/syncable-inl.h"
-
-namespace syncer {
-namespace syncable {
-
-DeferredOnDiskDirectoryBackingStore::DeferredOnDiskDirectoryBackingStore(
- const std::string& dir_name, const base::FilePath& backing_filepath)
- : DirectoryBackingStore(dir_name),
- backing_filepath_(backing_filepath),
- db_is_on_disk_(false) {
-}
-
-DeferredOnDiskDirectoryBackingStore::~DeferredOnDiskDirectoryBackingStore() {}
-
-bool DeferredOnDiskDirectoryBackingStore::SaveChanges(
- const Directory::SaveChangesSnapshot& snapshot) {
- DCHECK(CalledOnValidThread());
-
- // Back out early if there is nothing to save.
- if (snapshot.dirty_metas.empty() && snapshot.metahandles_to_purge.empty() &&
- snapshot.delete_journals.empty() &&
- snapshot.delete_journals_to_purge.empty()) {
- return true;
- }
-
- if (!db_is_on_disk_) {
- if (!base::DeleteFile(backing_filepath_, false))
- return false;
-
- // Reopen DB on disk.
- db_.reset(new sql::Connection);
- db_->set_exclusive_locking();
- db_->set_page_size(4096);
- if (!db_->Open(backing_filepath_) || !InitializeTables())
- return false;
-
- db_is_on_disk_ = true;
- }
-
- return DirectoryBackingStore::SaveChanges(snapshot);
-}
-
-DirOpenResult DeferredOnDiskDirectoryBackingStore::Load(
- Directory::MetahandlesMap* handles_map,
- JournalIndex* delete_journals,
- Directory::KernelLoadInfo* kernel_load_info) {
- // Open an in-memory database at first to create initial sync data needed by
- // Directory.
- CHECK(!db_->is_open());
- if (!db_->OpenInMemory())
- return FAILED_OPEN_DATABASE;
-
- if (!InitializeTables())
- return FAILED_OPEN_DATABASE;
- if (!LoadEntries(handles_map))
- return FAILED_DATABASE_CORRUPT;
- if (!LoadInfo(kernel_load_info))
- return FAILED_DATABASE_CORRUPT;
-
- return OPENED;
-}
-
-} // namespace syncable
-} // namespace syncer
diff --git a/sync/syncable/deferred_on_disk_directory_backing_store.h b/sync/syncable/deferred_on_disk_directory_backing_store.h
deleted file mode 100644
index 9e6429a..0000000
--- a/sync/syncable/deferred_on_disk_directory_backing_store.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef SYNC_SYNCABLE_DEFERRED_ON_DISK_DIRECTORY_BACKING_STORE_H_
-#define SYNC_SYNCABLE_DEFERRED_ON_DISK_DIRECTORY_BACKING_STORE_H_
-
-#include "base/files/file_path.h"
-#include "sync/base/sync_export.h"
-#include "sync/syncable/directory_backing_store.h"
-
-namespace syncer {
-namespace syncable {
-
-// Store used for backing up user's data before first sync. It creates an
-// in-memory store first and switch to on-disk store if SaveChanges() is
-// called, which only happens when SyncBackupManager is shut down and a
-// syncing backend is to be created. Thus we guarantee that user data is not
-// persisted until user is actually going to sync.
-class SYNC_EXPORT_PRIVATE DeferredOnDiskDirectoryBackingStore
- : public DirectoryBackingStore {
- public:
- DeferredOnDiskDirectoryBackingStore(const std::string& dir_name,
- const base::FilePath& backing_filepath);
- virtual ~DeferredOnDiskDirectoryBackingStore();
- virtual DirOpenResult Load(
- Directory::MetahandlesMap* handles_map,
- JournalIndex* delete_journals,
- Directory::KernelLoadInfo* kernel_load_info) OVERRIDE;
- virtual bool SaveChanges(const Directory::SaveChangesSnapshot& snapshot)
- OVERRIDE;
-
- private:
- base::FilePath backing_filepath_;
-
- // Whether current DB is on disk.
- bool db_is_on_disk_;
-
- DISALLOW_COPY_AND_ASSIGN(DeferredOnDiskDirectoryBackingStore);
-};
-
-} // namespace syncable
-} // namespace syncer
-
-#endif // SYNC_SYNCABLE_DEFERRED_ON_DISK_DIRECTORY_BACKING_STORE_H_
diff --git a/sync/syncable/deferred_on_disk_directory_backing_store_unittest.cc b/sync/syncable/deferred_on_disk_directory_backing_store_unittest.cc
deleted file mode 100644
index b1053b8..0000000
--- a/sync/syncable/deferred_on_disk_directory_backing_store_unittest.cc
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/files/scoped_temp_dir.h"
-#include "base/stl_util.h"
-#include "sync/syncable/deferred_on_disk_directory_backing_store.h"
-#include "sync/syncable/directory.h"
-#include "sync/syncable/entry_kernel.h"
-#include "sync/syncable/on_disk_directory_backing_store.h"
-#include "sync/syncable/syncable_delete_journal.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace syncer {
-namespace syncable {
-namespace {
-
-static const base::FilePath::CharType kSyncDataFolderName[] =
- FILE_PATH_LITERAL("Sync Data");
-
-class DeferredOnDiskDirectoryBackingStoreTest : public testing::Test {
- protected:
- virtual void SetUp() OVERRIDE {
- CHECK(temp_dir_.CreateUniqueTempDir());
- db_path_ = temp_dir_.path().Append(kSyncDataFolderName);
- }
-
- virtual void TearDown() OVERRIDE {
- STLDeleteValues(&handles_map_);
- }
-
- base::ScopedTempDir temp_dir_;
- base::FilePath db_path_;
- Directory::MetahandlesMap handles_map_;
- JournalIndex delete_journals_;
- Directory::KernelLoadInfo kernel_load_info_;
-};
-
-// Test initialization of root entry when calling Load().
-TEST_F(DeferredOnDiskDirectoryBackingStoreTest, Load) {
- DeferredOnDiskDirectoryBackingStore store("test", db_path_);
- EXPECT_EQ(OPENED, store.Load(&handles_map_, &delete_journals_,
- &kernel_load_info_));
- EXPECT_TRUE(delete_journals_.empty());
- ASSERT_EQ(1u, handles_map_.size()); // root node
- ASSERT_TRUE(handles_map_.count(1));
- EntryKernel* root = handles_map_[1];
- EXPECT_TRUE(root->ref(ID).IsRoot());
- EXPECT_EQ(1, root->ref(META_HANDLE));
- EXPECT_TRUE(root->ref(IS_DIR));
-}
-
-// Test on-disk DB is not created if SaveChanges() is not called.
-TEST_F(DeferredOnDiskDirectoryBackingStoreTest,
- DontPersistIfSavingChangesNotCalled) {
- {
- // Open and close.
- DeferredOnDiskDirectoryBackingStore store("test", db_path_);
- EXPECT_EQ(OPENED, store.Load(&handles_map_, &delete_journals_,
- &kernel_load_info_));
- }
-
- EXPECT_FALSE(base::PathExists(db_path_));
-}
-
-// Test on-disk DB is not created when there are no changes.
-TEST_F(DeferredOnDiskDirectoryBackingStoreTest,
- DontPersistWhenSavingNoChanges) {
- {
- // Open and close.
- DeferredOnDiskDirectoryBackingStore store("test", db_path_);
- EXPECT_EQ(OPENED, store.Load(&handles_map_, &delete_journals_,
- &kernel_load_info_));
-
- Directory::SaveChangesSnapshot snapshot;
- store.SaveChanges(snapshot);
- }
-
- EXPECT_FALSE(base::PathExists(db_path_));
-}
-
-// Test changes are persisted to disk when SaveChanges() is called.
-TEST_F(DeferredOnDiskDirectoryBackingStoreTest, PersistWhenSavingValidChanges) {
- {
- // Open and close.
- DeferredOnDiskDirectoryBackingStore store("test", db_path_);
- EXPECT_EQ(OPENED, store.Load(&handles_map_, &delete_journals_,
- &kernel_load_info_));
-
- Directory::SaveChangesSnapshot snapshot;
- EntryKernel* entry = new EntryKernel();
- entry->put(ID, Id::CreateFromClientString("test_entry"));
- entry->put(META_HANDLE, 2);
- entry->mark_dirty(NULL);
- snapshot.dirty_metas.insert(entry);
- store.SaveChanges(snapshot);
- }
-
- STLDeleteValues(&handles_map_);
-
- ASSERT_TRUE(base::PathExists(db_path_));
- OnDiskDirectoryBackingStore read_store("test", db_path_);
- EXPECT_EQ(OPENED, read_store.Load(&handles_map_, &delete_journals_,
- &kernel_load_info_));
- ASSERT_EQ(2u, handles_map_.size());
- ASSERT_TRUE(handles_map_.count(1)); // root node
- ASSERT_TRUE(handles_map_.count(2));
- EntryKernel* entry = handles_map_[2];
- EXPECT_EQ(Id::CreateFromClientString("test_entry"), entry->ref(ID));
-}
-
-} // namespace
-} // namespace syncable
-} // namespace syncer