Index: chrome/browser/extensions/extension_sync_data.cc |
diff --git a/chrome/browser/extensions/extension_sync_data.cc b/chrome/browser/extensions/extension_sync_data.cc |
index 2f9a30d1fa4addf0597ec8a1e9ffa7a4dfa1cfa3..39b836fdf97c353dbaa2787671a22a66f1812633 100644 |
--- a/chrome/browser/extensions/extension_sync_data.cc |
+++ b/chrome/browser/extensions/extension_sync_data.cc |
@@ -13,14 +13,18 @@ ExtensionSyncData::ExtensionSyncData() |
: uninstalled_(false), |
enabled_(false), |
incognito_enabled_(false), |
- type_(Extension::SYNC_TYPE_NONE) { |
+ type_(Extension::SYNC_TYPE_NONE), |
+ app_launch_index_(0), |
+ page_index_(0) { |
} |
ExtensionSyncData::ExtensionSyncData(const SyncData& sync_data) |
: uninstalled_(false), |
enabled_(false), |
incognito_enabled_(false), |
- type_(Extension::SYNC_TYPE_NONE) { |
+ type_(Extension::SYNC_TYPE_NONE), |
+ app_launch_index_(0), |
+ page_index_(0) { |
PopulateFromSyncData(sync_data); |
} |
@@ -31,7 +35,9 @@ ExtensionSyncData::ExtensionSyncData(const SyncChange& sync_change) |
ExtensionSyncData::ExtensionSyncData(const Extension& extension, |
bool enabled, |
- bool incognito_enabled) |
+ bool incognito_enabled, |
+ int32 app_launch_index, |
+ int32 page_index) |
: id_(extension.id()), |
uninstalled_(false), |
enabled_(enabled), |
@@ -39,12 +45,14 @@ ExtensionSyncData::ExtensionSyncData(const Extension& extension, |
type_(extension.GetSyncType()), |
version_(*extension.version()), |
update_url_(extension.update_url()), |
- name_(extension.name()) { |
+ name_(extension.name()), |
+ app_launch_index_(app_launch_index), |
+ page_index_(page_index) { |
} |
ExtensionSyncData::~ExtensionSyncData() {} |
-void ExtensionSyncData::PopulateSyncSpecifics( |
+void ExtensionSyncData::PopulateExtensionSyncSpecifics( |
sync_pb::ExtensionSpecifics* specifics) const { |
DCHECK(Extension::IdIsValid(id_)); |
specifics->set_id(id_); |
@@ -55,24 +63,29 @@ void ExtensionSyncData::PopulateSyncSpecifics( |
specifics->set_name(name_); |
} |
+void ExtensionSyncData::PopulateAppSyncSpecifics( |
+ sync_pb::AppSpecifics* specifics) const { |
+ PopulateExtensionSyncSpecifics(specifics->mutable_extension()); |
+ |
+ specifics->set_app_launch_index(app_launch_index_); |
+ specifics->set_page_index(page_index_); |
+} |
+ |
SyncData ExtensionSyncData::GetSyncData() const { |
sync_pb::EntitySpecifics specifics; |
- sync_pb::ExtensionSpecifics* extension_specifics = NULL; |
switch (type_) { |
case Extension::SYNC_TYPE_EXTENSION: |
- extension_specifics = specifics.MutableExtension(sync_pb::extension); |
+ PopulateExtensionSyncSpecifics(specifics.MutableExtension( |
+ sync_pb::extension)); |
break; |
case Extension::SYNC_TYPE_APP: |
- extension_specifics = |
- specifics.MutableExtension(sync_pb::app)->mutable_extension(); |
+ PopulateAppSyncSpecifics(specifics.MutableExtension(sync_pb::app)); |
break; |
default: |
LOG(FATAL) << "Attempt to get non-syncable data."; |
} |
- PopulateSyncSpecifics(extension_specifics); |
- |
return SyncData::CreateLocalData(id_, name_, specifics); |
} |
@@ -105,19 +118,26 @@ void ExtensionSyncData::PopulateFromExtensionSpecifics( |
name_ = specifics.name(); |
} |
+void ExtensionSyncData::PopulateFromAppSpecifics( |
+ const sync_pb::AppSpecifics& specifics) { |
+ PopulateFromExtensionSpecifics(specifics.extension()); |
+ |
+ app_launch_index_ = specifics.app_launch_index(); |
+ page_index_ = specifics.page_index(); |
+} |
+ |
void ExtensionSyncData::PopulateFromSyncData(const SyncData& sync_data) { |
const sync_pb::EntitySpecifics& entity_specifics = sync_data.GetSpecifics(); |
sync_pb::ExtensionSpecifics extension_expecifics; |
if (entity_specifics.HasExtension(sync_pb::extension)) { |
- extension_expecifics = entity_specifics.GetExtension(sync_pb::extension); |
+ PopulateFromExtensionSpecifics( |
+ entity_specifics.GetExtension(sync_pb::extension)); |
type_ = Extension::SYNC_TYPE_EXTENSION; |
} else if (entity_specifics.HasExtension(sync_pb::app)) { |
- extension_expecifics = |
- entity_specifics.GetExtension(sync_pb::app).extension(); |
+ PopulateFromAppSpecifics( |
+ entity_specifics.GetExtension(sync_pb::app)); |
type_ = Extension::SYNC_TYPE_APP; |
} else { |
- LOG(FATAL) << "Attempt to sync bad EntitySpecifics."; |
+ ; LOG(FATAL) << "Attempt to sync bad EntitySpecifics."; |
} |
- PopulateFromExtensionSpecifics(extension_expecifics); |
} |
- |