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

Side by Side Diff: chrome/browser/extensions/settings/settings_frontend.cc

Issue 9414020: [Sync] Switch Extension Settings DTC to use ProfilesyncComponentsFactory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 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 | 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/settings/settings_frontend.h" 5 #include "chrome/browser/extensions/settings/settings_frontend.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "chrome/browser/extensions/extension_event_names.h" 10 #include "chrome/browser/extensions/extension_event_names.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 154 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
155 BrowserThread::PostTask( 155 BrowserThread::PostTask(
156 BrowserThread::FILE, 156 BrowserThread::FILE,
157 FROM_HERE, 157 FROM_HERE,
158 base::Bind( 158 base::Bind(
159 &SettingsFrontend::BackendWrapper::RunWithBackendOnFileThread, 159 &SettingsFrontend::BackendWrapper::RunWithBackendOnFileThread,
160 this, 160 this,
161 callback)); 161 callback));
162 } 162 }
163 163
164 SettingsBackend* GetBackend() const {
165 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
166 return backend_;
167 }
168
164 private: 169 private:
165 friend class base::RefCountedThreadSafe<BackendWrapper>; 170 friend class base::RefCountedThreadSafe<BackendWrapper>;
166 171
167 BackendWrapper( 172 BackendWrapper(
168 const scoped_refptr<SettingsStorageFactory>& storage_factory, 173 const scoped_refptr<SettingsStorageFactory>& storage_factory,
169 const SettingsStorageQuotaEnforcer::Limits& quota, 174 const SettingsStorageQuotaEnforcer::Limits& quota,
170 const scoped_refptr<SettingsObserverList>& observers) 175 const scoped_refptr<SettingsObserverList>& observers)
171 : storage_factory_(storage_factory), 176 : storage_factory_(storage_factory),
172 quota_(quota), 177 quota_(quota),
173 observers_(observers), 178 observers_(observers),
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 observers_, 271 observers_,
267 profile_path.AppendASCII( 272 profile_path.AppendASCII(
268 ExtensionService::kSyncExtensionSettingsDirectoryName)); 273 ExtensionService::kSyncExtensionSettingsDirectoryName));
269 } 274 }
270 275
271 SettingsFrontend::~SettingsFrontend() { 276 SettingsFrontend::~SettingsFrontend() {
272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 277 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
273 observers_->RemoveObserver(profile_observer_.get()); 278 observers_->RemoveObserver(profile_observer_.get());
274 } 279 }
275 280
276 void SettingsFrontend::RunWithSyncableService( 281 SyncableService* SettingsFrontend::GetBackendForSync(
277 syncable::ModelType model_type, const SyncableServiceCallback& callback) { 282 syncable::ModelType type) const {
278 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 283 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
279 scoped_refptr<BackendWrapper> backend; 284 std::map<settings_namespace::Namespace, BackendWrappers>::const_iterator
280 switch (model_type) { 285 sync_backends = backends_.find(settings_namespace::SYNC);
286 if (sync_backends == backends_.end()) {
287 NOTREACHED();
288 return NULL;
289 }
290 switch (type) {
281 case syncable::APP_SETTINGS: 291 case syncable::APP_SETTINGS:
282 backend = backends_[settings_namespace::SYNC].app; 292 return sync_backends->second.app->GetBackend();
283 break;
284
285 case syncable::EXTENSION_SETTINGS: 293 case syncable::EXTENSION_SETTINGS:
286 backend = backends_[settings_namespace::SYNC].extension; 294 return sync_backends->second.extension->GetBackend();
287 break;
288
289 default: 295 default:
290 NOTREACHED(); 296 NOTREACHED();
297 return NULL;
291 } 298 }
292 backend->RunWithBackend(base::Bind(&CallbackWithSyncableService, callback));
293 } 299 }
294 300
295 void SettingsFrontend::RunWithStorage( 301 void SettingsFrontend::RunWithStorage(
296 const std::string& extension_id, 302 const std::string& extension_id,
297 settings_namespace::Namespace settings_namespace, 303 settings_namespace::Namespace settings_namespace,
298 const StorageCallback& callback) { 304 const StorageCallback& callback) {
299 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 305 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
300 306
301 const Extension* extension = 307 const Extension* extension =
302 profile_->GetExtensionService()->GetExtensionById(extension_id, true); 308 profile_->GetExtensionService()->GetExtensionById(extension_id, true);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 354 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
349 return observers_; 355 return observers_;
350 } 356 }
351 357
352 // BackendWrappers 358 // BackendWrappers
353 359
354 SettingsFrontend::BackendWrappers::BackendWrappers() {} 360 SettingsFrontend::BackendWrappers::BackendWrappers() {}
355 SettingsFrontend::BackendWrappers::~BackendWrappers() {} 361 SettingsFrontend::BackendWrappers::~BackendWrappers() {}
356 362
357 } // namespace extensions 363 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698