summaryrefslogtreecommitdiffstats
path: root/components/sessions
diff options
context:
space:
mode:
authorhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 22:58:35 +0000
committerhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 22:58:35 +0000
commit097782be0628a771d04d49dbb06360b6232cb340 (patch)
treea5a8553b561d2805b3fb294001fd998e186acc80 /components/sessions
parentcb174c1caa4e2b77965b84eab1a55d268f5efcf7 (diff)
downloadchromium_src-097782be0628a771d04d49dbb06360b6232cb340.zip
chromium_src-097782be0628a771d04d49dbb06360b6232cb340.tar.gz
chromium_src-097782be0628a771d04d49dbb06360b6232cb340.tar.bz2
Add IsRestored() interface to NavigationEntry and use it to differentiate
normal and restored synced navigations. BUG=340464 Review URL: https://codereview.chromium.org/152233003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249526 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/sessions')
-rw-r--r--components/sessions/serialized_navigation_entry.cc8
-rw-r--r--components/sessions/serialized_navigation_entry.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/components/sessions/serialized_navigation_entry.cc b/components/sessions/serialized_navigation_entry.cc
index 44c5a07..45f3cf0 100644
--- a/components/sessions/serialized_navigation_entry.cc
+++ b/components/sessions/serialized_navigation_entry.cc
@@ -27,6 +27,7 @@ SerializedNavigationEntry::SerializedNavigationEntry()
post_id_(-1),
is_overriding_user_agent_(false),
http_status_code_(0),
+ is_restored_(false),
blocked_state_(STATE_INVALID) {}
SerializedNavigationEntry::~SerializedNavigationEntry() {}
@@ -48,6 +49,7 @@ SerializedNavigationEntry SerializedNavigationEntry::FromNavigationEntry(
navigation.original_request_url_ = entry.GetOriginalRequestURL();
navigation.is_overriding_user_agent_ = entry.GetIsOverridingUserAgent();
navigation.timestamp_ = entry.GetTimestamp();
+ navigation.is_restored_ = entry.IsRestored();
// If you want to navigate a named frame in Chrome, you will first need to
// add support for persisting it. It is currently only used for layout tests.
CHECK(entry.GetFrameToNavigate().empty());
@@ -153,6 +155,8 @@ SerializedNavigationEntry SerializedNavigationEntry::FromSyncData(
navigation.Sanitize();
+ navigation.is_restored_ = true;
+
return navigation;
}
@@ -329,6 +333,8 @@ bool SerializedNavigationEntry::ReadFromPickle(PickleIterator* iterator) {
Sanitize();
+ is_restored_ = true;
+
return true;
}
@@ -471,6 +477,8 @@ sync_pb::TabNavigation SerializedNavigationEntry::ToSyncData() const {
sync_data.add_content_pack_categories(*it);
}
+ sync_data.set_is_restored(is_restored_);
+
return sync_data;
}
diff --git a/components/sessions/serialized_navigation_entry.h b/components/sessions/serialized_navigation_entry.h
index 577d67a..859d39f 100644
--- a/components/sessions/serialized_navigation_entry.h
+++ b/components/sessions/serialized_navigation_entry.h
@@ -155,6 +155,7 @@ class SESSIONS_EXPORT SerializedNavigationEntry {
base::string16 search_terms_;
GURL favicon_url_;
int http_status_code_;
+ bool is_restored_; // Not persisted.
// Additional information.
BlockedState blocked_state_;