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 <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "net/cert/ct_verifier.h" | 27 #include "net/cert/ct_verifier.h" |
28 #include "net/dns/host_resolver.h" | 28 #include "net/dns/host_resolver.h" |
29 #include "net/dns/single_request_host_resolver.h" | 29 #include "net/dns/single_request_host_resolver.h" |
30 #include "net/quic/crypto/channel_id_chromium.h" | 30 #include "net/quic/crypto/channel_id_chromium.h" |
31 #include "net/quic/crypto/proof_verifier_chromium.h" | 31 #include "net/quic/crypto/proof_verifier_chromium.h" |
32 #include "net/quic/crypto/properties_based_quic_server_info.h" | 32 #include "net/quic/crypto/properties_based_quic_server_info.h" |
33 #include "net/quic/crypto/quic_random.h" | 33 #include "net/quic/crypto/quic_random.h" |
34 #include "net/quic/crypto/quic_server_info.h" | 34 #include "net/quic/crypto/quic_server_info.h" |
35 #include "net/quic/port_suggester.h" | 35 #include "net/quic/port_suggester.h" |
36 #include "net/quic/quic_chromium_client_session.h" | 36 #include "net/quic/quic_chromium_client_session.h" |
| 37 #include "net/quic/quic_chromium_connection_helper.h" |
37 #include "net/quic/quic_clock.h" | 38 #include "net/quic/quic_clock.h" |
38 #include "net/quic/quic_connection.h" | 39 #include "net/quic/quic_connection.h" |
39 #include "net/quic/quic_connection_helper.h" | |
40 #include "net/quic/quic_crypto_client_stream_factory.h" | 40 #include "net/quic/quic_crypto_client_stream_factory.h" |
41 #include "net/quic/quic_default_packet_writer.h" | 41 #include "net/quic/quic_default_packet_writer.h" |
42 #include "net/quic/quic_flags.h" | 42 #include "net/quic/quic_flags.h" |
43 #include "net/quic/quic_http_stream.h" | 43 #include "net/quic/quic_http_stream.h" |
44 #include "net/quic/quic_packet_reader.h" | 44 #include "net/quic/quic_packet_reader.h" |
45 #include "net/quic/quic_protocol.h" | 45 #include "net/quic/quic_protocol.h" |
46 #include "net/quic/quic_server_id.h" | 46 #include "net/quic/quic_server_id.h" |
47 #include "net/socket/client_socket_factory.h" | 47 #include "net/socket/client_socket_factory.h" |
48 #include "net/udp/udp_client_socket.h" | 48 #include "net/udp/udp_client_socket.h" |
49 | 49 |
(...skipping 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 | 1389 |
1390 UMA_HISTOGRAM_COUNTS("Net.QuicEphemeralPortsSuggested", | 1390 UMA_HISTOGRAM_COUNTS("Net.QuicEphemeralPortsSuggested", |
1391 port_suggester->call_count()); | 1391 port_suggester->call_count()); |
1392 if (enable_port_selection) { | 1392 if (enable_port_selection) { |
1393 DCHECK_LE(1u, port_suggester->call_count()); | 1393 DCHECK_LE(1u, port_suggester->call_count()); |
1394 } else { | 1394 } else { |
1395 DCHECK_EQ(0u, port_suggester->call_count()); | 1395 DCHECK_EQ(0u, port_suggester->call_count()); |
1396 } | 1396 } |
1397 | 1397 |
1398 if (!helper_.get()) { | 1398 if (!helper_.get()) { |
1399 helper_.reset( | 1399 helper_.reset(new QuicChromiumConnectionHelper( |
1400 new QuicConnectionHelper(base::ThreadTaskRunnerHandle::Get().get(), | 1400 base::ThreadTaskRunnerHandle::Get().get(), clock_.get(), |
1401 clock_.get(), random_generator_)); | 1401 random_generator_)); |
1402 } | 1402 } |
1403 | 1403 |
1404 QuicDefaultPacketWriter* writer = new QuicDefaultPacketWriter(socket.get()); | 1404 QuicDefaultPacketWriter* writer = new QuicDefaultPacketWriter(socket.get()); |
1405 QuicConnectionId connection_id = random_generator_->RandUint64(); | 1405 QuicConnectionId connection_id = random_generator_->RandUint64(); |
1406 QuicConnection* connection = new QuicConnection( | 1406 QuicConnection* connection = new QuicConnection( |
1407 connection_id, addr, helper_.get(), writer, true /* owns_writer */, | 1407 connection_id, addr, helper_.get(), writer, true /* owns_writer */, |
1408 Perspective::IS_CLIENT, supported_versions_); | 1408 Perspective::IS_CLIENT, supported_versions_); |
1409 writer->SetConnection(connection); | 1409 writer->SetConnection(connection); |
1410 connection->SetMaxPacketLength(max_packet_length_); | 1410 connection->SetMaxPacketLength(max_packet_length_); |
1411 | 1411 |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1599 // Since the session was active, there's no longer an | 1599 // Since the session was active, there's no longer an |
1600 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP | 1600 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP |
1601 // job also fails. So to avoid not using QUIC when we otherwise could, we mark | 1601 // job also fails. So to avoid not using QUIC when we otherwise could, we mark |
1602 // it as recently broken, which means that 0-RTT will be disabled but we'll | 1602 // it as recently broken, which means that 0-RTT will be disabled but we'll |
1603 // still race. | 1603 // still race. |
1604 http_server_properties_->MarkAlternativeServiceRecentlyBroken( | 1604 http_server_properties_->MarkAlternativeServiceRecentlyBroken( |
1605 alternative_service); | 1605 alternative_service); |
1606 } | 1606 } |
1607 | 1607 |
1608 } // namespace net | 1608 } // namespace net |
OLD | NEW |