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

Side by Side Diff: chrome/browser/extensions/api/storage/settings_frontend.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: Latest master 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/api/storage/settings_frontend.h" 5 #include "chrome/browser/extensions/api/storage/settings_frontend.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/json/json_reader.h" 12 #include "base/json/json_reader.h"
13 #include "chrome/browser/extensions/api/storage/leveldb_settings_storage_factory .h" 13 #include "chrome/browser/extensions/api/storage/leveldb_settings_storage_factory .h"
14 #include "chrome/browser/extensions/api/storage/settings_backend.h"
15 #include "chrome/browser/extensions/api/storage/sync_or_local_value_store_cache. h" 14 #include "chrome/browser/extensions/api/storage/sync_or_local_value_store_cache. h"
16 #include "chrome/browser/extensions/event_names.h" 15 #include "chrome/browser/extensions/event_names.h"
17 #include "chrome/browser/extensions/extension_service.h" 16 #include "chrome/browser/extensions/extension_service.h"
18 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/common/extensions/api/storage.h" 18 #include "chrome/common/extensions/api/storage.h"
20 #include "content/public/browser/browser_thread.h" 19 #include "content/public/browser/browser_thread.h"
21 #include "extensions/browser/event_router.h" 20 #include "extensions/browser/event_router.h"
22 #include "extensions/browser/extension_system.h" 21 #include "extensions/browser/extension_system.h"
23 22
24 #if defined(ENABLE_CONFIGURATION_POLICY) 23 #if defined(ENABLE_CONFIGURATION_POLICY)
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 138 }
140 } 139 }
141 140
142 syncer::SyncableService* SettingsFrontend::GetBackendForSync( 141 syncer::SyncableService* SettingsFrontend::GetBackendForSync(
143 syncer::ModelType type) const { 142 syncer::ModelType type) const {
144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
145 CacheMap::const_iterator it = caches_.find(settings_namespace::SYNC); 144 CacheMap::const_iterator it = caches_.find(settings_namespace::SYNC);
146 DCHECK(it != caches_.end()); 145 DCHECK(it != caches_.end());
147 const SyncOrLocalValueStoreCache* sync_cache = 146 const SyncOrLocalValueStoreCache* sync_cache =
148 static_cast<const SyncOrLocalValueStoreCache*>(it->second); 147 static_cast<const SyncOrLocalValueStoreCache*>(it->second);
149 switch (type) { 148 DCHECK(type == syncer::APP_SETTINGS || type == syncer::EXTENSION_SETTINGS);
150 case syncer::APP_SETTINGS: 149 return sync_cache->GetSyncableService(type);
151 return sync_cache->GetAppBackend();
152 case syncer::EXTENSION_SETTINGS:
153 return sync_cache->GetExtensionBackend();
154 default:
155 NOTREACHED();
156 return NULL;
157 }
158 } 150 }
159 151
160 bool SettingsFrontend::IsStorageEnabled( 152 bool SettingsFrontend::IsStorageEnabled(
161 settings_namespace::Namespace settings_namespace) const { 153 settings_namespace::Namespace settings_namespace) const {
162 return caches_.find(settings_namespace) != caches_.end(); 154 return caches_.find(settings_namespace) != caches_.end();
163 } 155 }
164 156
165 void SettingsFrontend::RunWithStorage( 157 void SettingsFrontend::RunWithStorage(
166 const std::string& extension_id, 158 const std::string& extension_id,
167 settings_namespace::Namespace settings_namespace, 159 settings_namespace::Namespace settings_namespace,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 CacheMap::iterator it = caches_.find(settings_namespace); 201 CacheMap::iterator it = caches_.find(settings_namespace);
210 if (it != caches_.end()) { 202 if (it != caches_.end()) {
211 ValueStoreCache* cache = it->second; 203 ValueStoreCache* cache = it->second;
212 cache->ShutdownOnUI(); 204 cache->ShutdownOnUI();
213 BrowserThread::DeleteSoon(BrowserThread::FILE, FROM_HERE, cache); 205 BrowserThread::DeleteSoon(BrowserThread::FILE, FROM_HERE, cache);
214 caches_.erase(it); 206 caches_.erase(it);
215 } 207 }
216 } 208 }
217 209
218 } // namespace extensions 210 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698