Index: chrome/browser/extensions/settings/setting_sync_data.h |
diff --git a/chrome/browser/extensions/settings/setting_sync_data.h b/chrome/browser/extensions/settings/setting_sync_data.h |
index 87d04936b7c8952b74962a8455da81cf9335d1d0..69e0ccb58b93d88f516dfe6c06667e6ccfde65dd 100644 |
--- a/chrome/browser/extensions/settings/setting_sync_data.h |
+++ b/chrome/browser/extensions/settings/setting_sync_data.h |
@@ -12,17 +12,20 @@ |
#include "chrome/browser/sync/api/sync_change.h" |
class SyncData; |
+namespace sync_pb { |
+class ExtensionSettingSpecifics; |
+} |
namespace extensions { |
-// Container for data interpreted from sync data/changes. Safe and efficient |
-// to copy. |
+// Container for data interpreted from sync data/changes for an extension or |
+// app setting. Safe and efficient to copy. |
class SettingSyncData { |
public: |
// Creates from a sync change. |
explicit SettingSyncData(const SyncChange& sync_change); |
- // Creates from sync data. change_type will be ACTION_INVALID. |
+ // Creates from sync data. |change_type| will be ACTION_INVALID. |
explicit SettingSyncData(const SyncData& sync_data); |
// Creates explicitly. |
@@ -30,8 +33,7 @@ class SettingSyncData { |
SyncChange::SyncChangeType change_type, |
const std::string& extension_id, |
const std::string& key, |
- // May NOT be NULL. Ownership taken. |
- Value* value); |
+ scoped_ptr<Value> value); |
~SettingSyncData(); |
@@ -52,11 +54,11 @@ class SettingSyncData { |
// TODO(kalman): Use browser_sync::Immutable<Internal>. |
class Internal : public base::RefCountedThreadSafe<Internal> { |
public: |
- explicit Internal( |
+ Internal( |
SyncChange::SyncChangeType change_type, |
const std::string& extension_id, |
const std::string& key, |
- Value* value); |
+ scoped_ptr<Value> value); |
SyncChange::SyncChangeType change_type_; |
std::string extension_id_; |
@@ -68,9 +70,14 @@ class SettingSyncData { |
~Internal(); |
}; |
- // Initializes internal_ from sync data. |
+ // Initializes internal_ from sync data for an extension or app setting. |
void Init(SyncChange::SyncChangeType change_type, const SyncData& sync_data); |
+ // Initializes internal_ from extension specifics. |
+ void InitFromExtensionSettingSpecifics( |
+ SyncChange::SyncChangeType change_type, |
+ const sync_pb::ExtensionSettingSpecifics& specifics); |
+ |
scoped_refptr<Internal> internal_; |
}; |