Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index be46fd8b8128c5eb43ff8e6d8c75d1861c037bce..081967f33e88970ebdfb72183eb06aa0e3a0e2b8 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -552,7 +552,8 @@ bool IsTopLevelNavigation(WebFrame* frame) { |
WebURLRequest CreateURLRequestForNavigation( |
const CommonNavigationParams& common_params, |
std::unique_ptr<StreamOverrideParameters> stream_override, |
- bool is_view_source_mode_enabled) { |
+ bool is_view_source_mode_enabled, |
+ bool is_same_document_navigation) { |
WebURLRequest request(common_params.url); |
if (is_view_source_mode_enabled) |
request.setCachePolicy(WebCachePolicy::ReturnCacheDataElseLoad); |
@@ -570,6 +571,8 @@ WebURLRequest CreateURLRequestForNavigation( |
} |
} |
+ request.setIsSameDocumentNavigation(is_same_document_navigation); |
+ |
request.setLoFiState( |
static_cast<WebURLRequest::LoFiState>(common_params.lofi_state)); |
@@ -5133,7 +5136,8 @@ void RenderFrameImpl::OnFailedNavigation( |
CreateWebURLError(common_params.url, has_stale_copy_in_cache, error_code); |
WebURLRequest failed_request = CreateURLRequestForNavigation( |
common_params, std::unique_ptr<StreamOverrideParameters>(), |
- frame_->isViewSourceModeEnabled()); |
+ frame_->isViewSourceModeEnabled(), |
+ false); // is_same_document_navigation |
if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { |
// The browser expects this frame to be loading an error page. Inform it |
@@ -5819,9 +5823,14 @@ void RenderFrameImpl::NavigateInternal( |
blink::WebHistoryDifferentDocumentLoad; |
bool should_load_request = false; |
WebHistoryItem item_for_history_navigation; |
- WebURLRequest request = |
- CreateURLRequestForNavigation(common_params, std::move(stream_params), |
- frame_->isViewSourceModeEnabled()); |
+ |
+ bool is_same_page = request_params.is_same_document_fragment_change || |
+ request_params.is_same_document_history_load; |
+ |
+ WebURLRequest request = CreateURLRequestForNavigation( |
+ common_params, std::move(stream_params), |
+ frame_->isViewSourceModeEnabled(), |
+ is_same_page); |
request.setFrameType(IsTopLevelNavigation(frame_) |
? blink::WebURLRequest::FrameTypeTopLevel |
: blink::WebURLRequest::FrameTypeNested); |