| Index: chrome/browser/sessions/session_types.cc
|
| diff --git a/chrome/browser/sessions/session_types.cc b/chrome/browser/sessions/session_types.cc
|
| index 183b3a90d54ad386be8772babc83af166e5080c3..afe2acbb47eeb93cac6b07fa4bd4bcd3d823854c 100644
|
| --- a/chrome/browser/sessions/session_types.cc
|
| +++ b/chrome/browser/sessions/session_types.cc
|
| @@ -27,7 +27,8 @@ TabNavigation::TabNavigation()
|
| transition_type_(content::PAGE_TRANSITION_TYPED),
|
| has_post_data_(false),
|
| post_id_(-1),
|
| - is_overriding_user_agent_(false) {}
|
| + is_overriding_user_agent_(false),
|
| + http_status_code_(0) {}
|
|
|
| TabNavigation::~TabNavigation() {}
|
|
|
| @@ -48,6 +49,7 @@ TabNavigation TabNavigation::FromNavigationEntry(
|
| navigation.original_request_url_ = entry.GetOriginalRequestURL();
|
| navigation.is_overriding_user_agent_ = entry.GetIsOverridingUserAgent();
|
| navigation.timestamp_ = entry.GetTimestamp();
|
| + navigation.http_status_code_ = entry.GetHttpStatusCode();
|
| return navigation;
|
| }
|
|
|
| @@ -132,6 +134,7 @@ TabNavigation TabNavigation::FromSyncData(
|
| static_cast<content::PageTransition>(transition);
|
|
|
| navigation.timestamp_ = base::Time();
|
| + navigation.http_status_code_ = sync_data.http_status_code();
|
|
|
| return navigation;
|
| }
|
| @@ -201,6 +204,7 @@ enum TypeMask {
|
| // original_request_url_
|
| // is_overriding_user_agent_
|
| // timestamp_
|
| +// http_status_code_
|
|
|
| void TabNavigation::WriteToPickle(Pickle* pickle) const {
|
| pickle->WriteInt(index_);
|
| @@ -245,6 +249,7 @@ void TabNavigation::WriteToPickle(Pickle* pickle) const {
|
| original_request_url_.spec() : std::string());
|
| pickle->WriteBool(is_overriding_user_agent_);
|
| pickle->WriteInt64(timestamp_.ToInternalValue());
|
| + pickle->WriteInt(http_status_code_);
|
| }
|
|
|
| bool TabNavigation::ReadFromPickle(PickleIterator* iterator) {
|
| @@ -298,6 +303,9 @@ bool TabNavigation::ReadFromPickle(PickleIterator* iterator) {
|
| } else {
|
| timestamp_ = base::Time();
|
| }
|
| +
|
| + if (!iterator->ReadInt(&http_status_code_))
|
| + http_status_code_ = 0;
|
| }
|
|
|
| return true;
|
| @@ -326,6 +334,7 @@ scoped_ptr<NavigationEntry> TabNavigation::ToNavigationEntry(
|
| entry->SetOriginalRequestURL(original_request_url_);
|
| entry->SetIsOverridingUserAgent(is_overriding_user_agent_);
|
| entry->SetTimestamp(timestamp_);
|
| + entry->SetHttpStatusCode(http_status_code_);
|
|
|
| return entry.Pass();
|
| }
|
| @@ -417,6 +426,7 @@ sync_pb::TabNavigation TabNavigation::ToSyncData() const {
|
| // TODO(akalin): Don't lose resolution, i.e. define a new timestamp
|
| // field with microsecond resolution and use that.
|
| sync_data.set_timestamp(syncer::TimeToProtoTime(timestamp_));
|
| + sync_data.set_http_status_code(http_status_code_);
|
|
|
| return sync_data;
|
| }
|
|
|