tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 7de1246669c3275c2efce2cdeeb035dfc36fd4bb
parent 078e42c3e5d32448a591cf278679e7e08f569a71
Author: Dan Baker <dbaker@mozilla.com>
Date:   Mon, 27 Oct 2025 17:22:51 -0600

Bug 1995393 - Vendor libwebrtc from 0bac8c3d11

We already cherry-picked this when we vendored 16b12af18f.

Upstream commit: https://webrtc.googlesource.com/src/+/0bac8c3d115456bcc8a82372d1e6af6895df3c1e
    Revert "Propagate clock into BasicIceController"

    This reverts commit 16b12af18f5cc9f5d16f4c8e5372c6d31a81948e.

    Reason for revert: breaks roll into chromium

    Bug: webrtc:42223992
    Original change's description:
    > Propagate clock into BasicIceController
    >
    > Bug: webrtc:42223992
    > Change-Id: I15e4d1a8c692e8a04f50d0f0b51cabecc584b0ab
    > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407100
    > Reviewed-by: Per Kjellander <perkj@webrtc.org>
    > Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
    > Cr-Commit-Position: refs/heads/main@{#45508}

    Bug: webrtc:42223992
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Change-Id: I4de8a8541b8f54ad1d7783febcdf74ef189c967e
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407421
    Commit-Queue: Harald Alvestrand <hta@webrtc.org>
    Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
    Reviewed-by: Harald Alvestrand <hta@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#45518}

Diffstat:
Mthird_party/libwebrtc/README.mozilla.last-vendor | 4++--
Dthird_party/libwebrtc/moz-patch-stack/0bac8c3d11.no-op-cherry-pick-msg | 1-
Mthird_party/libwebrtc/moz-patch-stack/p0001.patch | 4++--
Dthird_party/libwebrtc/moz-patch-stack/p0002.patch | 440-------------------------------------------------------------------------------
4 files changed, 4 insertions(+), 445 deletions(-)

diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor @@ -1,4 +1,4 @@ # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc -libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-27T23:20:33.501802+00:00. +libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-27T23:22:40.500060+00:00. # base of lastest vendoring -d314bf1332 +0bac8c3d11 diff --git a/third_party/libwebrtc/moz-patch-stack/0bac8c3d11.no-op-cherry-pick-msg b/third_party/libwebrtc/moz-patch-stack/0bac8c3d11.no-op-cherry-pick-msg @@ -1 +0,0 @@ -We already cherry-picked this when we vendored 16b12af18f. diff --git a/third_party/libwebrtc/moz-patch-stack/p0001.patch b/third_party/libwebrtc/moz-patch-stack/p0001.patch @@ -130,10 +130,10 @@ index 1cb0c20424..55de3f9bc9 100644 Candidate remote_candidate_; diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc -index db6c987c67..82d854fe1d 100644 +index 9b99b90bee..eee1092080 100644 --- a/p2p/base/p2p_transport_channel.cc +++ b/p2p/base/p2p_transport_channel.cc -@@ -866,16 +866,17 @@ void P2PTransportChannel::MaybeStartGathering() { +@@ -865,16 +865,17 @@ void P2PTransportChannel::MaybeStartGathering() { ice_parameters_.ufrag, ice_parameters_.pwd); if (pooled_session) { diff --git a/third_party/libwebrtc/moz-patch-stack/p0002.patch b/third_party/libwebrtc/moz-patch-stack/p0002.patch @@ -1,440 +0,0 @@ -From: Daniel Baker <dbaker@mozilla.com> -Date: Mon, 27 Oct 2025 16:59:03 -0600 -Subject: (tmp-cherry-pick) Revert "Propagate clock into BasicIceController" - (0bac8c3d11) - -This reverts commit 16b12af18f5cc9f5d16f4c8e5372c6d31a81948e. - -Reason for revert: breaks roll into chromium - -Bug: webrtc:42223992 -Original change's description: -> Propagate clock into BasicIceController -> -> Bug: webrtc:42223992 -> Change-Id: I15e4d1a8c692e8a04f50d0f0b51cabecc584b0ab -> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407100 -> Reviewed-by: Per Kjellander <perkj@webrtc.org> -> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> -> Cr-Commit-Position: refs/heads/main@{#45508} - -Bug: webrtc:42223992 -No-Presubmit: true -No-Tree-Checks: true -No-Try: true -Change-Id: I4de8a8541b8f54ad1d7783febcdf74ef189c967e -Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/407421 -Commit-Queue: Harald Alvestrand <hta@webrtc.org> -Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> -Reviewed-by: Harald Alvestrand <hta@webrtc.org> -Cr-Commit-Position: refs/heads/main@{#45518} ---- - p2p/BUILD.gn | 4 -- - p2p/base/basic_ice_controller.cc | 67 +++++++++---------- - p2p/base/basic_ice_controller.h | 16 ++--- - p2p/base/ice_controller_factory_interface.h | 2 - - p2p/base/p2p_transport_channel.cc | 1 - - ...wrapping_active_ice_controller_unittest.cc | 38 +++++++---- - 6 files changed, 61 insertions(+), 67 deletions(-) - -diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn -index 825e3995b1..34f6ef11ea 100644 ---- a/p2p/BUILD.gn -+++ b/p2p/BUILD.gn -@@ -81,10 +81,7 @@ rtc_library("basic_ice_controller") { - ":transport_description", - "../api:array_view", - "../api:candidate", -- "../api/environment", - "../api/transport:enums", -- "../api/units:time_delta", -- "../api/units:timestamp", - "../rtc_base:checks", - "../rtc_base:ip_address", - "../rtc_base:logging", -@@ -389,7 +386,6 @@ rtc_source_set("ice_controller_factory_interface") { - ":ice_transport_internal", - ":p2p_transport_channel_ice_field_trials", - ":transport_description", -- "../api/environment", - ] - } - -diff --git a/p2p/base/basic_ice_controller.cc b/p2p/base/basic_ice_controller.cc -index 8da13f52ae..ca8f8266ab 100644 ---- a/p2p/base/basic_ice_controller.cc -+++ b/p2p/base/basic_ice_controller.cc -@@ -22,8 +22,6 @@ - #include "absl/algorithm/container.h" - #include "api/candidate.h" - #include "api/transport/enums.h" --#include "api/units/time_delta.h" --#include "api/units/timestamp.h" - #include "p2p/base/connection.h" - #include "p2p/base/connection_info.h" - #include "p2p/base/ice_controller_factory_interface.h" -@@ -38,6 +36,7 @@ - #include "rtc_base/net_helper.h" - #include "rtc_base/network.h" - #include "rtc_base/network_constants.h" -+#include "rtc_base/time_utils.h" - - namespace { - -@@ -87,8 +86,7 @@ int CompareCandidatePairsByNetworkPreference( - namespace webrtc { - - BasicIceController::BasicIceController(const IceControllerFactoryArgs& args) -- : env_(args.env), -- ice_transport_state_func_(args.ice_transport_state_func), -+ : ice_transport_state_func_(args.ice_transport_state_func), - ice_role_func_(args.ice_role_func), - is_connection_pruned_func_(args.is_connection_pruned_func), - field_trials_(args.ice_field_trials) {} -@@ -118,7 +116,7 @@ void BasicIceController::OnConnectionDestroyed(const Connection* connection) { - } - - bool BasicIceController::HasPingableConnection() const { -- Timestamp now = Connection::AlignTime(env_.clock().CurrentTime()); -+ int64_t now = TimeMillis(); - return absl::c_any_of(connections_, [this, now](const Connection* c) { - return IsPingable(c, now); - }); -@@ -139,8 +137,7 @@ IceControllerInterface::PingResult BasicIceController::SelectConnectionToPing( - : strong_ping_interval(); - - const Connection* conn = nullptr; -- if (Connection::AlignTime(env_.clock().CurrentTime()).ms() >= -- last_ping_sent_ms + ping_interval) { -+ if (TimeMillis() >= last_ping_sent_ms + ping_interval) { - conn = FindNextPingableConnection(); - } - PingResult res(conn, std::min(ping_interval, check_receiving_interval())); -@@ -155,7 +152,7 @@ void BasicIceController::MarkConnectionPinged(const Connection* conn) { - - // Returns the next pingable connection to ping. - const Connection* BasicIceController::FindNextPingableConnection() { -- Timestamp now = Connection::AlignTime(env_.clock().CurrentTime()); -+ int64_t now = TimeMillis(); - - // Rule 1: Selected connection takes priority over non-selected ones. - if (selected_connection_ && selected_connection_->connected() && -@@ -241,7 +238,7 @@ const Connection* BasicIceController::FindNextPingableConnection() { - // (last_ping_received > last_ping_sent). But we shouldn't do - // triggered checks if the connection is already writable. - const Connection* BasicIceController::FindOldestConnectionNeedingTriggeredCheck( -- Timestamp now) { -+ int64_t now) { - const Connection* oldest_needing_triggered_check = nullptr; - for (auto* conn : connections_) { - if (!IsPingable(conn, now)) { -@@ -267,24 +264,24 @@ const Connection* BasicIceController::FindOldestConnectionNeedingTriggeredCheck( - - bool BasicIceController::WritableConnectionPastPingInterval( - const Connection* conn, -- Timestamp now) const { -- TimeDelta interval = CalculateActiveWritablePingInterval(conn, now); -- return conn->LastPingSent() + interval <= now; -+ int64_t now) const { -+ int interval = CalculateActiveWritablePingInterval(conn, now); -+ return conn->last_ping_sent() + interval <= now; - } - --TimeDelta BasicIceController::CalculateActiveWritablePingInterval( -+int BasicIceController::CalculateActiveWritablePingInterval( - const Connection* conn, -- Timestamp now) const { -+ int64_t now) const { - // Ping each connection at a higher rate at least - // MIN_PINGS_AT_WEAK_PING_INTERVAL times. - if (conn->num_pings_sent() < MIN_PINGS_AT_WEAK_PING_INTERVAL) { -- return TimeDelta::Millis(weak_ping_interval()); -+ return weak_ping_interval(); - } - -- TimeDelta stable_interval = TimeDelta::Millis( -- config_.stable_writable_connection_ping_interval_or_default()); -- TimeDelta weak_or_stablizing_interval = std::min( -- stable_interval, kWeakOrStabilizingWritableConnectionPingInterval); -+ int stable_interval = -+ config_.stable_writable_connection_ping_interval_or_default(); -+ int weak_or_stablizing_interval = std::min( -+ stable_interval, WEAK_OR_STABILIZING_WRITABLE_CONNECTION_PING_INTERVAL); - // If the channel is weak or the connection is not stable yet, use the - // weak_or_stablizing_interval. - return (!weak() && conn->stable(now)) ? stable_interval -@@ -294,8 +291,7 @@ TimeDelta BasicIceController::CalculateActiveWritablePingInterval( - // Is the connection in a state for us to even consider pinging the other side? - // We consider a connection pingable even if it's not connected because that's - // how a TCP connection is kicked into reconnecting on the active side. --bool BasicIceController::IsPingable(const Connection* conn, -- Timestamp now) const { -+bool BasicIceController::IsPingable(const Connection* conn, int64_t now) const { - const Candidate& remote = conn->remote_candidate(); - // We should never get this far with an empty remote ufrag. - RTC_DCHECK(!remote.username().empty()); -@@ -331,10 +327,8 @@ bool BasicIceController::IsPingable(const Connection* conn, - // or not, but backup connections are pinged at a slower rate. - if (IsBackupConnection(conn)) { - return conn->rtt_samples() == 0 || -- (now >= -- conn->LastPingResponseReceived() + -- TimeDelta::Millis( -- config_.backup_connection_ping_interval_or_default())); -+ (now >= conn->last_ping_response_received() + -+ config_.backup_connection_ping_interval_or_default()); - } - // Don't ping inactive non-backup connections. - if (!conn->active()) { -@@ -458,7 +452,7 @@ BasicIceController::HandleInitialSelectDampening( - return {.connection = new_connection}; - } - -- Timestamp now = Connection::AlignTime(env_.clock().CurrentTime()); -+ int64_t now = TimeMillis(); - int64_t max_delay = 0; - if (new_connection->last_ping_received() > 0 && - field_trials_->initial_select_dampening_ping_received.has_value()) { -@@ -467,24 +461,26 @@ BasicIceController::HandleInitialSelectDampening( - max_delay = *field_trials_->initial_select_dampening; - } - -- Timestamp start_wait = initial_select_timestamp_.value_or(now); -- Timestamp max_wait_until = start_wait + TimeDelta::Millis(max_delay); -+ int64_t start_wait = -+ initial_select_timestamp_ms_ == 0 ? now : initial_select_timestamp_ms_; -+ int64_t max_wait_until = start_wait + max_delay; - - if (now >= max_wait_until) { - RTC_LOG(LS_INFO) << "reset initial_select_timestamp_ = " -- << initial_select_timestamp_.value_or(Timestamp::Zero()) -- << " selection delayed by: " << (now - start_wait); -- initial_select_timestamp_ = std::nullopt; -+ << initial_select_timestamp_ms_ -+ << " selection delayed by: " << (now - start_wait) << "ms"; -+ initial_select_timestamp_ms_ = 0; - return {.connection = new_connection}; - } - - // We are not yet ready to select first connection... -- if (!initial_select_timestamp_.has_value()) { -+ if (initial_select_timestamp_ms_ == 0) { - // Set timestamp on first time... - // but run the delayed invokation everytime to - // avoid possibility that we miss it. -- initial_select_timestamp_ = now; -- RTC_LOG(LS_INFO) << "set initial_select_timestamp_ = " << now; -+ initial_select_timestamp_ms_ = now; -+ RTC_LOG(LS_INFO) << "set initial_select_timestamp_ms_ = " -+ << initial_select_timestamp_ms_; - } - - int min_delay = max_delay; -@@ -523,8 +519,7 @@ IceControllerInterface::SwitchResult BasicIceController::ShouldSwitchConnection( - - bool missed_receiving_unchanged_threshold = false; - std::optional<int64_t> receiving_unchanged_threshold( -- Connection::AlignTime(env_.clock().CurrentTime()).ms() - -- config_.receiving_switching_delay_or_default()); -+ TimeMillis() - config_.receiving_switching_delay_or_default()); - int cmp = CompareConnections(selected_connection_, new_connection, - receiving_unchanged_threshold, - &missed_receiving_unchanged_threshold); -diff --git a/p2p/base/basic_ice_controller.h b/p2p/base/basic_ice_controller.h -index 66a0402f5f..b2aa3c3cee 100644 ---- a/p2p/base/basic_ice_controller.h -+++ b/p2p/base/basic_ice_controller.h -@@ -20,9 +20,6 @@ - #include <vector> - - #include "api/array_view.h" --#include "api/environment/environment.h" --#include "api/units/time_delta.h" --#include "api/units/timestamp.h" - #include "p2p/base/connection.h" - #include "p2p/base/ice_controller_factory_interface.h" - #include "p2p/base/ice_controller_interface.h" -@@ -94,7 +91,7 @@ class BasicIceController : public IceControllerInterface { - config_.receiving_timeout_or_default() / 10); - } - -- const Connection* FindOldestConnectionNeedingTriggeredCheck(Timestamp now); -+ const Connection* FindOldestConnectionNeedingTriggeredCheck(int64_t now); - // Between `conn1` and `conn2`, this function returns the one which should - // be pinged first. - const Connection* MorePingable(const Connection* conn1, -@@ -107,14 +104,14 @@ class BasicIceController : public IceControllerInterface { - const Connection* LeastRecentlyPinged(const Connection* conn1, - const Connection* conn2); - -- bool IsPingable(const Connection* conn, Timestamp now) const; -+ bool IsPingable(const Connection* conn, int64_t now) const; - bool IsBackupConnection(const Connection* conn) const; - // Whether a writable connection is past its ping interval and needs to be - // pinged again. - bool WritableConnectionPastPingInterval(const Connection* conn, -- Timestamp now) const; -- TimeDelta CalculateActiveWritablePingInterval(const Connection* conn, -- Timestamp now) const; -+ int64_t now) const; -+ int CalculateActiveWritablePingInterval(const Connection* conn, -+ int64_t now) const; - - std::map<const Network*, const Connection*> GetBestConnectionByNetwork() - const; -@@ -155,7 +152,6 @@ class BasicIceController : public IceControllerInterface { - SwitchResult HandleInitialSelectDampening(IceSwitchReason reason, - const Connection* new_connection); - -- const Environment env_; - std::function<IceTransportStateInternal()> ice_transport_state_func_; - std::function<IceRole()> ice_role_func_; - std::function<bool(const Connection*)> is_connection_pruned_func_; -@@ -174,7 +170,7 @@ class BasicIceController : public IceControllerInterface { - std::set<const Connection*> unpinged_connections_; - - // Timestamp for when we got the first selectable connection. -- std::optional<Timestamp> initial_select_timestamp_; -+ int64_t initial_select_timestamp_ms_ = 0; - }; - - } // namespace webrtc -diff --git a/p2p/base/ice_controller_factory_interface.h b/p2p/base/ice_controller_factory_interface.h -index 966d3e3542..2f8754e3aa 100644 ---- a/p2p/base/ice_controller_factory_interface.h -+++ b/p2p/base/ice_controller_factory_interface.h -@@ -15,7 +15,6 @@ - #include <memory> - #include <string> - --#include "api/environment/environment.h" - #include "p2p/base/connection.h" - #include "p2p/base/ice_controller_interface.h" - #include "p2p/base/ice_transport_internal.h" -@@ -26,7 +25,6 @@ namespace webrtc { - - // struct with arguments to IceControllerFactoryInterface::Create - struct IceControllerFactoryArgs { -- Environment env; - std::function<IceTransportStateInternal()> ice_transport_state_func; - std::function<IceRole()> ice_role_func; - std::function<bool(const Connection*)> is_connection_pruned_func; -diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc -index 82d854fe1d..eee1092080 100644 ---- a/p2p/base/p2p_transport_channel.cc -+++ b/p2p/base/p2p_transport_channel.cc -@@ -215,7 +215,6 @@ P2PTransportChannel::P2PTransportChannel( - ParseFieldTrials(env_.field_trials()); - - IceControllerFactoryArgs args{ -- .env = env_, - .ice_transport_state_func = [this] { return GetState(); }, - .ice_role_func = [this] { return GetIceRole(); }, - .is_connection_pruned_func = -diff --git a/p2p/base/wrapping_active_ice_controller_unittest.cc b/p2p/base/wrapping_active_ice_controller_unittest.cc -index 8b5601358b..074f3b6474 100644 ---- a/p2p/base/wrapping_active_ice_controller_unittest.cc -+++ b/p2p/base/wrapping_active_ice_controller_unittest.cc -@@ -26,13 +26,24 @@ - #include "rtc_base/event.h" - #include "rtc_base/fake_clock.h" - #include "rtc_base/thread.h" --#include "test/create_test_environment.h" - #include "test/gmock.h" - #include "test/gtest.h" - --namespace webrtc { - namespace { - -+using ::webrtc::Connection; -+using ::webrtc::IceConfig; -+using ::webrtc::IceControllerFactoryArgs; -+using ::webrtc::IceControllerInterface; -+using ::webrtc::IceMode; -+using ::webrtc::IceRecheckEvent; -+using ::webrtc::IceSwitchReason; -+using ::webrtc::MockIceAgent; -+using ::webrtc::MockIceController; -+using ::webrtc::MockIceControllerFactory; -+using ::webrtc::NominationMode; -+using ::webrtc::WrappingActiveIceController; -+ - using ::testing::_; - using ::testing::ElementsAreArray; - using ::testing::IsEmpty; -@@ -41,6 +52,11 @@ using ::testing::Ref; - using ::testing::Return; - using ::testing::Sequence; - -+using ::webrtc::AutoThread; -+using ::webrtc::Event; -+using ::webrtc::ScopedFakeClock; -+using ::webrtc::TimeDelta; -+ - using NiceMockIceController = NiceMock<MockIceController>; - - const Connection* kConnection = reinterpret_cast<const Connection*>(0xabcd); -@@ -56,7 +72,7 @@ constexpr TimeDelta kTick = TimeDelta::Millis(1); - TEST(WrappingActiveIceControllerTest, CreateLegacyIceControllerFromFactory) { - AutoThread main; - MockIceAgent agent; -- IceControllerFactoryArgs args = {.env = CreateTestEnvironment()}; -+ IceControllerFactoryArgs args; - MockIceControllerFactory legacy_controller_factory; - EXPECT_CALL(legacy_controller_factory, RecordIceControllerCreated()).Times(1); - WrappingActiveIceController controller(&agent, &legacy_controller_factory, -@@ -67,8 +83,7 @@ TEST(WrappingActiveIceControllerTest, PassthroughIceControllerInterface) { - AutoThread main; - MockIceAgent agent; - std::unique_ptr<MockIceController> will_move = -- std::make_unique<MockIceController>( -- IceControllerFactoryArgs{.env = CreateTestEnvironment()}); -+ std::make_unique<MockIceController>(IceControllerFactoryArgs{}); - MockIceController* wrapped = will_move.get(); - WrappingActiveIceController controller(&agent, std::move(will_move)); - -@@ -105,8 +120,7 @@ TEST(WrappingActiveIceControllerTest, HandlesImmediateSwitchRequest) { - ScopedFakeClock clock; - NiceMock<MockIceAgent> agent; - std::unique_ptr<NiceMockIceController> will_move = -- std::make_unique<NiceMockIceController>( -- IceControllerFactoryArgs{.env = CreateTestEnvironment()}); -+ std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{}); - NiceMockIceController* wrapped = will_move.get(); - WrappingActiveIceController controller(&agent, std::move(will_move)); - -@@ -151,8 +165,7 @@ TEST(WrappingActiveIceControllerTest, HandlesImmediateSortAndSwitchRequest) { - ScopedFakeClock clock; - NiceMock<MockIceAgent> agent; - std::unique_ptr<NiceMockIceController> will_move = -- std::make_unique<NiceMockIceController>( -- IceControllerFactoryArgs{.env = CreateTestEnvironment()}); -+ std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{}); - NiceMockIceController* wrapped = will_move.get(); - WrappingActiveIceController controller(&agent, std::move(will_move)); - -@@ -210,8 +223,7 @@ TEST(WrappingActiveIceControllerTest, HandlesSortAndSwitchRequest) { - - NiceMock<MockIceAgent> agent; - std::unique_ptr<NiceMockIceController> will_move = -- std::make_unique<NiceMockIceController>( -- IceControllerFactoryArgs{.env = CreateTestEnvironment()}); -+ std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{}); - NiceMockIceController* wrapped = will_move.get(); - WrappingActiveIceController controller(&agent, std::move(will_move)); - -@@ -256,8 +268,7 @@ TEST(WrappingActiveIceControllerTest, StartPingingAfterSortAndSwitch) { - - NiceMock<MockIceAgent> agent; - std::unique_ptr<NiceMockIceController> will_move = -- std::make_unique<NiceMockIceController>( -- IceControllerFactoryArgs{.env = CreateTestEnvironment()}); -+ std::make_unique<NiceMockIceController>(IceControllerFactoryArgs{}); - NiceMockIceController* wrapped = will_move.get(); - WrappingActiveIceController controller(&agent, std::move(will_move)); - -@@ -308,4 +319,3 @@ TEST(WrappingActiveIceControllerTest, StartPingingAfterSortAndSwitch) { - } - - } // namespace --} // namespace webrtc