summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_stream_factory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/quic/quic_stream_factory.cc')
-rw-r--r--net/quic/quic_stream_factory.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
index 4aa8b76..bf6d977 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),
@@ -1274,12 +1278,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