From 9357295089a825cf6045cd92168c679473f33ec3 Mon Sep 17 00:00:00 2001 From: Nick Bourdakos Date: Tue, 18 Nov 2025 16:40:54 -0800 Subject: [PATCH] webrtc PiperOrigin-RevId: 834019952 --- .../platform/implementation/windows/BUILD | 4 +- .../platform/implementation/windows/webrtc.cc | 50 +++++-------------- .../platform/implementation/windows/webrtc.h | 35 +------------ 3 files changed, 17 insertions(+), 72 deletions(-) diff --git a/internal/platform/implementation/windows/BUILD b/internal/platform/implementation/windows/BUILD index 4acf549b..1d49c96e 100644 --- a/internal/platform/implementation/windows/BUILD +++ b/internal/platform/implementation/windows/BUILD @@ -294,7 +294,6 @@ cc_library( "//connections/implementation/mediums:utils", "//connections/implementation/mediums/ble:ble_advertisement_header", "//connections/implementation/mediums/ble:bloom_filter", - "//internal/account", "//internal/base", "//internal/base:file_path", "//internal/base:files", @@ -302,12 +301,12 @@ cc_library( "//internal/flags:nearby_flags", "//internal/platform:base", "//internal/platform:cancellation_flag", + "//internal/platform:comm", "//internal/platform:logging", "//internal/platform:mac_address", "//internal/platform:types", "//internal/platform:uuid", "//internal/platform/flags:platform_flags", - "//internal/platform/implementation:account_manager", "//internal/platform/implementation:comm", "//internal/platform/implementation:platform", "//internal/platform/implementation:types", @@ -317,6 +316,7 @@ cc_library( "//third_party/intel/pie", "//third_party/webrtc/files/stable/webrtc/api:create_modular_peer_connection_factory", "//third_party/webrtc/files/stable/webrtc/api:libjingle_peerconnection_api", + "//third_party/webrtc/files/stable/webrtc/api:rtc_error", "//third_party/webrtc/files/stable/webrtc/api:scoped_refptr", "//third_party/webrtc/files/stable/webrtc/rtc_base:threading", "@com_google_absl//absl/base:core_headers", diff --git a/internal/platform/implementation/windows/webrtc.cc b/internal/platform/implementation/windows/webrtc.cc index e6a2408f..85fa989d 100644 --- a/internal/platform/implementation/windows/webrtc.cc +++ b/internal/platform/implementation/windows/webrtc.cc @@ -22,40 +22,16 @@ #include #include "absl/strings/string_view.h" -#include "internal/account/account_manager_impl.h" -#include "internal/platform/byte_array.h" #include "internal/platform/implementation/webrtc.h" #include "internal/platform/logging.h" +#include "internal/platform/tachyon_express_signaling_messenger.h" #include "webrtc/api/create_modular_peer_connection_factory.h" #include "webrtc/api/peer_connection_interface.h" +#include "webrtc/api/rtc_error.h" #include "webrtc/api/scoped_refptr.h" #include "webrtc/rtc_base/thread.h" -namespace nearby { -namespace windows { - -WebRtcSignalingMessenger::WebRtcSignalingMessenger( - absl::string_view self_id, - const location::nearby::connections::LocationHint& location_hint) - : self_id_(self_id), - location_hint_(location_hint), - account_manager_(nearby::AccountManagerImpl::Factory::instance()) {} -// TODO(b/261663238): replace with real implementation. -bool WebRtcSignalingMessenger::SendMessage(absl::string_view peer_id, - const ByteArray& message) { - return false; -} - -// TODO(b/261663238): replace with real implementation. -bool WebRtcSignalingMessenger::StartReceivingMessages( - api::WebRtcSignalingMessenger::OnSignalingMessageCallback - on_message_callback, - api::WebRtcSignalingMessenger::OnSignalingCompleteCallback - on_complete_callback) { - return false; -} -// TODO(b/261663238): replace with real implementation. -void WebRtcSignalingMessenger::StopReceivingMessages() {} +namespace nearby::windows { std::string WebRtcMedium::GetDefaultCountryCode() { wchar_t systemGeoName[LOCALE_NAME_MAX_LENGTH]; @@ -81,7 +57,7 @@ void WebRtcMedium::CreatePeerConnection( webrtc::PeerConnectionObserver* observer, PeerConnectionCallback callback) { webrtc::PeerConnectionInterface::RTCConfiguration rtc_config; rtc_config.sdp_semantics = webrtc::SdpSemantics::kUnifiedPlan; - // TODO(b/261663238): Add the TURN servers and go beyond the default servers. + // TODO: b/261663238 - Add the TURN servers and go beyond the default servers. webrtc::PeerConnectionInterface::IceServer ice_server; ice_server.urls.emplace_back("stun:stun.l.google.com:19302"); ice_server.urls.emplace_back("stun:stun1.l.google.com:19302"); @@ -93,7 +69,8 @@ void WebRtcMedium::CreatePeerConnection( std::unique_ptr signaling_thread = webrtc::Thread::Create(); signaling_thread->SetName("signaling_thread", nullptr); if (!signaling_thread->Start()) { - LOG(FATAL) << "Failed to start thread"; + callback(/*peer_connection=*/nullptr); + return; } webrtc::PeerConnectionDependencies dependencies(observer); @@ -106,13 +83,13 @@ void WebRtcMedium::CreatePeerConnection( if (options.has_value()) { peer_connection_factory->SetOptions(options.value()); } - auto peer_connection_or_error = - peer_connection_factory->CreatePeerConnectionOrError( - rtc_config, std::move(dependencies)); + webrtc::RTCErrorOr> + peer_connection_or_error = + peer_connection_factory->CreatePeerConnectionOrError( + rtc_config, std::move(dependencies)); if (peer_connection_or_error.ok()) { callback(peer_connection_or_error.MoveValue()); } else { - LOG(FATAL) << "Failed to create peer connection"; callback(/*peer_connection=*/nullptr); } } @@ -121,9 +98,8 @@ std::unique_ptr WebRtcMedium::GetSignalingMessenger( absl::string_view self_id, const location::nearby::connections::LocationHint& location_hint) { - return std::make_unique(std::string(self_id), - location_hint); + return std::make_unique(self_id, + location_hint); } -} // namespace windows -} // namespace nearby +} // namespace nearby::windows diff --git a/internal/platform/implementation/windows/webrtc.h b/internal/platform/implementation/windows/webrtc.h index 7cdfb29c..2c5b3fb3 100644 --- a/internal/platform/implementation/windows/webrtc.h +++ b/internal/platform/implementation/windows/webrtc.h @@ -20,42 +20,13 @@ #include #include "absl/strings/string_view.h" -#include "internal/platform/byte_array.h" -#include "internal/platform/implementation/account_manager.h" #include "internal/platform/implementation/webrtc.h" #include "webrtc/api/peer_connection_interface.h" -namespace nearby { -namespace windows { - -class WebRtcSignalingMessenger : public api::WebRtcSignalingMessenger { - public: - using OnSignalingMessageCallback = - api::WebRtcSignalingMessenger::OnSignalingMessageCallback; - using OnSignalingCompleteCallback = - api::WebRtcSignalingMessenger::OnSignalingCompleteCallback; - - explicit WebRtcSignalingMessenger( - absl::string_view self_id, - const location::nearby::connections::LocationHint& location_hint); - ~WebRtcSignalingMessenger() override = default; - - bool SendMessage(absl::string_view peer_id, - const ByteArray& message) override; - bool StartReceivingMessages( - OnSignalingMessageCallback on_message_callback, - OnSignalingCompleteCallback on_complete_callback) override; - void StopReceivingMessages() override; - - private: - std::string self_id_; - location::nearby::connections::LocationHint location_hint_; - AccountManager* account_manager_; -}; +namespace nearby::windows { class WebRtcMedium : public api::WebRtcMedium { public: - // TODO(b/261663238): replace with real implementation. ~WebRtcMedium() override = default; // Gets the default two-letter country code associated with current locale. @@ -76,14 +47,12 @@ class WebRtcMedium : public api::WebRtcMedium { PeerConnectionCallback callback) override; // Returns a signaling messenger for sending WebRTC signaling messages. - // TODO(b/261663238): replace with real implementation. std::unique_ptr GetSignalingMessenger( absl::string_view self_id, const location::nearby::connections::LocationHint& location_hint) override; }; -} // namespace windows -} // namespace nearby +} // namespace nearby::windows #endif // PLATFORM_IMPL_WINDOWS_WEBRTC_H_