diff --git a/libcef/browser/net_service/proxy_url_loader_factory.cc b/libcef/browser/net_service/proxy_url_loader_factory.cc index 72aa8941b..131d3031e 100644 --- a/libcef/browser/net_service/proxy_url_loader_factory.cc +++ b/libcef/browser/net_service/proxy_url_loader_factory.cc @@ -229,6 +229,7 @@ class InterceptedRequest : public network::mojom::URLLoader, const uint32_t options_; bool input_stream_previously_failed_ = false; bool request_was_redirected_ = false; + int redirect_limit_ = net::URLRequest::kMaxRedirects; // To avoid sending multiple OnReceivedError callbacks. bool sent_error_callback_ = false; @@ -485,6 +486,11 @@ void InterceptedRequest::OnReceiveRedirect( needs_callback = true; } + if (--redirect_limit_ == 0) { + SendErrorAndCompleteImmediately(net::ERR_TOO_MANY_REDIRECTS); + return; + } + net::RedirectInfo new_redirect_info; // When we redirect via ContinueToHandleOverrideHeaders the |redirect_info|