Commit ff46ad7d authored by Victor Vasiliev's avatar Victor Vasiliev Committed by Commit Bot

Log QUIC session events in QuicTransportClient

Bug: 1114027
Change-Id: I3a4137d443becc7f822073163ee2d15bf836934e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2340318Reviewed-by: default avatarDavid Schinazi <dschinazi@chromium.org>
Commit-Queue: Victor Vasiliev <vasilvv@chromium.org>
Cr-Commit-Position: refs/heads/master@{#796232}
parent 3ac4e83f
......@@ -291,6 +291,10 @@ void QuicTransportClient::CreateConnection() {
kQuicYieldAfterDurationMilliseconds),
net_log_);
event_logger_ = std::make_unique<QuicEventLogger>(session_.get(), net_log_);
connection_->set_debug_visitor(event_logger_.get());
connection_->set_creator_debug_delegate(event_logger_.get());
session_->Initialize();
packet_reader_->StartReading();
session_->CryptoConnect();
......
......@@ -13,6 +13,7 @@
#include "net/quic/quic_chromium_packet_reader.h"
#include "net/quic/quic_chromium_packet_writer.h"
#include "net/quic/quic_context.h"
#include "net/quic/quic_event_logger.h"
#include "net/quic/quic_transport_error.h"
#include "net/socket/client_socket_factory.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_crypto_client_config.h"
......@@ -222,6 +223,7 @@ class NET_EXPORT QuicTransportClient
std::unique_ptr<quic::QuicConnection> connection_;
std::unique_ptr<quic::QuicTransportClientSession> session_;
std::unique_ptr<QuicChromiumPacketReader> packet_reader_;
std::unique_ptr<QuicEventLogger> event_logger_;
base::WeakPtrFactory<QuicTransportClient> weak_factory_{this};
};
......
......@@ -9,6 +9,8 @@
#include "base/threading/thread_task_runner_handle.h"
#include "net/cert/mock_cert_verifier.h"
#include "net/dns/mock_host_resolver.h"
#include "net/log/test_net_log.h"
#include "net/log/test_net_log_util.h"
#include "net/proxy_resolution/configured_proxy_resolution_service.h"
#include "net/quic/crypto/proof_source_chromium.h"
#include "net/test/test_data_directory.h"
......@@ -105,6 +107,7 @@ class QuicTransportEndToEndTest : public TestWithTaskEnvironment {
HostPortPair("test.example.com", 0));
builder.set_quic_context(std::move(quic_context));
builder.set_net_log(&net_log_);
context_ = builder.Build();
// By default, quit on error instead of waiting for RunLoop() to time out.
......@@ -151,6 +154,7 @@ class QuicTransportEndToEndTest : public TestWithTaskEnvironment {
::testing::NiceMock<MockVisitor> visitor_;
std::unique_ptr<QuicTransportSimpleServer> server_;
std::unique_ptr<base::RunLoop> run_loop_;
RecordingTestNetLog net_log_;
int port_ = 0;
url::Origin origin_;
......@@ -280,6 +284,14 @@ TEST_F(QuicTransportEndToEndTest, OldVersion) {
Run();
ASSERT_TRUE(client_->session() != nullptr);
EXPECT_TRUE(client_->session()->IsSessionReady());
std::vector<NetLogEntry> events = net_log_.GetEntriesWithType(
NetLogEventType::QUIC_SESSION_VERSION_NEGOTIATED);
ASSERT_GE(events.size(), 1u);
EXPECT_EQ(
GetStringValueFromParams(events[0], "version"),
quic::ParsedQuicVersionToString(
QuicTransportClient::QuicVersionsForWebTransportOriginTrial()[1]));
}
} // namespace
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment