diff options
author | rohitrao <rohitrao@chromium.org> | 2014-10-20 14:52:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-20 21:52:14 +0000 |
commit | c6d8e740dc97f57293ed336a278ff1934bb361ab (patch) | |
tree | 87d825ed12b631b9b0f60b7aca31fb2ce20eb5c3 /components/sessions | |
parent | f55539c55ab085f862b32ad26df420b0b0c1d7a4 (diff) | |
download | chromium_src-c6d8e740dc97f57293ed336a278ff1934bb361ab.zip chromium_src-c6d8e740dc97f57293ed336a278ff1934bb361ab.tar.gz chromium_src-c6d8e740dc97f57293ed336a278ff1934bb361ab.tar.bz2 |
Rewrites SerializedNavigationEntry to not have any //content member variables.
This will pave the way for a future CL that completely removes all //content
dependencies from the class.
TBR=ben@google.com
BUG=371476
TEST=No visible impact.
Review URL: https://codereview.chromium.org/658073004
Cr-Commit-Position: refs/heads/master@{#300344}
Diffstat (limited to 'components/sessions')
4 files changed, 113 insertions, 79 deletions
diff --git a/components/sessions/serialized_navigation_entry.cc b/components/sessions/serialized_navigation_entry.cc index b45ffd7..facd7e4 100644 --- a/components/sessions/serialized_navigation_entry.cc +++ b/components/sessions/serialized_navigation_entry.cc @@ -9,6 +9,8 @@ #include "content/public/browser/favicon_status.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" +#include "content/public/common/page_state.h" +#include "content/public/common/referrer.h" #include "sync/protocol/session_specifics.pb.h" #include "sync/util/time.h" #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" @@ -28,7 +30,9 @@ SerializedNavigationEntry::SerializedNavigationEntry() is_overriding_user_agent_(false), http_status_code_(0), is_restored_(false), - blocked_state_(STATE_INVALID) {} + blocked_state_(STATE_INVALID) { + referrer_policy_ = GetDefaultReferrerPolicy(); +} SerializedNavigationEntry::~SerializedNavigationEntry() {} @@ -39,10 +43,11 @@ SerializedNavigationEntry SerializedNavigationEntry::FromNavigationEntry( SerializedNavigationEntry navigation; navigation.index_ = index; navigation.unique_id_ = entry.GetUniqueID(); - navigation.referrer_ = entry.GetReferrer(); + navigation.referrer_url_ = entry.GetReferrer().url; + navigation.referrer_policy_ = entry.GetReferrer().policy; navigation.virtual_url_ = entry.GetVirtualURL(); navigation.title_ = entry.GetTitle(); - navigation.page_state_ = entry.GetPageState(); + navigation.encoded_page_state_ = entry.GetPageState().ToEncodedData(); navigation.transition_type_ = entry.GetTransitionType(); navigation.has_post_data_ = entry.GetHasPostData(); navigation.post_id_ = entry.GetPostID(); @@ -68,13 +73,11 @@ SerializedNavigationEntry SerializedNavigationEntry::FromSyncData( SerializedNavigationEntry navigation; navigation.index_ = index; navigation.unique_id_ = sync_data.unique_id(); - navigation.referrer_ = content::Referrer( - GURL(sync_data.referrer()), - static_cast<blink::WebReferrerPolicy>(sync_data.referrer_policy())); + navigation.referrer_url_ = GURL(sync_data.referrer()); + navigation.referrer_policy_ = sync_data.referrer_policy(); navigation.virtual_url_ = GURL(sync_data.virtual_url()); navigation.title_ = base::UTF8ToUTF16(sync_data.title()); - navigation.page_state_ = - content::PageState::CreateFromEncodedData(sync_data.state()); + navigation.encoded_page_state_ = sync_data.state(); uint32 transition = 0; if (sync_data.has_page_transition()) { @@ -210,13 +213,14 @@ enum TypeMask { // index_ // virtual_url_ // title_ -// page_state_ +// encoded_page_state_ // transition_type_ // // Added on later: // // type_mask (has_post_data_) -// referrer_ +// referrer_url_ +// referrer_policy_ // original_request_url_ // is_overriding_user_agent_ // timestamp_ @@ -234,12 +238,8 @@ void SerializedNavigationEntry::WriteToPickle(int max_size, WriteString16ToPickle(pickle, &bytes_written, max_size, title_); - content::PageState page_state = page_state_; - if (has_post_data_) - page_state = page_state.RemovePasswordData(); - - WriteStringToPickle(pickle, &bytes_written, max_size, - page_state.ToEncodedData()); + const std::string encoded_page_state = GetSanitizedPageStateForPickle(); + WriteStringToPickle(pickle, &bytes_written, max_size, encoded_page_state); pickle->WriteInt(transition_type_); @@ -248,9 +248,9 @@ void SerializedNavigationEntry::WriteToPickle(int max_size, WriteStringToPickle( pickle, &bytes_written, max_size, - referrer_.url.is_valid() ? referrer_.url.spec() : std::string()); + referrer_url_.is_valid() ? referrer_url_.spec() : std::string()); - pickle->WriteInt(referrer_.policy); + pickle->WriteInt(referrer_policy_); // Save info required to override the user agent. WriteStringToPickle( @@ -267,16 +267,15 @@ void SerializedNavigationEntry::WriteToPickle(int max_size, bool SerializedNavigationEntry::ReadFromPickle(PickleIterator* iterator) { *this = SerializedNavigationEntry(); - std::string virtual_url_spec, page_state_data; + std::string virtual_url_spec; int transition_type_int = 0; if (!iterator->ReadInt(&index_) || !iterator->ReadString(&virtual_url_spec) || !iterator->ReadString16(&title_) || - !iterator->ReadString(&page_state_data) || + !iterator->ReadString(&encoded_page_state_) || !iterator->ReadInt(&transition_type_int)) return false; virtual_url_ = GURL(virtual_url_spec); - page_state_ = content::PageState::CreateFromEncodedData(page_state_data); transition_type_ = ui::PageTransitionFromInt(transition_type_int); // type_mask did not always exist in the written stream. As such, we @@ -291,15 +290,12 @@ bool SerializedNavigationEntry::ReadFromPickle(PickleIterator* iterator) { std::string referrer_spec; if (!iterator->ReadString(&referrer_spec)) referrer_spec = std::string(); + referrer_url_ = GURL(referrer_spec); + // The "referrer policy" property was added even later, so we fall back to // the default policy if the property is not present. - int policy_int; - blink::WebReferrerPolicy policy; - if (iterator->ReadInt(&policy_int)) - policy = static_cast<blink::WebReferrerPolicy>(policy_int); - else - policy = blink::WebReferrerPolicyDefault; - referrer_ = content::Referrer(GURL(referrer_spec), policy); + if (!iterator->ReadInt(&referrer_policy_)) + referrer_policy_ = GetDefaultReferrerPolicy(); // If the original URL can't be found, leave it empty. std::string original_request_url_spec; @@ -339,7 +335,9 @@ scoped_ptr<NavigationEntry> SerializedNavigationEntry::ToNavigationEntry( scoped_ptr<NavigationEntry> entry( content::NavigationController::CreateNavigationEntry( virtual_url_, - referrer_, + content::Referrer( + referrer_url_, + static_cast<blink::WebReferrerPolicy>(referrer_policy_)), // Use a transition type of reload so that we don't incorrectly // increase the typed count. ui::PAGE_TRANSITION_RELOAD, @@ -349,7 +347,8 @@ scoped_ptr<NavigationEntry> SerializedNavigationEntry::ToNavigationEntry( browser_context)); entry->SetTitle(title_); - entry->SetPageState(page_state_); + entry->SetPageState( + content::PageState::CreateFromEncodedData(encoded_page_state_)); entry->SetPageID(page_id); entry->SetHasPostData(has_post_data_); entry->SetPostID(post_id_); @@ -372,8 +371,8 @@ scoped_ptr<NavigationEntry> SerializedNavigationEntry::ToNavigationEntry( sync_pb::TabNavigation SerializedNavigationEntry::ToSyncData() const { sync_pb::TabNavigation sync_data; sync_data.set_virtual_url(virtual_url_.spec()); - sync_data.set_referrer(referrer_.url.spec()); - sync_data.set_referrer_policy(referrer_.policy); + sync_data.set_referrer(referrer_url_.spec()); + sync_data.set_referrer_policy(referrer_policy_); sync_data.set_title(base::UTF16ToUTF8(title_)); // Page transition core. @@ -509,16 +508,42 @@ std::vector<NavigationEntry*> SerializedNavigationEntry::ToNavigationEntries( return entries; } +// TODO(rohitrao): Move this content-specific code into a +// SerializedNavigationEntryHelper class. +int SerializedNavigationEntry::GetDefaultReferrerPolicy() const { + return blink::WebReferrerPolicyDefault; +} + +// TODO(rohitrao): Move this content-specific code into a +// SerializedNavigationEntryHelper class. +std::string SerializedNavigationEntry::GetSanitizedPageStateForPickle() const { + content::PageState page_state = + content::PageState::CreateFromEncodedData(encoded_page_state_); + if (has_post_data_) + page_state = page_state.RemovePasswordData(); + + return page_state.ToEncodedData(); +} + +// TODO(rohitrao): Move this content-specific code into a +// SerializedNavigationEntryHelper class. void SerializedNavigationEntry::Sanitize() { + content::Referrer old_referrer( + referrer_url_, + static_cast<blink::WebReferrerPolicy>(referrer_policy_)); content::Referrer new_referrer = - content::Referrer::SanitizeForRequest(virtual_url_, referrer_); + content::Referrer::SanitizeForRequest(virtual_url_, old_referrer); // No need to compare the policy, as it doesn't change during // sanitization. If there has been a change, the referrer needs to be // stripped from the page state as well. - if (referrer_.url != new_referrer.url) { - referrer_ = content::Referrer(); - page_state_ = page_state_.RemoveReferrer(); + if (referrer_url_ != new_referrer.url) { + referrer_url_ = GURL(); + referrer_policy_ = GetDefaultReferrerPolicy(); + encoded_page_state_ = + content::PageState::CreateFromEncodedData(encoded_page_state_) + .RemoveReferrer() + .ToEncodedData(); } } diff --git a/components/sessions/serialized_navigation_entry.h b/components/sessions/serialized_navigation_entry.h index 6caee55..bbc3d7a 100644 --- a/components/sessions/serialized_navigation_entry.h +++ b/components/sessions/serialized_navigation_entry.h @@ -14,8 +14,6 @@ #include "base/strings/string16.h" #include "base/time/time.h" #include "components/sessions/sessions_export.h" -#include "content/public/common/page_state.h" -#include "content/public/common/referrer.h" #include "ui/base/page_transition_types.h" #include "url/gurl.h" @@ -97,11 +95,12 @@ class SESSIONS_EXPORT SerializedNavigationEntry { int unique_id() const { return unique_id_; } const GURL& virtual_url() const { return virtual_url_; } const base::string16& title() const { return title_; } - const content::PageState& page_state() const { return page_state_; } + const std::string& encoded_page_state() const { return encoded_page_state_; } const base::string16& search_terms() const { return search_terms_; } const GURL& favicon_url() const { return favicon_url_; } int http_status_code() const { return http_status_code_; } - const content::Referrer& referrer() const { return referrer_; } + const GURL& referrer_url() const { return referrer_url_; } + int referrer_policy() const { return referrer_policy_; } ui::PageTransition transition_type() const { return transition_type_; } @@ -134,6 +133,13 @@ class SESSIONS_EXPORT SerializedNavigationEntry { private: friend class SerializedNavigationEntryTestHelper; + // Returns the default referrer policy. + int GetDefaultReferrerPolicy() const; + + // Returns a sanitized version of |encoded_page_state_| suitable for writing + // to disk. + std::string GetSanitizedPageStateForPickle() const; + // Sanitizes the data in this class to be more robust against faulty data // written by older versions. void Sanitize(); @@ -143,10 +149,11 @@ class SESSIONS_EXPORT SerializedNavigationEntry { // Member variables corresponding to NavigationEntry fields. int unique_id_; - content::Referrer referrer_; + GURL referrer_url_; + int referrer_policy_; GURL virtual_url_; base::string16 title_; - content::PageState page_state_; + std::string encoded_page_state_; ui::PageTransition transition_type_; bool has_post_data_; int64 post_id_; diff --git a/components/sessions/serialized_navigation_entry_test_helper.cc b/components/sessions/serialized_navigation_entry_test_helper.cc index 313fb77..030db0b 100644 --- a/components/sessions/serialized_navigation_entry_test_helper.cc +++ b/components/sessions/serialized_navigation_entry_test_helper.cc @@ -7,6 +7,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" #include "components/sessions/serialized_navigation_entry.h" +#include "content/public/common/page_state.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" #include "url/gurl.h" @@ -17,11 +18,11 @@ namespace sessions { void SerializedNavigationEntryTestHelper::ExpectNavigationEquals( const SerializedNavigationEntry& expected, const SerializedNavigationEntry& actual) { - EXPECT_EQ(expected.referrer_.url, actual.referrer_.url); - EXPECT_EQ(expected.referrer_.policy, actual.referrer_.policy); + EXPECT_EQ(expected.referrer_url_, actual.referrer_url_); + EXPECT_EQ(expected.referrer_policy_, actual.referrer_policy_); EXPECT_EQ(expected.virtual_url_, actual.virtual_url_); EXPECT_EQ(expected.title_, actual.title_); - EXPECT_EQ(expected.page_state_, actual.page_state_); + EXPECT_EQ(expected.encoded_page_state_, actual.encoded_page_state_); EXPECT_EQ(expected.transition_type_, actual.transition_type_); EXPECT_EQ(expected.has_post_data_, actual.has_post_data_); EXPECT_EQ(expected.original_request_url_, actual.original_request_url_); @@ -35,13 +36,11 @@ SerializedNavigationEntry SerializedNavigationEntryTestHelper::CreateNavigation( const std::string& title) { SerializedNavigationEntry navigation; navigation.index_ = 0; - navigation.referrer_ = - content::Referrer(GURL("http://www.referrer.com"), - blink::WebReferrerPolicyDefault); + navigation.referrer_url_ = GURL("http://www.referrer.com"); + navigation.referrer_policy_ = blink::WebReferrerPolicyDefault; navigation.virtual_url_ = GURL(virtual_url); navigation.title_ = base::UTF8ToUTF16(title); - navigation.page_state_ = - content::PageState::CreateFromEncodedData("fake_state"); + navigation.encoded_page_state_ = "fake state"; navigation.timestamp_ = base::Time::Now(); navigation.http_status_code_ = 200; return navigation; @@ -51,7 +50,7 @@ SerializedNavigationEntry SerializedNavigationEntryTestHelper::CreateNavigation( void SerializedNavigationEntryTestHelper::SetPageState( const content::PageState& page_state, SerializedNavigationEntry* navigation) { - navigation->page_state_ = page_state; + navigation->encoded_page_state_ = page_state.ToEncodedData(); } // static diff --git a/components/sessions/serialized_navigation_entry_unittest.cc b/components/sessions/serialized_navigation_entry_unittest.cc index 25c4a26..f14321a 100644 --- a/components/sessions/serialized_navigation_entry_unittest.cc +++ b/components/sessions/serialized_navigation_entry_unittest.cc @@ -16,6 +16,7 @@ #include "base/time/time.h" #include "content/public/browser/favicon_status.h" #include "content/public/browser/navigation_entry.h" +#include "content/public/common/page_state.h" #include "content/public/common/referrer.h" #include "sync/protocol/session_specifics.pb.h" #include "sync/util/time.h" @@ -29,13 +30,11 @@ namespace { const int kIndex = 3; const int kUniqueID = 50; -const content::Referrer kReferrer = - content::Referrer(GURL("http://www.referrer.com"), - blink::WebReferrerPolicyAlways); +const GURL kReferrerURL = GURL("http://www.referrer.com"); +const int kReferrerPolicy = blink::WebReferrerPolicyAlways; const GURL kVirtualURL("http://www.virtual-url.com"); const base::string16 kTitle = base::ASCIIToUTF16("title"); -const content::PageState kPageState = - content::PageState::CreateFromEncodedData("page state"); +const std::string kEncodedPageState = "page state"; const ui::PageTransition kTransitionType = ui::PageTransitionFromInt( ui::PAGE_TRANSITION_AUTO_SUBFRAME | @@ -59,10 +58,13 @@ const int kPageID = 10; scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { scoped_ptr<content::NavigationEntry> navigation_entry( content::NavigationEntry::Create()); - navigation_entry->SetReferrer(kReferrer); + navigation_entry->SetReferrer(content::Referrer( + kReferrerURL, + static_cast<blink::WebReferrerPolicy>(kReferrerPolicy))); navigation_entry->SetVirtualURL(kVirtualURL); navigation_entry->SetTitle(kTitle); - navigation_entry->SetPageState(kPageState); + navigation_entry->SetPageState( + content::PageState::CreateFromEncodedData(kEncodedPageState)); navigation_entry->SetTransitionType(kTransitionType); navigation_entry->SetHasPostData(kHasPostData); navigation_entry->SetPostID(kPostID); @@ -85,10 +87,10 @@ scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { sync_pb::TabNavigation MakeSyncDataForTest() { sync_pb::TabNavigation sync_data; sync_data.set_virtual_url(kVirtualURL.spec()); - sync_data.set_referrer(kReferrer.url.spec()); + sync_data.set_referrer(kReferrerURL.spec()); sync_data.set_referrer_policy(blink::WebReferrerPolicyOrigin); sync_data.set_title(base::UTF16ToUTF8(kTitle)); - sync_data.set_state(kPageState.ToEncodedData()); + sync_data.set_state(kEncodedPageState); sync_data.set_page_transition( sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); sync_data.set_unique_id(kUniqueID); @@ -108,11 +110,11 @@ TEST(SerializedNavigationEntryTest, DefaultInitializer) { const SerializedNavigationEntry navigation; EXPECT_EQ(-1, navigation.index()); EXPECT_EQ(0, navigation.unique_id()); - EXPECT_EQ(GURL(), navigation.referrer().url); - EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer().policy); + EXPECT_EQ(GURL(), navigation.referrer_url()); + EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy()); EXPECT_EQ(GURL(), navigation.virtual_url()); EXPECT_TRUE(navigation.title().empty()); - EXPECT_FALSE(navigation.page_state().IsValid()); + EXPECT_EQ(std::string(), navigation.encoded_page_state()); EXPECT_EQ(ui::PAGE_TRANSITION_TYPED, navigation.transition_type()); EXPECT_FALSE(navigation.has_post_data()); EXPECT_EQ(-1, navigation.post_id()); @@ -137,11 +139,11 @@ TEST(SerializedNavigationEntryTest, FromNavigationEntry) { EXPECT_EQ(kIndex, navigation.index()); EXPECT_EQ(navigation_entry->GetUniqueID(), navigation.unique_id()); - EXPECT_EQ(kReferrer.url, navigation.referrer().url); - EXPECT_EQ(kReferrer.policy, navigation.referrer().policy); + EXPECT_EQ(kReferrerURL, navigation.referrer_url()); + EXPECT_EQ(kReferrerPolicy, navigation.referrer_policy()); EXPECT_EQ(kVirtualURL, navigation.virtual_url()); EXPECT_EQ(kTitle, navigation.title()); - EXPECT_EQ(kPageState, navigation.page_state()); + EXPECT_EQ(kEncodedPageState, navigation.encoded_page_state()); EXPECT_EQ(kTransitionType, navigation.transition_type()); EXPECT_EQ(kHasPostData, navigation.has_post_data()); EXPECT_EQ(kPostID, navigation.post_id()); @@ -167,11 +169,11 @@ TEST(SerializedNavigationEntryTest, FromSyncData) { EXPECT_EQ(kIndex, navigation.index()); EXPECT_EQ(kUniqueID, navigation.unique_id()); - EXPECT_EQ(kReferrer.url, navigation.referrer().url); - EXPECT_EQ(blink::WebReferrerPolicyOrigin, navigation.referrer().policy); + EXPECT_EQ(kReferrerURL, navigation.referrer_url()); + EXPECT_EQ(blink::WebReferrerPolicyOrigin, navigation.referrer_policy()); EXPECT_EQ(kVirtualURL, navigation.virtual_url()); EXPECT_EQ(kTitle, navigation.title()); - EXPECT_EQ(kPageState, navigation.page_state()); + EXPECT_EQ(kEncodedPageState, navigation.encoded_page_state()); EXPECT_EQ(kTransitionType, navigation.transition_type()); EXPECT_FALSE(navigation.has_post_data()); EXPECT_EQ(-1, navigation.post_id()); @@ -202,11 +204,11 @@ TEST(SerializedNavigationEntryTest, Pickle) { EXPECT_EQ(kIndex, new_navigation.index()); EXPECT_EQ(0, new_navigation.unique_id()); - EXPECT_EQ(kReferrer.url, new_navigation.referrer().url); - EXPECT_EQ(kReferrer.policy, new_navigation.referrer().policy); + EXPECT_EQ(kReferrerURL, new_navigation.referrer_url()); + EXPECT_EQ(kReferrerPolicy, new_navigation.referrer_policy()); EXPECT_EQ(kVirtualURL, new_navigation.virtual_url()); EXPECT_EQ(kTitle, new_navigation.title()); - EXPECT_FALSE(new_navigation.page_state().IsValid()); + EXPECT_EQ(std::string(), new_navigation.encoded_page_state()); EXPECT_EQ(kTransitionType, new_navigation.transition_type()); EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); EXPECT_EQ(-1, new_navigation.post_id()); @@ -233,11 +235,12 @@ TEST(SerializedNavigationEntryTest, ToNavigationEntry) { const scoped_ptr<content::NavigationEntry> new_navigation_entry( navigation.ToNavigationEntry(kPageID, NULL)); - EXPECT_EQ(kReferrer.url, new_navigation_entry->GetReferrer().url); - EXPECT_EQ(kReferrer.policy, new_navigation_entry->GetReferrer().policy); + EXPECT_EQ(kReferrerURL, new_navigation_entry->GetReferrer().url); + EXPECT_EQ(kReferrerPolicy, new_navigation_entry->GetReferrer().policy); EXPECT_EQ(kVirtualURL, new_navigation_entry->GetVirtualURL()); EXPECT_EQ(kTitle, new_navigation_entry->GetTitle()); - EXPECT_EQ(kPageState, new_navigation_entry->GetPageState()); + EXPECT_EQ(kEncodedPageState, + new_navigation_entry->GetPageState().ToEncodedData()); EXPECT_EQ(kPageID, new_navigation_entry->GetPageID()); EXPECT_EQ(ui::PAGE_TRANSITION_RELOAD, new_navigation_entry->GetTransitionType()); @@ -270,7 +273,7 @@ TEST(SerializedNavigationEntryTest, ToSyncData) { const sync_pb::TabNavigation sync_data = navigation.ToSyncData(); EXPECT_EQ(kVirtualURL.spec(), sync_data.virtual_url()); - EXPECT_EQ(kReferrer.url.spec(), sync_data.referrer()); + EXPECT_EQ(kReferrerURL.spec(), sync_data.referrer()); EXPECT_EQ(kTitle, base::ASCIIToUTF16(sync_data.title())); EXPECT_TRUE(sync_data.state().empty()); EXPECT_EQ(sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME, @@ -366,11 +369,11 @@ TEST(SerializedNavigationEntryTest, Sanitize) { EXPECT_EQ(kIndex, navigation.index()); EXPECT_EQ(kUniqueID, navigation.unique_id()); - EXPECT_EQ(GURL(), navigation.referrer().url); - EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer().policy); + EXPECT_EQ(GURL(), navigation.referrer_url()); + EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy()); EXPECT_EQ(kVirtualURL, navigation.virtual_url()); EXPECT_EQ(kTitle, navigation.title()); - EXPECT_EQ(page_state, navigation.page_state()); + EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state()); EXPECT_EQ(kTransitionType, navigation.transition_type()); EXPECT_FALSE(navigation.has_post_data()); EXPECT_EQ(-1, navigation.post_id()); |