diff --git a/packages/community-cli-plugin/src/commands/start/attachKeyHandlers.js b/packages/community-cli-plugin/src/commands/start/attachKeyHandlers.js index 0393c9c14370..fcb387691e40 100644 --- a/packages/community-cli-plugin/src/commands/start/attachKeyHandlers.js +++ b/packages/community-cli-plugin/src/commands/start/attachKeyHandlers.js @@ -24,7 +24,6 @@ export default function attachKeyHandlers({ cliConfig, devServerUrl, messageSocket, - experimentalDebuggerFrontend, }: { cliConfig: Config, devServerUrl: string, @@ -32,7 +31,6 @@ export default function attachKeyHandlers({ broadcast: (type: string, params?: Record | null) => void, ... }>, - experimentalDebuggerFrontend: boolean, }) { if (process.stdin.isTTY !== true) { logger.debug('Interactive mode is not supported in this environment'); @@ -78,9 +76,7 @@ export default function attachKeyHandlers({ ).stdout?.pipe(process.stdout); break; case 'j': - if (!experimentalDebuggerFrontend) { - return; - } + // TODO(T192878199): Add multi-target selection await fetch(devServerUrl + '/open-debugger', {method: 'POST'}); break; case CTRL_C: @@ -101,11 +97,9 @@ export default function attachKeyHandlers({ '', `${chalk.bold('i')} - run on iOS`, `${chalk.bold('a')} - run on Android`, - `${chalk.bold('d')} - open Dev Menu`, - ...(experimentalDebuggerFrontend - ? [`${chalk.bold('j')} - open debugger (experimental, Hermes only)`] - : []), `${chalk.bold('r')} - reload app`, + `${chalk.bold('d')} - open Dev Menu`, + `${chalk.bold('j')} - open DevTools`, '', ].join('\n'), ); diff --git a/packages/community-cli-plugin/src/commands/start/index.js b/packages/community-cli-plugin/src/commands/start/index.js index 7cc22efb6618..cd438b2115fe 100644 --- a/packages/community-cli-plugin/src/commands/start/index.js +++ b/packages/community-cli-plugin/src/commands/start/index.js @@ -95,13 +95,6 @@ const startCommand: Command = { name: '--no-interactive', description: 'Disables interactive mode', }, - { - name: '--experimental-debugger', - description: - "[Experimental] Enable the new debugger experience and 'j' to " + - 'debug. This enables the new frontend experience only: connection ' + - 'reliability and some basic features are unstable in this release.', - }, ], }; diff --git a/packages/community-cli-plugin/src/commands/start/runServer.js b/packages/community-cli-plugin/src/commands/start/runServer.js index 9103350e2bb5..407800a72ead 100644 --- a/packages/community-cli-plugin/src/commands/start/runServer.js +++ b/packages/community-cli-plugin/src/commands/start/runServer.js @@ -34,7 +34,6 @@ export type StartCommandArgs = { assetPlugins?: string[], cert?: string, customLogReporterPath?: string, - experimentalDebugger: boolean, host?: string, https?: boolean, maxWorkers?: number, @@ -113,10 +112,6 @@ async function runServer( projectRoot, serverBaseUrl: devServerUrl, logger, - unstable_experiments: { - // NOTE: Only affects the /open-debugger endpoint - enableNewDebugger: args.experimentalDebugger, - }, }); let reportEvent: (event: TerminalReportableEvent) => void; @@ -135,7 +130,6 @@ async function runServer( cliConfig: ctx, devServerUrl, messageSocket: messageSocketEndpoint, - experimentalDebuggerFrontend: args.experimentalDebugger, }); } }, diff --git a/packages/dev-middleware/src/__tests__/getDevToolsFrontendUrl-test.js b/packages/dev-middleware/src/__tests__/getDevToolsFrontendUrl-test.js index fe49f764c26f..061dd0aa57b5 100644 --- a/packages/dev-middleware/src/__tests__/getDevToolsFrontendUrl-test.js +++ b/packages/dev-middleware/src/__tests__/getDevToolsFrontendUrl-test.js @@ -18,7 +18,6 @@ describe('getDevToolsFrontendUrl', () => { const experiments = { enableNetworkInspector: false, - enableNewDebugger: false, enableOpenDebuggerRedirect: false, }; @@ -39,7 +38,7 @@ describe('getDevToolsFrontendUrl', () => { test('should return a valid url for enableNetworkInspector experiment on', async () => { const actual = getDevToolsFrontendUrl( - {...experiments, enableNetworkInspector: true, enableNewDebugger: true}, + {...experiments, enableNetworkInspector: true}, webSocketDebuggerUrl, devServerUrl, ); @@ -96,7 +95,7 @@ describe('getDevToolsFrontendUrl', () => { test('should return a valid url for enableNetworkInspector experiment on', async () => { const actual = getDevToolsFrontendUrl( - {...experiments, enableNetworkInspector: true, enableNewDebugger: true}, + {...experiments, enableNetworkInspector: true}, webSocketDebuggerUrl, devServerUrl, { @@ -151,7 +150,7 @@ describe('getDevToolsFrontendUrl', () => { test('should return a valid url for enableNetworkInspector experiment on', async () => { const actual = getDevToolsFrontendUrl( - {...experiments, enableNetworkInspector: true, enableNewDebugger: true}, + {...experiments, enableNetworkInspector: true}, webSocketDebuggerUrl, devServerUrl, { diff --git a/packages/dev-middleware/src/createDevMiddleware.js b/packages/dev-middleware/src/createDevMiddleware.js index 8766811b8885..150ad2ad88ea 100644 --- a/packages/dev-middleware/src/createDevMiddleware.js +++ b/packages/dev-middleware/src/createDevMiddleware.js @@ -17,7 +17,6 @@ import type {Logger} from './types/Logger'; import type {NextHandleFunction} from 'connect'; import InspectorProxy from './inspector-proxy/InspectorProxy'; -import deprecated_openFlipperMiddleware from './middleware/deprecated_openFlipperMiddleware'; import openDebuggerMiddleware from './middleware/openDebuggerMiddleware'; import DefaultBrowserLauncher from './utils/DefaultBrowserLauncher'; import reactNativeDebuggerFrontendPath from '@react-native/debugger-frontend'; @@ -97,18 +96,14 @@ export default function createDevMiddleware({ const middleware = connect() .use( '/open-debugger', - experiments.enableNewDebugger - ? openDebuggerMiddleware({ - serverBaseUrl, - inspectorProxy, - browserLauncher: unstable_browserLauncher, - eventReporter: unstable_eventReporter, - experiments, - logger, - }) - : deprecated_openFlipperMiddleware({ - logger, - }), + openDebuggerMiddleware({ + serverBaseUrl, + inspectorProxy, + browserLauncher: unstable_browserLauncher, + eventReporter: unstable_eventReporter, + experiments, + logger, + }), ) .use( '/debugger-frontend', @@ -126,7 +121,6 @@ export default function createDevMiddleware({ function getExperiments(config: ExperimentsConfig): Experiments { return { - enableNewDebugger: config.enableNewDebugger ?? false, enableOpenDebuggerRedirect: config.enableOpenDebuggerRedirect ?? false, enableNetworkInspector: config.enableNetworkInspector ?? false, }; diff --git a/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js b/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js deleted file mode 100644 index da6c6bc5c25b..000000000000 --- a/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict-local - * @format - * @oncall react_native - */ - -import type {Logger} from '../types/Logger'; -import type {NextHandleFunction} from 'connect'; -import type {IncomingMessage, ServerResponse} from 'http'; - -import open from 'open'; - -const FLIPPER_SELF_CONNECT_URL = - 'flipper://null/Hermesdebuggerrn?device=React%20Native'; - -type Options = $ReadOnly<{ - logger?: Logger, -}>; - -/** - * Open the legacy Flipper debugger (Hermes). - * - * @deprecated This replicates the pre-0.73 workflow of opening Flipper via the - * `flipper://` URL scheme, failing if Flipper is not installed locally. This - * flow will be removed in a future version. - */ -export default function deprecated_openFlipperMiddleware({ - logger, -}: Options): NextHandleFunction { - return async ( - req: IncomingMessage, - res: ServerResponse, - next: (err?: Error) => void, - ) => { - if (req.method === 'POST') { - logger?.info('Launching JS debugger...'); - - try { - logger?.warn( - 'Attempting to debug JS in Flipper (deprecated). This requires ' + - 'Flipper to be installed on your system to handle the ' + - "'flipper://' URL scheme.", - ); - logger?.info( - 'In React Native 0.74, Flipper is no longer included for new React ' + - 'Native projects. The Flipper React Native plugin is also ' + - 'unsupported. You can continue to use Flipper to debug ' + - "your app's JavaScript code, however we recommend switching to " + - 'a modern alternative.\nSee ' + - 'https://reactnative.dev/docs/debugging#opening-the-debugger.', - ); - await open(FLIPPER_SELF_CONNECT_URL); - res.end(); - } catch (e) { - logger?.error( - 'Error launching Flipper: ' + e.message ?? 'Unknown error', - ); - res.writeHead(500); - res.end(); - } - } - }; -} diff --git a/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js b/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js index 56793f983bd9..174943d31024 100644 --- a/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js +++ b/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js @@ -30,7 +30,7 @@ type Options = $ReadOnly<{ }>; /** - * Open the JavaScript debugger for a given CDP target (direct Hermes debugging). + * Open the debugger frontend for a given CDP target. * * Currently supports Hermes targets, opening debugger websocket URL in Chrome * DevTools. diff --git a/packages/dev-middleware/src/types/Experiments.js b/packages/dev-middleware/src/types/Experiments.js index c5c2c9af439b..78943050a61e 100644 --- a/packages/dev-middleware/src/types/Experiments.js +++ b/packages/dev-middleware/src/types/Experiments.js @@ -9,13 +9,6 @@ */ export type Experiments = $ReadOnly<{ - /** - * Enables the new JS debugger launch flow and custom debugger frontend - * (@react-native/debugger-frontend). When disabled, /open-debugger will - * trigger the legacy Flipper connection flow. - */ - enableNewDebugger: boolean, - /** * Enables the handling of GET requests in the /open-debugger endpoint, * in addition to POST requests. GET requests respond by redirecting to @@ -25,7 +18,7 @@ export type Experiments = $ReadOnly<{ enableOpenDebuggerRedirect: boolean, /** - * Enables the Network panel when launching the custom debugger frontend. + * Enables the Network panel in the debugger frontend. */ enableNetworkInspector: boolean, }>;