Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: chrome/browser/extensions/syncable_extension_settings_storage.h

Issue 8177022: Add onChanged events to the extension settings API, both from sync and between (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: changes return string Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/syncable_extension_settings_storage.h
diff --git a/chrome/browser/extensions/syncable_extension_settings_storage.h b/chrome/browser/extensions/syncable_extension_settings_storage.h
index 39f4607001efe39c275d36f9630e5b64bc7277dc..5544b634e02830f8f4c1f3a8919cdbe4ff794035 100644
--- a/chrome/browser/extensions/syncable_extension_settings_storage.h
+++ b/chrome/browser/extensions/syncable_extension_settings_storage.h
@@ -8,7 +8,9 @@
#include "base/compiler_specific.h"
#include "base/memory/weak_ptr.h"
+#include "base/observer_list_threadsafe.h"
#include "base/values.h"
+#include "chrome/browser/extensions/extension_settings_observer.h"
#include "chrome/browser/extensions/extension_settings_storage.h"
#include "chrome/browser/extensions/extension_setting_sync_data.h"
#include "chrome/browser/sync/api/syncable_service.h"
@@ -18,7 +20,9 @@
class SyncableExtensionSettingsStorage : public ExtensionSettingsStorage {
public:
explicit SyncableExtensionSettingsStorage(
- std::string extension_id,
+ const scoped_refptr<ObserverListThreadSafe<ExtensionSettingsObserver> >&
+ observers,
+ const std::string& extension_id,
// Ownership taken.
ExtensionSettingsStorage* delegate);
@@ -62,6 +66,25 @@ class SyncableExtensionSettingsStorage : public ExtensionSettingsStorage {
SyncError OverwriteLocalSettingsWithSync(
const DictionaryValue& sync_state, const DictionaryValue& settings);
+ // Called when an Add/Update/Remove comes from sync.
+ SyncError OnSyncAdd(
+ const std::string& key,
+ const Value& new_value,
+ ExtensionSettingChanges::Builder* changes);
+ SyncError OnSyncUpdate(
+ const std::string& key,
+ const Value& old_value,
+ const Value& new_value,
+ ExtensionSettingChanges::Builder* changes);
+ SyncError OnSyncDelete(
+ const std::string& key,
+ const Value& old_value,
+ ExtensionSettingChanges::Builder* changes);
+
+ // List of observers to settings changes.
+ const scoped_refptr<ObserverListThreadSafe<ExtensionSettingsObserver> >
+ observers_;
+
// Id of the extension these settings are for.
std::string const extension_id_;
@@ -72,7 +95,8 @@ class SyncableExtensionSettingsStorage : public ExtensionSettingsStorage {
// StartSyncing and StopSyncing).
SyncChangeProcessor* sync_processor_;
- // Keys of the settings that are currently being synced.
+ // Keys of the settings that are currently being synced. Only used to decide
+ // whether an ACTION_ADD or ACTION_UPDATE should be sent to sync on a Set().
std::set<std::string> synced_keys_;
DISALLOW_COPY_AND_ASSIGN(SyncableExtensionSettingsStorage);

Powered by Google App Engine
This is Rietveld 408576698