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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 46 #include "net/base/host_resolver.h" | 46 #include "net/base/host_resolver.h" |
| 47 #include "net/base/mapped_host_resolver.h" | 47 #include "net/base/mapped_host_resolver.h" |
| 48 #include "net/base/net_util.h" | 48 #include "net/base/net_util.h" |
| 49 #include "net/base/sdch_manager.h" | 49 #include "net/base/sdch_manager.h" |
| 50 #include "net/base/server_bound_cert_service.h" | 50 #include "net/base/server_bound_cert_service.h" |
| 51 #include "net/cookies/cookie_monster.h" | 51 #include "net/cookies/cookie_monster.h" |
| 52 #include "net/ftp/ftp_network_layer.h" | 52 #include "net/ftp/ftp_network_layer.h" |
| 53 #include "net/http/http_auth_filter.h" | 53 #include "net/http/http_auth_filter.h" |
| 54 #include "net/http/http_auth_handler_factory.h" | 54 #include "net/http/http_auth_handler_factory.h" |
| 55 #include "net/http/http_network_layer.h" | 55 #include "net/http/http_network_layer.h" |
| 56 #include "net/http/http_network_session.h" | |
|
willchan no longer on Chromium
2012/12/01 20:49:13
?
Ryan Hamilton
2012/12/01 23:02:25
Add back. (Odd)
| |
| 57 #include "net/http/http_server_properties_impl.h" | 56 #include "net/http/http_server_properties_impl.h" |
| 58 #include "net/proxy/proxy_config_service.h" | 57 #include "net/proxy/proxy_config_service.h" |
| 59 #include "net/proxy/proxy_script_fetcher_impl.h" | 58 #include "net/proxy/proxy_script_fetcher_impl.h" |
| 60 #include "net/proxy/proxy_service.h" | 59 #include "net/proxy/proxy_service.h" |
| 61 #include "net/spdy/spdy_session.h" | 60 #include "net/spdy/spdy_session.h" |
| 62 #include "net/url_request/url_fetcher.h" | 61 #include "net/url_request/url_fetcher.h" |
| 63 #include "net/url_request/url_request_throttler_manager.h" | 62 #include "net/url_request/url_request_throttler_manager.h" |
| 64 #include "net/websockets/websocket_job.h" | 63 #include "net/websockets/websocket_job.h" |
| 65 | 64 |
| 66 #if defined(ENABLE_CONFIGURATION_POLICY) | 65 #if defined(ENABLE_CONFIGURATION_POLICY) |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 232 params->transport_security_state = globals.transport_security_state.get(); | 231 params->transport_security_state = globals.transport_security_state.get(); |
| 233 params->ssl_config_service = globals.ssl_config_service.get(); | 232 params->ssl_config_service = globals.ssl_config_service.get(); |
| 234 params->http_auth_handler_factory = globals.http_auth_handler_factory.get(); | 233 params->http_auth_handler_factory = globals.http_auth_handler_factory.get(); |
| 235 params->http_server_properties = globals.http_server_properties.get(); | 234 params->http_server_properties = globals.http_server_properties.get(); |
| 236 params->network_delegate = globals.system_network_delegate.get(); | 235 params->network_delegate = globals.system_network_delegate.get(); |
| 237 params->host_mapping_rules = globals.host_mapping_rules.get(); | 236 params->host_mapping_rules = globals.host_mapping_rules.get(); |
| 238 params->ignore_certificate_errors = globals.ignore_certificate_errors; | 237 params->ignore_certificate_errors = globals.ignore_certificate_errors; |
| 239 params->http_pipelining_enabled = globals.http_pipelining_enabled; | 238 params->http_pipelining_enabled = globals.http_pipelining_enabled; |
| 240 params->testing_fixed_http_port = globals.testing_fixed_http_port; | 239 params->testing_fixed_http_port = globals.testing_fixed_http_port; |
| 241 params->testing_fixed_https_port = globals.testing_fixed_https_port; | 240 params->testing_fixed_https_port = globals.testing_fixed_https_port; |
| 241 params->max_spdy_sessions_per_domain = globals.max_spdy_sessions_per_domain; | |
| 242 params->spdy_initial_max_concurrent_streams = | |
| 243 globals.initial_max_spdy_concurrent_streams; | |
| 244 params->spdy_max_concurrent_streams_limit = | |
| 245 globals.max_spdy_concurrent_streams_limit; | |
| 246 | |
| 247 if (globals.force_spdy_single_domain != IOThread::DEFAULT) | |
| 248 params->force_spdy_single_domain = globals.force_spdy_single_domain; | |
| 249 if (globals.enable_spdy_ip_pooling != IOThread::DEFAULT) | |
| 250 params->enable_spdy_ip_pooling = globals.enable_spdy_ip_pooling; | |
| 251 if (globals.enable_spdy_credential_frames != IOThread::DEFAULT) { | |
| 252 params->enable_spdy_credential_frames = | |
| 253 globals.enable_spdy_credential_frames; | |
| 254 } | |
| 255 if (globals.enable_spdy_compression != IOThread::DEFAULT) | |
| 256 params->enable_spdy_compression = globals.enable_spdy_compression; | |
| 257 if (globals.enable_spdy_ping_based_connection_checking != IOThread::DEFAULT) { | |
| 258 params->enable_spdy_ping_based_connection_checking = | |
| 259 globals.enable_spdy_ping_based_connection_checking; | |
| 260 } | |
| 261 if (globals.spdy_default_protocol != net::kProtoUnknown) | |
| 262 params->spdy_default_protocol = globals.spdy_default_protocol; | |
| 263 } | |
| 264 | |
| 265 int GetSwitchValueAsInt(const CommandLine& command_line, | |
| 266 const std::string& switch_name) { | |
| 267 int value; | |
| 268 if (!base::StringToInt(command_line.GetSwitchValueASCII(switch_name), | |
| 269 &value)) { | |
| 270 return 0; | |
| 271 } | |
| 272 return value; | |
| 242 } | 273 } |
| 243 | 274 |
| 244 } // namespace | 275 } // namespace |
| 245 | 276 |
| 246 class IOThread::LoggingNetworkChangeObserver | 277 class IOThread::LoggingNetworkChangeObserver |
| 247 : public net::NetworkChangeNotifier::IPAddressObserver, | 278 : public net::NetworkChangeNotifier::IPAddressObserver, |
| 248 public net::NetworkChangeNotifier::ConnectionTypeObserver { | 279 public net::NetworkChangeNotifier::ConnectionTypeObserver { |
| 249 public: | 280 public: |
| 250 // |net_log| must remain valid throughout our lifetime. | 281 // |net_log| must remain valid throughout our lifetime. |
| 251 explicit LoggingNetworkChangeObserver(net::NetLog* net_log) | 282 explicit LoggingNetworkChangeObserver(net::NetLog* net_log) |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 335 if (globals_->system_request_context.get()) | 366 if (globals_->system_request_context.get()) |
| 336 globals_->system_request_context->AssertNoURLRequests(); | 367 globals_->system_request_context->AssertNoURLRequests(); |
| 337 } | 368 } |
| 338 | 369 |
| 339 IOThread::Globals::Globals() | 370 IOThread::Globals::Globals() |
| 340 : ALLOW_THIS_IN_INITIALIZER_LIST( | 371 : ALLOW_THIS_IN_INITIALIZER_LIST( |
| 341 system_request_context_leak_checker(this)), | 372 system_request_context_leak_checker(this)), |
| 342 ignore_certificate_errors(false), | 373 ignore_certificate_errors(false), |
| 343 http_pipelining_enabled(false), | 374 http_pipelining_enabled(false), |
| 344 testing_fixed_http_port(0), | 375 testing_fixed_http_port(0), |
| 345 testing_fixed_https_port(0) {} | 376 testing_fixed_https_port(0), |
| 377 max_spdy_sessions_per_domain(0), | |
| 378 initial_max_spdy_concurrent_streams(0), | |
| 379 max_spdy_concurrent_streams_limit(0), | |
| 380 enable_spdy_ip_pooling(DEFAULT), | |
| 381 enable_spdy_credential_frames(DEFAULT), | |
| 382 enable_spdy_compression(DEFAULT), | |
| 383 enable_spdy_ping_based_connection_checking(DEFAULT), | |
| 384 spdy_default_protocol(net::kProtoUnknown) {} | |
| 346 | 385 |
| 347 IOThread::Globals::~Globals() {} | 386 IOThread::Globals::~Globals() {} |
| 348 | 387 |
| 349 // |local_state| is passed in explicitly in order to (1) reduce implicit | 388 // |local_state| is passed in explicitly in order to (1) reduce implicit |
| 350 // dependencies and (2) make IOThread more flexible for testing. | 389 // dependencies and (2) make IOThread more flexible for testing. |
| 351 IOThread::IOThread( | 390 IOThread::IOThread( |
| 352 PrefService* local_state, | 391 PrefService* local_state, |
| 353 policy::PolicyService* policy_service, | 392 policy::PolicyService* policy_service, |
| 354 ChromeNetLog* net_log, | 393 ChromeNetLog* net_log, |
| 355 extensions::EventRouterForwarder* extension_event_router_forwarder) | 394 extensions::EventRouterForwarder* extension_event_router_forwarder) |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 491 new BasicHttpUserAgentSettings(EmptyString(), EmptyString())); | 530 new BasicHttpUserAgentSettings(EmptyString(), EmptyString())); |
| 492 if (command_line.HasSwitch(switches::kHostRules)) { | 531 if (command_line.HasSwitch(switches::kHostRules)) { |
| 493 globals_->host_mapping_rules->SetRulesFromString( | 532 globals_->host_mapping_rules->SetRulesFromString( |
| 494 command_line.GetSwitchValueASCII(switches::kHostRules)); | 533 command_line.GetSwitchValueASCII(switches::kHostRules)); |
| 495 } | 534 } |
| 496 if (command_line.HasSwitch(switches::kIgnoreCertificateErrors)) | 535 if (command_line.HasSwitch(switches::kIgnoreCertificateErrors)) |
| 497 globals_->ignore_certificate_errors = true; | 536 globals_->ignore_certificate_errors = true; |
| 498 if (command_line.HasSwitch(switches::kEnableHttpPipelining)) | 537 if (command_line.HasSwitch(switches::kEnableHttpPipelining)) |
| 499 globals_->http_pipelining_enabled = true; | 538 globals_->http_pipelining_enabled = true; |
| 500 if (command_line.HasSwitch(switches::kTestingFixedHttpPort)) { | 539 if (command_line.HasSwitch(switches::kTestingFixedHttpPort)) { |
| 501 int value; | 540 globals_->testing_fixed_http_port = |
| 502 base::StringToInt( | 541 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpPort); |
| 503 command_line.GetSwitchValueASCII( | |
| 504 switches::kTestingFixedHttpPort), | |
| 505 &value); | |
| 506 globals_->testing_fixed_http_port = value; | |
| 507 } | 542 } |
| 508 if (command_line.HasSwitch(switches::kTestingFixedHttpsPort)) { | 543 if (command_line.HasSwitch(switches::kTestingFixedHttpsPort)) { |
| 509 int value; | 544 globals_->testing_fixed_https_port = |
| 510 base::StringToInt( | 545 GetSwitchValueAsInt(command_line, switches::kTestingFixedHttpsPort); |
| 511 command_line.GetSwitchValueASCII( | |
| 512 switches::kTestingFixedHttpsPort), | |
| 513 &value); | |
| 514 globals_->testing_fixed_https_port = value; | |
| 515 } | 546 } |
| 516 | 547 |
| 517 net::HttpNetworkSession::Params session_params; | 548 net::HttpNetworkSession::Params session_params; |
| 518 InitializeNetworkSessionParams(*globals_, &session_params); | 549 InitializeNetworkSessionParams(*globals_, &session_params); |
| 519 session_params.net_log = net_log_; | 550 session_params.net_log = net_log_; |
| 520 session_params.proxy_service = | 551 session_params.proxy_service = |
| 521 globals_->proxy_script_fetcher_proxy_service.get(); | 552 globals_->proxy_script_fetcher_proxy_service.get(); |
| 522 | 553 |
| 523 InitializeNetworkOptions(command_line); | 554 InitializeNetworkOptions(command_line); |
| 524 | 555 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 587 network_change_observer_.reset(); | 618 network_change_observer_.reset(); |
| 588 | 619 |
| 589 system_proxy_config_service_.reset(); | 620 system_proxy_config_service_.reset(); |
| 590 | 621 |
| 591 delete globals_; | 622 delete globals_; |
| 592 globals_ = NULL; | 623 globals_ = NULL; |
| 593 | 624 |
| 594 base::debug::LeakTracker<SystemURLRequestContextGetter>::CheckForLeaks(); | 625 base::debug::LeakTracker<SystemURLRequestContextGetter>::CheckForLeaks(); |
| 595 } | 626 } |
| 596 | 627 |
| 597 void IOThread::InitializeNetworkOptions( | 628 void IOThread::InitializeNetworkOptions(const CommandLine& command_line) { |
| 598 const CommandLine& parsed_command_line) { | 629 if (command_line.HasSwitch(switches::kEnableFileCookies)) { |
| 599 if (parsed_command_line.HasSwitch(switches::kEnableFileCookies)) { | |
| 600 // Enable cookie storage for file:// URLs. Must do this before the first | 630 // Enable cookie storage for file:// URLs. Must do this before the first |
| 601 // Profile (and therefore the first CookieMonster) is created. | 631 // Profile (and therefore the first CookieMonster) is created. |
| 602 net::CookieMonster::EnableFileScheme(); | 632 net::CookieMonster::EnableFileScheme(); |
| 603 } | 633 } |
| 604 | 634 |
| 605 // If "spdy.disabled" preference is controlled via policy, then skip use-spdy | 635 // If "spdy.disabled" preference is controlled via policy, then skip use-spdy |
| 606 // command line flags. | 636 // command line flags. |
| 607 if (is_spdy_disabled_by_policy_) | 637 if (is_spdy_disabled_by_policy_) |
| 608 return; | 638 return; |
| 609 | 639 |
| 610 if (parsed_command_line.HasSwitch(switches::kEnableIPPooling)) | 640 if (command_line.HasSwitch(switches::kMaxSpdySessionsPerDomain)) { |
| 611 net::SpdySessionPool::enable_ip_pooling(true); | 641 globals_->max_spdy_sessions_per_domain = |
| 612 | 642 GetSwitchValueAsInt(command_line, switches::kMaxSpdySessionsPerDomain); |
| 613 if (parsed_command_line.HasSwitch(switches::kDisableIPPooling)) | |
| 614 net::SpdySessionPool::enable_ip_pooling(false); | |
| 615 | |
| 616 if (parsed_command_line.HasSwitch(switches::kEnableSpdyCredentialFrames)) | |
| 617 net::SpdySession::set_enable_credential_frames(true); | |
| 618 if (parsed_command_line.HasSwitch(switches::kMaxSpdySessionsPerDomain)) { | |
| 619 int value; | |
| 620 base::StringToInt( | |
| 621 parsed_command_line.GetSwitchValueASCII( | |
| 622 switches::kMaxSpdySessionsPerDomain), | |
| 623 &value); | |
| 624 net::SpdySessionPool::set_max_sessions_per_domain(value); | |
| 625 } | 643 } |
| 626 | 644 |
| 627 if (parsed_command_line.HasSwitch(switches::kEnableWebSocketOverSpdy)) { | 645 if (command_line.HasSwitch(switches::kEnableIPPooling)) |
| 646 globals_->enable_spdy_ip_pooling = TRUE; | |
| 647 | |
| 648 if (command_line.HasSwitch(switches::kDisableIPPooling)) | |
| 649 globals_->enable_spdy_ip_pooling = FALSE; | |
| 650 | |
| 651 if (command_line.HasSwitch(switches::kEnableSpdyCredentialFrames)) | |
| 652 globals_->enable_spdy_credential_frames = TRUE; | |
| 653 | |
| 654 if (command_line.HasSwitch(switches::kEnableWebSocketOverSpdy)) { | |
| 628 // Enable WebSocket over SPDY. | 655 // Enable WebSocket over SPDY. |
| 629 net::WebSocketJob::set_websocket_over_spdy_enabled(true); | 656 net::WebSocketJob::set_websocket_over_spdy_enabled(true); |
| 630 } | 657 } |
| 631 | 658 |
| 632 bool used_spdy_switch = false; | 659 bool used_spdy_switch = false; |
| 633 if (parsed_command_line.HasSwitch(switches::kUseSpdy)) { | 660 if (command_line.HasSwitch(switches::kUseSpdy)) { |
| 634 std::string spdy_mode = | 661 std::string spdy_mode = |
| 635 parsed_command_line.GetSwitchValueASCII(switches::kUseSpdy); | 662 command_line.GetSwitchValueASCII(switches::kUseSpdy); |
| 636 EnableSpdy(spdy_mode); | 663 EnableSpdy(spdy_mode); |
| 637 used_spdy_switch = true; | 664 used_spdy_switch = true; |
| 638 } | 665 } |
| 639 if (parsed_command_line.HasSwitch(switches::kEnableSpdy3)) { | 666 if (command_line.HasSwitch(switches::kEnableSpdy3)) { |
| 640 net::HttpStreamFactory::EnableNpnSpdy3(); | 667 net::HttpStreamFactory::EnableNpnSpdy3(); |
| 641 used_spdy_switch = true; | 668 used_spdy_switch = true; |
| 642 } else if (parsed_command_line.HasSwitch(switches::kEnableNpn)) { | 669 } else if (command_line.HasSwitch(switches::kEnableNpn)) { |
| 643 net::HttpStreamFactory::EnableNpnSpdy(); | 670 net::HttpStreamFactory::EnableNpnSpdy(); |
| 644 used_spdy_switch = true; | 671 used_spdy_switch = true; |
| 645 } else if (parsed_command_line.HasSwitch(switches::kEnableNpnHttpOnly)) { | 672 } else if (command_line.HasSwitch(switches::kEnableNpnHttpOnly)) { |
| 646 net::HttpStreamFactory::EnableNpnHttpOnly(); | 673 net::HttpStreamFactory::EnableNpnHttpOnly(); |
| 647 used_spdy_switch = true; | 674 used_spdy_switch = true; |
| 648 } | 675 } |
| 649 if (!used_spdy_switch) { | 676 if (!used_spdy_switch) { |
| 650 net::HttpStreamFactory::EnableNpnSpdy3(); | 677 net::HttpStreamFactory::EnableNpnSpdy3(); |
| 651 } | 678 } |
| 679 if (command_line.HasSwitch(switches::kMaxSpdyConcurrentStreams)) { | |
| 680 globals_->max_spdy_concurrent_streams_limit = | |
| 681 GetSwitchValueAsInt(command_line, switches::kMaxSpdyConcurrentStreams); | |
| 682 } | |
| 652 } | 683 } |
| 653 | 684 |
| 654 void IOThread::EnableSpdy(const std::string& mode) { | 685 void IOThread::EnableSpdy(const std::string& mode) { |
| 655 static const char kOff[] = "off"; | 686 static const char kOff[] = "off"; |
| 656 static const char kSSL[] = "ssl"; | 687 static const char kSSL[] = "ssl"; |
| 657 static const char kDisableSSL[] = "no-ssl"; | 688 static const char kDisableSSL[] = "no-ssl"; |
| 658 static const char kDisablePing[] = "no-ping"; | 689 static const char kDisablePing[] = "no-ping"; |
| 659 static const char kExclude[] = "exclude"; // Hosts to exclude | 690 static const char kExclude[] = "exclude"; // Hosts to exclude |
| 660 static const char kDisableCompression[] = "no-compress"; | 691 static const char kDisableCompression[] = "no-compress"; |
| 661 static const char kDisableAltProtocols[] = "no-alt-protocols"; | 692 static const char kDisableAltProtocols[] = "no-alt-protocols"; |
| 662 static const char kForceAltProtocols[] = "force-alt-protocols"; | 693 static const char kForceAltProtocols[] = "force-alt-protocols"; |
| 663 static const char kSingleDomain[] = "single-domain"; | 694 static const char kSingleDomain[] = "single-domain"; |
| 664 | 695 |
| 665 static const char kInitialMaxConcurrentStreams[] = "init-max-streams"; | 696 static const char kInitialMaxConcurrentStreams[] = "init-max-streams"; |
| 666 | 697 |
| 667 std::vector<std::string> spdy_options; | 698 std::vector<std::string> spdy_options; |
| 668 base::SplitString(mode, ',', &spdy_options); | 699 base::SplitString(mode, ',', &spdy_options); |
| 669 | 700 |
| 670 for (std::vector<std::string>::iterator it = spdy_options.begin(); | 701 for (std::vector<std::string>::iterator it = spdy_options.begin(); |
| 671 it != spdy_options.end(); ++it) { | 702 it != spdy_options.end(); ++it) { |
| 672 const std::string& element = *it; | 703 const std::string& element = *it; |
| 673 std::vector<std::string> name_value; | 704 std::vector<std::string> name_value; |
| 674 base::SplitString(element, '=', &name_value); | 705 base::SplitString(element, '=', &name_value); |
| 675 const std::string& option = name_value.size() > 0 ? name_value[0] : ""; | 706 const std::string& option = name_value.size() > 0 ? name_value[0] : ""; |
| 676 const std::string value = name_value.size() > 1 ? name_value[1] : ""; | 707 const std::string value = name_value.size() > 1 ? name_value[1] : ""; |
| 677 | 708 |
| 678 if (option == kOff) { | 709 if (option == kOff) { |
| 679 net::HttpStreamFactory::set_spdy_enabled(false); | 710 net::HttpStreamFactory::set_spdy_enabled(false); |
| 680 } else if (option == kDisableSSL) { | 711 } else if (option == kDisableSSL) { |
| 681 net::SpdySession::set_default_protocol(net::kProtoSPDY2); | 712 globals_->spdy_default_protocol = net::kProtoSPDY2; |
| 682 net::HttpStreamFactory::set_force_spdy_over_ssl(false); | 713 net::HttpStreamFactory::set_force_spdy_over_ssl(false); |
| 683 net::HttpStreamFactory::set_force_spdy_always(true); | 714 net::HttpStreamFactory::set_force_spdy_always(true); |
| 684 } else if (option == kSSL) { | 715 } else if (option == kSSL) { |
| 685 net::SpdySession::set_default_protocol(net::kProtoSPDY2); | 716 globals_->spdy_default_protocol = net::kProtoSPDY2; |
| 686 net::HttpStreamFactory::set_force_spdy_over_ssl(true); | 717 net::HttpStreamFactory::set_force_spdy_over_ssl(true); |
| 687 net::HttpStreamFactory::set_force_spdy_always(true); | 718 net::HttpStreamFactory::set_force_spdy_always(true); |
| 688 } else if (option == kDisablePing) { | 719 } else if (option == kDisablePing) { |
| 689 net::SpdySession::set_enable_ping_based_connection_checking(false); | 720 globals_->enable_spdy_ping_based_connection_checking = FALSE; |
| 690 } else if (option == kExclude) { | 721 } else if (option == kExclude) { |
| 691 net::HttpStreamFactory::add_forced_spdy_exclusion(value); | 722 net::HttpStreamFactory::add_forced_spdy_exclusion(value); |
| 692 } else if (option == kDisableCompression) { | 723 } else if (option == kDisableCompression) { |
| 693 net::BufferedSpdyFramer::set_enable_compression_default(false); | 724 globals_->enable_spdy_compression = FALSE; |
| 694 } else if (option == kDisableAltProtocols) { | 725 } else if (option == kDisableAltProtocols) { |
| 695 net::HttpStreamFactory::set_use_alternate_protocols(false); | 726 net::HttpStreamFactory::set_use_alternate_protocols(false); |
| 696 } else if (option == kForceAltProtocols) { | 727 } else if (option == kForceAltProtocols) { |
| 697 net::PortAlternateProtocolPair pair; | 728 net::PortAlternateProtocolPair pair; |
| 698 pair.port = 443; | 729 pair.port = 443; |
| 699 pair.protocol = net::NPN_SPDY_2; | 730 pair.protocol = net::NPN_SPDY_2; |
| 700 net::HttpServerPropertiesImpl::ForceAlternateProtocol(pair); | 731 net::HttpServerPropertiesImpl::ForceAlternateProtocol(pair); |
| 701 } else if (option == kSingleDomain) { | 732 } else if (option == kSingleDomain) { |
| 702 DLOG(INFO) << "FORCING SINGLE DOMAIN"; | 733 DLOG(INFO) << "FORCING SINGLE DOMAIN"; |
| 703 net::SpdySessionPool::ForceSingleDomain(); | 734 globals_->force_spdy_single_domain = TRUE; |
| 704 } else if (option == kInitialMaxConcurrentStreams) { | 735 } else if (option == kInitialMaxConcurrentStreams) { |
| 705 int streams; | 736 int streams; |
| 706 if (base::StringToInt(value, &streams) && streams > 0) | 737 if (base::StringToInt(value, &streams)) |
| 707 net::SpdySession::set_init_max_concurrent_streams(streams); | 738 globals_->initial_max_spdy_concurrent_streams = streams; |
| 708 } else if (option.empty() && it == spdy_options.begin()) { | 739 } else if (option.empty() && it == spdy_options.begin()) { |
| 709 continue; | 740 continue; |
| 710 } else { | 741 } else { |
| 711 LOG(DFATAL) << "Unrecognized spdy option: " << option; | 742 LOG(DFATAL) << "Unrecognized spdy option: " << option; |
| 712 } | 743 } |
| 713 } | 744 } |
| 714 } | 745 } |
| 715 | 746 |
| 716 // static | 747 // static |
| 717 void IOThread::RegisterPrefs(PrefService* local_state) { | 748 void IOThread::RegisterPrefs(PrefService* local_state) { |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 844 globals_->system_request_context.reset( | 875 globals_->system_request_context.reset( |
| 845 ConstructSystemRequestContext(globals_, net_log_)); | 876 ConstructSystemRequestContext(globals_, net_log_)); |
| 846 | 877 |
| 847 sdch_manager_->set_sdch_fetcher( | 878 sdch_manager_->set_sdch_fetcher( |
| 848 new SdchDictionaryFetcher(system_url_request_context_getter_.get())); | 879 new SdchDictionaryFetcher(system_url_request_context_getter_.get())); |
| 849 } | 880 } |
| 850 | 881 |
| 851 void IOThread::UpdateDnsClientEnabled() { | 882 void IOThread::UpdateDnsClientEnabled() { |
| 852 globals()->host_resolver->SetDnsClientEnabled(*dns_client_enabled_); | 883 globals()->host_resolver->SetDnsClientEnabled(*dns_client_enabled_); |
| 853 } | 884 } |
| OLD | NEW |