From f477dbcfdedabd991c9829f14a926d4fe7677983 Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Thu, 27 Mar 2025 09:40:35 -0700 Subject: [PATCH] Rename ReactBridge to BridgeSoLoader (#50315) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50315 Make it clearer that the only purpose of this class is to manage the soloading of the core bridge so file. Changelog: [Internal] Reviewed By: Abbondanzo Differential Revision: D71965759 fbshipit-source-id: d333f3e768a2359b082d4df279548cbd4b58ec76 --- .../{ReactBridge.kt => BridgeSoLoader.kt} | 34 ++++++------------- .../react/bridge/CatalystInstanceImpl.java | 2 +- .../react/bridge/CxxModuleWrapperBase.kt | 2 +- .../com/facebook/react/bridge/Inspector.java | 2 +- .../com/facebook/react/bridge/NativeArray.kt | 2 +- .../com/facebook/react/bridge/NativeMap.kt | 2 +- .../ReactInstanceManagerInspectorTarget.java | 2 +- .../facebook/react/bridge/ReactMarker.java | 2 +- .../react/defaults/DefaultSoLoader.kt | 22 ++++++------ .../facebook/react/fabric/FabricSoLoader.kt | 3 +- 10 files changed, 28 insertions(+), 45 deletions(-) rename packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactBridge.kt => BridgeSoLoader.kt} (57%) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt similarity index 57% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt index e0d4c720a3a..e772b3c57df 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeSoLoader.kt @@ -7,7 +7,6 @@ package com.facebook.react.bridge -import android.os.SystemClock import com.facebook.react.common.annotations.internal.LegacyArchitecture import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger import com.facebook.soloader.SoLoader @@ -15,41 +14,28 @@ import com.facebook.systrace.Systrace import com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE @LegacyArchitecture -internal object ReactBridge { +internal object BridgeSoLoader { init { - LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("ReactBridge") + LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("BridgeSoLoader") } - @Volatile private var _loadStartTime: Long = 0 - @Volatile private var _loadEndTime: Long = 0 - @Volatile private var _didInit: Boolean = false - @JvmStatic @Synchronized fun staticInit() { - if (_didInit) { + if (initialized) { return } - _loadStartTime = SystemClock.uptimeMillis() - Systrace.beginSection( - TRACE_TAG_REACT_JAVA_BRIDGE, "ReactBridge.staticInit::load:reactnativejni") + Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "BridgeSoLoader") ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START) SoLoader.loadLibrary("reactnativejni") ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END) Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE) - _loadEndTime = SystemClock.uptimeMillis() - _didInit = true + initialized = true } - @JvmStatic - val loadStartTime: Long - get() = _loadStartTime - - @JvmStatic - val loadEndTime: Long - get() = _loadEndTime - - @JvmStatic - val initialized: Boolean - @JvmName("isInitialized") get() = _didInit + @get:JvmStatic + @get:JvmName("isInitialized") + @Volatile + var initialized: Boolean = false + private set } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java index 70389c90b2b..0bd756ea9ca 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java @@ -50,7 +50,7 @@ import java.util.concurrent.atomic.AtomicInteger; @LegacyArchitecture public class CatalystInstanceImpl implements CatalystInstance { static { - ReactBridge.staticInit(); + BridgeSoLoader.staticInit(); LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled( "CatalystInstanceImpl", LegacyArchitectureLogLevel.WARNING); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt index 02b3a13c02d..fe2849b0702 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt @@ -48,7 +48,7 @@ protected constructor( private companion object { init { - ReactBridge.staticInit() + BridgeSoLoader.staticInit() LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled( "CxxModuleWrapperBase", LegacyArchitectureLogLevel.WARNING) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.java index 3043c74eac2..3c199f3b465 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.java @@ -18,7 +18,7 @@ import java.util.List; @DoNotStrip public class Inspector { static { - ReactBridge.staticInit(); + BridgeSoLoader.staticInit(); } private final HybridData mHybridData; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt index e70f2d76eec..937759a8723 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArray.kt @@ -19,7 +19,7 @@ public abstract class NativeArray protected constructor() : private companion object { init { - ReactBridge.staticInit() + BridgeSoLoader.staticInit() } } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt index 8371fe16e11..16dfdcadc7d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeMap.kt @@ -17,7 +17,7 @@ public abstract class NativeMap : HybridClassBase() { private companion object { init { - ReactBridge.staticInit() + BridgeSoLoader.staticInit() } } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java index bc5c46f3e96..329412bb6ab 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java @@ -70,6 +70,6 @@ public class ReactInstanceManagerInspectorTarget implements AutoCloseable { static { LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled( "ReactInstanceManagerInspectorTarget", LegacyArchitectureLogLevel.WARNING); - ReactBridge.staticInit(); + BridgeSoLoader.staticInit(); } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java index 6f77b7255a7..7d704ee744b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarker.java @@ -211,7 +211,7 @@ public class ReactMarker { now = SystemClock.uptimeMillis(); } - if (ReactBridge.isInitialized()) { + if (BridgeSoLoader.isInitialized()) { // First send the current marker nativeLogMarker(name.name(), now); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt index cebdc7c9323..c3243f47f9a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultSoLoader.kt @@ -9,18 +9,16 @@ package com.facebook.react.defaults import com.facebook.soloader.SoLoader -internal class DefaultSoLoader { - companion object { - @Synchronized - @JvmStatic - fun maybeLoadSoLibrary() { - SoLoader.loadLibrary("react_newarchdefaults") - try { - SoLoader.loadLibrary("appmodules") - } catch (e: UnsatisfiedLinkError) { - // ignore: DefaultTurboModuleManagerDelegate is still used in apps that don't have - // appmodules.so - } +internal object DefaultSoLoader { + @Synchronized + @JvmStatic + fun maybeLoadSoLibrary() { + SoLoader.loadLibrary("react_newarchdefaults") + try { + SoLoader.loadLibrary("appmodules") + } catch (e: UnsatisfiedLinkError) { + // ignore: DefaultTurboModuleManagerDelegate is still used in apps that don't have + // appmodules.so } } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt index 49f7d8afa34..3d7017c3959 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricSoLoader.kt @@ -20,8 +20,7 @@ public object FabricSoLoader { if (didInit) { return } - Systrace.beginSection( - Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricSoLoader.staticInit::load:fabricjni") + Systrace.beginSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricSoLoader") ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START) SoLoader.loadLibrary("fabricjni") ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END)