Skip to content

Commit 0ee4a2d

Browse files
cortinicometa-codesync[bot]
authored andcommitted
Remove unused NotThreadSafeBridgeIdleDebugListener (facebook#54559)
Summary: Pull Request resolved: facebook#54559 This class is no longer used. It's a legacy arch class used to populate the legacy FPS counter. We can safely remove it now because we're on NewArch only. Marking this as breaking because I removed some methods from some public classes. Changelog: [Android] [Breaking] - Remove unused internal `NotThreadSafeBridgeIdleDebugListener` Reviewed By: mdvacca Differential Revision: D87220846 fbshipit-source-id: 8b0ed0f8895d6768411e0674cf52d16fa9491604
1 parent 991dff2 commit 0ee4a2d

File tree

9 files changed

+3
-309
lines changed

9 files changed

+3
-309
lines changed

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,6 @@ public final class com/facebook/react/ReactInstanceManagerBuilder {
296296
public final fun addPackages (Ljava/util/List;)Lcom/facebook/react/ReactInstanceManagerBuilder;
297297
public final fun build ()Lcom/facebook/react/ReactInstanceManager;
298298
public final fun setApplication (Landroid/app/Application;)Lcom/facebook/react/ReactInstanceManagerBuilder;
299-
public final fun setBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)Lcom/facebook/react/ReactInstanceManagerBuilder;
300299
public final fun setBundleAssetName (Ljava/lang/String;)Lcom/facebook/react/ReactInstanceManagerBuilder;
301300
public final fun setChoreographerProvider (Lcom/facebook/react/internal/ChoreographerProvider;)Lcom/facebook/react/ReactInstanceManagerBuilder;
302301
public final fun setCurrentActivity (Landroid/app/Activity;)Lcom/facebook/react/ReactInstanceManagerBuilder;
@@ -583,7 +582,6 @@ public abstract interface class com/facebook/react/bridge/Callback {
583582
}
584583

585584
public abstract interface class com/facebook/react/bridge/CatalystInstance : com/facebook/react/bridge/JSBundleLoaderDelegate, com/facebook/react/bridge/JSInstance, com/facebook/react/bridge/MemoryPressureListener {
586-
public abstract fun addBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V
587585
public abstract fun callFunction (Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/NativeArray;)V
588586
public abstract fun destroy ()V
589587
public abstract fun extendNativeModules (Lcom/facebook/react/bridge/NativeModuleRegistry;)V
@@ -605,15 +603,13 @@ public abstract interface class com/facebook/react/bridge/CatalystInstance : com
605603
public abstract fun invokeCallback (ILcom/facebook/react/bridge/NativeArrayInterface;)V
606604
public abstract fun isDestroyed ()Z
607605
public abstract fun registerSegment (ILjava/lang/String;)V
608-
public abstract fun removeBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V
609606
public abstract fun runJSBundle ()V
610607
public abstract fun setFabricUIManager (Lcom/facebook/react/bridge/UIManager;)V
611608
public abstract fun setGlobalVariable (Ljava/lang/String;Ljava/lang/String;)V
612609
public abstract fun setTurboModuleRegistry (Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModuleRegistry;)V
613610
}
614611

615612
public class com/facebook/react/bridge/CatalystInstanceImpl : com/facebook/react/bridge/CatalystInstance {
616-
public fun addBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V
617613
public fun callFunction (Lcom/facebook/react/bridge/CatalystInstanceImpl$PendingJSCall;)V
618614
public fun callFunction (Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/NativeArray;)V
619615
public fun destroy ()V
@@ -641,7 +637,6 @@ public class com/facebook/react/bridge/CatalystInstanceImpl : com/facebook/react
641637
public fun loadScriptFromFile (Ljava/lang/String;Ljava/lang/String;Z)V
642638
public fun loadSplitBundleFromFile (Ljava/lang/String;Ljava/lang/String;)V
643639
public fun registerSegment (ILjava/lang/String;)V
644-
public fun removeBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V
645640
public fun runJSBundle ()V
646641
public fun setFabricUIManager (Lcom/facebook/react/bridge/UIManager;)V
647642
public fun setGlobalVariable (Ljava/lang/String;Ljava/lang/String;)V
@@ -970,12 +965,6 @@ public final class com/facebook/react/bridge/NoSuchKeyException : java/lang/Runt
970965
public fun <init> (Ljava/lang/String;)V
971966
}
972967

973-
public abstract interface class com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener {
974-
public abstract fun onBridgeDestroyed ()V
975-
public abstract fun onTransitionToBridgeBusy ()V
976-
public abstract fun onTransitionToBridgeIdle ()V
977-
}
978-
979968
public abstract interface class com/facebook/react/bridge/PerformanceCounter {
980969
public abstract fun getPerformanceCounters ()Ljava/util/Map;
981970
public abstract fun profileNextBatch ()V

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
import com.facebook.react.bridge.JavaScriptExecutor;
5858
import com.facebook.react.bridge.JavaScriptExecutorFactory;
5959
import com.facebook.react.bridge.NativeModuleRegistry;
60-
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
6160
import com.facebook.react.bridge.ReactApplicationContext;
6261
import com.facebook.react.bridge.ReactContext;
6362
import com.facebook.react.bridge.ReactCxxErrorHandler;
@@ -183,7 +182,6 @@ public interface ReactInstanceEventListener
183182
private final boolean mUseDeveloperSupport;
184183
private final boolean mRequireActivity;
185184
private final boolean mKeepActivity;
186-
private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
187185
private final Object mReactContextLock = new Object();
188186
private @Nullable volatile ReactContext mCurrentReactContext;
189187
private final Context mApplicationContext;
@@ -246,7 +244,6 @@ public static ReactInstanceManagerBuilder builder() {
246244
DevSupportManagerFactory devSupportManagerFactory,
247245
boolean requireActivity,
248246
boolean keepActivity,
249-
@Nullable NotThreadSafeBridgeIdleDebugListener bridgeIdleDebugListener,
250247
LifecycleState initialLifecycleState,
251248
JSExceptionHandler jSExceptionHandler,
252249
@Nullable RedBoxHandler redBoxHandler,
@@ -292,7 +289,6 @@ public static ReactInstanceManagerBuilder builder() {
292289
devLoadingViewManager,
293290
pausedInDebuggerOverlayManager);
294291
Systrace.endSection(TRACE_TAG_REACT);
295-
mBridgeIdleDebugListener = bridgeIdleDebugListener;
296292
mLifecycleState = initialLifecycleState;
297293
mMemoryPressureRouter = new MemoryPressureRouter(applicationContext);
298294
mJSExceptionHandler = jSExceptionHandler;
@@ -1517,9 +1513,6 @@ private ReactApplicationContext createReactContext(
15171513
catalystInstance.setFabricUIManager(uiManager);
15181514
}
15191515
}
1520-
if (mBridgeIdleDebugListener != null) {
1521-
catalystInstance.addBridgeIdleDebugListener(mBridgeIdleDebugListener);
1522-
}
15231516
if (BuildConfig.ENABLE_PERFETTO || Systrace.isTracing(TRACE_TAG_REACT)) {
15241517
catalystInstance.setGlobalVariable("__RCTProfileIsProfiling", "true");
15251518
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import com.facebook.react.ReactInstanceManager.initializeSoLoaderIfNecessary
1919
import com.facebook.react.bridge.JSBundleLoader
2020
import com.facebook.react.bridge.JSExceptionHandler
2121
import com.facebook.react.bridge.JavaScriptExecutorFactory
22-
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
2322
import com.facebook.react.bridge.UIManagerProvider
2423
import com.facebook.react.common.LifecycleState
2524
import com.facebook.react.common.SurfaceDelegateFactory
@@ -49,7 +48,6 @@ public class ReactInstanceManagerBuilder {
4948
private var jsBundleAssetUrl: String? = null
5049
private var jsBundleLoader: JSBundleLoader? = null
5150
private var jsMainModulePath: String? = null
52-
private var bridgeIdleDebugListener: NotThreadSafeBridgeIdleDebugListener? = null
5351
private var application: Application? = null
5452
private var useDeveloperSupport = false
5553
private var devSupportManagerFactory: DevSupportManagerFactory? = null
@@ -145,13 +143,6 @@ public class ReactInstanceManagerBuilder {
145143
return this
146144
}
147145

148-
public fun setBridgeIdleDebugListener(
149-
bridgeIdleDebugListener: NotThreadSafeBridgeIdleDebugListener
150-
): ReactInstanceManagerBuilder {
151-
this.bridgeIdleDebugListener = bridgeIdleDebugListener
152-
return this
153-
}
154-
155146
/** Required. This must be your `Application` instance. */
156147
public fun setApplication(application: Application): ReactInstanceManagerBuilder {
157148
this.application = application
@@ -359,7 +350,6 @@ public class ReactInstanceManagerBuilder {
359350
devSupportManagerFactory ?: DefaultDevSupportManagerFactory(),
360351
requireActivity,
361352
keepActivity,
362-
bridgeIdleDebugListener,
363353
checkNotNull(initialLifecycleState) { "Initial lifecycle state was not set" },
364354
jsExceptionHandler,
365355
redBoxHandler,

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -75,24 +75,6 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle
7575
*/
7676
public fun extendNativeModules(modules: NativeModuleRegistry)
7777

78-
/**
79-
* Adds a idle listener for this Catalyst instance. The listener will receive notifications
80-
* whenever the bridge transitions from idle to busy and vice-versa, where the busy state is
81-
* defined as there being some non-zero number of calls to JS that haven't resolved via a
82-
* onBatchCompleted call. The listener should be purely passive and not affect application logic.
83-
*/
84-
public fun addBridgeIdleDebugListener(
85-
@Suppress("DEPRECATION") listener: NotThreadSafeBridgeIdleDebugListener
86-
)
87-
88-
/**
89-
* Removes a NotThreadSafeBridgeIdleDebugListener previously added with
90-
* [addBridgeIdleDebugListener]
91-
*/
92-
public fun removeBridgeIdleDebugListener(
93-
@Suppress("DEPRECATION") listener: NotThreadSafeBridgeIdleDebugListener
94-
)
95-
9678
/** This method registers the file path of an additional JS segment by its ID. */
9779
public fun registerSegment(segmentId: Int, path: String)
9880

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import java.lang.ref.WeakReference;
4040
import java.util.ArrayList;
4141
import java.util.Collection;
42-
import java.util.concurrent.CopyOnWriteArrayList;
4342
import java.util.concurrent.atomic.AtomicInteger;
4443

4544
/**
@@ -88,7 +87,6 @@ public String toString() {
8887

8988
// Access from any thread
9089
private final ReactQueueConfigurationImpl mReactQueueConfiguration;
91-
private final CopyOnWriteArrayList<NotThreadSafeBridgeIdleDebugListener> mBridgeIdleListeners;
9290
private final AtomicInteger mPendingJSCalls = new AtomicInteger(0);
9391
private final String mJsPendingCallsTitleForTrace =
9492
"pending_js_calls_instance" + sNextInstanceIdForTrace.getAndIncrement();
@@ -138,7 +136,6 @@ private CatalystInstanceImpl(
138136
mReactQueueConfiguration =
139137
ReactQueueConfigurationImpl.create(
140138
reactQueueConfigurationSpec, new NativeExceptionHandler());
141-
mBridgeIdleListeners = new CopyOnWriteArrayList<>();
142139
mNativeModuleRegistry = nativeModuleRegistry;
143140
mJSModuleRegistry = new JavaScriptModuleRegistry();
144141
mJSBundleLoader = jsBundleLoader;
@@ -372,14 +369,6 @@ public void destroy() {
372369
mFabricUIManager.invalidate();
373370
}
374371
boolean wasIdle = (mPendingJSCalls.getAndSet(0) == 0);
375-
if (!mBridgeIdleListeners.isEmpty()) {
376-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
377-
if (!wasIdle) {
378-
listener.onTransitionToBridgeIdle();
379-
}
380-
listener.onBridgeDestroyed();
381-
}
382-
}
383372

384373
getReactQueueConfiguration()
385374
.getJSQueueThread()
@@ -521,30 +510,6 @@ public void handleMemoryPressure(int level) {
521510
jniHandleMemoryPressure(level);
522511
}
523512

524-
/**
525-
* Adds a idle listener for this Catalyst instance. The listener will receive notifications
526-
* whenever the bridge transitions from idle to busy and vice-versa, where the busy state is
527-
* defined as there being some non-zero number of calls to JS that haven't resolved via a
528-
* onBatchComplete call. The listener should be purely passive and not affect application logic.
529-
*
530-
* @noinspection deprecation
531-
*/
532-
@Override
533-
public void addBridgeIdleDebugListener(NotThreadSafeBridgeIdleDebugListener listener) {
534-
mBridgeIdleListeners.add(listener);
535-
}
536-
537-
/**
538-
* Removes a NotThreadSafeBridgeIdleDebugListener previously added with {@link
539-
* #addBridgeIdleDebugListener}
540-
*
541-
* @noinspection deprecation
542-
*/
543-
@Override
544-
public void removeBridgeIdleDebugListener(NotThreadSafeBridgeIdleDebugListener listener) {
545-
mBridgeIdleListeners.remove(listener);
546-
}
547-
548513
@Override
549514
public native void setGlobalVariable(String propName, String jsonValue);
550515

@@ -561,16 +526,7 @@ public JavaScriptContextHolder getJavaScriptContextHolder() {
561526

562527
private void incrementPendingJSCalls() {
563528
int oldPendingCalls = mPendingJSCalls.getAndIncrement();
564-
boolean wasIdle = oldPendingCalls == 0;
565529
Systrace.traceCounter(TRACE_TAG_REACT, mJsPendingCallsTitleForTrace, oldPendingCalls + 1);
566-
if (wasIdle && !mBridgeIdleListeners.isEmpty()) {
567-
mNativeModulesQueueThread.runOnQueue(
568-
() -> {
569-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
570-
listener.onTransitionToBridgeBusy();
571-
}
572-
});
573-
}
574530
}
575531

576532
@Override
@@ -592,17 +548,7 @@ private void decrementPendingJSCalls() {
592548
int newPendingCalls = mPendingJSCalls.decrementAndGet();
593549
// TODO(9604406): handle case of web workers injecting messages to main thread
594550
// Assertions.assertCondition(newPendingCalls >= 0);
595-
boolean isNowIdle = newPendingCalls == 0;
596551
Systrace.traceCounter(TRACE_TAG_REACT, mJsPendingCallsTitleForTrace, newPendingCalls);
597-
598-
if (isNowIdle && !mBridgeIdleListeners.isEmpty()) {
599-
mNativeModulesQueueThread.runOnQueue(
600-
() -> {
601-
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
602-
listener.onTransitionToBridgeIdle();
603-
}
604-
});
605-
}
606552
}
607553

608554
private void onNativeException(Exception e) {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)