| Index: chrome/browser/extensions/syncable_extension_settings_storage.cc
|
| diff --git a/chrome/browser/extensions/syncable_extension_settings_storage.cc b/chrome/browser/extensions/syncable_extension_settings_storage.cc
|
| index 8ec5d178941d6d24a1bd4d8bcc4cdbdc46492e49..2266ea19dc1a2bc6bd19b7edda286d779355cab6 100644
|
| --- a/chrome/browser/extensions/syncable_extension_settings_storage.cc
|
| +++ b/chrome/browser/extensions/syncable_extension_settings_storage.cc
|
| @@ -18,6 +18,7 @@ SyncableExtensionSettingsStorage::SyncableExtensionSettingsStorage(
|
| : observers_(observers),
|
| extension_id_(extension_id),
|
| delegate_(delegate),
|
| + sync_type_(syncable::UNSPECIFIED),
|
| sync_processor_(NULL) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| }
|
| @@ -110,10 +111,17 @@ ExtensionSettingsStorage::Result SyncableExtensionSettingsStorage::Clear() {
|
| // Sync-related methods.
|
|
|
| SyncError SyncableExtensionSettingsStorage::StartSyncing(
|
| - const DictionaryValue& sync_state, SyncChangeProcessor* sync_processor) {
|
| + syncable::ModelType type,
|
| + const DictionaryValue& sync_state,
|
| + SyncChangeProcessor* sync_processor) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| + DCHECK(type == syncable::EXTENSION_SETTINGS ||
|
| + type == syncable::APP_SETTINGS);
|
| + DCHECK_EQ(sync_type_, syncable::UNSPECIFIED);
|
| DCHECK(!sync_processor_);
|
| DCHECK(synced_keys_.empty());
|
| +
|
| + sync_type_ = type;
|
| sync_processor_ = sync_processor;
|
|
|
| Result maybe_settings = delegate_->Get();
|
| @@ -121,7 +129,7 @@ SyncError SyncableExtensionSettingsStorage::StartSyncing(
|
| return SyncError(
|
| FROM_HERE,
|
| std::string("Failed to get settings: ") + maybe_settings.GetError(),
|
| - syncable::EXTENSION_SETTINGS);
|
| + type);
|
| }
|
|
|
| const DictionaryValue* settings = maybe_settings.GetSettings();
|
| @@ -218,7 +226,11 @@ SyncError SyncableExtensionSettingsStorage::OverwriteLocalSettingsWithSync(
|
|
|
| void SyncableExtensionSettingsStorage::StopSyncing() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| + DCHECK(sync_type_ == syncable::EXTENSION_SETTINGS ||
|
| + sync_type_ == syncable::APP_SETTINGS);
|
| DCHECK(sync_processor_);
|
| +
|
| + sync_type_ = syncable::UNSPECIFIED;
|
| sync_processor_ = NULL;
|
| synced_keys_.clear();
|
| }
|
| @@ -247,7 +259,7 @@ std::vector<SyncError> SyncableExtensionSettingsStorage::ProcessSyncChanges(
|
| FROM_HERE,
|
| std::string("Error getting current sync state for ") +
|
| extension_id_ + "/" + key + ": " + maybe_settings.GetError(),
|
| - syncable::EXTENSION_SETTINGS));
|
| + sync_type_));
|
| continue;
|
| }
|
| const DictionaryValue* settings = maybe_settings.GetSettings();
|
| @@ -394,7 +406,7 @@ SyncError SyncableExtensionSettingsStorage::OnSyncAdd(
|
| FROM_HERE,
|
| std::string("Error pushing sync add to local settings: ") +
|
| result.GetError(),
|
| - syncable::EXTENSION_SETTINGS);
|
| + sync_type_);
|
| }
|
| changes->AppendChange(key, NULL, new_value);
|
| return SyncError();
|
| @@ -413,7 +425,7 @@ SyncError SyncableExtensionSettingsStorage::OnSyncUpdate(
|
| FROM_HERE,
|
| std::string("Error pushing sync update to local settings: ") +
|
| result.GetError(),
|
| - syncable::EXTENSION_SETTINGS);
|
| + sync_type_);
|
| }
|
| changes->AppendChange(key, old_value, new_value);
|
| return SyncError();
|
| @@ -431,7 +443,7 @@ SyncError SyncableExtensionSettingsStorage::OnSyncDelete(
|
| FROM_HERE,
|
| std::string("Error pushing sync remove to local settings: ") +
|
| result.GetError(),
|
| - syncable::EXTENSION_SETTINGS);
|
| + sync_type_);
|
| }
|
| changes->AppendChange(key, old_value, NULL);
|
| return SyncError();
|
|
|