Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(816)

Unified Diff: content/child/web_url_loader_impl.cc

Issue 2316573002: PlzNavigate: Support ResourceTiming API (Closed)
Patch Set: Addressed comments (clamy@) Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 17da0e103519d484dec9df5c4376e17e589aa2f0..3059d6ac549842c61d54a864712218ff053cb762 100644
--- a/content/child/web_url_loader_impl.cc
+++ b/content/child/web_url_loader_impl.cc
@@ -294,6 +294,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.
@@ -598,8 +601,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.
@@ -640,6 +642,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") {
@@ -978,6 +997,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);

Powered by Google App Engine
This is Rietveld 408576698