diff --git a/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java b/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java index 7032fcced1..a7bc29aa63 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +++ b/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java @@ -13,6 +13,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import com.facebook.react.bridge.BridgeProfiling; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; @@ -77,6 +78,7 @@ import com.facebook.react.uimanager.events.RCTEventEmitter; RCTEventEmitter.class, RCTNativeAppEventEmitter.class, AppRegistry.class, + BridgeProfiling.class, ReactNative.class, DebugComponentOwnershipModule.RCTDebugComponentOwnership.class); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeProfiling.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeProfiling.java new file mode 100644 index 0000000000..50a3a72b98 --- /dev/null +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeProfiling.java @@ -0,0 +1,14 @@ +// Copyright 2004-present Facebook. All Rights Reserved. + +package com.facebook.react.bridge; + +import com.facebook.proguard.annotations.DoNotStrip; + +/** + * Interface to the JavaScript BridgeProfiling Module + */ +@DoNotStrip +public interface BridgeProfiling extends JavaScriptModule{ + @DoNotStrip + void setEnabled(boolean enabled); +} diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java index 96682eacec..c96ddb8e46 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java @@ -66,7 +66,7 @@ public class CatalystInstance { private @Nullable ReactBridge mBridge; private boolean mJSBundleHasLoaded; - private CatalystInstance( + private CatalystInstance( final CatalystQueueConfigurationSpec catalystQueueConfigurationSpec, final JavaScriptExecutor jsExecutor, final NativeModuleRegistry registry, @@ -412,38 +412,12 @@ public class CatalystInstance { private class JSProfilerTraceListener implements TraceListener { @Override public void onTraceStarted() { - mCatalystQueueConfiguration.getJSQueueThread().runOnQueue( - new Runnable() { - @Override - public void run() { - mCatalystQueueConfiguration.getJSQueueThread().assertIsOnThread(); - - if (mDestroyed) { - return; - } - Assertions.assertNotNull(mBridge).setGlobalVariable( - "__BridgeProfilingIsProfiling", - "true"); - } - }); + getJSModule(BridgeProfiling.class).setEnabled(true); } @Override public void onTraceStopped() { - mCatalystQueueConfiguration.getJSQueueThread().runOnQueue( - new Runnable() { - @Override - public void run() { - mCatalystQueueConfiguration.getJSQueueThread().assertIsOnThread(); - - if (mDestroyed) { - return; - } - Assertions.assertNotNull(mBridge).setGlobalVariable( - "__BridgeProfilingIsProfiling", - "false"); - } - }); + getJSModule(BridgeProfiling.class).setEnabled(false); } }