From 7fe6bc11502e36c19a9439d1929b5494354b30fb Mon Sep 17 00:00:00 2001 From: David Vacca Date: Wed, 5 May 2021 13:05:20 -0700 Subject: [PATCH] Create MC to verify impact of eager initialization of fabric classes Summary: This diff creates a MC to verify impact of eager initialization of fabric classes, the purpose is to remove this code, but before doing that I would like to verify what's the impact. changelog: [internal] internal Reviewed By: sammy-SC Differential Revision: D28223943 fbshipit-source-id: 6f7c4701fb730fe1c0629ec13ead592ff619373f --- .../java/com/facebook/react/config/ReactFeatureFlags.java | 3 +++ .../com/facebook/react/fabric/FabricJSIModuleProvider.java | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java index 07a9e870090..16619055908 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +++ b/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java @@ -61,6 +61,9 @@ public class ReactFeatureFlags { /** Feature flag to configure eager initialization of Fabric */ public static boolean eagerInitializeFabric = false; + /** Feature flag to configure eager initialization classes of Fabric */ + public static boolean eagerInitializeFabricClasses = false; + /** Enables Static ViewConfig in RN Android native code. */ public static boolean enableExperimentalStaticViewConfigs = false; diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java index d879bd83cca..60d2bf705c6 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java @@ -15,6 +15,7 @@ import com.facebook.react.bridge.JSIModuleProvider; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.UIManager; import com.facebook.react.bridge.queue.MessageQueueThread; +import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.fabric.events.EventBeatManager; import com.facebook.react.fabric.events.EventEmitterWrapper; import com.facebook.react.fabric.events.FabricEventEmitter; @@ -63,7 +64,9 @@ public class FabricJSIModuleProvider implements JSIModuleProvider { Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricJSIModuleProvider.registerBinding"); final Binding binding = new Binding(); // TODO T31905686: remove this call - loadClasses(); + if (ReactFeatureFlags.eagerInitializeFabricClasses) { + loadClasses(); + } MessageQueueThread jsMessageQueueThread = mReactApplicationContext .getCatalystInstance()