Chromium Code Reviews| Index: chrome/browser/extensions/api/storage/setting_sync_data.h |
| diff --git a/chrome/browser/extensions/api/storage/setting_sync_data.h b/chrome/browser/extensions/api/storage/setting_sync_data.h |
| index 8fc0f91870307b233dd98c943eb1196e5ca5f21c..0c09f1d1288b582605418b35dd7a82c56171b9e9 100644 |
| --- a/chrome/browser/extensions/api/storage/setting_sync_data.h |
| +++ b/chrome/browser/extensions/api/storage/setting_sync_data.h |
| @@ -5,8 +5,11 @@ |
| #ifndef CHROME_BROWSER_EXTENSIONS_API_STORAGE_SETTING_SYNC_DATA_H_ |
| #define CHROME_BROWSER_EXTENSIONS_API_STORAGE_SETTING_SYNC_DATA_H_ |
| -#include "base/memory/ref_counted.h" |
| +#include <string> |
| + |
| +#include "base/macros.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/memory/scoped_vector.h" |
| #include "base/values.h" |
| #include "sync/api/sync_change.h" |
| @@ -40,51 +43,37 @@ class SettingSyncData { |
| ~SettingSyncData(); |
| // Returns the type of the sync change; may be ACTION_INVALID. |
|
Devlin
2015/05/19 15:41:55
nit: We almost never document simple accessors. M
not at google - send to devlin
2015/05/19 19:43:58
This comment serves a purpose.
|
| - syncer::SyncChange::SyncChangeType change_type() const; |
| + syncer::SyncChange::SyncChangeType change_type() const { |
| + return change_type_; |
| + } |
| // Returns the extension id the setting is for. |
|
not at google - send to devlin
2015/05/19 19:43:58
this does not
|
| - const std::string& extension_id() const; |
| + const std::string& extension_id() const { return extension_id_; } |
| // Returns the settings key. |
|
not at google - send to devlin
2015/05/19 19:43:58
nor does this
|
| - const std::string& key() const; |
| - |
| - // Returns the value of the setting. |
| - const base::Value& value() const; |
| - |
| - private: |
| - // Ref-counted container for the data. |
| - // TODO(kalman): Use browser_sync::Immutable<Internal>. |
| - class Internal : public base::RefCountedThreadSafe<Internal> { |
| - public: |
| - Internal( |
| - syncer::SyncChange::SyncChangeType change_type, |
| - const std::string& extension_id, |
| - const std::string& key, |
| - scoped_ptr<base::Value> value); |
| + const std::string& key() const { return key_; } |
| - syncer::SyncChange::SyncChangeType change_type_; |
| - std::string extension_id_; |
| - std::string key_; |
| - scoped_ptr<base::Value> value_; |
| + // Returns the value of the setting. Cannot be called if PassValue() has been |
| + // called. |
|
not at google - send to devlin
2015/05/19 19:43:57
this does.
|
| + const base::Value& value() const { return *value_; } |
| - private: |
| - friend class base::RefCountedThreadSafe<Internal>; |
| - ~Internal(); |
| - }; |
| + // Releases ownership of the value to the caller. |
|
not at google - send to devlin
2015/05/19 19:43:58
I should improve this comment because it's importa
|
| + scoped_ptr<base::Value> PassValue(); |
| - // Initializes internal_ from sync data for an extension or app setting. |
| - void Init(syncer::SyncChange::SyncChangeType change_type, |
| - const syncer::SyncData& sync_data); |
| + private: |
| + // Populates the extension ID, key, and value from |sync_data|. This will be |
| + // either an extension or app settings data type. |
| + void Init(const syncer::SyncData& sync_data); |
| - // Initializes internal_ from extension specifics. |
| - void InitFromExtensionSettingSpecifics( |
| - syncer::SyncChange::SyncChangeType change_type, |
| - const sync_pb::ExtensionSettingSpecifics& specifics); |
| + syncer::SyncChange::SyncChangeType change_type_; |
| + std::string extension_id_; |
| + std::string key_; |
| + scoped_ptr<base::Value> value_; |
| - scoped_refptr<Internal> internal_; |
| + DISALLOW_COPY_AND_ASSIGN(SettingSyncData); |
|
Devlin
2015/05/15 23:58:18
Woo!
|
| }; |
| -typedef std::vector<SettingSyncData> SettingSyncDataList; |
| +typedef ScopedVector<SettingSyncData> SettingSyncDataList; |
| } // namespace extensions |