Skip to content

Commit 9dba711

Browse files
huntiefacebook-github-bot
authored andcommitted
Consolidate API changes to openDebugger (#53502)
Summary: Pull Request resolved: #53502 Follows D81138169. - This simplifies the total changes needed on implementing DevSupport classes. - Widen outer API to accept any `String` panel name (futureproofing). - Also add a complete set of supported values `DebuggerFrontendPanelName`. Changelog: [Android][Changed] - DevSupport `openDebugger()` methods now accept a `panel: String?` param. Frameworks directly implementing `DevSupportManager` will need to adjust call signatures. Reviewed By: hoxyq, cortinico Differential Revision: D81227870 fbshipit-source-id: 57b73703557971332e05076fb4ccac218079652a
1 parent 9d3bcb4 commit 9dba711

File tree

6 files changed

+26
-40
lines changed

6 files changed

+26
-40
lines changed

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

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,7 +1914,7 @@ public class com/facebook/react/devsupport/DevServerHelper {
19141914
public fun getSourceUrl (Ljava/lang/String;)Ljava/lang/String;
19151915
public final fun getWebsocketProxyURL ()Ljava/lang/String;
19161916
public fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
1917-
public final fun openDebugger (Lcom/facebook/react/bridge/ReactContext;Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;)V
1917+
public final fun openDebugger (Lcom/facebook/react/bridge/ReactContext;Ljava/lang/String;Ljava/lang/String;)V
19181918
public final fun openInspectorConnection ()V
19191919
public final fun openPackagerConnection (Ljava/lang/String;Lcom/facebook/react/devsupport/DevServerHelper$PackagerCommandListener;)V
19201920
}
@@ -1962,8 +1962,7 @@ public abstract class com/facebook/react/devsupport/DevSupportManagerBase : com/
19621962
public fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
19631963
public fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V
19641964
public fun onReactInstanceDestroyed (Lcom/facebook/react/bridge/ReactContext;)V
1965-
public fun openDebugger ()V
1966-
public fun openDebugger (Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;)V
1965+
public fun openDebugger (Ljava/lang/String;)V
19671966
public fun processErrorCustomizers (Landroid/util/Pair;)Landroid/util/Pair;
19681967
public fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V
19691968
public fun reloadJSFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/BundleLoadCallback;)V
@@ -2052,8 +2051,7 @@ public class com/facebook/react/devsupport/ReleaseDevSupportManager : com/facebo
20522051
public fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
20532052
public fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V
20542053
public fun onReactInstanceDestroyed (Lcom/facebook/react/bridge/ReactContext;)V
2055-
public fun openDebugger ()V
2056-
public fun openDebugger (Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;)V
2054+
public fun openDebugger (Ljava/lang/String;)V
20572055
public fun processErrorCustomizers (Landroid/util/Pair;)Landroid/util/Pair;
20582056
public fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V
20592057
public fun reloadJSFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/BundleLoadCallback;)V
@@ -2112,15 +2110,6 @@ public abstract interface class com/facebook/react/devsupport/interfaces/BundleL
21122110
public abstract fun onSuccess ()V
21132111
}
21142112

