Log class loading for subset of bridge and uimanager classes annotated with @LegacyArchitecture (#49829)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/49829

Log class loading for bridge and uimanager classes annotated with LegacyArchitecture
changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D70607960

fbshipit-source-id: e35666b48e63c784217c0b35ad1b5d4328944527
This commit is contained in:
David Vacca
2025-03-05 23:22:37 -08:00
committed by Facebook GitHub Bot
parent 7596173c13
commit 932fd86b74
12 changed files with 71 additions and 3 deletions
@@ -10,11 +10,16 @@ package com.facebook.react.bridge
import com.facebook.jni.HybridClassBase
import com.facebook.proguard.annotations.DoNotStrip
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/** Callback impl that calls directly into the cxx bridge. Created from C++. */
@DoNotStrip
@LegacyArchitecture
public class CxxCallbackImpl @DoNotStrip private constructor() : HybridClassBase(), Callback {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("CxxCallbackImpl")
}
override fun invoke(vararg args: Any?) {
nativeInvoke(Arguments.fromJavaArgs(args))
}
@@ -10,9 +10,14 @@ package com.facebook.react.bridge
import com.facebook.jni.HybridData
import com.facebook.proguard.annotations.DoNotStrip
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/** This does nothing interesting, except avoid breaking existing code. */
@DoNotStrip
@LegacyArchitecture
public open class CxxModuleWrapper protected constructor(hybridData: HybridData) :
CxxModuleWrapperBase(hybridData)
CxxModuleWrapperBase(hybridData) {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("CxxModuleWrapper")
}
}
@@ -9,6 +9,7 @@ package com.facebook.react.bridge
import com.facebook.proguard.annotations.DoNotStrip
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/**
* Exception thrown by [ReadableMapKeySetIterator.nextKey] when the iterator tries to iterate over
@@ -17,4 +18,9 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture
@DoNotStrip
@LegacyArchitecture
public class InvalidIteratorException @DoNotStrip public constructor(msg: String) :
RuntimeException(msg) {}
RuntimeException(msg) {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"InvalidIteratorException")
}
}
@@ -15,12 +15,18 @@ import com.facebook.debug.holder.PrinterHolder;
import com.facebook.debug.tags.ReactDebugOverlayTags;
import com.facebook.infer.annotation.Assertions;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.systrace.SystraceMessage;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@LegacyArchitecture
class JavaMethodWrapper implements JavaModuleWrapper.NativeMethod {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"JavaMethodWrapper", LegacyArchitectureLogLevel.WARNING);
}
private abstract static class ArgumentExtractor<T> {
public int getJSArgumentsNeeded() {
@@ -16,6 +16,8 @@ import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
import androidx.annotation.Nullable;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
import com.facebook.systrace.Systrace;
import com.facebook.systrace.SystraceMessage;
@@ -32,6 +34,10 @@ import java.util.Map;
@DoNotStrip
@LegacyArchitecture
class JavaModuleWrapper {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"JavaModuleWrapper", LegacyArchitectureLogLevel.WARNING);
}
interface NativeMethod {
void invoke(JSInstance jsInstance, ReadableArray parameters);
@@ -9,12 +9,17 @@ 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
import com.facebook.systrace.Systrace
import com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE
@LegacyArchitecture
internal object ReactBridge {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("ReactBridge")
}
@Volatile private var _loadStartTime: Long = 0
@Volatile private var _loadEndTime: Long = 0
@Volatile private var _didInit: Boolean = false
@@ -11,6 +11,8 @@ import com.facebook.infer.annotation.Nullsafe;
import com.facebook.jni.HybridData;
import com.facebook.proguard.annotations.DoNotStripAny;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener;
import java.util.Map;
import java.util.concurrent.Executor;
@@ -66,6 +68,8 @@ public class ReactInstanceManagerInspectorTarget implements AutoCloseable {
}
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"ReactInstanceManagerInspectorTarget", LegacyArchitectureLogLevel.WARNING);
ReactBridge.staticInit();
}
}
@@ -14,6 +14,8 @@ import com.facebook.infer.annotation.Assertions;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMapKeySetIterator;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
/**
* Class responsible for optimizing the native view hierarchy while still respecting the final UI
@@ -49,6 +51,11 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture;
@LegacyArchitecture
public class NativeViewHierarchyOptimizer {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"NativeViewHierarchyOptimizer", LegacyArchitectureLogLevel.WARNING);
}
private static final String TAG = "NativeViewHierarchyOptimizer";
private static class NodeIndexPair {
@@ -8,6 +8,7 @@
package com.facebook.react.uimanager
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
/**
* Exception thrown when a class tries to access a native view by a tag that has no native view
@@ -15,4 +16,9 @@ import com.facebook.react.common.annotations.internal.LegacyArchitecture
*/
@LegacyArchitecture
internal class NoSuchNativeViewException(detailMessage: String) :
IllegalViewOperationException(detailMessage)
IllegalViewOperationException(detailMessage) {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"NoSuchNativeViewException")
}
}
@@ -22,6 +22,8 @@ import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import com.facebook.react.common.build.ReactBuildConfig;
import com.facebook.react.modules.i18nmanager.I18nUtil;
import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
@@ -41,6 +43,11 @@ import java.util.Map;
*/
@LegacyArchitecture
public class UIImplementation {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"UIImplementation", LegacyArchitectureLogLevel.WARNING);
}
protected Object uiImplementationThreadLock = new Object();
protected final EventDispatcher mEventDispatcher;
@@ -8,6 +8,8 @@
package com.facebook.react.uimanager;
import com.facebook.react.common.annotations.internal.LegacyArchitecture;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
import java.util.Comparator;
/**
@@ -16,6 +18,11 @@ import java.util.Comparator;
*/
@LegacyArchitecture
public class ViewAtIndex {
static {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled(
"ViewAtIndex", LegacyArchitectureLogLevel.WARNING);
}
public static Comparator<ViewAtIndex> COMPARATOR =
new Comparator<ViewAtIndex>() {
@Override
@@ -9,11 +9,15 @@ package com.facebook.react.uimanager
import com.facebook.react.common.ClearableSynchronizedPool
import com.facebook.react.common.annotations.internal.LegacyArchitecture
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger
import com.facebook.yoga.YogaNode
/** Static holder for a recycling pool of YogaNodes. */
@LegacyArchitecture
internal object YogaNodePool {
init {
LegacyArchitectureLogger.assertWhenLegacyArchitectureMinifyingEnabled("YogaNodePool")
}
private val pool: ClearableSynchronizedPool<YogaNode> by
lazy(LazyThreadSafetyMode.SYNCHRONIZED) { ClearableSynchronizedPool(1024) }