| Index: net/url_request/http_protocol_handler.cc
|
| diff --git a/net/url_request/http_protocol_handler.cc b/net/url_request/http_protocol_handler.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..53141ea81ca37025740b562565a16d97cccc3cd4
|
| --- /dev/null
|
| +++ b/net/url_request/http_protocol_handler.cc
|
| @@ -0,0 +1,59 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "net/url_request/http_protocol_handler.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "net/base/net_errors.h"
|
| +#include "net/url_request/url_request.h"
|
| +#include "net/url_request/url_request_error_job.h"
|
| +#include "net/url_request/url_request_http_job.h"
|
| +#include "net/url_request/url_request_redirect_job.h"
|
| +
|
| +namespace net {
|
| +
|
| +HttpProtocolHandler::HttpProtocolHandler(
|
| + HttpTransactionFactory* http_transaction_factory,
|
| + NetworkDelegate* network_delegate,
|
| + URLRequestThrottlerManager* throttler_manager,
|
| + const std::string& accept_language,
|
| + const std::string& accept_charset,
|
| + CookieStore* cookie_store,
|
| + FraudulentCertificateReporter* fraudulent_certificate_reporter,
|
| + SSLConfigService* ssl_config_service,
|
| + TransportSecurityState* transport_security_state)
|
| + : http_transaction_factory_(http_transaction_factory),
|
| + network_delegate_(network_delegate),
|
| + throttler_manager_(throttler_manager),
|
| + accept_language_(accept_language),
|
| + accept_charset_(accept_charset),
|
| + cookie_store_(cookie_store),
|
| + fraudulent_certificate_reporter_(fraudulent_certificate_reporter),
|
| + ssl_config_service_(ssl_config_service),
|
| + transport_security_state_(transport_security_state) {
|
| +}
|
| +
|
| +URLRequestJob* HttpProtocolHandler::MaybeCreateJob(
|
| + URLRequest* request) const {
|
| + if (!http_transaction_factory_) {
|
| + NOTREACHED() << "requires a valid context";
|
| + return new URLRequestErrorJob(request, ERR_INVALID_ARGUMENT);
|
| + }
|
| +
|
| + GURL redirect_url;
|
| + if (request->GetHSTSRedirect(&redirect_url))
|
| + return new URLRequestRedirectJob(request, redirect_url);
|
| + return new URLRequestHttpJob(request,
|
| + http_transaction_factory_,
|
| + network_delegate_,
|
| + throttler_manager_,
|
| + accept_language_,
|
| + accept_charset_,
|
| + cookie_store_,
|
| + fraudulent_certificate_reporter_,
|
| + ssl_config_service_,
|
| + transport_security_state_);
|
| +}
|
| +
|
| +} // namespace net
|
|
|