| Index: chrome/browser/sessions/session_types.cc
|
| diff --git a/chrome/browser/sessions/session_types.cc b/chrome/browser/sessions/session_types.cc
|
| index c31ddf5b4d449ae70799f8233d37a6eddec9758e..79908d7b6de8f98597a2b860cd3d3ccbec2f17ca 100644
|
| --- a/chrome/browser/sessions/session_types.cc
|
| +++ b/chrome/browser/sessions/session_types.cc
|
| @@ -54,27 +54,27 @@ TabNavigation TabNavigation::FromNavigationEntry(
|
|
|
| TabNavigation TabNavigation::FromSyncData(
|
| int index,
|
| - const sync_pb::TabNavigation& specifics) {
|
| + const sync_pb::TabNavigation& sync_data) {
|
| TabNavigation navigation;
|
| navigation.index_ = index;
|
| - if (specifics.has_unique_id()) {
|
| - navigation.unique_id_ = specifics.unique_id();
|
| + if (sync_data.has_unique_id()) {
|
| + navigation.unique_id_ = sync_data.unique_id();
|
| }
|
| - if (specifics.has_referrer()) {
|
| + if (sync_data.has_referrer()) {
|
| navigation.referrer_ =
|
| - content::Referrer(GURL(specifics.referrer()),
|
| + content::Referrer(GURL(sync_data.referrer()),
|
| WebKit::WebReferrerPolicyDefault);
|
| }
|
| - if (specifics.has_virtual_url())
|
| - navigation.virtual_url_ = GURL(specifics.virtual_url());
|
| - if (specifics.has_title())
|
| - navigation.title_ = UTF8ToUTF16(specifics.title());
|
| - if (specifics.has_state())
|
| - navigation.content_state_ = specifics.state();
|
| + if (sync_data.has_virtual_url())
|
| + navigation.virtual_url_ = GURL(sync_data.virtual_url());
|
| + if (sync_data.has_title())
|
| + navigation.title_ = UTF8ToUTF16(sync_data.title());
|
| + if (sync_data.has_state())
|
| + navigation.content_state_ = sync_data.state();
|
| navigation.transition_type_ = content::PAGE_TRANSITION_LINK;
|
| - if (specifics.has_page_transition() ||
|
| - specifics.has_navigation_qualifier()) {
|
| - switch (specifics.page_transition()) {
|
| + if (sync_data.has_page_transition() ||
|
| + sync_data.has_navigation_qualifier()) {
|
| + switch (sync_data.page_transition()) {
|
| case sync_pb::SyncEnums_PageTransition_LINK:
|
| navigation.transition_type_ = content::PAGE_TRANSITION_LINK;
|
| break;
|
| @@ -116,7 +116,7 @@ TabNavigation TabNavigation::FromSyncData(
|
| navigation.transition_type_ = content::PAGE_TRANSITION_CHAIN_END;
|
| break;
|
| default:
|
| - switch (specifics.navigation_qualifier()) {
|
| + switch (sync_data.navigation_qualifier()) {
|
| case sync_pb::SyncEnums_PageTransitionQualifier_CLIENT_REDIRECT:
|
| navigation.transition_type_ =
|
| content::PAGE_TRANSITION_CLIENT_REDIRECT;
|
| @@ -130,8 +130,8 @@ TabNavigation TabNavigation::FromSyncData(
|
| }
|
| }
|
| }
|
| - if (specifics.has_timestamp()) {
|
| - navigation.timestamp_ = syncer::ProtoTimeToTime(specifics.timestamp());
|
| + if (sync_data.has_timestamp()) {
|
| + navigation.timestamp_ = syncer::ProtoTimeToTime(sync_data.timestamp());
|
| }
|
| return navigation;
|
| }
|
| @@ -431,6 +431,39 @@ SessionTab::SessionTab()
|
| SessionTab::~SessionTab() {
|
| }
|
|
|
| +void SessionTab::SetFromSyncData(const sync_pb::SessionTab& sync_data,
|
| + base::Time timestamp) {
|
| + window_id.set_id(sync_data.window_id());
|
| + tab_id.set_id(sync_data.tab_id());
|
| + tab_visual_index = sync_data.tab_visual_index();
|
| + current_navigation_index = sync_data.current_navigation_index();
|
| + pinned = sync_data.pinned();
|
| + extension_app_id = sync_data.extension_app_id();
|
| + user_agent_override.clear();
|
| + this->timestamp = timestamp;
|
| + navigations.clear();
|
| + for (int i = 0; i < sync_data.navigation_size(); ++i) {
|
| + navigations.push_back(
|
| + TabNavigation::FromSyncData(i, sync_data.navigation(i)));
|
| + }
|
| + session_storage_persistent_id.clear();
|
| +}
|
| +
|
| +sync_pb::SessionTab SessionTab::ToSyncData() const {
|
| + sync_pb::SessionTab sync_data;
|
| + sync_data.set_tab_id(tab_id.id());
|
| + sync_data.set_window_id(window_id.id());
|
| + sync_data.set_tab_visual_index(tab_visual_index);
|
| + sync_data.set_current_navigation_index(current_navigation_index);
|
| + sync_data.set_pinned(pinned);
|
| + sync_data.set_extension_app_id(extension_app_id);
|
| + for (std::vector<TabNavigation>::const_iterator it = navigations.begin();
|
| + it != navigations.end(); ++it) {
|
| + *sync_data.add_navigation() = it->ToSyncData();
|
| + }
|
| + return sync_data;
|
| +}
|
| +
|
| // SessionWindow ---------------------------------------------------------------
|
|
|
| SessionWindow::SessionWindow()
|
|
|