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

Unified Diff: chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.cc

Issue 165223003: Add a Restore() method to ValueStore and make StorageAPI use it (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 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
Index: chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.cc
diff --git a/chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.cc b/chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.cc
index f26bc2eeba57775d9fb5d358be87d73307c2777e..d17567548cd99fdc32184ccade4b84288071acfd 100644
--- a/chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.cc
+++ b/chrome/browser/extensions/api/storage/sync_or_local_value_store_cache.cc
@@ -8,9 +8,10 @@
#include "base/callback.h"
#include "base/files/file_path.h"
#include "base/sequenced_task_runner.h"
-#include "chrome/browser/extensions/api/storage/settings_backend.h"
+#include "chrome/browser/extensions/api/storage/local_storage_backend.h"
#include "chrome/browser/extensions/api/storage/settings_frontend.h"
#include "chrome/browser/extensions/api/storage/settings_storage_quota_enforcer.h"
+#include "chrome/browser/extensions/api/storage/sync_storage_backend.h"
#include "chrome/browser/extensions/api/storage/weak_unlimited_settings_storage.h"
#include "chrome/browser/sync/glue/sync_start_util.h"
#include "content/public/browser/browser_thread.h"
@@ -47,16 +48,20 @@ SyncOrLocalValueStoreCache::~SyncOrLocalValueStoreCache() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
}
-SettingsBackend* SyncOrLocalValueStoreCache::GetAppBackend() const {
+syncer::SyncableService* SyncOrLocalValueStoreCache::GetSyncableService(
+ syncer::ModelType type) const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- DCHECK(app_backend_.get());
- return app_backend_.get();
-}
-
-SettingsBackend* SyncOrLocalValueStoreCache::GetExtensionBackend() const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- DCHECK(extension_backend_.get());
- return extension_backend_.get();
+ switch (type) {
+ case syncer::APP_SETTINGS:
+ DCHECK(app_backend_.get());
not at google - send to devlin 2014/02/14 19:35:56 all this DCHECK'ing of backends looks weird. Let's
Devlin 2014/02/18 23:55:22 Done.
+ return app_backend_->GetAsSyncableService();
+ case syncer::EXTENSION_SETTINGS:
+ DCHECK(extension_backend_.get());
+ return extension_backend_->GetAsSyncableService();
+ default:
+ NOTREACHED();
+ return NULL;
+ }
}
void SyncOrLocalValueStoreCache::RunWithValueStoreForExtension(
@@ -102,20 +107,31 @@ void SyncOrLocalValueStoreCache::InitOnFileThread(
DCHECK(!app_backend_.get());
DCHECK(!extension_backend_.get());
const bool local = settings_namespace_ == settings_namespace::LOCAL;
not at google - send to devlin 2014/02/14 19:35:56 use switch
Devlin 2014/02/18 23:55:22 Done.
- const base::FilePath app_path = profile_path.AppendASCII(
- local ? extensions::kLocalAppSettingsDirectoryName
- : extensions::kSyncAppSettingsDirectoryName);
- const base::FilePath extension_path = profile_path.AppendASCII(
- local ? extensions::kLocalExtensionSettingsDirectoryName
- : extensions::kSyncExtensionSettingsDirectoryName);
- app_backend_.reset(new SettingsBackend(
- factory, app_path, syncer::APP_SETTINGS,
- sync_start_util::GetFlareForSyncableService(profile_path),
- quota, observers));
- extension_backend_.reset(new SettingsBackend(
- factory, extension_path, syncer::EXTENSION_SETTINGS,
- sync_start_util::GetFlareForSyncableService(profile_path),
- quota, observers));
+ if (local) {
+ app_backend_.reset(new LocalStorageBackend(
+ factory,
+ profile_path.AppendASCII(kLocalAppSettingsDirectoryName),
+ quota));
+ extension_backend_.reset(new LocalStorageBackend(
+ factory,
+ profile_path.AppendASCII(kLocalExtensionSettingsDirectoryName),
+ quota));
+ } else {
+ app_backend_.reset(new SyncStorageBackend(
+ factory,
+ profile_path.AppendASCII(kSyncAppSettingsDirectoryName),
+ quota,
+ observers,
+ syncer::APP_SETTINGS,
+ sync_start_util::GetFlareForSyncableService(profile_path)));
+ extension_backend_.reset(new SyncStorageBackend(
+ factory,
+ profile_path.AppendASCII(kSyncExtensionSettingsDirectoryName),
+ quota,
+ observers,
+ syncer::EXTENSION_SETTINGS,
+ sync_start_util::GetFlareForSyncableService(profile_path)));
+ }
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698