| Index: chrome/browser/extensions/app_sync_data.cc
|
| diff --git a/chrome/browser/extensions/app_sync_data.cc b/chrome/browser/extensions/app_sync_data.cc
|
| index 6548ef5ca05e474d978b11dfac06bf9185279792..24d10cfae5ea6b934796fbf0acd50f4ace339835 100644
|
| --- a/chrome/browser/extensions/app_sync_data.cc
|
| +++ b/chrome/browser/extensions/app_sync_data.cc
|
| @@ -15,16 +15,6 @@ namespace extensions {
|
|
|
| AppSyncData::AppSyncData() {}
|
|
|
| -AppSyncData::AppSyncData(const syncer::SyncData& sync_data) {
|
| - PopulateFromSyncData(sync_data);
|
| -}
|
| -
|
| -AppSyncData::AppSyncData(const syncer::SyncChange& sync_change) {
|
| - PopulateFromSyncData(sync_change.sync_data());
|
| - extension_sync_data_.set_uninstalled(
|
| - sync_change.change_type() == syncer::SyncChange::ACTION_DELETE);
|
| -}
|
| -
|
| AppSyncData::AppSyncData(const Extension& extension,
|
| bool enabled,
|
| bool incognito_enabled,
|
| @@ -50,6 +40,27 @@ AppSyncData::AppSyncData(const Extension& extension,
|
|
|
| AppSyncData::~AppSyncData() {}
|
|
|
| +// static
|
| +scoped_ptr<AppSyncData> AppSyncData::CreateFromSyncData(
|
| + const syncer::SyncData& sync_data) {
|
| + scoped_ptr<AppSyncData> data(new AppSyncData);
|
| + if (data->PopulateFromSyncData(sync_data))
|
| + return data.Pass();
|
| + return NULL;
|
| +}
|
| +
|
| +// static
|
| +scoped_ptr<AppSyncData> AppSyncData::CreateFromSyncChange(
|
| + const syncer::SyncChange& sync_change) {
|
| + scoped_ptr<AppSyncData> data(CreateFromSyncData(sync_change.sync_data()));
|
| + if (!data.get())
|
| + return NULL;
|
| +
|
| + data->extension_sync_data_.set_uninstalled(sync_change.change_type() ==
|
| + syncer::SyncChange::ACTION_DELETE);
|
| + return data.Pass();
|
| +}
|
| +
|
| syncer::SyncData AppSyncData::GetSyncData() const {
|
| sync_pb::EntitySpecifics specifics;
|
| PopulateAppSpecifics(specifics.mutable_app());
|
| @@ -95,9 +106,11 @@ void AppSyncData::PopulateAppSpecifics(sync_pb::AppSpecifics* specifics) const {
|
| specifics->mutable_extension());
|
| }
|
|
|
| -void AppSyncData::PopulateFromAppSpecifics(
|
| +bool AppSyncData::PopulateFromAppSpecifics(
|
| const sync_pb::AppSpecifics& specifics) {
|
| - extension_sync_data_.PopulateFromExtensionSpecifics(specifics.extension());
|
| + if (!extension_sync_data_.PopulateFromExtensionSpecifics(
|
| + specifics.extension()))
|
| + return false;
|
|
|
| app_launch_ordinal_ = syncer::StringOrdinal(specifics.app_launch_ordinal());
|
| page_ordinal_ = syncer::StringOrdinal(specifics.page_ordinal());
|
| @@ -109,10 +122,11 @@ void AppSyncData::PopulateFromAppSpecifics(
|
| bookmark_app_url_ = specifics.bookmark_app_url();
|
| bookmark_app_description_ = specifics.bookmark_app_description();
|
| bookmark_app_icon_color_ = specifics.bookmark_app_icon_color();
|
| + return true;
|
| }
|
|
|
| -void AppSyncData::PopulateFromSyncData(const syncer::SyncData& sync_data) {
|
| - PopulateFromAppSpecifics(sync_data.GetSpecifics().app());
|
| +bool AppSyncData::PopulateFromSyncData(const syncer::SyncData& sync_data) {
|
| + return PopulateFromAppSpecifics(sync_data.GetSpecifics().app());
|
| }
|
|
|
| } // namespace extensions
|
|
|