Chromium Code Reviews| Index: chrome/browser/extensions/api/storage/settings_backend.cc |
| diff --git a/chrome/browser/extensions/api/storage/settings_backend.cc b/chrome/browser/extensions/api/storage/settings_backend.cc |
| index 369446ada8c67f9de47d0d3e3b074990e1832bb8..ba71375edc6af1ef0d882f9c1f54148260cbec89 100644 |
| --- a/chrome/browser/extensions/api/storage/settings_backend.cc |
| +++ b/chrome/browser/extensions/api/storage/settings_backend.cc |
| @@ -19,14 +19,17 @@ namespace extensions { |
| SettingsBackend::SettingsBackend( |
| const scoped_refptr<SettingsStorageFactory>& storage_factory, |
| const base::FilePath& base_path, |
| + syncer::ModelType sync_type, |
| const SettingsStorageQuotaEnforcer::Limits& quota, |
| const scoped_refptr<SettingsObserverList>& observers) |
| : storage_factory_(storage_factory), |
| base_path_(base_path), |
| quota_(quota), |
| observers_(observers), |
| - sync_type_(syncer::UNSPECIFIED) { |
| + sync_type_(sync_type) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| + DCHECK(sync_type_ == syncer::EXTENSION_SETTINGS || |
| + sync_type_ == syncer::APP_SETTINGS); |
| } |
| SettingsBackend::~SettingsBackend() { |
| @@ -70,6 +73,8 @@ SyncableSettingsStorage* SettingsBackend::GetOrCreateStorageWithSyncData( |
| CreateSettingsSyncProcessor(extension_id).Pass()); |
| if (error.IsSet()) |
| syncable_storage.get()->StopSyncing(); |
| + } else { |
| + flare_.Run(sync_type_); |
|
not at google - send to devlin
2013/05/20 18:00:04
what does this actually do? will it call MergeData
tim (not reviewing)
2013/05/20 18:21:15
Done.
|
| } |
| return syncable_storage.get(); |
| @@ -162,20 +167,22 @@ syncer::SyncDataList SettingsBackend::GetAllSyncData( |
| return all_sync_data; |
| } |
| +void SettingsBackend::InjectStartSyncFlare( |
| + const syncer::SyncableService::StartSyncFlare& flare) { |
| + flare_ = flare; |
| +} |
| + |
| syncer::SyncMergeResult SettingsBackend::MergeDataAndStartSyncing( |
| syncer::ModelType type, |
| const syncer::SyncDataList& initial_sync_data, |
| scoped_ptr<syncer::SyncChangeProcessor> sync_processor, |
| scoped_ptr<syncer::SyncErrorFactory> sync_error_factory) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| - DCHECK(type == syncer::EXTENSION_SETTINGS || |
| - type == syncer::APP_SETTINGS); |
| - DCHECK_EQ(sync_type_, syncer::UNSPECIFIED); |
| + DCHECK_EQ(sync_type_, type); |
| DCHECK(!sync_processor_.get()); |
| DCHECK(sync_processor.get()); |
| DCHECK(sync_error_factory.get()); |
| - sync_type_ = type; |
| sync_processor_ = sync_processor.Pass(); |
| sync_error_factory_ = sync_error_factory.Pass(); |
| @@ -260,7 +267,7 @@ void SettingsBackend::StopSyncing(syncer::ModelType type) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| DCHECK(type == syncer::EXTENSION_SETTINGS || |
| type == syncer::APP_SETTINGS); |
| - DCHECK(sync_type_ == type || sync_type_ == syncer::UNSPECIFIED); |
| + DCHECK_EQ(sync_type_, type); |
| for (StorageObjMap::iterator it = storage_objs_.begin(); |
| it != storage_objs_.end(); ++it) { |
| @@ -269,7 +276,6 @@ void SettingsBackend::StopSyncing(syncer::ModelType type) { |
| it->second->StopSyncing(); |
| } |
| - sync_type_ = syncer::UNSPECIFIED; |
| sync_processor_.reset(); |
| sync_error_factory_.reset(); |
| } |