| Index: net/quic/quic_stream_factory.cc
|
| diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
|
| index 2f75005407c6227bcb5198d6e801faef90822e9e..102903ec2449dc664b90ce798ea9dc461bd37e6a 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"
|
| @@ -570,6 +572,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,
|
| @@ -602,6 +605,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),
|
| @@ -1283,12 +1287,21 @@ int QuicStreamFactory::CreateSession(const QuicServerId& server_id,
|
| server_info->Start();
|
| }
|
|
|
| + // Use the factory to create a new socket performance watcher, and pass the
|
| + // ownership to QuicChromiumClientSession.
|
| + scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher;
|
| + if (socket_performance_watcher_factory_) {
|
| + socket_performance_watcher = socket_performance_watcher_factory_
|
| + ->CreateUDPSocketPerformanceWatcher();
|
| + }
|
| +
|
| *session = new QuicChromiumClientSession(
|
| connection, socket.Pass(), this, quic_crypto_client_stream_factory_,
|
| 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(),
|
| + socket_performance_watcher.Pass(), net_log.net_log());
|
|
|
| all_sessions_[*session] = server_id; // owning pointer
|
|
|
|
|