| Index: chrome/browser/sessions/session_types.cc
|
| diff --git a/chrome/browser/sessions/session_types.cc b/chrome/browser/sessions/session_types.cc
|
| index 59afc341fdb9604100636d2befdc8f85c738cddf..5cf19545fe9efb5cad22083d4fe9658d2e1f3a93 100644
|
| --- a/chrome/browser/sessions/session_types.cc
|
| +++ b/chrome/browser/sessions/session_types.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/stl_util.h"
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/instant/instant_controller.h"
|
| #include "chrome/browser/sessions/session_command.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "content/public/browser/navigation_controller.h"
|
| @@ -48,6 +49,9 @@ TabNavigation TabNavigation::FromNavigationEntry(
|
| navigation.original_request_url_ = entry.GetOriginalRequestURL();
|
| navigation.is_overriding_user_agent_ = entry.GetIsOverridingUserAgent();
|
| navigation.timestamp_ = entry.GetTimestamp();
|
| + entry.GetExtraData(InstantController::kSearchTermsKey,
|
| + &navigation.search_terms_);
|
| +
|
| return navigation;
|
| }
|
|
|
| @@ -132,6 +136,7 @@ TabNavigation TabNavigation::FromSyncData(
|
| static_cast<content::PageTransition>(transition);
|
|
|
| navigation.timestamp_ = base::Time();
|
| + navigation.search_terms_ = UTF8ToUTF16(sync_data.search_terms());
|
|
|
| return navigation;
|
| }
|
| @@ -201,6 +206,7 @@ enum TypeMask {
|
| // original_request_url_
|
| // is_overriding_user_agent_
|
| // timestamp_
|
| +// search_terms_
|
|
|
| void TabNavigation::WriteToPickle(Pickle* pickle) const {
|
| pickle->WriteInt(index_);
|
| @@ -245,6 +251,8 @@ void TabNavigation::WriteToPickle(Pickle* pickle) const {
|
| original_request_url_.spec() : std::string());
|
| pickle->WriteBool(is_overriding_user_agent_);
|
| pickle->WriteInt64(timestamp_.ToInternalValue());
|
| +
|
| + WriteString16ToPickle(pickle, &bytes_written, max_state_size, search_terms_);
|
| }
|
|
|
| bool TabNavigation::ReadFromPickle(PickleIterator* iterator) {
|
| @@ -298,6 +306,10 @@ bool TabNavigation::ReadFromPickle(PickleIterator* iterator) {
|
| } else {
|
| timestamp_ = base::Time();
|
| }
|
| +
|
| + // If the search terms field can't be found, leave it empty.
|
| + if (!iterator->ReadString16(&search_terms_))
|
| + search_terms_ = string16();
|
| }
|
|
|
| return true;
|
| @@ -326,6 +338,7 @@ scoped_ptr<NavigationEntry> TabNavigation::ToNavigationEntry(
|
| entry->SetOriginalRequestURL(original_request_url_);
|
| entry->SetIsOverridingUserAgent(is_overriding_user_agent_);
|
| entry->SetTimestamp(timestamp_);
|
| + entry->SetExtraData(InstantController::kSearchTermsKey, search_terms_);
|
|
|
| return entry.Pass();
|
| }
|
| @@ -418,6 +431,8 @@ sync_pb::TabNavigation TabNavigation::ToSyncData() const {
|
| // The full-resolution timestamp works as a global ID.
|
| sync_data.set_global_id(timestamp_.ToInternalValue());
|
|
|
| + sync_data.set_search_terms(UTF16ToUTF8(search_terms_));
|
| +
|
| return sync_data;
|
| }
|
|
|
|
|