| 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 ba3b232f7515eadc007106b2c4af56b89cc40f14..d49eb4e9eb0e6b14f0eb089485733a28416101b1 100644
|
| --- a/chrome/browser/extensions/app_sync_data.cc
|
| +++ b/chrome/browser/extensions/app_sync_data.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "chrome/common/extensions/manifest_handlers/app_icon_color_info.h"
|
| #include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
|
| +#include "chrome/common/extensions/manifest_handlers/linked_app_icons.h"
|
| #include "extensions/common/extension.h"
|
| #include "sync/api/sync_data.h"
|
| #include "sync/protocol/app_specifics.pb.h"
|
| @@ -13,6 +14,12 @@
|
|
|
| namespace extensions {
|
|
|
| +AppSyncData::LinkedAppIconInfo::LinkedAppIconInfo() {
|
| +}
|
| +
|
| +AppSyncData::LinkedAppIconInfo::~LinkedAppIconInfo() {
|
| +}
|
| +
|
| AppSyncData::AppSyncData() {}
|
|
|
| AppSyncData::AppSyncData(const Extension& extension,
|
| @@ -35,6 +42,14 @@ AppSyncData::AppSyncData(const Extension& extension,
|
| bookmark_app_description_ = extension.description();
|
| bookmark_app_url_ = AppLaunchInfo::GetLaunchWebURL(&extension).spec();
|
| bookmark_app_icon_color_ = AppIconColorInfo::GetIconColorString(&extension);
|
| + extensions::LinkedAppIcons icons =
|
| + LinkedAppIcons::GetLinkedAppIcons(&extension);
|
| + for (const auto& icon : icons.icons) {
|
| + LinkedAppIconInfo linked_icon;
|
| + linked_icon.url = icon.url;
|
| + linked_icon.size = icon.size;
|
| + linked_icons_.push_back(linked_icon);
|
| + }
|
| }
|
| }
|
|
|
| @@ -102,6 +117,13 @@ void AppSyncData::PopulateAppSpecifics(sync_pb::AppSpecifics* specifics) const {
|
| if (!bookmark_app_icon_color_.empty())
|
| specifics->set_bookmark_app_icon_color(bookmark_app_icon_color_);
|
|
|
| + for (const auto& linked_icon : linked_icons_) {
|
| + sync_pb::LinkedAppIconInfo* linked_app_icon_info =
|
| + specifics->add_linked_app_icons();
|
| + linked_app_icon_info->set_url(linked_icon.url.spec());
|
| + linked_app_icon_info->set_size(linked_icon.size);
|
| + }
|
| +
|
| extension_sync_data_.PopulateExtensionSpecifics(
|
| specifics->mutable_extension());
|
| }
|
| @@ -122,6 +144,18 @@ bool 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();
|
| +
|
| + for (int i = 0; i < specifics.linked_app_icons_size(); ++i) {
|
| + const sync_pb::LinkedAppIconInfo& linked_app_icon_info =
|
| + specifics.linked_app_icons(i);
|
| + if (linked_app_icon_info.has_url() && linked_app_icon_info.has_size()) {
|
| + LinkedAppIconInfo linked_icon;
|
| + linked_icon.url = GURL(linked_app_icon_info.url());
|
| + linked_icon.size = linked_app_icon_info.size();
|
| + linked_icons_.push_back(linked_icon);
|
| + }
|
| + }
|
| +
|
| return true;
|
| }
|
|
|
|
|