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

Side by Side Diff: chrome/browser/extensions/api/storage/settings_frontend.cc

Issue 184853012: Reland: Add ExtensionsApiClient interface, use it in the storage API SettingsFrontend (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase (api_client) Created 6 years, 9 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 | Annotate | Revision Log
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 "base/lazy_instance.h" 13 #include "base/lazy_instance.h"
14 #include "chrome/browser/extensions/api/storage/leveldb_settings_storage_factory .h" 14 #include "chrome/browser/extensions/api/storage/leveldb_settings_storage_factory .h"
15 #include "chrome/browser/extensions/api/storage/sync_or_local_value_store_cache. h" 15 #include "chrome/browser/extensions/api/storage/sync_or_local_value_store_cache. h"
16 #include "chrome/browser/extensions/extension_service.h"
17 #include "chrome/common/extensions/api/storage.h" 16 #include "chrome/common/extensions/api/storage.h"
18 #include "content/public/browser/browser_context.h" 17 #include "content/public/browser/browser_context.h"
19 #include "content/public/browser/browser_thread.h" 18 #include "content/public/browser/browser_thread.h"
19 #include "extensions/browser/api/extensions_api_client.h"
20 #include "extensions/browser/event_router.h" 20 #include "extensions/browser/event_router.h"
21 #include "extensions/browser/extension_registry.h" 21 #include "extensions/browser/extension_registry.h"
22 #include "extensions/browser/extension_system.h" 22 #include "extensions/browser/extension_system.h"
23 23
24 #if defined(ENABLE_CONFIGURATION_POLICY)
25 #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
26 #endif
27
28 using content::BrowserContext; 24 using content::BrowserContext;
29 using content::BrowserThread; 25 using content::BrowserThread;
30 26
31 namespace extensions { 27 namespace extensions {
32 28
33 namespace storage = api::storage; 29 namespace storage = api::storage;
34 30
35 namespace { 31 namespace {
36 32
37 base::LazyInstance<BrowserContextKeyedAPIFactory<SettingsFrontend> > g_factory = 33 base::LazyInstance<BrowserContextKeyedAPIFactory<SettingsFrontend> > g_factory =
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 observers_, 127 observers_,
132 browser_context_path); 128 browser_context_path);
133 caches_[settings_namespace::SYNC] = 129 caches_[settings_namespace::SYNC] =
134 new SyncOrLocalValueStoreCache( 130 new SyncOrLocalValueStoreCache(
135 settings_namespace::SYNC, 131 settings_namespace::SYNC,
136 factory, 132 factory,
137 sync_quota_limit_, 133 sync_quota_limit_,
138 observers_, 134 observers_,
139 browser_context_path); 135 browser_context_path);
140 136
141 #if defined(ENABLE_CONFIGURATION_POLICY) 137 // Add any additional caches the embedder supports (for example, a cache
142 caches_[settings_namespace::MANAGED] = 138 // for chrome.storage.managed).
143 new ManagedValueStoreCache( 139 ExtensionsAPIClient::Get()->AddAdditionalValueStoreCaches(
144 browser_context_, 140 browser_context_, factory, observers_, &caches_);
145 factory,
146 observers_);
147 #endif
148 } 141 }
149 142
150 SettingsFrontend::~SettingsFrontend() { 143 SettingsFrontend::~SettingsFrontend() {
151 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
152 observers_->RemoveObserver(browser_context_observer_.get()); 145 observers_->RemoveObserver(browser_context_observer_.get());
153 for (CacheMap::iterator it = caches_.begin(); it != caches_.end(); ++it) { 146 for (CacheMap::iterator it = caches_.begin(); it != caches_.end(); ++it) {
154 ValueStoreCache* cache = it->second; 147 ValueStoreCache* cache = it->second;
155 cache->ShutdownOnUI(); 148 cache->ShutdownOnUI();
156 BrowserThread::DeleteSoon(BrowserThread::FILE, FROM_HERE, cache); 149 BrowserThread::DeleteSoon(BrowserThread::FILE, FROM_HERE, cache);
157 } 150 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 SettingsFrontend::GetFactoryInstance() { 218 SettingsFrontend::GetFactoryInstance() {
226 return g_factory.Pointer(); 219 return g_factory.Pointer();
227 } 220 }
228 221
229 // static 222 // static
230 const char* SettingsFrontend::service_name() { 223 const char* SettingsFrontend::service_name() {
231 return "SettingsFrontend"; 224 return "SettingsFrontend";
232 } 225 }
233 226
234 } // namespace extensions 227 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698