Chromium Code Reviews| 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 { |