From 765bd555e4ae66665c282df351746e3317a23ee7 Mon Sep 17 00:00:00 2001 From: Francis Tsui Date: Thu, 21 May 2026 15:05:31 -0700 Subject: [PATCH] Create separate WebRtc Platform. PiperOrigin-RevId: 919274513 --- Package.swift | 1 + internal/platform/implementation/apple/BUILD | 12 +++++++ .../platform/implementation/apple/Tests/BUILD | 2 ++ .../apple/Tests/GNCPlatformTest.mm | 3 +- .../platform/implementation/apple/platform.mm | 10 ------ .../implementation/apple/webrtc_platform.mm | 31 +++++++++++++++++++ 6 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 internal/platform/implementation/apple/webrtc_platform.mm diff --git a/Package.swift b/Package.swift index 973d26c5..09c96c3e 100644 --- a/Package.swift +++ b/Package.swift @@ -476,6 +476,7 @@ let package = Package( "internal/platform/implementation/apple/mutex_test.cc", "internal/platform/implementation/apple/atomic_boolean_test.cc", "internal/platform/implementation/apple/atomic_uint32_test.cc", + "internal/platform/implementation/apple/webrtc_platform.mm", "internal/platform/implementation/shared/file_test.cc", "internal/platform/implementation/wifi_utils_test.cc", "internal/platform/atomic_boolean_test.cc", diff --git a/internal/platform/implementation/apple/BUILD b/internal/platform/implementation/apple/BUILD index 55875c7b..6e4b01d9 100644 --- a/internal/platform/implementation/apple/BUILD +++ b/internal/platform/implementation/apple/BUILD @@ -51,6 +51,17 @@ objc_library( ], ) +objc_library( + name = "apple_webrtc", + srcs = [ + "webrtc_platform.mm", + ], + deps = [ + ":apple", + "//internal/platform/implementation:webrtc_platform", + ], +) + objc_library( name = "apple", srcs = [ @@ -102,6 +113,7 @@ objc_library( "//internal/base:file_path", "//internal/base:files", "//internal/base:masker", + "//internal/platform/implementation/apple/Flags", "//internal/platform/implementation/apple/Mediums/Hotspot", "//internal/account", "//internal/crypto_cros", diff --git a/internal/platform/implementation/apple/Tests/BUILD b/internal/platform/implementation/apple/Tests/BUILD index b27b3c4b..32369963 100644 --- a/internal/platform/implementation/apple/Tests/BUILD +++ b/internal/platform/implementation/apple/Tests/BUILD @@ -56,8 +56,10 @@ objc_library( "//internal/platform/implementation:comm", "//internal/platform/implementation:platform", "//internal/platform/implementation:types", + "//internal/platform/implementation:webrtc_platform", "//internal/platform/implementation/apple", # buildcleaner: keep "//internal/platform/implementation/apple:Shared", + "//internal/platform/implementation/apple:apple_webrtc", # buildcleaner: keep "//internal/platform/implementation/apple:ble_v2", "//internal/platform/implementation/apple:network_utils", "//internal/platform/implementation/apple/Flags", diff --git a/internal/platform/implementation/apple/Tests/GNCPlatformTest.mm b/internal/platform/implementation/apple/Tests/GNCPlatformTest.mm index cfaaebac..22afb8c1 100644 --- a/internal/platform/implementation/apple/Tests/GNCPlatformTest.mm +++ b/internal/platform/implementation/apple/Tests/GNCPlatformTest.mm @@ -13,6 +13,7 @@ // limitations under the License. #include "internal/platform/implementation/platform.h" +#include "internal/platform/implementation/webrtc_platform.h" #import #import @@ -320,7 +321,7 @@ void GNCEnsureFileAtPath(std::string path) { } - (void)testCreateWebRtcMedium { - auto webrtc_medium = nearby::api::ImplementationPlatform::CreateWebRtcMedium(); + auto webrtc_medium = nearby::api::WebRtcImplementationPlatform::CreateWebRtcMedium(); XCTAssertNotEqual(webrtc_medium.get(), nullptr); } diff --git a/internal/platform/implementation/apple/platform.mm b/internal/platform/implementation/apple/platform.mm index 5f95d4d6..e11b524b 100644 --- a/internal/platform/implementation/apple/platform.mm +++ b/internal/platform/implementation/apple/platform.mm @@ -45,10 +45,6 @@ #include "internal/platform/implementation/shared/file.h" #include "internal/platform/payload_id.h" -#ifndef NO_WEBRTC -#import "internal/platform/implementation/apple/webrtc.h" -#endif - namespace nearby { namespace api { @@ -205,12 +201,6 @@ std::unique_ptr ImplementationPlatform::CreateWifiDirectMedium return nullptr; } -#ifndef NO_WEBRTC -std::unique_ptr ImplementationPlatform::CreateWebRtcMedium() { - return std::make_unique(); -} -#endif - std::unique_ptr ImplementationPlatform::CreateAppLifecycleMonitor( std::function state_updated_callback) { #if TARGET_OS_IPHONE diff --git a/internal/platform/implementation/apple/webrtc_platform.mm b/internal/platform/implementation/apple/webrtc_platform.mm new file mode 100644 index 00000000..7cec489b --- /dev/null +++ b/internal/platform/implementation/apple/webrtc_platform.mm @@ -0,0 +1,31 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "internal/platform/implementation/webrtc_platform.h" + +#import + +#include + +#import "internal/platform/implementation/apple/webrtc.h" + +namespace nearby { +namespace api { + +std::unique_ptr WebRtcImplementationPlatform::CreateWebRtcMedium() { + return std::make_unique(); +} + +} // namespace api +} // namespace nearby