Index: net/url_request/url_request_http_job.cc |
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc |
index 4b7d4e0fae5a0f7290857d62c5237c44790b7e47..2afc7e8f3b35bdbbe733aca3816589a6a5e8c34d 100644 |
--- a/net/url_request/url_request_http_job.cc |
+++ b/net/url_request/url_request_http_job.cc |
@@ -34,6 +34,7 @@ |
#include "net/http/http_transaction.h" |
#include "net/http/http_transaction_factory.h" |
#include "net/http/http_util.h" |
+#include "net/proxy/proxy_info.h" |
#include "net/ssl/ssl_cert_request_info.h" |
#include "net/ssl/ssl_config_service.h" |
#include "net/url_request/fraudulent_certificate_reporter.h" |
@@ -286,6 +287,18 @@ void URLRequestHttpJob::Kill() { |
URLRequestJob::Kill(); |
} |
+void URLRequestHttpJob::NotifyBeforeSendProxyHeadersCallback( |
+ const ProxyInfo* proxy_info) { |
+ DCHECK(proxy_info); |
+ DCHECK_NE(URLRequestStatus::CANCELED, GetStatus().status()); |
+ if (network_delegate()) { |
+ network_delegate()->NotifyBeforeSendProxyHeaders( |
+ request_, |
+ proxy_info, |
+ &request_info_.extra_headers); |
+ } |
+} |
+ |
void URLRequestHttpJob::NotifyHeadersComplete() { |
DCHECK(!response_info_); |
@@ -430,6 +443,9 @@ void URLRequestHttpJob::StartTransactionInternal() { |
transaction_->SetBeforeNetworkStartCallback( |
base::Bind(&URLRequestHttpJob::NotifyBeforeNetworkStart, |
base::Unretained(this))); |
+ transaction_->SetBeforeProxyHeadersSentCallback( |
+ base::Bind(&URLRequestHttpJob::NotifyBeforeSendProxyHeadersCallback, |
+ base::Unretained(this))); |
if (!throttling_entry_.get() || |
!throttling_entry_->ShouldRejectRequest(*request_)) { |