From 35b02a76a1d419a78a3cc777fd67a97927466b22 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Thu, 31 Aug 2023 08:00:40 -0700 Subject: [PATCH] Revert to built-in devToolsFrontendUrl in target list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Reverts external behaviour of https://github.com/facebook/react-native/pull/39122. - `/json/list` once again returns the built-in `devtools://devtools/bundled/js_app.html` URL — effectively freezing the current experience in Flipper. - `/open-debugger` continues to use the *new* frontend via `getDevToolsFrontendUrl`. - *Eventually*, we'll want to align this as the returned `devtoolsFrontendUrl` value once Flipper is out of the picture. Changelog: [Internal] Reviewed By: motiz88 Differential Revision: D48868767 fbshipit-source-id: 26405f57e396c00957b5345dc21c4d8bd920edcf --- .../src/inspector-proxy/InspectorProxy.js | 10 ++++++++-- .../src/middleware/openDebuggerMiddleware.js | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index 35ac3f29cada66..0027d7342de3b5 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -20,7 +20,6 @@ import type {IncomingMessage, ServerResponse} from 'http'; import url from 'url'; import WS from 'ws'; -import getDevToolsFrontendUrl from '../utils/getDevToolsFrontendUrl'; import Device from './Device'; const debug = require('debug')('Metro:InspectorProxy'); @@ -116,12 +115,19 @@ export default class InspectorProxy { const debuggerUrl = `${this._serverBaseUrl}${WS_DEBUGGER_URL}?device=${deviceId}&page=${page.id}`; const webSocketDebuggerUrl = 'ws://' + debuggerUrl; + // For now, `/json/list` returns the legacy built-in `devtools://` URL, to + // preserve existing handling by Flipper. This may return a placeholder in + // future -- please use the `/open-debugger` endpoint. + const devtoolsFrontendUrl = + 'devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=' + + encodeURIComponent(webSocketDebuggerUrl); + return { id: `${deviceId}-${page.id}`, description: page.app, title: page.title, faviconUrl: 'https://reactjs.org/favicon.ico', - devtoolsFrontendUrl: getDevToolsFrontendUrl(webSocketDebuggerUrl), + devtoolsFrontendUrl, type: 'node', webSocketDebuggerUrl, vm: page.vm, diff --git a/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js b/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js index a81dda5c7ee8cb..38c3ec9700474b 100644 --- a/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js +++ b/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js @@ -17,6 +17,7 @@ import type {Logger} from '../types/Logger'; import url from 'url'; import getDevServerUrl from '../utils/getDevServerUrl'; +import getDevToolsFrontendUrl from '../utils/getDevToolsFrontendUrl'; import queryInspectorTargets from '../utils/queryInspectorTargets'; const debuggerInstances = new Map(); @@ -83,7 +84,7 @@ export default function openDebuggerMiddleware({ debuggerInstances.set( appId, await browserLauncher.launchDebuggerAppWindow( - target.devtoolsFrontendUrl, + getDevToolsFrontendUrl(target.webSocketDebuggerUrl), ), ); res.end();