Chromium Code Reviews| Index: chrome/browser/extensions/settings/settings_frontend.cc |
| diff --git a/chrome/browser/extensions/settings/settings_frontend.cc b/chrome/browser/extensions/settings/settings_frontend.cc |
| index 6c5fbedf04e1f0785175002333943ab5e6c24e0c..4651644a0e868f1784b1c5aec380f8a997d46c16 100644 |
| --- a/chrome/browser/extensions/settings/settings_frontend.cc |
| +++ b/chrome/browser/extensions/settings/settings_frontend.cc |
| @@ -161,6 +161,10 @@ class SettingsFrontend::BackendWrapper |
| callback)); |
| } |
| + SettingsBackend* GetBackend() const { |
|
not at google - send to devlin
2012/02/16 22:58:44
DCHECK(FILE thread).
Nicolas Zea
2012/02/23 00:27:58
Done.
|
| + return backend_; |
| + } |
| + |
| private: |
| friend class base::RefCountedThreadSafe<BackendWrapper>; |
| @@ -273,23 +277,22 @@ SettingsFrontend::~SettingsFrontend() { |
| observers_->RemoveObserver(profile_observer_.get()); |
| } |
| -void SettingsFrontend::RunWithSyncableService( |
| - syncable::ModelType model_type, const SyncableServiceCallback& callback) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - scoped_refptr<BackendWrapper> backend; |
| - switch (model_type) { |
| +SyncableService* SettingsFrontend::GetBackendForSync( |
| + syncable::ModelType type) const { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| + std::map<settings_namespace::Namespace, BackendWrappers>::const_iterator |
| + sync_backends = backends_.find(settings_namespace::SYNC); |
|
not at google - send to devlin
2012/02/16 22:58:44
How can this ever not find ::SYNC? The constructor
Nicolas Zea
2012/02/23 00:27:58
I was just being overcautious. Added a NOTREACHED
not at google - send to devlin
2012/02/23 02:15:38
DCHECK_NE(sync_backends, backends_.end()) would be
Nicolas Zea
2012/02/24 21:38:04
Done.
|
| + if (sync_backends == backends_.end()) |
| + return NULL; |
| + switch (type) { |
| case syncable::APP_SETTINGS: |
| - backend = backends_[settings_namespace::SYNC].app; |
| - break; |
| - |
| + return sync_backends->second.app->GetBackend(); |
| case syncable::EXTENSION_SETTINGS: |
| - backend = backends_[settings_namespace::SYNC].extension; |
| - break; |
| - |
| + return sync_backends->second.extension->GetBackend(); |
| default: |
| NOTREACHED(); |
| + return NULL; |
| } |
| - backend->RunWithBackend(base::Bind(&CallbackWithSyncableService, callback)); |
| } |
| void SettingsFrontend::RunWithStorage( |