| Index: chrome/browser/extensions/extension_settings_backend.cc
|
| diff --git a/chrome/browser/extensions/extension_settings_backend.cc b/chrome/browser/extensions/extension_settings_backend.cc
|
| index ef97825bf4ffb48c0066bc2947cedc474926f083..56bd944b2bf0f6c8be1dc8b8172cb5472a64ae5f 100644
|
| --- a/chrome/browser/extensions/extension_settings_backend.cc
|
| +++ b/chrome/browser/extensions/extension_settings_backend.cc
|
| @@ -36,8 +36,12 @@ const size_t kMaxSettingKeys = 512;
|
|
|
| } // namespace
|
|
|
| -ExtensionSettingsBackend::ExtensionSettingsBackend(const FilePath& base_path)
|
| +ExtensionSettingsBackend::ExtensionSettingsBackend(
|
| + const FilePath& base_path,
|
| + const scoped_refptr<ObserverListThreadSafe<ExtensionSettingsObserver> >&
|
| + observers)
|
| : base_path_(base_path),
|
| + observers_(observers),
|
| sync_processor_(NULL) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| }
|
| @@ -83,7 +87,10 @@ ExtensionSettingsBackend::GetOrCreateStorageWithSyncData(
|
|
|
| syncable_storage =
|
| linked_ptr<SyncableExtensionSettingsStorage>(
|
| - new SyncableExtensionSettingsStorage(extension_id, storage));
|
| + new SyncableExtensionSettingsStorage(
|
| + observers_,
|
| + extension_id,
|
| + storage));
|
| if (sync_processor_) {
|
| // TODO(kalman): do something if StartSyncing fails.
|
| ignore_result(syncable_storage->StartSyncing(sync_data, sync_processor_));
|
| @@ -108,6 +115,17 @@ void ExtensionSettingsBackend::DeleteExtensionData(
|
| storage_objs_.erase(maybe_storage);
|
| }
|
|
|
| +void ExtensionSettingsBackend::TriggerOnSettingsChanged(
|
| + Profile* profile,
|
| + const std::string& extension_id,
|
| + const ExtensionSettingChanges& changes) const {
|
| + observers_->Notify(
|
| + &ExtensionSettingsObserver::OnSettingsChanged,
|
| + profile,
|
| + extension_id,
|
| + changes);
|
| +}
|
| +
|
| std::set<std::string> ExtensionSettingsBackend::GetKnownExtensionIDs() const {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| std::set<std::string> result;
|
| @@ -161,7 +179,7 @@ SyncDataList ExtensionSettingsBackend::GetAllSyncData(
|
| continue;
|
| }
|
|
|
| - DictionaryValue* settings = maybe_settings.GetSettings();
|
| + const DictionaryValue* settings = maybe_settings.GetSettings();
|
| for (DictionaryValue::key_iterator key_it = settings->begin_keys();
|
| key_it != settings->end_keys(); ++key_it) {
|
| Value *value = NULL;
|
|
|