| 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 43c05870cbd59f597380f317a318429715bd7181..ae4c3365209b6dad0bcc4a656a5197d8b48dc822 100644
|
| --- a/content/child/web_url_loader_impl.cc
|
| +++ b/content/child/web_url_loader_impl.cc
|
| @@ -329,6 +329,9 @@ void SetSecurityStyleAndDetails(const GURL& url,
|
|
|
| } // namespace
|
|
|
| +StreamOverrideParameters::StreamOverrideParameters() {}
|
| +StreamOverrideParameters::~StreamOverrideParameters() {}
|
| +
|
| // This inner class exists since the WebURLLoader may be deleted while inside a
|
| // call to WebURLLoaderClient. Refcounting is to keep the context from being
|
| // deleted if it may have work to do after calling into the client.
|
| @@ -640,8 +643,7 @@ bool WebURLLoaderImpl::Context::OnReceivedRedirect(
|
| : blink::WebURLRequest::SkipServiceWorker::All,
|
| &new_request);
|
|
|
| - client_->willFollowRedirect(loader_, new_request, response,
|
| - info.encoded_data_length);
|
| + client_->willFollowRedirect(loader_, new_request, response);
|
| request_ = new_request;
|
|
|
| // Only follow the redirect if WebKit left the URL unmodified.
|
| @@ -682,6 +684,23 @@ void WebURLLoaderImpl::Context::OnReceivedResponse(
|
| PopulateURLResponse(request_.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);
|
| + }
|
| + }
|
| +
|
| bool show_raw_listing = (GURL(request_.url()).query() == "raw");
|
|
|
| if (info.mime_type == "text/vnd.chromium.ftp-dir") {
|
| @@ -1016,6 +1035,7 @@ void WebURLLoaderImpl::PopulateURLResponse(const GURL& url,
|
| info.cors_exposed_header_names.end(), cors_exposed_header_names.begin(),
|
| [](const std::string& h) { return blink::WebString::fromLatin1(h); });
|
| response->setCorsExposedHeaderNames(cors_exposed_header_names);
|
| + response->addToEncodedDataLength(info.encoded_data_length);
|
|
|
| SetSecurityStyleAndDetails(url, info, response, report_security_info);
|
|
|
|
|