OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/io_thread.h" | 5 #include "chrome/browser/io_thread.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
540 std::move(data_use_amortizer))); | 540 std::move(data_use_amortizer))); |
541 | 541 |
542 #if defined(OS_ANDROID) | 542 #if defined(OS_ANDROID) |
543 globals_->external_data_use_observer.reset( | 543 globals_->external_data_use_observer.reset( |
544 new chrome::android::ExternalDataUseObserver( | 544 new chrome::android::ExternalDataUseObserver( |
545 globals_->data_use_aggregator.get(), | 545 globals_->data_use_aggregator.get(), |
546 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), | 546 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), |
547 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); | 547 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); |
548 #endif // defined(OS_ANDROID) | 548 #endif // defined(OS_ANDROID) |
549 | 549 |
550 globals_->host_resolver = CreateGlobalHostResolver(net_log_); | |
551 | |
552 std::map<std::string, std::string> network_quality_estimator_params; | 550 std::map<std::string, std::string> network_quality_estimator_params; |
553 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName, | 551 variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName, |
554 &network_quality_estimator_params); | 552 &network_quality_estimator_params); |
555 | 553 |
556 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) { | 554 if (command_line.HasSwitch(switches::kForceEffectiveConnectionType)) { |
557 const std::string force_ect_value = | 555 const std::string force_ect_value = |
558 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 556 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
559 switches::kForceEffectiveConnectionType); | 557 switches::kForceEffectiveConnectionType); |
560 | 558 |
561 if (!force_ect_value.empty()) { | 559 if (!force_ect_value.empty()) { |
562 // If the effective connection type is forced using command line switch, | 560 // If the effective connection type is forced using command line switch, |
563 // it overrides the one set by field trial. | 561 // it overrides the one set by field trial. |
564 network_quality_estimator_params[net::kForceEffectiveConnectionType] = | 562 network_quality_estimator_params[net::kForceEffectiveConnectionType] = |
565 force_ect_value; | 563 force_ect_value; |
566 } | 564 } |
567 } | 565 } |
568 | 566 |
569 std::unique_ptr<net::ExternalEstimateProvider> external_estimate_provider; | 567 std::unique_ptr<net::ExternalEstimateProvider> external_estimate_provider; |
570 #if defined(OS_ANDROID) | 568 #if defined(OS_ANDROID) |
571 external_estimate_provider.reset( | 569 external_estimate_provider.reset( |
572 new chrome::android::ExternalEstimateProviderAndroid()); | 570 new chrome::android::ExternalEstimateProviderAndroid()); |
573 #endif // defined(OS_ANDROID) | 571 #endif // defined(OS_ANDROID) |
574 // Pass ownership. | 572 // Pass ownership. |
575 globals_->network_quality_estimator.reset(new net::NetworkQualityEstimator( | 573 globals_->network_quality_estimator.reset(new net::NetworkQualityEstimator( |
576 std::move(external_estimate_provider), network_quality_estimator_params, | 574 std::move(external_estimate_provider), network_quality_estimator_params, |
577 net_log_)); | 575 net_log_)); |
578 globals_->network_quality_observer = content::CreateNetworkQualityObserver( | 576 globals_->network_quality_observer = content::CreateNetworkQualityObserver( |
579 globals_->network_quality_estimator.get()); | 577 globals_->network_quality_estimator.get()); |
580 | 578 |
581 UpdateDnsClientEnabled(); | |
582 #if defined(OS_CHROMEOS) | |
583 // Creates a CertVerifyProc that doesn't allow any profile-provided certs. | |
584 globals_->cert_verifier = base::MakeUnique<net::CachingCertVerifier>( | |
585 base::MakeUnique<net::MultiThreadedCertVerifier>( | |
586 new chromeos::CertVerifyProcChromeOS())); | |
587 #else | |
588 globals_->cert_verifier = IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( | |
589 command_line, net::CertVerifier::CreateDefault()); | |
590 UMA_HISTOGRAM_BOOLEAN( | |
591 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent", | |
592 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList)); | |
593 #endif | |
594 | |
595 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs( | 579 std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs( |
596 net::ct::CreateLogVerifiersForKnownLogs()); | 580 net::ct::CreateLogVerifiersForKnownLogs()); |
597 | 581 |
598 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end()); | 582 globals_->ct_logs.assign(ct_logs.begin(), ct_logs.end()); |
599 | 583 |
600 net::MultiLogCTVerifier* ct_verifier = new net::MultiLogCTVerifier(); | |
601 globals_->cert_transparency_verifier.reset(ct_verifier); | |
602 // Add built-in logs | |
603 ct_verifier->AddLogs(globals_->ct_logs); | |
604 | |
605 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( | 584 ct_tree_tracker_.reset(new certificate_transparency::TreeStateTracker( |
606 globals_->ct_logs, net_log_)); | 585 globals_->ct_logs, net_log_)); |
607 // Register the ct_tree_tracker_ as observer for new STHs. | 586 // Register the ct_tree_tracker_ as observer for new STHs. |
608 RegisterSTHObserver(ct_tree_tracker_.get()); | 587 RegisterSTHObserver(ct_tree_tracker_.get()); |
Randy Smith (Not in Mondays)
2017/06/07 19:28:17
Why not move this with the ct_verifier code move?
mmenke
2017/06/07 21:06:03
Because these aren't owned by (or pointed to by) t
| |
609 // Register the ct_tree_tracker_ as observer for verified SCTs. | |
610 globals_->cert_transparency_verifier->SetObserver(ct_tree_tracker_.get()); | |
611 | 588 |
612 CreateDefaultAuthHandlerFactory(); | |
613 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); | 589 globals_->dns_probe_service.reset(new chrome_browser_net::DnsProbeService()); |
614 globals_->host_mapping_rules.reset(new net::HostMappingRules()); | 590 globals_->host_mapping_rules.reset(new net::HostMappingRules()); |
615 if (command_line.HasSwitch(switches::kHostRules)) { | 591 if (command_line.HasSwitch(switches::kHostRules)) { |
616 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); | 592 TRACE_EVENT_BEGIN0("startup", "IOThread::InitAsync:SetRulesFromString"); |
617 globals_->host_mapping_rules->SetRulesFromString( | 593 globals_->host_mapping_rules->SetRulesFromString( |
618 command_line.GetSwitchValueASCII(switches::kHostRules)); | 594 command_line.GetSwitchValueASCII(switches::kHostRules)); |
619 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); | 595 TRACE_EVENT_END0("startup", "IOThread::InitAsync:SetRulesFromString"); |
620 } | 596 } |
621 | 597 |
622 session_params_.host_mapping_rules = *globals_->host_mapping_rules.get(); | 598 session_params_.host_mapping_rules = *globals_->host_mapping_rules.get(); |
(...skipping 24 matching lines...) Expand all Loading... | |
647 #endif | 623 #endif |
648 | 624 |
649 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) | 625 #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) |
650 // Record how common CPUs with broken NEON units are. See | 626 // Record how common CPUs with broken NEON units are. See |
651 // https://crbug.com/341598. | 627 // https://crbug.com/341598. |
652 crypto::EnsureOpenSSLInit(); | 628 crypto::EnsureOpenSSLInit(); |
653 UMA_HISTOGRAM_BOOLEAN("Net.HasBrokenNEON", CRYPTO_has_broken_NEON()); | 629 UMA_HISTOGRAM_BOOLEAN("Net.HasBrokenNEON", CRYPTO_has_broken_NEON()); |
654 #endif | 630 #endif |
655 | 631 |
656 ConstructSystemRequestContext(); | 632 ConstructSystemRequestContext(); |
633 | |
634 UpdateDnsClientEnabled(); | |
657 } | 635 } |
658 | 636 |
659 void IOThread::CleanUp() { | 637 void IOThread::CleanUp() { |
660 base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks(); | 638 base::debug::LeakTracker<SafeBrowsingURLRequestContext>::CheckForLeaks(); |
661 | 639 |
662 #if defined(USE_NSS_CERTS) | 640 #if defined(USE_NSS_CERTS) |
663 net::ShutdownNSSHttpIO(); | 641 net::ShutdownNSSHttpIO(); |
664 #endif | 642 #endif |
665 | 643 |
666 system_url_request_context_getter_ = NULL; | 644 system_url_request_context_getter_ = NULL; |
667 | 645 |
668 // Unlink the ct_tree_tracker_ from the global cert_transparency_verifier | 646 // Unlink the ct_tree_tracker_ from the global cert_transparency_verifier |
669 // and unregister it from new STH notifications so it will take no actions | 647 // and unregister it from new STH notifications so it will take no actions |
670 // on anything observed during CleanUp process. | 648 // on anything observed during CleanUp process. |
671 // | 649 // |
672 // Null checks are just for tests that use TestingIOThreadState. | 650 // Null checks are just for tests that use TestingIOThreadState. |
673 if (globals()->cert_transparency_verifier) | 651 if (globals()->system_request_context) { |
674 globals()->cert_transparency_verifier->SetObserver(nullptr); | 652 globals() |
653 ->system_request_context->cert_transparency_verifier() | |
654 ->SetObserver(nullptr); | |
655 } | |
675 if (ct_tree_tracker_.get()) { | 656 if (ct_tree_tracker_.get()) { |
676 UnregisterSTHObserver(ct_tree_tracker_.get()); | 657 UnregisterSTHObserver(ct_tree_tracker_.get()); |
677 ct_tree_tracker_.reset(); | 658 ct_tree_tracker_.reset(); |
678 } | 659 } |
679 | 660 |
680 if (globals_->system_request_context) | 661 if (globals_->system_request_context) |
681 globals_->system_request_context->proxy_service()->OnShutdown(); | 662 globals_->system_request_context->proxy_service()->OnShutdown(); |
682 | 663 |
683 // Release objects that the net::URLRequestContext could have been pointing | 664 // Release objects that the net::URLRequestContext could have been pointing |
684 // to. | 665 // to. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
735 void IOThread::UpdateNegotiateDisableCnameLookup() { | 716 void IOThread::UpdateNegotiateDisableCnameLookup() { |
736 globals_->http_auth_preferences->set_negotiate_disable_cname_lookup( | 717 globals_->http_auth_preferences->set_negotiate_disable_cname_lookup( |
737 negotiate_disable_cname_lookup_.GetValue()); | 718 negotiate_disable_cname_lookup_.GetValue()); |
738 } | 719 } |
739 | 720 |
740 void IOThread::UpdateNegotiateEnablePort() { | 721 void IOThread::UpdateNegotiateEnablePort() { |
741 globals_->http_auth_preferences->set_negotiate_enable_port( | 722 globals_->http_auth_preferences->set_negotiate_enable_port( |
742 negotiate_enable_port_.GetValue()); | 723 negotiate_enable_port_.GetValue()); |
743 } | 724 } |
744 | 725 |
745 void IOThread::CreateDefaultAuthHandlerFactory() { | 726 std::unique_ptr<net::HttpAuthHandlerRegistryFactory> |
727 IOThread::CreateDefaultAuthHandlerFactory() { | |
746 std::vector<std::string> supported_schemes = base::SplitString( | 728 std::vector<std::string> supported_schemes = base::SplitString( |
747 auth_schemes_, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); | 729 auth_schemes_, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
748 globals_->http_auth_preferences.reset(new net::HttpAuthPreferences( | 730 globals_->http_auth_preferences.reset(new net::HttpAuthPreferences( |
749 supported_schemes | 731 supported_schemes |
750 #if defined(OS_POSIX) && !defined(OS_ANDROID) | 732 #if defined(OS_POSIX) && !defined(OS_ANDROID) |
751 , | 733 , |
752 gssapi_library_name_ | 734 gssapi_library_name_ |
753 #endif | 735 #endif |
754 #if defined(OS_CHROMEOS) | 736 #if defined(OS_CHROMEOS) |
755 , | 737 , |
756 allow_gssapi_library_load_ | 738 allow_gssapi_library_load_ |
757 #endif | 739 #endif |
758 )); | 740 )); |
759 UpdateServerWhitelist(); | 741 UpdateServerWhitelist(); |
760 UpdateDelegateWhitelist(); | 742 UpdateDelegateWhitelist(); |
761 UpdateNegotiateDisableCnameLookup(); | 743 UpdateNegotiateDisableCnameLookup(); |
762 UpdateNegotiateEnablePort(); | 744 UpdateNegotiateEnablePort(); |
763 #if defined(OS_ANDROID) | 745 #if defined(OS_ANDROID) |
764 UpdateAndroidAuthNegotiateAccountType(); | 746 UpdateAndroidAuthNegotiateAccountType(); |
765 #endif | 747 #endif |
766 globals_->http_auth_handler_factory = | 748 |
767 net::HttpAuthHandlerRegistryFactory::Create( | 749 return net::HttpAuthHandlerRegistryFactory::Create( |
768 globals_->http_auth_preferences.get(), globals_->host_resolver.get()); | 750 globals_->http_auth_preferences.get(), |
751 globals_->system_request_context->host_resolver()); | |
769 } | 752 } |
770 | 753 |
771 void IOThread::ClearHostCache( | 754 void IOThread::ClearHostCache( |
772 const base::Callback<bool(const std::string&)>& host_filter) { | 755 const base::Callback<bool(const std::string&)>& host_filter) { |
773 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 756 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
774 | 757 |
775 net::HostCache* host_cache = globals_->host_resolver->GetHostCache(); | 758 if (!globals_->system_request_context) |
759 return; | |
760 | |
761 net::HostCache* host_cache = | |
762 globals_->system_request_context->host_resolver()->GetHostCache(); | |
776 if (host_cache) | 763 if (host_cache) |
777 host_cache->ClearForHosts(host_filter); | 764 host_cache->ClearForHosts(host_filter); |
778 } | 765 } |
779 | 766 |
780 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { | 767 const net::HttpNetworkSession::Params& IOThread::NetworkSessionParams() const { |
781 return session_params_; | 768 return session_params_; |
782 } | 769 } |
783 | 770 |
784 void IOThread::DisableQuic() { | 771 void IOThread::DisableQuic() { |
785 session_params_.enable_quic = false; | 772 session_params_.enable_quic = false; |
(...skipping 13 matching lines...) Expand all Loading... | |
799 | 786 |
800 void IOThread::ChangedToOnTheRecordOnIOThread() { | 787 void IOThread::ChangedToOnTheRecordOnIOThread() { |
801 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 788 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
802 | 789 |
803 // Clear the host cache to avoid showing entries from the OTR session | 790 // Clear the host cache to avoid showing entries from the OTR session |
804 // in about:net-internals. | 791 // in about:net-internals. |
805 ClearHostCache(base::Callback<bool(const std::string&)>()); | 792 ClearHostCache(base::Callback<bool(const std::string&)>()); |
806 } | 793 } |
807 | 794 |
808 void IOThread::UpdateDnsClientEnabled() { | 795 void IOThread::UpdateDnsClientEnabled() { |
809 globals()->host_resolver->SetDnsClientEnabled(*dns_client_enabled_); | 796 globals()->system_request_context->host_resolver()->SetDnsClientEnabled( |
797 *dns_client_enabled_); | |
810 } | 798 } |
811 | 799 |
812 void IOThread::RegisterSTHObserver(net::ct::STHObserver* observer) { | 800 void IOThread::RegisterSTHObserver(net::ct::STHObserver* observer) { |
813 chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer); | 801 chrome_browser_net::GetGlobalSTHDistributor()->RegisterObserver(observer); |
814 } | 802 } |
815 | 803 |
816 void IOThread::UnregisterSTHObserver(net::ct::STHObserver* observer) { | 804 void IOThread::UnregisterSTHObserver(net::ct::STHObserver* observer) { |
817 chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer); | 805 chrome_browser_net::GetGlobalSTHDistributor()->UnregisterObserver(observer); |
818 } | 806 } |
819 | 807 |
820 bool IOThread::WpadQuickCheckEnabled() const { | 808 bool IOThread::WpadQuickCheckEnabled() const { |
821 return quick_check_enabled_.GetValue(); | 809 return quick_check_enabled_.GetValue(); |
822 } | 810 } |
823 | 811 |
824 bool IOThread::PacHttpsUrlStrippingEnabled() const { | 812 bool IOThread::PacHttpsUrlStrippingEnabled() const { |
825 return pac_https_url_stripping_enabled_.GetValue(); | 813 return pac_https_url_stripping_enabled_.GetValue(); |
826 } | 814 } |
827 | 815 |
828 void IOThread::ConstructSystemRequestContext() { | 816 void IOThread::ConstructSystemRequestContext() { |
817 const base::CommandLine& command_line = | |
818 *base::CommandLine::ForCurrentProcess(); | |
819 | |
829 globals_->system_request_context = | 820 globals_->system_request_context = |
830 base::MakeUnique<SystemURLRequestContext>(); | 821 base::MakeUnique<SystemURLRequestContext>(); |
831 net::URLRequestContext* context = globals_->system_request_context.get(); | 822 net::URLRequestContext* context = globals_->system_request_context.get(); |
832 globals_->system_request_context_storage = | 823 globals_->system_request_context_storage = |
833 base::MakeUnique<net::URLRequestContextStorage>(context); | 824 base::MakeUnique<net::URLRequestContextStorage>(context); |
834 net::URLRequestContextStorage* context_storage = | 825 net::URLRequestContextStorage* context_storage = |
835 globals_->system_request_context_storage.get(); | 826 globals_->system_request_context_storage.get(); |
836 | 827 |
837 context->set_network_quality_estimator( | 828 context->set_network_quality_estimator( |
838 globals_->network_quality_estimator.get()); | 829 globals_->network_quality_estimator.get()); |
839 context->set_enable_brotli(globals_->enable_brotli); | 830 context->set_enable_brotli(globals_->enable_brotli); |
840 context->set_name("system"); | 831 context->set_name("system"); |
841 | 832 |
842 context_storage->set_http_user_agent_settings( | 833 context_storage->set_http_user_agent_settings( |
843 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(), | 834 base::MakeUnique<net::StaticHttpUserAgentSettings>(std::string(), |
844 GetUserAgent())); | 835 GetUserAgent())); |
845 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate( | 836 std::unique_ptr<ChromeNetworkDelegate> chrome_network_delegate( |
846 new ChromeNetworkDelegate(extension_event_router_forwarder(), | 837 new ChromeNetworkDelegate(extension_event_router_forwarder(), |
847 &system_enable_referrers_)); | 838 &system_enable_referrers_)); |
848 // By default, data usage is considered off the record. | 839 // By default, data usage is considered off the record. |
849 chrome_network_delegate->set_data_use_aggregator( | 840 chrome_network_delegate->set_data_use_aggregator( |
850 globals_->data_use_aggregator.get(), | 841 globals_->data_use_aggregator.get(), |
851 true /* is_data_usage_off_the_record */); | 842 true /* is_data_usage_off_the_record */); |
852 context_storage->set_network_delegate( | 843 context_storage->set_network_delegate( |
853 globals_->data_use_ascriber->CreateNetworkDelegate( | 844 globals_->data_use_ascriber->CreateNetworkDelegate( |
854 std::move(chrome_network_delegate), GetMetricsDataUseForwarder())); | 845 std::move(chrome_network_delegate), GetMetricsDataUseForwarder())); |
855 context->set_net_log(net_log_); | 846 context->set_net_log(net_log_); |
856 context->set_host_resolver(globals_->host_resolver.get()); | 847 context_storage->set_host_resolver(CreateGlobalHostResolver(net_log_)); |
857 | 848 |
858 context_storage->set_ssl_config_service(GetSSLConfigService()); | 849 context_storage->set_ssl_config_service(GetSSLConfigService()); |
859 context->set_http_auth_handler_factory( | 850 context_storage->set_http_auth_handler_factory( |
860 globals_->http_auth_handler_factory.get()); | 851 CreateDefaultAuthHandlerFactory()); |
Randy Smith (Not in Mondays)
2017/06/07 19:28:17
Would you be willing to either put in a comment th
mmenke
2017/06/07 21:06:03
Did the latter (Was planning to do it in the next
| |
861 | 852 |
862 // In-memory cookie store. | 853 // In-memory cookie store. |
863 context_storage->set_cookie_store( | 854 context_storage->set_cookie_store( |
864 content::CreateCookieStore(content::CookieStoreConfig())); | 855 content::CreateCookieStore(content::CookieStoreConfig())); |
865 // In-memory channel ID store. | 856 // In-memory channel ID store. |
866 context_storage->set_channel_id_service( | 857 context_storage->set_channel_id_service( |
867 base::MakeUnique<net::ChannelIDService>( | 858 base::MakeUnique<net::ChannelIDService>( |
868 new net::DefaultChannelIDStore(nullptr))); | 859 new net::DefaultChannelIDStore(nullptr))); |
869 context->cookie_store()->SetChannelIDServiceID( | 860 context->cookie_store()->SetChannelIDServiceID( |
870 context->channel_id_service()->GetUniqueID()); | 861 context->channel_id_service()->GetUniqueID()); |
871 | 862 |
872 context_storage->set_transport_security_state( | 863 context_storage->set_transport_security_state( |
873 base::MakeUnique<net::TransportSecurityState>()); | 864 base::MakeUnique<net::TransportSecurityState>()); |
874 | 865 |
875 context_storage->set_http_server_properties( | 866 context_storage->set_http_server_properties( |
876 base::MakeUnique<net::HttpServerPropertiesImpl>()); | 867 base::MakeUnique<net::HttpServerPropertiesImpl>()); |
877 | 868 |
878 context->set_cert_verifier(globals_->cert_verifier.get()); | 869 #if defined(OS_CHROMEOS) |
879 context->set_cert_transparency_verifier( | 870 // Creates a CertVerifyProc that doesn't allow any profile-provided certs. |
880 globals_->cert_transparency_verifier.get()); | 871 context_storage->set_cert_verifier(base::MakeUnique<net::CachingCertVerifier>( |
872 base::MakeUnique<net::MultiThreadedCertVerifier>( | |
873 new chromeos::CertVerifyProcChromeOS()))); | |
874 #else | |
875 context_storage->set_cert_verifier( | |
876 IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( | |
877 command_line, net::CertVerifier::CreateDefault())); | |
878 UMA_HISTOGRAM_BOOLEAN( | |
879 "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent", | |
880 command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList)); | |
881 #endif | |
882 | |
883 std::unique_ptr<net::MultiLogCTVerifier> ct_verifier = | |
884 base::MakeUnique<net::MultiLogCTVerifier>(); | |
885 // Add built-in logs | |
886 ct_verifier->AddLogs(globals_->ct_logs); | |
887 | |
888 // Register the ct_tree_tracker_ as observer for verified SCTs. | |
889 ct_verifier->SetObserver(ct_tree_tracker_.get()); | |
890 | |
891 context_storage->set_cert_transparency_verifier(std::move(ct_verifier)); | |
881 | 892 |
882 context_storage->set_ct_policy_enforcer( | 893 context_storage->set_ct_policy_enforcer( |
883 base::MakeUnique<net::CTPolicyEnforcer>()); | 894 base::MakeUnique<net::CTPolicyEnforcer>()); |
884 | 895 |
885 const base::CommandLine& command_line = | |
886 *base::CommandLine::ForCurrentProcess(); | |
887 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( | 896 context_storage->set_proxy_service(ProxyServiceFactory::CreateProxyService( |
888 net_log_, context, context->network_delegate(), | 897 net_log_, context, context->network_delegate(), |
889 std::move(system_proxy_config_service_), command_line, | 898 std::move(system_proxy_config_service_), command_line, |
890 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); | 899 WpadQuickCheckEnabled(), PacHttpsUrlStrippingEnabled())); |
891 | 900 |
892 net::HttpNetworkSession::Context session_context; | 901 net::HttpNetworkSession::Context session_context; |
893 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( | 902 net::URLRequestContextBuilder::SetHttpNetworkSessionComponents( |
894 context, &session_context); | 903 context, &session_context); |
895 | 904 |
896 context_storage->set_http_network_session( | 905 context_storage->set_http_network_session( |
(...skipping 10 matching lines...) Expand all Loading... | |
907 base::MakeUnique<net::DataProtocolHandler>()); | 916 base::MakeUnique<net::DataProtocolHandler>()); |
908 job_factory->SetProtocolHandler( | 917 job_factory->SetProtocolHandler( |
909 url::kFileScheme, | 918 url::kFileScheme, |
910 base::MakeUnique<net::FileProtocolHandler>( | 919 base::MakeUnique<net::FileProtocolHandler>( |
911 base::CreateTaskRunnerWithTraits( | 920 base::CreateTaskRunnerWithTraits( |
912 {base::MayBlock(), base::TaskPriority::USER_VISIBLE, | 921 {base::MayBlock(), base::TaskPriority::USER_VISIBLE, |
913 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}))); | 922 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}))); |
914 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) | 923 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) |
915 job_factory->SetProtocolHandler( | 924 job_factory->SetProtocolHandler( |
916 url::kFtpScheme, | 925 url::kFtpScheme, |
917 net::FtpProtocolHandler::Create(globals_->host_resolver.get())); | 926 net::FtpProtocolHandler::Create(context->host_resolver())); |
918 #endif | 927 #endif |
919 | 928 |
920 context_storage->set_job_factory(std::move(job_factory)); | 929 context_storage->set_job_factory(std::move(job_factory)); |
921 } | 930 } |
922 | 931 |
923 // static | 932 // static |
924 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine( | 933 void IOThread::ConfigureParamsFromFieldTrialsAndCommandLine( |
925 const base::CommandLine& command_line, | 934 const base::CommandLine& command_line, |
926 bool is_quic_allowed_by_policy, | 935 bool is_quic_allowed_by_policy, |
927 bool http_09_on_non_default_ports_enabled, | 936 bool http_09_on_non_default_ports_enabled, |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1010 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); | 1019 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); |
1011 } | 1020 } |
1012 | 1021 |
1013 params->http_09_on_non_default_ports_enabled = | 1022 params->http_09_on_non_default_ports_enabled = |
1014 http_09_on_non_default_ports_enabled; | 1023 http_09_on_non_default_ports_enabled; |
1015 } | 1024 } |
1016 | 1025 |
1017 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { | 1026 metrics::UpdateUsagePrefCallbackType IOThread::GetMetricsDataUseForwarder() { |
1018 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); | 1027 return base::Bind(&UpdateMetricsUsagePrefsOnUIThread); |
1019 } | 1028 } |
OLD | NEW |