Commit 8f6c7797 authored by Yutaka Hirano's avatar Yutaka Hirano Committed by Commit Bot

[OOR-CORS] Support header modification on FollowRedirect

Bug: 736308
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I86bccc93b2e2050326d59c26a03d05a51ed1ae81
Reviewed-on: https://chromium-review.googlesource.com/1144807
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: default avatarChong Zhang <chongz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577107}
parent 724f3efe
......@@ -125,10 +125,6 @@ void CORSURLLoader::FollowRedirect(
const base::Optional<std::vector<std::string>>&
to_be_removed_request_headers,
const base::Optional<net::HttpRequestHeaders>& modified_request_headers) {
DCHECK(!to_be_removed_request_headers.has_value());
DCHECK(!modified_request_headers.has_value()) << "Redirect with modified "
"headers was not supported "
"yet. crbug.com/845683";
if (!network_loader_ || !is_waiting_follow_redirect_call_) {
HandleComplete(URLLoaderCompletionStatus(net::ERR_FAILED));
return;
......@@ -142,6 +138,13 @@ void CORSURLLoader::FollowRedirect(
return;
}
if (to_be_removed_request_headers) {
for (const auto& name : *to_be_removed_request_headers)
request_.headers.RemoveHeader(name);
}
if (modified_request_headers)
request_.headers.MergeFrom(*modified_request_headers);
request_.url = redirect_info_.new_url;
request_.method = redirect_info_.new_method;
request_.referrer = GURL(redirect_info_.new_referrer);
......@@ -161,7 +164,8 @@ void CORSURLLoader::FollowRedirect(
// in net/url_request/redirect_util.cc).
if ((original_fetch_cors_flag && !NeedsPreflight(request_)) ||
!fetch_cors_flag_) {
network_loader_->FollowRedirect(base::nullopt, base::nullopt);
network_loader_->FollowRedirect(to_be_removed_request_headers,
modified_request_headers);
return;
}
DCHECK_NE(request_.fetch_request_mode, mojom::FetchRequestMode::kNoCORS);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment