Chromium Code Reviews| 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 |