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(); |
} |