Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2859)

Unified Diff: content/renderer/render_view_impl.cc

Issue 14985014: Introduce content::PageState (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add comments to the top of page_state.h Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 7f2172b76eafde1f96ae015c7bbe1a412344aa27..27dda967e316318cfbd812174f6361a0e4bff504 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -59,6 +59,7 @@
#include "content/public/renderer/content_renderer_client.h"
#include "content/public/renderer/context_menu_client.h"
#include "content/public/renderer/document_state.h"
+#include "content/public/renderer/history_item_serialization.h"
#include "content/public/renderer/navigation_state.h"
#include "content/public/renderer/password_form_conversion_utils.h"
#include "content/public/renderer/render_view_observer.h"
@@ -198,7 +199,6 @@
#include "webkit/appcache/web_application_cache_host_impl.h"
#include "webkit/base/file_path_string_conversions.h"
#include "webkit/dom_storage/dom_storage_types.h"
-#include "webkit/glue/glue_serialize.h"
#include "webkit/glue/webdropdata.h"
#include "webkit/glue/webkit_glue.h"
#include "webkit/glue/weburlresponse_extradata_impl.h"
@@ -1227,10 +1227,10 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) {
frame->reloadWithOverrideURL(params.url, true);
else
frame->reload(ignore_cache);
- } else if (!params.state.empty()) {
+ } else if (params.page_state.IsValid()) {
// We must know the page ID of the page we are navigating back to.
DCHECK_NE(params.page_id, -1);
- WebHistoryItem item = webkit_glue::HistoryItemFromString(params.state);
+ WebHistoryItem item = PageStateToHistoryItem(params.page_state);
if (!item.isNull()) {
// Ensure we didn't save the swapped out URL in UpdateState, since the
// browser should never be telling us to navigate to swappedout://.
@@ -1321,7 +1321,7 @@ bool RenderViewImpl::IsBackForwardToStaleEntry(
// Make sure this isn't a back/forward to an entry we have already cropped
// or replaced from our history, before the browser knew about it. If so,
// a new navigation has committed in the mean time, and we can ignore this.
- bool is_back_forward = !is_reload && !params.state.empty();
+ bool is_back_forward = !is_reload && params.page_state.IsValid();
// Note: if the history_list_length_ is 0 for a back/forward, we must be
// restoring from a previous session. We'll update our state in OnNavigate.
@@ -1682,13 +1682,12 @@ void RenderViewImpl::UpdateURL(WebFrame* frame) {
// Make navigation state a part of the FrameNavigate message so that commited
// entry had it at all times.
- const WebHistoryItem& item = frame->currentHistoryItem();
- if (!item.isNull()) {
- params.content_state = webkit_glue::HistoryItemToString(item);
- } else {
- params.content_state =
- webkit_glue::CreateHistoryStateForURL(GURL(request.url()));
+ WebHistoryItem item = frame->currentHistoryItem();
+ if (item.isNull()) {
+ item.initialize();
+ item.setURLString(request.url().spec().utf16());
brettw 2013/05/23 23:38:39 ugh, hopefully our refactoring can remove the need
}
+ params.page_state = HistoryItemToPageState(item);
if (!frame->parent()) {
// Top-level navigation.
@@ -1853,7 +1852,7 @@ void RenderViewImpl::SendUpdateState(const WebHistoryItem& item) {
return;
Send(new ViewHostMsg_UpdateState(
- routing_id_, page_id_, webkit_glue::HistoryItemToString(item)));
+ routing_id_, page_id_, HistoryItemToPageState(item)));
}
void RenderViewImpl::OpenURL(WebFrame* frame,
@@ -3300,7 +3299,7 @@ void RenderViewImpl::PopulateDocumentStateFromPending(
if (IsReload(params))
document_state->set_load_type(DocumentState::RELOAD);
- else if (!params.state.empty())
+ else if (params.page_state.IsValid())
document_state->set_load_type(DocumentState::HISTORY_LOAD);
else
document_state->set_load_type(DocumentState::NORMAL_LOAD);

Powered by Google App Engine
This is Rietveld 408576698