| 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 "net/quic/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "net/quic/quic_clock.h" | 27 #include "net/quic/quic_clock.h" |
| 28 #include "net/quic/quic_connection.h" | 28 #include "net/quic/quic_connection.h" |
| 29 #include "net/quic/quic_connection_helper.h" | 29 #include "net/quic/quic_connection_helper.h" |
| 30 #include "net/quic/quic_crypto_client_stream_factory.h" | 30 #include "net/quic/quic_crypto_client_stream_factory.h" |
| 31 #include "net/quic/quic_default_packet_writer.h" | 31 #include "net/quic/quic_default_packet_writer.h" |
| 32 #include "net/quic/quic_http_stream.h" | 32 #include "net/quic/quic_http_stream.h" |
| 33 #include "net/quic/quic_protocol.h" | 33 #include "net/quic/quic_protocol.h" |
| 34 #include "net/quic/quic_session_key.h" | 34 #include "net/quic/quic_session_key.h" |
| 35 #include "net/socket/client_socket_factory.h" | 35 #include "net/socket/client_socket_factory.h" |
| 36 | 36 |
| 37 #if defined(OS_WIN) |
| 38 #include "base/win/windows_version.h" |
| 39 #endif |
| 40 |
| 37 using std::string; | 41 using std::string; |
| 38 using std::vector; | 42 using std::vector; |
| 39 | 43 |
| 40 namespace net { | 44 namespace net { |
| 41 | 45 |
| 42 namespace { | 46 namespace { |
| 43 | 47 |
| 44 const uint64 kBrokenAlternateProtocolDelaySecs = 300; | 48 const uint64 kBrokenAlternateProtocolDelaySecs = 300; |
| 45 | 49 |
| 50 bool IsEcdsaSupported() { |
| 51 #if defined(OS_WIN) |
| 52 if (base::win::GetVersion() < base::win::VERSION_VISTA) |
| 53 return false; |
| 54 #endif |
| 55 |
| 56 return true; |
| 57 } |
| 58 |
| 46 } // namespace | 59 } // namespace |
| 47 | 60 |
| 48 QuicStreamFactory::IpAliasKey::IpAliasKey() {} | 61 QuicStreamFactory::IpAliasKey::IpAliasKey() {} |
| 49 | 62 |
| 50 QuicStreamFactory::IpAliasKey::IpAliasKey(IPEndPoint ip_endpoint, | 63 QuicStreamFactory::IpAliasKey::IpAliasKey(IPEndPoint ip_endpoint, |
| 51 bool is_https) | 64 bool is_https) |
| 52 : ip_endpoint(ip_endpoint), | 65 : ip_endpoint(ip_endpoint), |
| 53 is_https(is_https) {} | 66 is_https(is_https) {} |
| 54 | 67 |
| 55 QuicStreamFactory::IpAliasKey::~IpAliasKey() {} | 68 QuicStreamFactory::IpAliasKey::~IpAliasKey() {} |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 config_.SetDefaults(); | 389 config_.SetDefaults(); |
| 377 config_.EnablePacing(enable_pacing_); | 390 config_.EnablePacing(enable_pacing_); |
| 378 config_.set_idle_connection_state_lifetime( | 391 config_.set_idle_connection_state_lifetime( |
| 379 QuicTime::Delta::FromSeconds(30), | 392 QuicTime::Delta::FromSeconds(30), |
| 380 QuicTime::Delta::FromSeconds(30)); | 393 QuicTime::Delta::FromSeconds(30)); |
| 381 | 394 |
| 382 crypto_config_.SetDefaults(); | 395 crypto_config_.SetDefaults(); |
| 383 crypto_config_.AddCanonicalSuffix(".c.youtube.com"); | 396 crypto_config_.AddCanonicalSuffix(".c.youtube.com"); |
| 384 crypto_config_.AddCanonicalSuffix(".googlevideo.com"); | 397 crypto_config_.AddCanonicalSuffix(".googlevideo.com"); |
| 385 crypto_config_.SetProofVerifier(new ProofVerifierChromium(cert_verifier)); | 398 crypto_config_.SetProofVerifier(new ProofVerifierChromium(cert_verifier)); |
| 399 if (!IsEcdsaSupported()) |
| 400 crypto_config_.DisableEcdsa(); |
| 386 } | 401 } |
| 387 | 402 |
| 388 QuicStreamFactory::~QuicStreamFactory() { | 403 QuicStreamFactory::~QuicStreamFactory() { |
| 389 CloseAllSessions(ERR_ABORTED); | 404 CloseAllSessions(ERR_ABORTED); |
| 390 STLDeleteElements(&all_sessions_); | 405 STLDeleteElements(&all_sessions_); |
| 391 STLDeleteValues(&active_jobs_); | 406 STLDeleteValues(&active_jobs_); |
| 392 } | 407 } |
| 393 | 408 |
| 394 int QuicStreamFactory::Create(const HostPortPair& host_port_pair, | 409 int QuicStreamFactory::Create(const HostPortPair& host_port_pair, |
| 395 bool is_https, | 410 bool is_https, |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 792 base::TimeTicks when = broken_alternate_protocol_list_.front().when; | 807 base::TimeTicks when = broken_alternate_protocol_list_.front().when; |
| 793 base::TimeDelta delay = when > now ? when - now : base::TimeDelta(); | 808 base::TimeDelta delay = when > now ? when - now : base::TimeDelta(); |
| 794 base::MessageLoop::current()->PostDelayedTask( | 809 base::MessageLoop::current()->PostDelayedTask( |
| 795 FROM_HERE, | 810 FROM_HERE, |
| 796 base::Bind(&QuicStreamFactory::ExpireBrokenAlternateProtocolMappings, | 811 base::Bind(&QuicStreamFactory::ExpireBrokenAlternateProtocolMappings, |
| 797 weak_factory_.GetWeakPtr()), | 812 weak_factory_.GetWeakPtr()), |
| 798 delay); | 813 delay); |
| 799 } | 814 } |
| 800 | 815 |
| 801 } // namespace net | 816 } // namespace net |
| OLD | NEW |