Index: content/child/web_url_loader_impl.cc |
diff --git a/content/child/web_url_loader_impl.cc b/content/child/web_url_loader_impl.cc |
index 9bc53f51824941ddce61fa3af27d9e1b1b1edf15..59e6dc90c8c7370e1c070b432f3fe5eecdd39158 100644 |
--- a/content/child/web_url_loader_impl.cc |
+++ b/content/child/web_url_loader_impl.cc |
@@ -715,29 +715,24 @@ void WebURLLoaderImpl::Context::OnReceivedResponse( |
stream_override_->response.encoded_data_length - |
initial_info.encoded_data_length; |
info = stream_override_->response; |
+ |
+ // Replay the redirects that happened during navigation. |
+ DCHECK_EQ(stream_override_->redirect_responses.size(), |
+ stream_override_->redirect_infos.size()); |
+ for (size_t i = 0; i < stream_override_->redirect_responses.size(); ++i) { |
+ bool result = OnReceivedRedirect(stream_override_->redirect_infos[i], |
+ stream_override_->redirect_responses[i]); |
+ if (!result) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ } |
} |
WebURLResponse response; |
GURL url(request_.url()); |
PopulateURLResponse(url, info, &response, request_.reportRawHeaders()); |
- if (stream_override_.get()) { |
- CHECK(IsBrowserSideNavigationEnabled()); |
- DCHECK(stream_override_->redirect_responses.size() == |
- stream_override_->redirects.size()); |
- for (size_t i = 0; i < stream_override_->redirects.size(); ++i) { |
- WebURLResponse previous_response; |
- // TODO(arthursonzogni) Once Devtool is supported by PlzNavigate, the |
- // |report_raw_header| argument must be checked. |
- WebURLLoaderImpl::PopulateURLResponse( |
- stream_override_->redirects[i], |
- stream_override_->redirect_responses[i], |
- &previous_response, |
- request_.reportRawHeaders()); |
- response.appendRedirectResponse(previous_response); |
- } |
- } |
nasko
2017/02/10 23:53:09
Just to make sure I understand, the reason we don'
clamy
2017/02/13 14:29:37
Precisely.
|
- |
bool show_raw_listing = false; |
if (info.mime_type == "text/vnd.chromium.ftp-dir") { |
if (url.query_piece() == "raw") { |
@@ -1204,6 +1199,10 @@ WebURLRequest WebURLLoaderImpl::PopulateURLRequestForRedirect( |
new_request.setHTTPMethod(WebString::fromUTF8(redirect_info.new_method)); |
if (redirect_info.new_method == old_method) |
new_request.setHTTPBody(request.httpBody()); |
+ |
+ new_request.setCheckForBrowserSideNavigation( |
+ request.checkForBrowserSideNavigation()); |
+ |
return new_request; |
} |