Fix CefURLRequest crash with failing HEAD requests (fixes issue #3226)

This commit is contained in:
Nicolas Dusart 2021-11-23 22:14:59 +00:00 committed by Marshall Greenblatt
parent 099901c122
commit 89c902b54d
1 changed files with 17 additions and 12 deletions

View File

@ -406,19 +406,24 @@ class CefBrowserURLRequest::Context
DCHECK(CalledOnValidThread()); DCHECK(CalledOnValidThread());
DCHECK_EQ(status_, UR_IO_PENDING); DCHECK_EQ(status_, UR_IO_PENDING);
response_->SetReadOnly(false);
response_->SetResponseHeaders(*headers);
response_->SetReadOnly(true);
// Match the previous behavior of sending download progress notifications
// for UR_FLAG_NO_DOWNLOAD_DATA requests but not HEAD requests.
if (request_->GetMethod().ToString() != "HEAD") {
download_data_size_ = headers->GetContentLength();
OnDownloadProgress(0);
}
cleanup_immediately_ = true; cleanup_immediately_ = true;
OnComplete(true);
if (headers) {
response_->SetReadOnly(false);
response_->SetResponseHeaders(*headers);
response_->SetReadOnly(true);
// Match the previous behavior of sending download progress notifications
// for UR_FLAG_NO_DOWNLOAD_DATA requests but not HEAD requests.
if (request_->GetMethod().ToString() != "HEAD") {
download_data_size_ = headers->GetContentLength();
OnDownloadProgress(0);
}
OnComplete(true);
} else {
OnComplete(false);
}
} }
void OnRedirect(const net::RedirectInfo& redirect_info, void OnRedirect(const net::RedirectInfo& redirect_info,