| Index: net/quic/quic_stream_factory.cc
|
| diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
|
| index d3bf9de857fb7449ab46be24987c93778e4938a2..0acd26ed2bb5ef0b978a5d1b8015c294db6f6d4f 100644
|
| --- a/net/quic/quic_stream_factory.cc
|
| +++ b/net/quic/quic_stream_factory.cc
|
| @@ -19,6 +19,8 @@
|
| #include "base/thread_task_runner_handle.h"
|
| #include "base/values.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/base/socket_performance_watcher.h"
|
| +#include "net/base/socket_performance_watcher_factory.h"
|
| #include "net/cert/cert_verifier.h"
|
| #include "net/dns/host_resolver.h"
|
| #include "net/dns/single_request_host_resolver.h"
|
| @@ -558,6 +560,7 @@ QuicStreamFactory::QuicStreamFactory(
|
| CertPolicyEnforcer* cert_policy_enforcer,
|
| ChannelIDService* channel_id_service,
|
| TransportSecurityState* transport_security_state,
|
| + const SocketPerformanceWatcherFactory* socket_performance_watcher_factory,
|
| QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory,
|
| QuicRandom* random_generator,
|
| QuicClock* clock,
|
| @@ -589,6 +592,7 @@ QuicStreamFactory::QuicStreamFactory(
|
| random_generator_(random_generator),
|
| clock_(clock),
|
| max_packet_length_(max_packet_length),
|
| + socket_performance_watcher_factory_(socket_performance_watcher_factory),
|
| config_(InitializeQuicConfig(connection_options)),
|
| supported_versions_(supported_versions),
|
| enable_port_selection_(enable_port_selection),
|
| @@ -1225,6 +1229,14 @@ int QuicStreamFactory::CreateSession(const QuicServerId& server_id,
|
| clock_.get(), random_generator_));
|
| }
|
|
|
| + // Use the factory to create a new socket performance watcher, and pass the
|
| + // ownership to the QUIC connection.
|
| + scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher;
|
| + if (socket_performance_watcher_factory_) {
|
| + socket_performance_watcher = socket_performance_watcher_factory_
|
| + ->CreateUDPSocketPerformanceWatcher();
|
| + }
|
| +
|
| QuicConnection* connection = new QuicConnection(
|
| connection_id, addr, helper_.get(), packet_writer_factory,
|
| true /* owns_writer */, Perspective::IS_CLIENT, server_id.is_https(),
|
| @@ -1257,7 +1269,8 @@ int QuicStreamFactory::CreateSession(const QuicServerId& server_id,
|
| transport_security_state_, server_info.Pass(), server_id,
|
| cert_verify_flags, config, &crypto_config_,
|
| network_connection_.GetDescription(), dns_resolution_end_time,
|
| - base::ThreadTaskRunnerHandle::Get().get(), net_log.net_log());
|
| + base::ThreadTaskRunnerHandle::Get().get(), net_log.net_log(),
|
| + socket_performance_watcher.Pass());
|
|
|
| all_sessions_[*session] = server_id; // owning pointer
|
|
|
|
|