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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 979443002: PlzNavigate: send history params at commit time to the renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 1e3667ff83565f31db7f86e44e961680febabb36..76826ec6765827289f4200e441980ea51d720f63 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -1030,23 +1030,16 @@ void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) {
bool is_reload =
RenderViewImpl::IsReload(params.common_params.navigation_type);
- bool is_history_navigation = params.commit_params.page_state.IsValid();
+ bool is_history_navigation = params.history_params.page_state.IsValid();
WebURLRequest::CachePolicy cache_policy =
WebURLRequest::UseProtocolCachePolicy;
if (!RenderFrameImpl::PrepareRenderViewForNavigation(
- params.common_params.url, true, is_history_navigation,
- params.current_history_list_offset, &is_reload, &cache_policy)) {
+ params.common_params.url, true, is_history_navigation,
+ params.history_params, &is_reload, &cache_policy)) {
Send(new FrameHostMsg_DidDropNavigation(routing_id_));
return;
}
- render_view_->history_list_offset_ = params.current_history_list_offset;
clamy 2015/03/03 18:02:08 This was moved to PrepareRenderViewForNavigation,
- render_view_->history_list_length_ = params.current_history_list_length;
- if (params.should_clear_history_list) {
- CHECK_EQ(-1, render_view_->history_list_offset_);
- CHECK_EQ(0, render_view_->history_list_length_);
- }
-
GetContentClient()->SetActiveURL(params.common_params.url);
WebFrame* frame = frame_;
@@ -1084,9 +1077,9 @@ void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) {
frame->reload(ignore_cache);
} else if (is_history_navigation) {
// We must know the page ID of the page we are navigating back to.
- DCHECK_NE(params.page_id, -1);
+ DCHECK_NE(params.history_params.page_id, -1);
scoped_ptr<HistoryEntry> entry =
- PageStateToHistoryEntry(params.commit_params.page_state);
+ PageStateToHistoryEntry(params.history_params.page_state);
if (entry) {
// Ensure we didn't save the swapped out URL in UpdateState, since the
// browser should never be telling us to navigate to swappedout://.
@@ -1129,7 +1122,7 @@ void RenderFrameImpl::OnNavigate(const FrameMsg_Navigate_Params& params) {
}
// A session history navigation should have been accompanied by state.
- CHECK_EQ(params.page_id, -1);
+ CHECK_EQ(params.history_params.page_id, -1);
// Record this before starting the load, we need a lower bound of this time
// to sanitize the navigationStart override set below.
@@ -2412,11 +2405,13 @@ void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame,
if (!navigation_state->is_content_initiated()) {
render_view_->pending_navigation_params_.reset(
new FrameMsg_Navigate_Params);
- render_view_->pending_navigation_params_->page_id =
+ render_view_->pending_navigation_params_->history_params.page_id =
Charlie Reis 2015/03/05 05:01:04 nit: This is getting a bit unwieldy. Can you save
clamy 2015/03/05 13:15:00 Done.
navigation_state->pending_page_id();
- render_view_->pending_navigation_params_->pending_history_list_offset =
+ render_view_->pending_navigation_params_->history_params
+ .pending_history_list_offset =
navigation_state->pending_history_list_offset();
- render_view_->pending_navigation_params_->should_clear_history_list =
+ render_view_->pending_navigation_params_->history_params
+ .should_clear_history_list =
navigation_state->history_list_was_cleared();
render_view_->pending_navigation_params_->common_params.transition =
navigation_state->transition_type();
@@ -3854,17 +3849,17 @@ void RenderFrameImpl::OnCommitNavigation(
const ResourceResponseHead& response,
const GURL& stream_url,
const CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params) {
+ const CommitNavigationParams& commit_params,
+ const HistoryNavigationParams& history_params) {
CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableBrowserSideNavigation));
bool is_reload = false;
- bool is_history_navigation = commit_params.page_state.IsValid();
+ bool is_history_navigation = history_params.page_state.IsValid();
WebURLRequest::CachePolicy cache_policy =
WebURLRequest::UseProtocolCachePolicy;
if (!RenderFrameImpl::PrepareRenderViewForNavigation(
- common_params.url, false /* check_for_stale_navigation */,
- is_history_navigation, -1 /* current_history_list_offset; TODO(clamy)*/,
- &is_reload, &cache_policy)) {
+ common_params.url, true, is_history_navigation, history_params,
+ &is_reload, &cache_policy)) {
return;
}
@@ -4294,7 +4289,7 @@ bool RenderFrameImpl::PrepareRenderViewForNavigation(
const GURL& url,
bool check_for_stale_navigation,
bool is_history_navigation,
Avi (use Gerrit) 2015/03/04 21:23:12 This parameter is no longer needed, as you're pass
Charlie Reis 2015/03/05 05:01:04 You meant check_for_stale_navigation, right?
Avi (use Gerrit) 2015/03/05 05:05:55 D'oh. Yes, I meant to tag the previous line.
clamy 2015/03/05 13:15:00 Done.
- int current_history_list_offset,
+ const HistoryNavigationParams& history_params,
bool* is_reload,
WebURLRequest::CachePolicy* cache_policy) {
MaybeHandleDebugURL(url);
@@ -4308,9 +4303,10 @@ bool RenderFrameImpl::PrepareRenderViewForNavigation(
// didn't know about), ignore it. Only check if swapped in because if the
// frame is swapped out, it won't commit before asking the browser.
// TODO(clamy): remove check_for_stale_navigation
Avi (use Gerrit) 2015/03/04 21:23:12 Do this TODO (and remove it).
clamy 2015/03/05 13:15:00 Done.
- if (check_for_stale_navigation &&
- !render_view_->is_swapped_out() && is_history_navigation &&
- render_view_->history_list_offset_ != current_history_list_offset) {
+ if (check_for_stale_navigation && !render_view_->is_swapped_out() &&
+ is_history_navigation &&
+ render_view_->history_list_offset_ !=
+ history_params.current_history_list_offset) {
return false;
}
@@ -4337,6 +4333,16 @@ bool RenderFrameImpl::PrepareRenderViewForNavigation(
render_view_->SetSwappedOut(false);
is_swapped_out_ = false;
+
+ render_view_->history_list_offset_ =
Charlie Reis 2015/03/05 05:01:04 Putting it here isn't equivalent to where it was b
clamy 2015/03/05 13:15:00 I moved it below the last return to false and adde
+ history_params.current_history_list_offset;
+ render_view_->history_list_length_ =
+ history_params.current_history_list_length;
+ if (history_params.should_clear_history_list) {
+ CHECK_EQ(-1, render_view_->history_list_offset_);
+ CHECK_EQ(0, render_view_->history_list_length_);
+ }
+
return true;
}
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698