Chromium Code Reviews| Index: components/cronet/url_request_context_config.cc |
| diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc |
| index da924532bbbf241de19b7963b43cfca74925bc54..2b1af8465746b2f28839ae240c5e3a09c715373e 100644 |
| --- a/components/cronet/url_request_context_config.cc |
| +++ b/components/cronet/url_request_context_config.cc |
| @@ -4,14 +4,32 @@ |
| #include "components/cronet/url_request_context_config.h" |
| +#include "base/basictypes.h" |
| #include "base/json/json_reader.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "base/strings/string_number_conversions.h" |
| +#include "base/strings/string_piece.h" |
| #include "base/values.h" |
| +#include "net/cert/cert_verifier.h" |
| #include "net/quic/quic_protocol.h" |
| #include "net/quic/quic_utils.h" |
| #include "net/url_request/url_request_context_builder.h" |
| namespace cronet { |
| +namespace { |
| + |
| +bool GetMockCertVerifierFromString( |
| + const base::StringPiece& mock_cert_verifier_string, |
| + scoped_ptr<net::CertVerifier>* result) { |
|
pauljensen
2015/10/20 13:53:58
passing pointers to scoped_ptr's is strictly forba
xunjieli
2015/10/20 15:23:11
Done.
|
| + int64 val; |
| + bool success = base::StringToInt64(mock_cert_verifier_string, &val); |
| + *result = make_scoped_ptr(reinterpret_cast<net::CertVerifier*>(val)); |
| + return success; |
| +} |
| + |
| +} // namespace |
| + |
| #define DEFINE_CONTEXT_CONFIG(x) const char REQUEST_CONTEXT_CONFIG_##x[] = #x; |
| #include "components/cronet/url_request_context_config_list.h" |
| #undef DEFINE_CONTEXT_CONFIG |
| @@ -35,8 +53,8 @@ void URLRequestContextConfig::QuicHint::RegisterJSONConverter( |
| &URLRequestContextConfig::QuicHint::alternate_port); |
| } |
| -URLRequestContextConfig::URLRequestContextConfig() { |
| -} |
| +URLRequestContextConfig::URLRequestContextConfig() |
| + : mock_cert_verifier(nullptr) {} |
|
pauljensen
2015/10/20 13:53:58
unnecessary, remove
xunjieli
2015/10/20 15:23:11
Done.
|
| URLRequestContextConfig::~URLRequestContextConfig() { |
| } |
| @@ -79,7 +97,8 @@ void URLRequestContextConfig::ConfigureURLRequestContextBuilder( |
| context_builder->set_quic_connection_options( |
| net::QuicUtils::ParseQuicConnectionOptions(quic_connection_options)); |
| context_builder->set_sdch_enabled(enable_sdch); |
| - |
| + if (mock_cert_verifier) |
| + context_builder->SetCertVerifier(mock_cert_verifier.Pass()); |
| } |
| // static |
| @@ -118,6 +137,12 @@ void URLRequestContextConfig::RegisterJSONConverter( |
| converter->RegisterStringField( |
| REQUEST_CONTEXT_CONFIG_DATA_REDUCTION_PROXY_KEY, |
| &URLRequestContextConfig::data_reduction_proxy_key); |
| + |
| + // For Testing. |
| + converter->RegisterCustomField<scoped_ptr<net::CertVerifier>>( |
| + REQUEST_CONTEXT_CONFIG_MOCK_CERT_VERIFIER, |
| + &URLRequestContextConfig::mock_cert_verifier, |
| + &GetMockCertVerifierFromString); |
| } |
| } // namespace cronet |