Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 4d73c7cfc4e4d3dda6cc03649c0e6f190520248e..5d9559f1ba87401487d58df4eebc391b8e225376 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2891,7 +2891,8 @@ void RenderFrameImpl::didCreateDataSource(blink::WebLocalFrame* frame, |
// The rest of RenderView assumes that a WebDataSource will always have a |
// non-null NavigationState. |
- UpdateNavigationState(document_state); |
+ UpdateNavigationState(document_state, |
+ false /* was_navigate_within_same_page */); |
// DocumentState::referred_by_prefetcher_ is true if we are |
// navigating from a page that used prefetching using a link on that |
@@ -3476,7 +3477,8 @@ void RenderFrameImpl::didNavigateWithinPage(blink::WebLocalFrame* frame, |
// UpdateNavigationState conveniently takes care of this for us. |
DocumentState* document_state = |
DocumentState::FromDataSource(frame->dataSource()); |
- UpdateNavigationState(document_state); |
+ UpdateNavigationState(document_state, |
+ true /* was_navigate_within_same_page */); |
static_cast<NavigationStateImpl*>(document_state->navigation_state()) |
->set_was_within_same_page(true); |
@@ -5896,7 +5898,9 @@ NavigationState* RenderFrameImpl::CreateNavigationStateFromPending() { |
return NavigationStateImpl::CreateContentInitiated(); |
} |
-void RenderFrameImpl::UpdateNavigationState(DocumentState* document_state) { |
+void RenderFrameImpl::UpdateNavigationState( |
+ DocumentState* document_state, |
+ bool was_navigate_within_same_page) { |
Charlie Reis
2016/03/16 19:30:34
nit: was_within_same_page (to match NavigationStat
|
if (pending_navigation_params_) { |
// If this is a browser-initiated load that doesn't override |
// navigation_start, set it here. |
@@ -5908,12 +5912,14 @@ void RenderFrameImpl::UpdateNavigationState(DocumentState* document_state) { |
const CommonNavigationParams& common_params = |
pending_navigation_params_->common_params; |
- bool load_data = !common_params.base_url_for_data_url.is_empty() && |
- !common_params.history_url_for_data_url.is_empty() && |
- common_params.url.SchemeIs(url::kDataScheme); |
- document_state->set_was_load_data_with_base_url_request(load_data); |
- if (load_data) |
- document_state->set_data_url(common_params.url); |
+ if (!was_navigate_within_same_page) { |
Charlie Reis
2016/03/16 19:30:34
This needs a comment about why in-page navigations
|
+ bool load_data = !common_params.base_url_for_data_url.is_empty() && |
+ !common_params.history_url_for_data_url.is_empty() && |
+ common_params.url.SchemeIs(url::kDataScheme); |
+ document_state->set_was_load_data_with_base_url_request(load_data); |
+ if (load_data) |
+ document_state->set_data_url(common_params.url); |
+ } |
pending_navigation_params_.reset(); |
} else { |