Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 { | |
|
not at google - send to devlin
2012/02/16 22:58:44
DCHECK(FILE thread).
Nicolas Zea
2012/02/23 00:27:58
Done.
| |
| 165 return backend_; | |
| 166 } | |
| 167 | |
| 164 private: | 168 private: |
| 165 friend class base::RefCountedThreadSafe<BackendWrapper>; | 169 friend class base::RefCountedThreadSafe<BackendWrapper>; |
| 166 | 170 |
| 167 BackendWrapper( | 171 BackendWrapper( |
| 168 const scoped_refptr<SettingsStorageFactory>& storage_factory, | 172 const scoped_refptr<SettingsStorageFactory>& storage_factory, |
| 169 const SettingsStorageQuotaEnforcer::Limits& quota, | 173 const SettingsStorageQuotaEnforcer::Limits& quota, |
| 170 const scoped_refptr<SettingsObserverList>& observers) | 174 const scoped_refptr<SettingsObserverList>& observers) |
| 171 : storage_factory_(storage_factory), | 175 : storage_factory_(storage_factory), |
| 172 quota_(quota), | 176 quota_(quota), |
| 173 observers_(observers), | 177 observers_(observers), |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 observers_, | 270 observers_, |
| 267 profile_path.AppendASCII( | 271 profile_path.AppendASCII( |
| 268 ExtensionService::kSyncExtensionSettingsDirectoryName)); | 272 ExtensionService::kSyncExtensionSettingsDirectoryName)); |
| 269 } | 273 } |
| 270 | 274 |
| 271 SettingsFrontend::~SettingsFrontend() { | 275 SettingsFrontend::~SettingsFrontend() { |
| 272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 276 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 273 observers_->RemoveObserver(profile_observer_.get()); | 277 observers_->RemoveObserver(profile_observer_.get()); |
| 274 } | 278 } |
| 275 | 279 |
| 276 void SettingsFrontend::RunWithSyncableService( | 280 SyncableService* SettingsFrontend::GetBackendForSync( |
| 277 syncable::ModelType model_type, const SyncableServiceCallback& callback) { | 281 syncable::ModelType type) const { |
| 278 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 282 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 279 scoped_refptr<BackendWrapper> backend; | 283 std::map<settings_namespace::Namespace, BackendWrappers>::const_iterator |
| 280 switch (model_type) { | 284 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.
| |
| 285 if (sync_backends == backends_.end()) | |
| 286 return NULL; | |
| 287 switch (type) { | |
| 281 case syncable::APP_SETTINGS: | 288 case syncable::APP_SETTINGS: |
| 282 backend = backends_[settings_namespace::SYNC].app; | 289 return sync_backends->second.app->GetBackend(); |
| 283 break; | |
| 284 | |
| 285 case syncable::EXTENSION_SETTINGS: | 290 case syncable::EXTENSION_SETTINGS: |
| 286 backend = backends_[settings_namespace::SYNC].extension; | 291 return sync_backends->second.extension->GetBackend(); |
| 287 break; | |
| 288 | |
| 289 default: | 292 default: |
| 290 NOTREACHED(); | 293 NOTREACHED(); |
| 294 return NULL; | |
| 291 } | 295 } |
| 292 backend->RunWithBackend(base::Bind(&CallbackWithSyncableService, callback)); | |
| 293 } | 296 } |
| 294 | 297 |
| 295 void SettingsFrontend::RunWithStorage( | 298 void SettingsFrontend::RunWithStorage( |
| 296 const std::string& extension_id, | 299 const std::string& extension_id, |
| 297 settings_namespace::Namespace settings_namespace, | 300 settings_namespace::Namespace settings_namespace, |
| 298 const StorageCallback& callback) { | 301 const StorageCallback& callback) { |
| 299 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 302 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 300 | 303 |
| 301 const Extension* extension = | 304 const Extension* extension = |
| 302 profile_->GetExtensionService()->GetExtensionById(extension_id, true); | 305 profile_->GetExtensionService()->GetExtensionById(extension_id, true); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 351 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 349 return observers_; | 352 return observers_; |
| 350 } | 353 } |
| 351 | 354 |
| 352 // BackendWrappers | 355 // BackendWrappers |
| 353 | 356 |
| 354 SettingsFrontend::BackendWrappers::BackendWrappers() {} | 357 SettingsFrontend::BackendWrappers::BackendWrappers() {} |
| 355 SettingsFrontend::BackendWrappers::~BackendWrappers() {} | 358 SettingsFrontend::BackendWrappers::~BackendWrappers() {} |
| 356 | 359 |
| 357 } // namespace extensions | 360 } // namespace extensions |
| OLD | NEW |