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

Side by Side Diff: chrome/browser/extensions/app_sync_data.cc

Issue 229553003: Implement syncing of bookmark apps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test Created 6 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/app_sync_data.h" 5 #include "chrome/browser/extensions/app_sync_data.h"
6 6
7 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
7 #include "extensions/common/extension.h" 8 #include "extensions/common/extension.h"
8 #include "sync/api/sync_data.h" 9 #include "sync/api/sync_data.h"
9 #include "sync/protocol/app_specifics.pb.h" 10 #include "sync/protocol/app_specifics.pb.h"
10 #include "sync/protocol/sync.pb.h" 11 #include "sync/protocol/sync.pb.h"
11 12
12 namespace extensions { 13 namespace extensions {
13 14
14 AppSyncData::AppSyncData() {} 15 AppSyncData::AppSyncData() {}
15 16
16 AppSyncData::AppSyncData(const syncer::SyncData& sync_data) { 17 AppSyncData::AppSyncData(const syncer::SyncData& sync_data) {
17 PopulateFromSyncData(sync_data); 18 PopulateFromSyncData(sync_data);
18 } 19 }
19 20
20 AppSyncData::AppSyncData(const syncer::SyncChange& sync_change) { 21 AppSyncData::AppSyncData(const syncer::SyncChange& sync_change) {
21 PopulateFromSyncData(sync_change.sync_data()); 22 PopulateFromSyncData(sync_change.sync_data());
22 extension_sync_data_.set_uninstalled( 23 extension_sync_data_.set_uninstalled(
23 sync_change.change_type() == syncer::SyncChange::ACTION_DELETE); 24 sync_change.change_type() == syncer::SyncChange::ACTION_DELETE);
24 } 25 }
25 26
26 AppSyncData::AppSyncData(const Extension& extension, 27 AppSyncData::AppSyncData(const Extension& extension,
27 bool enabled, 28 bool enabled,
28 bool incognito_enabled, 29 bool incognito_enabled,
29 const syncer::StringOrdinal& app_launch_ordinal, 30 const syncer::StringOrdinal& app_launch_ordinal,
30 const syncer::StringOrdinal& page_ordinal, 31 const syncer::StringOrdinal& page_ordinal,
31 extensions::LaunchType launch_type) 32 extensions::LaunchType launch_type)
32 : extension_sync_data_(extension, enabled, incognito_enabled), 33 : extension_sync_data_(extension, enabled, incognito_enabled),
33 app_launch_ordinal_(app_launch_ordinal), 34 app_launch_ordinal_(app_launch_ordinal),
34 page_ordinal_(page_ordinal), 35 page_ordinal_(page_ordinal),
35 launch_type_(launch_type) { 36 launch_type_(launch_type) {
37 if (extension.from_bookmark()) {
38 bookmark_app_description_ = extension.description();
39 bookmark_app_url_ = AppLaunchInfo::GetLaunchWebURL(&extension).spec();
40 }
36 } 41 }
37 42
38 AppSyncData::~AppSyncData() {} 43 AppSyncData::~AppSyncData() {}
39 44
40 syncer::SyncData AppSyncData::GetSyncData() const { 45 syncer::SyncData AppSyncData::GetSyncData() const {
41 sync_pb::EntitySpecifics specifics; 46 sync_pb::EntitySpecifics specifics;
42 PopulateAppSpecifics(specifics.mutable_app()); 47 PopulateAppSpecifics(specifics.mutable_app());
43 48
44 return syncer::SyncData::CreateLocalData(extension_sync_data_.id(), 49 return syncer::SyncData::CreateLocalData(extension_sync_data_.id(),
45 extension_sync_data_.name(), 50 extension_sync_data_.name(),
(...skipping 16 matching lines...) Expand all
62 sync_pb::AppSpecifics::LaunchType sync_launch_type = 67 sync_pb::AppSpecifics::LaunchType sync_launch_type =
63 static_cast<sync_pb::AppSpecifics::LaunchType>(launch_type_); 68 static_cast<sync_pb::AppSpecifics::LaunchType>(launch_type_);
64 69
65 // The corresponding validation of this value during processing of an 70 // The corresponding validation of this value during processing of an
66 // AppSyncData is in ExtensionSyncService::ProcessAppSyncData. 71 // AppSyncData is in ExtensionSyncService::ProcessAppSyncData.
67 if (launch_type_ >= LAUNCH_TYPE_FIRST && launch_type_ < NUM_LAUNCH_TYPES && 72 if (launch_type_ >= LAUNCH_TYPE_FIRST && launch_type_ < NUM_LAUNCH_TYPES &&
68 sync_pb::AppSpecifics_LaunchType_IsValid(sync_launch_type)) { 73 sync_pb::AppSpecifics_LaunchType_IsValid(sync_launch_type)) {
69 specifics->set_launch_type(sync_launch_type); 74 specifics->set_launch_type(sync_launch_type);
70 } 75 }
71 76
77 if (!bookmark_app_url_.empty())
78 specifics->set_bookmark_app_url(bookmark_app_url_);
79
80 if (!bookmark_app_description_.empty())
81 specifics->set_bookmark_app_description(bookmark_app_description_);
82
72 extension_sync_data_.PopulateExtensionSpecifics( 83 extension_sync_data_.PopulateExtensionSpecifics(
73 specifics->mutable_extension()); 84 specifics->mutable_extension());
74 } 85 }
75 86
76 void AppSyncData::PopulateFromAppSpecifics( 87 void AppSyncData::PopulateFromAppSpecifics(
77 const sync_pb::AppSpecifics& specifics) { 88 const sync_pb::AppSpecifics& specifics) {
78 extension_sync_data_.PopulateFromExtensionSpecifics(specifics.extension()); 89 extension_sync_data_.PopulateFromExtensionSpecifics(specifics.extension());
79 90
80 app_launch_ordinal_ = syncer::StringOrdinal(specifics.app_launch_ordinal()); 91 app_launch_ordinal_ = syncer::StringOrdinal(specifics.app_launch_ordinal());
81 page_ordinal_ = syncer::StringOrdinal(specifics.page_ordinal()); 92 page_ordinal_ = syncer::StringOrdinal(specifics.page_ordinal());
82 93
83 launch_type_ = specifics.has_launch_type() 94 launch_type_ = specifics.has_launch_type()
84 ? static_cast<extensions::LaunchType>(specifics.launch_type()) 95 ? static_cast<extensions::LaunchType>(specifics.launch_type())
85 : LAUNCH_TYPE_INVALID; 96 : LAUNCH_TYPE_INVALID;
97
98 bookmark_app_url_ = specifics.bookmark_app_url();
99 bookmark_app_description_ = specifics.bookmark_app_description();
86 } 100 }
87 101
88 void AppSyncData::PopulateFromSyncData(const syncer::SyncData& sync_data) { 102 void AppSyncData::PopulateFromSyncData(const syncer::SyncData& sync_data) {
89 PopulateFromAppSpecifics(sync_data.GetSpecifics().app()); 103 PopulateFromAppSpecifics(sync_data.GetSpecifics().app());
90 } 104 }
91 105
92 } // namespace extensions 106 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/app_sync_data.h ('k') | chrome/browser/extensions/bookmark_app_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698