OLD | NEW |
---|---|
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/cronet_url_request_context_adapter.h" | 5 #include "components/cronet/android/cronet_url_request_context_adapter.h" |
6 | 6 |
7 #include <limits.h> | 7 #include <limits.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 20 matching lines...) Expand all Loading... | |
31 #include "base/metrics/histogram_macros.h" | 31 #include "base/metrics/histogram_macros.h" |
32 #include "base/metrics/statistics_recorder.h" | 32 #include "base/metrics/statistics_recorder.h" |
33 #include "base/single_thread_task_runner.h" | 33 #include "base/single_thread_task_runner.h" |
34 #include "base/threading/thread_task_runner_handle.h" | 34 #include "base/threading/thread_task_runner_handle.h" |
35 #include "base/time/time.h" | 35 #include "base/time/time.h" |
36 #include "base/values.h" | 36 #include "base/values.h" |
37 #include "components/cronet/android/cert/cert_verifier_cache_serializer.h" | 37 #include "components/cronet/android/cert/cert_verifier_cache_serializer.h" |
38 #include "components/cronet/android/cert/proto/cert_verification.pb.h" | 38 #include "components/cronet/android/cert/proto/cert_verification.pb.h" |
39 #include "components/cronet/android/cronet_library_loader.h" | 39 #include "components/cronet/android/cronet_library_loader.h" |
40 #include "components/cronet/histogram_manager.h" | 40 #include "components/cronet/histogram_manager.h" |
41 #include "components/cronet/host_cache_persistence_manager.h" | |
41 #include "components/cronet/url_request_context_config.h" | 42 #include "components/cronet/url_request_context_config.h" |
42 #include "components/prefs/pref_change_registrar.h" | 43 #include "components/prefs/pref_change_registrar.h" |
43 #include "components/prefs/pref_filter.h" | 44 #include "components/prefs/pref_filter.h" |
44 #include "components/prefs/pref_registry.h" | 45 #include "components/prefs/pref_registry.h" |
45 #include "components/prefs/pref_registry_simple.h" | 46 #include "components/prefs/pref_registry_simple.h" |
46 #include "components/prefs/pref_service.h" | 47 #include "components/prefs/pref_service.h" |
47 #include "components/prefs/pref_service_factory.h" | 48 #include "components/prefs/pref_service_factory.h" |
48 #include "jni/CronetUrlRequestContext_jni.h" | 49 #include "jni/CronetUrlRequestContext_jni.h" |
49 #include "net/base/load_flags.h" | 50 #include "net/base/load_flags.h" |
50 #include "net/base/logging_network_change_observer.h" | 51 #include "net/base/logging_network_change_observer.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
107 // so network change event are logged just once in the NetLog. | 108 // so network change event are logged just once in the NetLog. |
108 std::unique_ptr<net::LoggingNetworkChangeObserver> net_change_logger_; | 109 std::unique_ptr<net::LoggingNetworkChangeObserver> net_change_logger_; |
109 | 110 |
110 DISALLOW_COPY_AND_ASSIGN(NetLogWithNetworkChangeEvents); | 111 DISALLOW_COPY_AND_ASSIGN(NetLogWithNetworkChangeEvents); |
111 }; | 112 }; |
112 | 113 |
113 // Use a global NetLog instance. See crbug.com/486120. | 114 // Use a global NetLog instance. See crbug.com/486120. |
114 static base::LazyInstance<NetLogWithNetworkChangeEvents>::Leaky g_net_log = | 115 static base::LazyInstance<NetLogWithNetworkChangeEvents>::Leaky g_net_log = |
115 LAZY_INSTANCE_INITIALIZER; | 116 LAZY_INSTANCE_INITIALIZER; |
116 | 117 |
118 const char kHostCache[] = "net.host_cache"; | |
pauljensen
2017/06/26 16:37:17
Can we add a comment? and can we change name to in
mgersh
2017/06/26 23:21:44
Done, but the inconsistency bothered me so I chang
| |
117 const char kHttpServerProperties[] = "net.http_server_properties"; | 119 const char kHttpServerProperties[] = "net.http_server_properties"; |
118 const char kNetworkQualities[] = "net.network_qualities"; | 120 const char kNetworkQualities[] = "net.network_qualities"; |
119 // Current version of disk storage. | 121 // Current version of disk storage. |
120 const int32_t kStorageVersion = 1; | 122 const int32_t kStorageVersion = 1; |
121 // Version number used when the version of disk storage is unknown. | 123 // Version number used when the version of disk storage is unknown. |
122 const uint32_t kStorageVersionUnknown = 0; | 124 const uint32_t kStorageVersionUnknown = 0; |
123 // Name of preference directory. | 125 // Name of preference directory. |
124 const char kPrefsDirectoryName[] = "prefs"; | 126 const char kPrefsDirectoryName[] = "prefs"; |
125 // Name of preference file. | 127 // Name of preference file. |
126 const char kPrefsFileName[] = "local_prefs.json"; | 128 const char kPrefsFileName[] = "local_prefs.json"; |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
636 // Make sure storage directory has correct version. | 638 // Make sure storage directory has correct version. |
637 InitializeStorageDirectory(storage_path); | 639 InitializeStorageDirectory(storage_path); |
638 base::FilePath filepath = | 640 base::FilePath filepath = |
639 storage_path.Append(FILE_PATH_LITERAL(kPrefsDirectoryName)) | 641 storage_path.Append(FILE_PATH_LITERAL(kPrefsDirectoryName)) |
640 .Append(FILE_PATH_LITERAL(kPrefsFileName)); | 642 .Append(FILE_PATH_LITERAL(kPrefsFileName)); |
641 json_pref_store_ = | 643 json_pref_store_ = |
642 new JsonPrefStore(filepath, GetFileThread()->task_runner(), | 644 new JsonPrefStore(filepath, GetFileThread()->task_runner(), |
643 std::unique_ptr<PrefFilter>()); | 645 std::unique_ptr<PrefFilter>()); |
644 context_builder.SetFileTaskRunner(GetFileThread()->task_runner()); | 646 context_builder.SetFileTaskRunner(GetFileThread()->task_runner()); |
645 | 647 |
646 // Set up HttpServerPropertiesManager. | 648 // Register prefs and set up the PrefService. |
647 PrefServiceFactory factory; | 649 PrefServiceFactory factory; |
648 factory.set_user_prefs(json_pref_store_); | 650 factory.set_user_prefs(json_pref_store_); |
649 scoped_refptr<PrefRegistrySimple> registry(new PrefRegistrySimple()); | 651 scoped_refptr<PrefRegistrySimple> registry(new PrefRegistrySimple()); |
650 registry->RegisterDictionaryPref(kHttpServerProperties, | 652 registry->RegisterDictionaryPref(kHttpServerProperties, |
651 base::MakeUnique<base::DictionaryValue>()); | 653 base::MakeUnique<base::DictionaryValue>()); |
652 if (config->enable_network_quality_estimator) { | 654 if (config->enable_network_quality_estimator) { |
653 // Use lossy prefs to limit the overhead of reading/writing the prefs. | 655 // Use lossy prefs to limit the overhead of reading/writing the prefs. |
654 registry->RegisterDictionaryPref(kNetworkQualities, | 656 registry->RegisterDictionaryPref(kNetworkQualities, |
655 PrefRegistry::LOSSY_PREF); | 657 PrefRegistry::LOSSY_PREF); |
656 } | 658 } |
659 if (config->enable_host_cache_persistence) { | |
660 registry->RegisterListPref(kHostCache); | |
661 } | |
657 pref_service_ = factory.Create(registry.get()); | 662 pref_service_ = factory.Create(registry.get()); |
658 | 663 |
664 // Set up the HttpServerPropertiesManager. | |
659 std::unique_ptr<net::HttpServerPropertiesManager> | 665 std::unique_ptr<net::HttpServerPropertiesManager> |
660 http_server_properties_manager(new net::HttpServerPropertiesManager( | 666 http_server_properties_manager(new net::HttpServerPropertiesManager( |
661 new PrefServiceAdapter(pref_service_.get()), | 667 new PrefServiceAdapter(pref_service_.get()), |
662 base::ThreadTaskRunnerHandle::Get(), GetNetworkTaskRunner(), | 668 base::ThreadTaskRunnerHandle::Get(), GetNetworkTaskRunner(), |
663 g_net_log.Get().net_log())); | 669 g_net_log.Get().net_log())); |
664 http_server_properties_manager->InitializeOnNetworkSequence(); | 670 http_server_properties_manager->InitializeOnNetworkSequence(); |
665 http_server_properties_manager_ = http_server_properties_manager.get(); | 671 http_server_properties_manager_ = http_server_properties_manager.get(); |
666 context_builder.SetHttpServerProperties( | 672 context_builder.SetHttpServerProperties( |
667 std::move(http_server_properties_manager)); | 673 std::move(http_server_properties_manager)); |
668 } | 674 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
702 pref_service_.get())); | 708 pref_service_.get())); |
703 network_qualities_prefs_manager_->InitializeOnNetworkThread( | 709 network_qualities_prefs_manager_->InitializeOnNetworkThread( |
704 network_quality_estimator_.get()); | 710 network_quality_estimator_.get()); |
705 } | 711 } |
706 context_builder.set_network_quality_estimator( | 712 context_builder.set_network_quality_estimator( |
707 network_quality_estimator_.get()); | 713 network_quality_estimator_.get()); |
708 } | 714 } |
709 | 715 |
710 context_ = context_builder.Build(); | 716 context_ = context_builder.Build(); |
711 | 717 |
718 // Set up host cache persistence if it's enabled. Done after building the | |
pauljensen
2017/06/26 16:37:17
nit: Done->Performed? "Done" can be confused with
mgersh
2017/06/26 23:21:44
Done. (And also performed.)
| |
719 // URLRequestContext to get access to the HostCache. | |
720 if (!config->storage_path.empty() && config->enable_host_cache_persistence) { | |
pauljensen
2017/06/26 16:37:17
Can we change the storage_path check to a check fo
mgersh
2017/06/26 23:21:44
Done.
| |
721 net::HostCache* host_cache = context_->host_resolver()->GetHostCache(); | |
722 host_cache_persistence_manager_ = | |
723 base::MakeUnique<HostCachePersistenceManager>( | |
724 host_cache, pref_service_.get(), kHostCache, | |
725 base::TimeDelta::FromMilliseconds( | |
726 config->host_cache_persistence_timer)); | |
727 } | |
728 | |
712 context_->set_check_cleartext_permitted(true); | 729 context_->set_check_cleartext_permitted(true); |
713 context_->set_enable_brotli(config->enable_brotli); | 730 context_->set_enable_brotli(config->enable_brotli); |
714 | 731 |
715 if (config->load_disable_cache) | 732 if (config->load_disable_cache) |
716 default_load_flags_ |= net::LOAD_DISABLE_CACHE; | 733 default_load_flags_ |= net::LOAD_DISABLE_CACHE; |
717 | 734 |
718 if (config->enable_sdch) { | 735 if (config->enable_sdch) { |
719 DCHECK(context_->sdch_manager()); | 736 DCHECK(context_->sdch_manager()); |
720 sdch_owner_.reset( | 737 sdch_owner_.reset( |
721 new net::SdchOwner(context_->sdch_manager(), context_.get())); | 738 new net::SdchOwner(context_->sdch_manager(), context_.get())); |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1171 JNIEnv* env, | 1188 JNIEnv* env, |
1172 const JavaParamRef<jclass>& jcaller) { | 1189 const JavaParamRef<jclass>& jcaller) { |
1173 DCHECK(base::StatisticsRecorder::IsActive()); | 1190 DCHECK(base::StatisticsRecorder::IsActive()); |
1174 std::vector<uint8_t> data; | 1191 std::vector<uint8_t> data; |
1175 if (!HistogramManager::GetInstance()->GetDeltas(&data)) | 1192 if (!HistogramManager::GetInstance()->GetDeltas(&data)) |
1176 return ScopedJavaLocalRef<jbyteArray>(); | 1193 return ScopedJavaLocalRef<jbyteArray>(); |
1177 return base::android::ToJavaByteArray(env, &data[0], data.size()); | 1194 return base::android::ToJavaByteArray(env, &data[0], data.size()); |
1178 } | 1195 } |
1179 | 1196 |
1180 } // namespace cronet | 1197 } // namespace cronet |
OLD | NEW |