| 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 c65c33acf55ac32ca1daa59c1890fdb60b080b21..c011b4361e8b47be6c60d274e871b89f988637ed 100644
|
| --- a/net/url_request/url_request_http_job.cc
|
| +++ b/net/url_request/url_request_http_job.cc
|
| @@ -39,6 +39,7 @@
|
| #include "net/http/http_transaction_factory.h"
|
| #include "net/http/http_util.h"
|
| #include "net/url_request/fraudulent_certificate_reporter.h"
|
| +#include "net/url_request/http_user_agent_settings.h"
|
| #include "net/url_request/url_request.h"
|
| #include "net/url_request/url_request_context.h"
|
| #include "net/url_request/url_request_error_job.h"
|
| @@ -211,12 +212,16 @@ URLRequestJob* URLRequestHttpJob::Factory(URLRequest* request,
|
| GURL redirect_url;
|
| if (request->GetHSTSRedirect(&redirect_url))
|
| return new URLRequestRedirectJob(request, network_delegate, redirect_url);
|
| - return new URLRequestHttpJob(request, network_delegate);
|
| + return new URLRequestHttpJob(request,
|
| + network_delegate,
|
| + request->context()->http_user_agent_settings());
|
| }
|
|
|
|
|
| -URLRequestHttpJob::URLRequestHttpJob(URLRequest* request,
|
| - NetworkDelegate* network_delegate)
|
| +URLRequestHttpJob::URLRequestHttpJob(
|
| + URLRequest* request,
|
| + NetworkDelegate* network_delegate,
|
| + const HttpUserAgentSettings* http_user_agent_settings)
|
| : URLRequestJob(request, network_delegate),
|
| response_info_(NULL),
|
| response_cookies_save_index_(0),
|
| @@ -248,7 +253,8 @@ URLRequestHttpJob::URLRequestHttpJob(URLRequest* request,
|
| base::Bind(&URLRequestHttpJob::OnHeadersReceivedCallback,
|
| base::Unretained(this)))),
|
| awaiting_callback_(false),
|
| - http_transaction_delegate_(new HttpTransactionDelegateImpl(request)) {
|
| + http_transaction_delegate_(new HttpTransactionDelegateImpl(request)),
|
| + http_user_agent_settings_(http_user_agent_settings) {
|
| URLRequestThrottlerManager* manager = request->context()->throttler_manager();
|
| if (manager)
|
| throttling_entry_ = manager->RegisterRequestUrl(request->url());
|
| @@ -471,18 +477,22 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
| }
|
| }
|
|
|
| - const URLRequestContext* context = request_->context();
|
| - // Only add default Accept-Language and Accept-Charset if the request
|
| - // didn't have them specified.
|
| - if (!context->accept_language().empty()) {
|
| - request_info_.extra_headers.SetHeaderIfMissing(
|
| - HttpRequestHeaders::kAcceptLanguage,
|
| - context->accept_language());
|
| - }
|
| - if (!context->accept_charset().empty()) {
|
| - request_info_.extra_headers.SetHeaderIfMissing(
|
| - HttpRequestHeaders::kAcceptCharset,
|
| - context->accept_charset());
|
| + if (http_user_agent_settings_) {
|
| + // Only add default Accept-Language and Accept-Charset if the request
|
| + // didn't have them specified.
|
| + std::string accept_language =
|
| + http_user_agent_settings_->GetAcceptLanguage();
|
| + if (!accept_language.empty()) {
|
| + request_info_.extra_headers.SetHeaderIfMissing(
|
| + HttpRequestHeaders::kAcceptLanguage,
|
| + accept_language);
|
| + }
|
| + std::string accept_charset = http_user_agent_settings_->GetAcceptCharset();
|
| + if (!accept_charset.empty()) {
|
| + request_info_.extra_headers.SetHeaderIfMissing(
|
| + HttpRequestHeaders::kAcceptCharset,
|
| + accept_charset);
|
| + }
|
| }
|
| }
|
|
|
| @@ -921,7 +931,9 @@ void URLRequestHttpJob::Start() {
|
|
|
| request_info_.extra_headers.SetHeaderIfMissing(
|
| HttpRequestHeaders::kUserAgent,
|
| - request_->context()->GetUserAgent(request_->url()));
|
| + http_user_agent_settings_ ?
|
| + http_user_agent_settings_->GetUserAgent(request_->url()) :
|
| + EmptyString());
|
|
|
| AddExtraHeaders();
|
| AddCookieHeaderAndStart();
|
|
|