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

Unified Diff: chrome/browser/sessions/session_types.cc

Issue 10990012: [Sync] Refactor handling of session tabs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Few more fixes Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
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()

Powered by Google App Engine
This is Rietveld 408576698