2115-
public final class com/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName : java/lang/Enum {
2116-
public static final field PERFORMANCE Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;
2117-
public static fun getEntries ()Lkotlin/enums/EnumEntries;
2118-
public final fun getInternalName ()Ljava/lang/String;
2119-
public fun toString ()Ljava/lang/String;
2120-
public static fun valueOf (Ljava/lang/String;)Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;
2121-
public static fun values ()[Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;
2122-
}
2123-
21242113
public abstract interface class com/facebook/react/devsupport/interfaces/DevBundleDownloadListener {
21252114
public abstract fun onFailure (Ljava/lang/Exception;)V
21262115
public abstract fun onProgress (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
@@ -2162,8 +2151,8 @@ public abstract interface class com/facebook/react/devsupport/interfaces/DevSupp
21622151
public abstract fun isPackagerRunning (Lcom/facebook/react/devsupport/interfaces/PackagerStatusCallback;)V
21632152
public abstract fun onNewReactContextCreated (Lcom/facebook/react/bridge/ReactContext;)V
21642153
public abstract fun onReactInstanceDestroyed (Lcom/facebook/react/bridge/ReactContext;)V
2165-
public abstract fun openDebugger ()V
2166-
public abstract fun openDebugger (Lcom/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName;)V
2154+
public abstract fun openDebugger (Ljava/lang/String;)V
2155+
public static synthetic fun openDebugger$default (Lcom/facebook/react/devsupport/interfaces/DevSupportManager;Ljava/lang/String;ILjava/lang/Object;)V
21672156
public abstract fun processErrorCustomizers (Landroid/util/Pair;)Landroid/util/Pair;
21682157
public abstract fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V
21692158
public abstract fun reloadJSFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/BundleLoadCallback;)V

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import com.facebook.react.bridge.ReactContext
2121
import com.facebook.react.common.ReactConstants
2222
import com.facebook.react.devsupport.InspectorFlags.getFuseboxEnabled
2323
import com.facebook.react.devsupport.InspectorFlags.getIsProfilingBuild
24-
import com.facebook.react.devsupport.interfaces.DebuggerFrontendPanelName
2524
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
2625
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback
2726
import com.facebook.react.modules.debug.interfaces.DeveloperSettings
@@ -356,7 +355,7 @@ public open class DevServerHelper(
356355
public fun openDebugger(
357356
context: ReactContext?,
358357
errorMessage: String?,
359-
panel: DebuggerFrontendPanelName?,
358+
panel: String?,
360359
) {
361360
// TODO(huntie): Requests to dev server should not assume 'http' URL scheme
362361
val requestUrlBuilder = StringBuilder()
@@ -371,7 +370,7 @@ public open class DevServerHelper(
371370
)
372371

373372
if (panel != null) {
374-
requestUrlBuilder.append("&panel=" + Uri.encode(panel.toString()))
373+
requestUrlBuilder.append("&panel=" + Uri.encode(panel))
375374
}
376375

377376
val request =

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

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ import com.facebook.react.devsupport.InspectorFlags.getFuseboxEnabled
5252
import com.facebook.react.devsupport.StackTraceHelper.convertJavaStackTrace
5353
import com.facebook.react.devsupport.StackTraceHelper.convertJsStackTrace
5454
import com.facebook.react.devsupport.interfaces.BundleLoadCallback
55-
import com.facebook.react.devsupport.interfaces.DebuggerFrontendPanelName
5655
import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener
5756
import com.facebook.react.devsupport.interfaces.DevLoadingViewManager
5857
import com.facebook.react.devsupport.interfaces.DevOptionHandler
@@ -920,15 +919,7 @@ public abstract class DevSupportManagerBase(
920919
}
921920
}
922921

923-
override fun openDebugger() {
924-
devServerHelper.openDebugger(
925-
currentReactContext,
926-
applicationContext.getString(R.string.catalyst_open_debugger_error),
927-
null,
928-
)
929-
}
930-
931-
override fun openDebugger(panel: DebuggerFrontendPanelName) {
922+
override fun openDebugger(panel: String?) {
932923
devServerHelper.openDebugger(
933924
currentReactContext,
934925
applicationContext.getString(R.string.catalyst_open_debugger_error),

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import com.facebook.react.bridge.ReactContext
1616
import com.facebook.react.bridge.ReadableArray
1717
import com.facebook.react.common.SurfaceDelegate
1818
import com.facebook.react.devsupport.interfaces.BundleLoadCallback
19-
import com.facebook.react.devsupport.interfaces.DebuggerFrontendPanelName
2019
import com.facebook.react.devsupport.interfaces.DevOptionHandler
2120
import com.facebook.react.devsupport.interfaces.DevSupportManager
2221
import com.facebook.react.devsupport.interfaces.DevSupportManager.PackagerLocationCustomizer
@@ -143,9 +142,7 @@ public open class ReleaseDevSupportManager : DevSupportManager {
143142

144143
public override fun createSurfaceDelegate(moduleName: String): SurfaceDelegate? = null
145144

146-
public override fun openDebugger(): Unit = Unit
147-
148-
public override fun openDebugger(panel: DebuggerFrontendPanelName): Unit = Unit
145+
public override fun openDebugger(panel: String?): Unit = Unit
149146

150147
public override fun showPausedInDebuggerOverlay(
151148
message: String,

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DebuggerFrontendPanelName.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,15 @@
77

88
package com.facebook.react.devsupport.interfaces
99

10-
public enum class DebuggerFrontendPanelName(public val internalName: String) {
11-
PERFORMANCE("timeline");
10+
internal enum class DebuggerFrontendPanelName(public val internalName: String) {
11+
CONSOLE("console"),
12+
MEMORY("heap-profiler"),
13+
NETWORK("network"),
14+
PERFORMANCE("timeline"),
15+
REACT_COMPONENTS("react-devtools-components"),
16+
REACT_PROFILER("react-devtools-profiler"),
17+
SOURCES("sources"),
18+
WELCOME("rn-welcome");
1219

1320
override fun toString(): String = internalName
1421
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,14 @@ public interface DevSupportManager : JSExceptionHandler {
9494
*/
9595
public fun createSurfaceDelegate(moduleName: String): SurfaceDelegate?
9696

97-
/** Attempt to open the JS debugger on the host machine. */
98-
public fun openDebugger()
99-
100-
/** Attempt to open the JS debugger on the host machine, providing a destination panel name. */
101-
public fun openDebugger(panel: DebuggerFrontendPanelName)
97+
/**
98+
* Attempt to open the JS debugger on the host machine.
99+
*
100+
* @param panel Optionally provide a destination panel name. This can be a value of
101+
* [DebuggerFrontendPanelName] or a custom string. If omitted, the debugger will open on the
102+
* last used panel (default behaviour).
103+
*/
104+
public fun openDebugger(panel: String? = null)
102105

103106
/** Shows the "paused in debugger" overlay with the given message. */
104107
public fun showPausedInDebuggerOverlay(

0 commit comments

Comments
 (0)