diff options
author | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-26 02:02:18 +0000 |
---|---|---|
committer | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-26 02:02:18 +0000 |
commit | e0185f9fe7ba991f701ac7bb6d8dbafa745a31ab (patch) | |
tree | d43a5f87c837ba410e30e0d9095f1cd3e1a9c95c /components/sessions | |
parent | d70d82db35eecb586629a05bffc580282c0c30b4 (diff) | |
download | chromium_src-e0185f9fe7ba991f701ac7bb6d8dbafa745a31ab.zip chromium_src-e0185f9fe7ba991f701ac7bb6d8dbafa745a31ab.tar.gz chromium_src-e0185f9fe7ba991f701ac7bb6d8dbafa745a31ab.tar.bz2 |
Revert 202188 "Introduce content::PageState."
This change bloated npchrome_frame.dll (see
http://build.chromium.org/f/chromium/perf/xp-release/sizes/report.html?=undefined&history=3&rev=202214&graph=npchrome_frame.dll)
because content_common.lib's common_param_traits.obj depends on
content_common.lib's page_state.obj which, in turn, depends on
webkit. This means that consumers of IPC messages in content_common
suddenly require all of webkit.
> Introduce content::PageState.
>
> This is a concrete class wrapping a string that contains the
> data of a serialized WebKit::WebHistoryItem class. Previously,
> we've just passed around these as strings, giving them names
> like "state", "content_state" or "history_state". It has been
> hard to identify all of the places in the code where these
> strings get passed around. A concrete class should make usage
> more apparent. Plus, instead of manipulating the strings using
> methods from webkit/glue/glue_serialize.h, we can just declare
> methods on the PageState class. This makes the code much cleaner.
>
> This first pass just implements PageState in terms of glue_serialize.
> It also adds content/public/renderer/history_item_serialization.h
> as the home for PageState to WebKit::WebHistoryItem conversion,
> which should ideally only be usable from the renderer process.
> (This bit is a step toward resolving bug 237243.)
>
> page_state.h declares operator==() to support DCHECK_EQ, which
> seems consistent with the idea of PageState being a replacement
> for std::string. I didn't want to litter tests with calls to
> PageState::ToEncodedData(). That would get cumbersome.
>
> BUG=240426
> R=brettw@chromium.org, tsepez@chromium.org
>
> Review URL: https://codereview.chromium.org/14985014
TBR=darin@chromium.org
Review URL: https://codereview.chromium.org/16068002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202321 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/sessions')
5 files changed, 30 insertions, 35 deletions
diff --git a/components/sessions/serialized_navigation_entry.cc b/components/sessions/serialized_navigation_entry.cc index e322830..6ba7533 100644 --- a/components/sessions/serialized_navigation_entry.cc +++ b/components/sessions/serialized_navigation_entry.cc @@ -12,6 +12,7 @@ #include "sync/protocol/session_specifics.pb.h" #include "sync/util/time.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebReferrerPolicy.h" +#include "webkit/glue/glue_serialize.h" using content::NavigationEntry; @@ -40,7 +41,7 @@ SerializedNavigationEntry SerializedNavigationEntry::FromNavigationEntry( navigation.referrer_ = entry.GetReferrer(); navigation.virtual_url_ = entry.GetVirtualURL(); navigation.title_ = entry.GetTitle(); - navigation.page_state_ = entry.GetPageState(); + navigation.content_state_ = entry.GetContentState(); navigation.transition_type_ = entry.GetTransitionType(); navigation.has_post_data_ = entry.GetHasPostData(); navigation.post_id_ = entry.GetPostID(); @@ -68,8 +69,7 @@ SerializedNavigationEntry SerializedNavigationEntry::FromSyncData( WebKit::WebReferrerPolicyDefault); navigation.virtual_url_ = GURL(sync_data.virtual_url()); navigation.title_ = UTF8ToUTF16(sync_data.title()); - navigation.page_state_ = - content::PageState::CreateFromEncodedData(sync_data.state()); + navigation.content_state_ = sync_data.state(); uint32 transition = 0; if (sync_data.has_page_transition()) { @@ -205,7 +205,7 @@ enum TypeMask { // index_ // virtual_url_ // title_ -// page_state_ +// content_state_ // transition_type_ // // Added on later: @@ -228,12 +228,12 @@ 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()); + std::string content_state = content_state_; + if (has_post_data_) { + content_state = + webkit_glue::RemovePasswordDataFromHistoryState(content_state); + } + WriteStringToPickle(pickle, &bytes_written, max_size, content_state); pickle->WriteInt(transition_type_); @@ -259,16 +259,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(&content_state_) || !iterator->ReadInt(&transition_type_int)) return false; virtual_url_ = GURL(virtual_url_spec); - page_state_ = content::PageState::CreateFromEncodedData(page_state_data); transition_type_ = static_cast<content::PageTransition>(transition_type_int); // type_mask did not always exist in the written stream. As such, we @@ -334,7 +333,7 @@ scoped_ptr<NavigationEntry> SerializedNavigationEntry::ToNavigationEntry( browser_context)); entry->SetTitle(title_); - entry->SetPageState(page_state_); + entry->SetContentState(content_state_); entry->SetPageID(page_id); entry->SetHasPostData(has_post_data_); entry->SetPostID(post_id_); diff --git a/components/sessions/serialized_navigation_entry.h b/components/sessions/serialized_navigation_entry.h index f76642b..bc72700 100644 --- a/components/sessions/serialized_navigation_entry.h +++ b/components/sessions/serialized_navigation_entry.h @@ -14,7 +14,6 @@ #include "base/string16.h" #include "base/time.h" #include "components/sessions/sessions_export.h" -#include "content/public/common/page_state.h" #include "content/public/common/page_transition_types.h" #include "content/public/common/referrer.h" #include "googleurl/src/gurl.h" @@ -97,7 +96,7 @@ class SESSIONS_EXPORT SerializedNavigationEntry { int unique_id() const { return unique_id_; } const GURL& virtual_url() const { return virtual_url_; } const string16& title() const { return title_; } - const content::PageState& page_state() const { return page_state_; } + const std::string& content_state() const { return content_state_; } const string16& search_terms() const { return search_terms_; } const GURL& favicon_url() const { return favicon_url_; } const content::Referrer& referrer() const { return referrer_; } @@ -140,7 +139,7 @@ class SESSIONS_EXPORT SerializedNavigationEntry { content::Referrer referrer_; GURL virtual_url_; string16 title_; - content::PageState page_state_; + std::string content_state_; content::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 b1e2c00..0c26e46 100644 --- a/components/sessions/serialized_navigation_entry_test_helper.cc +++ b/components/sessions/serialized_navigation_entry_test_helper.cc @@ -21,7 +21,7 @@ void SerializedNavigationEntryTestHelper::ExpectNavigationEquals( 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.content_state_, actual.content_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_); @@ -40,17 +40,16 @@ SerializedNavigationEntry SerializedNavigationEntryTestHelper::CreateNavigation( WebKit::WebReferrerPolicyDefault); navigation.virtual_url_ = GURL(virtual_url); navigation.title_ = UTF8ToUTF16(title); - navigation.page_state_ = - content::PageState::CreateFromEncodedData("fake_state"); + navigation.content_state_ = "fake_state"; navigation.timestamp_ = base::Time::Now(); return navigation; } // static -void SerializedNavigationEntryTestHelper::SetPageState( - const content::PageState& page_state, +void SerializedNavigationEntryTestHelper::SetContentState( + const std::string& content_state, SerializedNavigationEntry* navigation) { - navigation->page_state_ = page_state; + navigation->content_state_ = content_state; } // static diff --git a/components/sessions/serialized_navigation_entry_test_helper.h b/components/sessions/serialized_navigation_entry_test_helper.h index a653f22..43b49eb 100644 --- a/components/sessions/serialized_navigation_entry_test_helper.h +++ b/components/sessions/serialized_navigation_entry_test_helper.h @@ -17,7 +17,6 @@ class Time; } namespace content { -class PageState; struct Referrer; } @@ -39,8 +38,8 @@ class SerializedNavigationEntryTestHelper { const std::string& virtual_url, const std::string& title); - static void SetPageState(const content::PageState& page_state, - SerializedNavigationEntry* navigation); + static void SetContentState(const std::string& content_state, + SerializedNavigationEntry* navigation); static void SetHasPostData(bool has_post_data, SerializedNavigationEntry* navigation); diff --git a/components/sessions/serialized_navigation_entry_unittest.cc b/components/sessions/serialized_navigation_entry_unittest.cc index f8e5c3f..2f439da 100644 --- a/components/sessions/serialized_navigation_entry_unittest.cc +++ b/components/sessions/serialized_navigation_entry_unittest.cc @@ -34,8 +34,7 @@ const content::Referrer kReferrer = WebKit::WebReferrerPolicyAlways); const GURL kVirtualURL("http://www.virtual-url.com"); const string16 kTitle = ASCIIToUTF16("title"); -const content::PageState kPageState = - content::PageState::CreateFromEncodedData("page state"); +const std::string kContentState = "content state"; const content::PageTransition kTransitionType = static_cast<content::PageTransition>( content::PAGE_TRANSITION_AUTO_SUBFRAME | @@ -58,7 +57,7 @@ scoped_ptr<content::NavigationEntry> MakeNavigationEntryForTest() { navigation_entry->SetReferrer(kReferrer); navigation_entry->SetVirtualURL(kVirtualURL); navigation_entry->SetTitle(kTitle); - navigation_entry->SetPageState(kPageState); + navigation_entry->SetContentState(kContentState); navigation_entry->SetTransitionType(kTransitionType); navigation_entry->SetHasPostData(kHasPostData); navigation_entry->SetPostID(kPostID); @@ -77,7 +76,7 @@ sync_pb::TabNavigation MakeSyncDataForTest() { sync_data.set_virtual_url(kVirtualURL.spec()); sync_data.set_referrer(kReferrer.url.spec()); sync_data.set_title(UTF16ToUTF8(kTitle)); - sync_data.set_state(kPageState.ToEncodedData()); + sync_data.set_state(kContentState); sync_data.set_page_transition( sync_pb::SyncEnums_PageTransition_AUTO_SUBFRAME); sync_data.set_unique_id(kUniqueID); @@ -99,7 +98,7 @@ TEST(SerializedNavigationEntryTest, DefaultInitializer) { EXPECT_EQ(WebKit::WebReferrerPolicyDefault, navigation.referrer().policy); EXPECT_EQ(GURL(), navigation.virtual_url()); EXPECT_TRUE(navigation.title().empty()); - EXPECT_FALSE(navigation.page_state().IsValid()); + EXPECT_TRUE(navigation.content_state().empty()); EXPECT_EQ(content::PAGE_TRANSITION_TYPED, navigation.transition_type()); EXPECT_FALSE(navigation.has_post_data()); EXPECT_EQ(-1, navigation.post_id()); @@ -126,7 +125,7 @@ TEST(SerializedNavigationEntryTest, FromNavigationEntry) { EXPECT_EQ(kReferrer.policy, navigation.referrer().policy); EXPECT_EQ(kVirtualURL, navigation.virtual_url()); EXPECT_EQ(kTitle, navigation.title()); - EXPECT_EQ(kPageState, navigation.page_state()); + EXPECT_EQ(kContentState, navigation.content_state()); EXPECT_EQ(kTransitionType, navigation.transition_type()); EXPECT_EQ(kHasPostData, navigation.has_post_data()); EXPECT_EQ(kPostID, navigation.post_id()); @@ -151,7 +150,7 @@ TEST(SerializedNavigationEntryTest, FromSyncData) { EXPECT_EQ(WebKit::WebReferrerPolicyDefault, navigation.referrer().policy); EXPECT_EQ(kVirtualURL, navigation.virtual_url()); EXPECT_EQ(kTitle, navigation.title()); - EXPECT_EQ(kPageState, navigation.page_state()); + EXPECT_EQ(kContentState, navigation.content_state()); EXPECT_EQ(kTransitionType, navigation.transition_type()); EXPECT_FALSE(navigation.has_post_data()); EXPECT_EQ(-1, navigation.post_id()); @@ -184,7 +183,7 @@ TEST(SerializedNavigationEntryTest, Pickle) { EXPECT_EQ(kReferrer.policy, 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_TRUE(new_navigation.content_state().empty()); EXPECT_EQ(kTransitionType, new_navigation.transition_type()); EXPECT_EQ(kHasPostData, new_navigation.has_post_data()); EXPECT_EQ(-1, new_navigation.post_id()); @@ -213,7 +212,7 @@ TEST(SerializedNavigationEntryTest, ToNavigationEntry) { EXPECT_EQ(kReferrer.policy, 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(kContentState, new_navigation_entry->GetContentState()); EXPECT_EQ(kPageID, new_navigation_entry->GetPageID()); EXPECT_EQ(content::PAGE_TRANSITION_RELOAD, new_navigation_entry->GetTransitionType()); |