summaryrefslogtreecommitdiffstats
path: root/android_webview
diff options
context:
space:
mode:
authorgrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-26 02:02:18 +0000
committergrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-26 02:02:18 +0000
commite0185f9fe7ba991f701ac7bb6d8dbafa745a31ab (patch)
treed43a5f87c837ba410e30e0d9095f1cd3e1a9c95c /android_webview
parentd70d82db35eecb586629a05bffc580282c0c30b4 (diff)
downloadchromium_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 'android_webview')
-rw-r--r--android_webview/native/state_serializer.cc6
-rw-r--r--android_webview/native/state_serializer_unittests.cc8
2 files changed, 5 insertions, 9 deletions
diff --git a/android_webview/native/state_serializer.cc b/android_webview/native/state_serializer.cc
index 5abc929..656b2d0 100644
--- a/android_webview/native/state_serializer.cc
+++ b/android_webview/native/state_serializer.cc
@@ -12,7 +12,6 @@
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/common/page_state.h"
// Reasons for not re-using TabNavigation under chrome/ as of 20121116:
// * Android WebView has different requirements for fields to store since
@@ -147,7 +146,7 @@ bool WriteNavigationEntryToPickle(const content::NavigationEntry& entry,
if (!pickle->WriteString16(entry.GetTitle()))
return false;
- if (!pickle->WriteString(entry.GetPageState().ToEncodedData()))
+ if (!pickle->WriteString(entry.GetContentState()))
return false;
if (!pickle->WriteBool(static_cast<int>(entry.GetHasPostData())))
@@ -212,8 +211,7 @@ bool RestoreNavigationEntryFromPickle(PickleIterator* iterator,
string content_state;
if (!iterator->ReadString(&content_state))
return false;
- entry->SetPageState(
- content::PageState::CreateFromEncodedData(content_state));
+ entry->SetContentState(content_state);
}
{
diff --git a/android_webview/native/state_serializer_unittests.cc b/android_webview/native/state_serializer_unittests.cc
index 539ee54..53c4087 100644
--- a/android_webview/native/state_serializer_unittests.cc
+++ b/android_webview/native/state_serializer_unittests.cc
@@ -13,7 +13,6 @@
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/common/content_client.h"
-#include "content/public/common/page_state.h"
#include "googleurl/src/gurl.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -47,8 +46,7 @@ TEST(AndroidWebViewStateSerializerTest, TestNavigationEntrySerialization) {
referrer.url = GURL("http://referrer_url");
referrer.policy = WebKit::WebReferrerPolicyOrigin;
const string16 title(UTF8ToUTF16("title"));
- const content::PageState page_state =
- content::PageState::CreateFromEncodedData("completely bogus state");
+ const string content_state("completely bogus state");
const bool has_post_data = true;
const GURL original_request_url("http://original_request_url");
const GURL base_url_for_data_url("http://base_url");
@@ -59,7 +57,7 @@ TEST(AndroidWebViewStateSerializerTest, TestNavigationEntrySerialization) {
entry->SetVirtualURL(virtual_url);
entry->SetReferrer(referrer);
entry->SetTitle(title);
- entry->SetPageState(page_state);
+ entry->SetContentState(content_state);
entry->SetHasPostData(has_post_data);
entry->SetOriginalRequestURL(original_request_url);
entry->SetBaseURLForDataURL(base_url_for_data_url);
@@ -80,7 +78,7 @@ TEST(AndroidWebViewStateSerializerTest, TestNavigationEntrySerialization) {
EXPECT_EQ(referrer.url, copy->GetReferrer().url);
EXPECT_EQ(referrer.policy, copy->GetReferrer().policy);
EXPECT_EQ(title, copy->GetTitle());
- EXPECT_EQ(page_state, copy->GetPageState());
+ EXPECT_EQ(content_state, copy->GetContentState());
EXPECT_EQ(has_post_data, copy->GetHasPostData());
EXPECT_EQ(original_request_url, copy->GetOriginalRequestURL());
EXPECT_EQ(base_url_for_data_url, copy->GetBaseURLForDataURL());