Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: components/cronet/android/url_request_context_adapter.cc

Issue 1389213003: [Cronet] Use Https for Quic Test Server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ryancl
Patch Set: Use mock verifier and fix tests Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/cronet/android/url_request_context_adapter.h" 5 #include "components/cronet/android/url_request_context_adapter.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
11 #include "base/files/scoped_file.h" 11 #include "base/files/scoped_file.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/single_thread_task_runner.h" 13 #include "base/single_thread_task_runner.h"
14 #include "base/time/time.h" 14 #include "base/time/time.h"
15 #include "components/cronet/url_request_context_config.h" 15 #include "components/cronet/url_request_context_config.h"
16 #include "net/android/network_change_notifier_factory_android.h" 16 #include "net/android/network_change_notifier_factory_android.h"
17 #include "net/base/net_errors.h" 17 #include "net/base/net_errors.h"
18 #include "net/base/net_util.h" 18 #include "net/base/net_util.h"
19 #include "net/base/network_change_notifier.h" 19 #include "net/base/network_change_notifier.h"
20 #include "net/base/network_delegate_impl.h" 20 #include "net/base/network_delegate_impl.h"
21 #include "net/cert/cert_verifier.h"
22 #include "net/http/http_auth_handler_factory.h" 21 #include "net/http/http_auth_handler_factory.h"
23 #include "net/http/http_network_layer.h" 22 #include "net/http/http_network_layer.h"
24 #include "net/http/http_server_properties.h" 23 #include "net/http/http_server_properties.h"
25 #include "net/log/write_to_file_net_log_observer.h" 24 #include "net/log/write_to_file_net_log_observer.h"
26 #include "net/proxy/proxy_service.h" 25 #include "net/proxy/proxy_service.h"
27 #include "net/sdch/sdch_owner.h" 26 #include "net/sdch/sdch_owner.h"
28 #include "net/ssl/ssl_config_service_defaults.h" 27 #include "net/ssl/ssl_config_service_defaults.h"
29 #include "net/url_request/static_http_user_agent_settings.h" 28 #include "net/url_request/static_http_user_agent_settings.h"
30 #include "net/url_request/url_request_context_builder.h" 29 #include "net/url_request/url_request_context_builder.h"
31 #include "net/url_request/url_request_context_storage.h" 30 #include "net/url_request/url_request_context_storage.h"
32 #include "net/url_request/url_request_job_factory_impl.h" 31 #include "net/url_request/url_request_job_factory_impl.h"
33 32
33 #if defined(CRONET_TEST)
34 #include "net/base/test_data_directory.h"
35 #include "net/cert/cert_verifier.h"
36 #include "net/cert/cert_verify_result.h"
37 #include "net/cert/mock_cert_verifier.h"
38 #include "net/test/cert_test_util.h"
39 #endif
40
34 namespace { 41 namespace {
35 42
36 class BasicNetworkDelegate : public net::NetworkDelegateImpl { 43 class BasicNetworkDelegate : public net::NetworkDelegateImpl {
37 public: 44 public:
38 BasicNetworkDelegate() {} 45 BasicNetworkDelegate() {}
39 ~BasicNetworkDelegate() override {} 46 ~BasicNetworkDelegate() override {}
40 47
41 private: 48 private:
42 // net::NetworkDelegate implementation. 49 // net::NetworkDelegate implementation.
43 int OnBeforeURLRequest(net::URLRequest* request, 50 int OnBeforeURLRequest(net::URLRequest* request,
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 void URLRequestContextAdapter::InitRequestContextOnNetworkThread() { 144 void URLRequestContextAdapter::InitRequestContextOnNetworkThread() {
138 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread()); 145 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
139 DCHECK(config_); 146 DCHECK(config_);
140 // TODO(mmenke): Add method to have the builder enable SPDY. 147 // TODO(mmenke): Add method to have the builder enable SPDY.
141 net::URLRequestContextBuilder context_builder; 148 net::URLRequestContextBuilder context_builder;
142 context_builder.set_network_delegate( 149 context_builder.set_network_delegate(
143 make_scoped_ptr(new BasicNetworkDelegate())); 150 make_scoped_ptr(new BasicNetworkDelegate()));
144 context_builder.set_proxy_config_service(proxy_config_service_.Pass()); 151 context_builder.set_proxy_config_service(proxy_config_service_.Pass());
145 config_->ConfigureURLRequestContextBuilder(&context_builder); 152 config_->ConfigureURLRequestContextBuilder(&context_builder);
146 153
154 #if defined(CRONET_TEST)
155 ConfigureURLRequestContextBuilderForTesting(&context_builder);
156 #endif
157
147 context_ = context_builder.Build().Pass(); 158 context_ = context_builder.Build().Pass();
148 159
149 if (config_->enable_sdch) { 160 if (config_->enable_sdch) {
150 DCHECK(context_->sdch_manager()); 161 DCHECK(context_->sdch_manager());
151 sdch_owner_.reset( 162 sdch_owner_.reset(
152 new net::SdchOwner(context_->sdch_manager(), context_.get())); 163 new net::SdchOwner(context_->sdch_manager(), context_.get()));
153 } 164 }
154 165
155 // Currently (circa M39) enabling QUIC requires setting probability threshold. 166 // Currently (circa M39) enabling QUIC requires setting probability threshold.
156 if (config_->enable_quic) { 167 if (config_->enable_quic) {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 } 310 }
300 311
301 void URLRequestContextAdapter::StopNetLogHelper() { 312 void URLRequestContextAdapter::StopNetLogHelper() {
302 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread()); 313 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
303 if (write_to_file_observer_) { 314 if (write_to_file_observer_) {
304 write_to_file_observer_->StopObserving(context_.get()); 315 write_to_file_observer_->StopObserving(context_.get());
305 write_to_file_observer_.reset(); 316 write_to_file_observer_.reset();
306 } 317 }
307 } 318 }
308 319
320 #if defined(CRONET_TEST)
321 void URLRequestContextAdapter::ConfigureURLRequestContextBuilderForTesting(
322 net::URLRequestContextBuilder* builder) {
323 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
324 DCHECK(!mock_cert_verifier_);
325
326 if (config_->mock_certs_for_testing.empty())
327 return;
328
329 base::StringTokenizer tokens(config_->mock_certs_for_testing, ",");
330 mock_cert_verifier_.reset(new net::MockCertVerifier());
331 while (tokens.GetNext()) {
332 net::CertVerifyResult verify_result;
333 verify_result.verified_cert =
334 net::ImportCertFromFile(net::GetTestCertsDirectory(), tokens.token());
335 mock_cert_verifier_->AddResultForCert(verify_result.verified_cert.get(),
336 verify_result, net::OK);
337 }
338 builder->set_cert_verifier(mock_cert_verifier_.get());
339 }
340 #endif
341
309 void NetLogObserver::OnAddEntry(const net::NetLog::Entry& entry) { 342 void NetLogObserver::OnAddEntry(const net::NetLog::Entry& entry) {
310 VLOG(2) << "Net log entry: type=" << entry.type() 343 VLOG(2) << "Net log entry: type=" << entry.type()
311 << ", source=" << entry.source().type << ", phase=" << entry.phase(); 344 << ", source=" << entry.source().type << ", phase=" << entry.phase();
312 } 345 }
313 346
314 } // namespace cronet 347 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698