Commit fdacb825 authored by Zhongyi Shi's avatar Zhongyi Shi Committed by Commit Bot

Change the API of QuicConnectivityProbingManager::Delegate methods.

No behavior change, just prepare the connectivity probing manager to probe for server preferred address.

Bug: 913733
Change-Id: Ib4bb47c80cdc42edf8241bf63369b1e6e0e50c14
Reviewed-on: https://chromium-review.googlesource.com/c/1370952Reviewed-by: default avatarRyan Hamilton <rch@chromium.org>
Commit-Queue: Zhongyi Shi <zhongyi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615707}
parent 6bc3536c
......@@ -1871,8 +1871,9 @@ void QuicChromiumClientSession::OnMigrationTimeout(size_t num_sockets) {
quic::ConnectionCloseBehavior::SILENT_CLOSE);
}
void QuicChromiumClientSession::OnProbeNetworkSucceeded(
void QuicChromiumClientSession::OnProbeSucceeded(
NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address,
const quic::QuicSocketAddress& self_address,
std::unique_ptr<DatagramClientSocket> socket,
std::unique_ptr<QuicChromiumPacketWriter> writer,
......@@ -1936,8 +1937,9 @@ void QuicChromiumClientSession::OnProbeNetworkSucceeded(
}
}
void QuicChromiumClientSession::OnProbeNetworkFailed(
NetworkChangeNotifier::NetworkHandle network) {
void QuicChromiumClientSession::OnProbeFailed(
NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address) {
net_log_.AddEvent(
NetLogEventType::QUIC_CONNECTION_CONNECTIVITY_PROBING_FAILED,
NetLog::Int64Callback("network", network));
......
......@@ -433,15 +433,16 @@ class NET_EXPORT_PRIVATE QuicChromiumClientSession
void OnWriteUnblocked() override;
// QuicConnectivityProbingManager::Delegate override.
void OnProbeNetworkSucceeded(
void OnProbeSucceeded(
NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address,
const quic::QuicSocketAddress& self_address,
std::unique_ptr<DatagramClientSocket> socket,
std::unique_ptr<QuicChromiumPacketWriter> writer,
std::unique_ptr<QuicChromiumPacketReader> reader) override;
void OnProbeNetworkFailed(
NetworkChangeNotifier::NetworkHandle network) override;
void OnProbeFailed(NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address) override;
bool OnSendConnectivityProbingPacket(
QuicChromiumPacketWriter* writer,
......
......@@ -176,8 +176,9 @@ void QuicConnectivityProbingManager::OnConnectivityProbingReceived(
base::TimeTicks::Now() - probe_start_time_);
// Notify the delegate that the probe succeeds and reset everything.
delegate_->OnProbeNetworkSucceeded(network_, self_address, std::move(socket_),
std::move(writer_), std::move(reader_));
delegate_->OnProbeSucceeded(network_, peer_address_, self_address,
std::move(socket_), std::move(writer_),
std::move(reader_));
CancelProbingIfAny();
}
......@@ -200,7 +201,7 @@ void QuicConnectivityProbingManager::SendConnectivityProbingPacket(
void QuicConnectivityProbingManager::NotifyDelegateProbeFailed() {
if (network_ != NetworkChangeNotifier::kInvalidNetworkHandle) {
delegate_->OnProbeNetworkFailed(network_);
delegate_->OnProbeFailed(network_, peer_address_);
CancelProbingIfAny();
}
}
......
......@@ -20,23 +20,25 @@ namespace net {
class NET_EXPORT_PRIVATE QuicConnectivityProbingManager
: public QuicChromiumPacketWriter::Delegate {
public:
// Delegate interface which receives notifications on network probing
// results.
// Delegate interface which receives notifications on probing results.
class NET_EXPORT_PRIVATE Delegate {
public:
virtual ~Delegate() {}
// Called when probing on |network| succeeded. Caller hands off ownership
// of |socket|, |writer| and |reader| for |network| to delegate.
virtual void OnProbeNetworkSucceeded(
// Called when probing to |peer_address| on |network| succeeded.
// Caller hands off the ownership of |socket|, |writer| and |reader| for
// |peer_address| on |network| to delegate.
virtual void OnProbeSucceeded(
NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address,
const quic::QuicSocketAddress& self_address,
std::unique_ptr<DatagramClientSocket> socket,
std::unique_ptr<QuicChromiumPacketWriter> writer,
std::unique_ptr<QuicChromiumPacketReader> reader) = 0;
// Called when probing on |network| fails.
virtual void OnProbeNetworkFailed(
NetworkChangeNotifier::NetworkHandle network) = 0;
// Called when probing to |peer_address| on |network| failed.
virtual void OnProbeFailed(NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address) = 0;
// Called when a connectivity probing packet needs to be sent to
// |peer_address| using |writer|. Returns true if subsequent packets can be
......
......@@ -47,15 +47,17 @@ class MockQuicChromiumClientSession
const quic::QuicSocketAddress& local_address,
const quic::QuicSocketAddress& peer_address));
MOCK_METHOD1(OnProbeNetworkFailed,
void(NetworkChangeNotifier::NetworkHandle network));
MOCK_METHOD2(OnProbeFailed,
void(NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address));
MOCK_METHOD2(OnSendConnectivityProbingPacket,
bool(QuicChromiumPacketWriter* writer,
const quic::QuicSocketAddress& peer_address));
void OnProbeNetworkSucceeded(
void OnProbeSucceeded(
NetworkChangeNotifier::NetworkHandle network,
const quic::QuicSocketAddress& peer_address,
const quic::QuicSocketAddress& self_address,
std::unique_ptr<DatagramClientSocket> socket,
std::unique_ptr<QuicChromiumPacketWriter> writer,
......@@ -259,7 +261,8 @@ TEST_F(QuicConnectivityProbingManagerTest, RetryProbingWithExponentailBackoff) {
// Move forward another 1600ms, expect probing manager will no longer send any
// connectivity probing packet but declare probing as failed .
EXPECT_CALL(session_, OnProbeNetworkFailed(testNetworkHandle)).Times(1);
EXPECT_CALL(session_, OnProbeFailed(testNetworkHandle, testPeerAddress))
.Times(1);
int timeout_ms = (1 << 4) * initial_timeout_ms;
test_task_runner_->FastForwardBy(
base::TimeDelta::FromMilliseconds(timeout_ms));
......@@ -297,7 +300,7 @@ TEST_F(QuicConnectivityProbingManagerTest, CancelProbing) {
// Request cancel probing, manager will no longer send connectivity probing
// packet for this probing.
EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, _)).Times(0);
EXPECT_CALL(session_, OnProbeNetworkFailed(_)).Times(0);
EXPECT_CALL(session_, OnProbeFailed(_, _)).Times(0);
probing_manager_.CancelProbing(testNetworkHandle);
test_task_runner_->RunUntilIdle();
}
......@@ -335,7 +338,8 @@ TEST_F(QuicConnectivityProbingManagerTest, ProbingWriterError) {
// write error. Manager will notify session of the probe failure, cancel
// probing to prevent future connectivity probing packet to be sent.
EXPECT_CALL(session_, OnSendConnectivityProbingPacket(_, _)).Times(0);
EXPECT_CALL(session_, OnProbeNetworkFailed(testNetworkHandle)).Times(1);
EXPECT_CALL(session_, OnProbeFailed(testNetworkHandle, testPeerAddress))
.Times(1);
writer_ptr->OnWriteComplete(ERR_CONNECTION_CLOSED);
test_task_runner_->FastForwardBy(
base::TimeDelta::FromMilliseconds(initial_timeout_ms));
......
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