From 0d591d9dc3fedb7c262e5461e97d8d090ea791dc Mon Sep 17 00:00:00 2001 From: Edmond Chui Date: Thu, 17 Oct 2024 12:47:05 -0700 Subject: [PATCH] add appId as a standalone field (#47098) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47098 Changelog: [Internal] D63329456 updated the `description` field to be human-readable. Unfortunately, InspectorProxy relies on this field to compare the incoming `/open-debugger` calls. hoxyq discovered the symptom of Fusebox failing to launch with `No compatible apps connected. React Native DevTools can only be used with the Hermes engine.` in Metro Reviewed By: hoxyq Differential Revision: D64547367 fbshipit-source-id: deed6851f3ede2c74be2b492def1eba6e58c43e6 --- .../dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js | 2 ++ packages/dev-middleware/src/inspector-proxy/InspectorProxy.js | 1 + packages/dev-middleware/src/inspector-proxy/types.js | 1 + .../dev-middleware/src/middleware/openDebuggerMiddleware.js | 2 +- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js b/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js index 52a53de214b..69a4e233d49 100644 --- a/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js +++ b/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js @@ -185,6 +185,7 @@ describe('inspector proxy HTTP API', () => { ); expect(json).toEqual([ { + appId: 'bar-app', description: 'bar-app', deviceName: 'foo', devtoolsFrontendUrl: expect.any(String), @@ -199,6 +200,7 @@ describe('inspector proxy HTTP API', () => { webSocketDebuggerUrl: expect.any(String), }, { + appId: 'bar-app', description: 'bar-app', deviceName: 'foo', devtoolsFrontendUrl: expect.any(String), diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index f0f6257afcd..c24fb758312 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -161,6 +161,7 @@ export default class InspectorProxy implements InspectorProxyQueries { id: `${deviceId}-${page.id}`, title: page.title, description: page.description ?? page.app, + appId: page.app, type: 'node', devtoolsFrontendUrl, webSocketDebuggerUrl, diff --git a/packages/dev-middleware/src/inspector-proxy/types.js b/packages/dev-middleware/src/inspector-proxy/types.js index dd26e3dd7f1..a0f9226dcec 100644 --- a/packages/dev-middleware/src/inspector-proxy/types.js +++ b/packages/dev-middleware/src/inspector-proxy/types.js @@ -115,6 +115,7 @@ export type MessageToDevice = export type PageDescription = $ReadOnly<{ id: string, title: string, + appId: string, description: string, type: string, devtoolsFrontendUrl: string, diff --git a/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js b/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js index 97fcb9c984f..490eb5d91f8 100644 --- a/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js +++ b/packages/dev-middleware/src/middleware/openDebuggerMiddleware.js @@ -92,7 +92,7 @@ export default function openDebuggerMiddleware({ target = targets.find( _target => (targetId == null || _target.id === targetId) && - (appId == null || _target.description === appId) && + (appId == null || _target.appId === appId) && (device == null || _target.reactNative.logicalDeviceId === device), ); } else if (targets.length > 0) {