From a3e07ad8e205159b0c51b3f116872b5df7451911 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Wed, 2 Oct 2024 05:47:25 -0700 Subject: [PATCH] Update modern inspector targets to directly send CDP title and description (#46780) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46780 This is primarily a debugger server change to better-align the `title` and `description` fields (visible in via the CDP `/json/list` endpoint), reporting them directly from the device. For React Native users, the net effect of this change is to improve/align the display name for each debugger target in the CLI multi-select menu (`j` to debug). This change may also be useful for discovery in non-Fusebox frontends such as VS Code (`vscode-expo` extension). Changes: - Rename `title` prop on `InspectorPageDescription`/`IInspector::addPage` to `description` (no call site changes). - Add `deviceName` param to `InspectorPackagerConnection`. - Move the page `description` to the `description` JSON field. - Update `InspectorPackagerConnection::Impl::pages()` to return new `title` and `description` fields. - Align `OpenDebuggerKeyboardHandler` to display `title` field. - Deprecate the nonstandard `deviceName` field. **Before** ``` [ { "id": "3c9f24bedab0e73fca6a1b295030e7af9346a8c0-1", "title": "React Native Bridgeless [C++ connection]", "description": "com.facebook.RNTester", ... } ``` The `description` field was previously the closest thing we had to a target identifier. Today, this is not needed, since we have the stable `reactNative.logicalDeviceId` field. **After** ``` [ { "id": "3c9f24bedab0e73fca6a1b295030e7af9346a8c0-1", "title": "com.facebook.RNTester (iPhone 16 Pro)", "description": "React Native Bridgeless [C++ connection]", ... } ``` The `title` field is now more human readable and aligned with what we render in the window title of React Native DevTools. The `description` field describes the type of debugger target (the specific React Native implementation). Changelog: [Internal] Reviewed By: vzaidman Differential Revision: D63329456 --- .../start/OpenDebuggerKeyboardHandler.js | 9 ++-- .../src/inspector-proxy/InspectorProxy.js | 2 +- .../src/inspector-proxy/types.js | 3 ++ .../RCTCxxInspectorPackagerConnection.mm | 3 ++ .../React/Inspector/RCTInspector.mm | 2 +- .../CxxInspectorPackagerConnection.java | 6 +-- .../react/devsupport/DevServerHelper.java | 6 ++- .../JCxxInspectorPackagerConnection.cpp | 6 ++- .../JCxxInspectorPackagerConnection.h | 2 + .../src/main/jni/react/jni/JInspector.cpp | 2 +- .../InspectorInterfaces.cpp | 15 +++--- .../jsinspector-modern/InspectorInterfaces.h | 4 +- .../InspectorPackagerConnection.cpp | 22 +++++--- .../InspectorPackagerConnection.h | 6 ++- .../InspectorPackagerConnectionImpl.h | 9 ++-- .../tests/InspectorPackagerConnectionTest.cpp | 51 +++++++++++-------- .../tests/ReactInstanceIntegrationTest.cpp | 2 +- 17 files changed, 91 insertions(+), 59 deletions(-) diff --git a/packages/community-cli-plugin/src/commands/start/OpenDebuggerKeyboardHandler.js b/packages/community-cli-plugin/src/commands/start/OpenDebuggerKeyboardHandler.js index a52f843631aa..1954f289e08d 100644 --- a/packages/community-cli-plugin/src/commands/start/OpenDebuggerKeyboardHandler.js +++ b/packages/community-cli-plugin/src/commands/start/OpenDebuggerKeyboardHandler.js @@ -18,7 +18,6 @@ type PageDescription = $ReadOnly<{ id: string, title: string, description: string, - deviceName: string, ... }>; @@ -53,9 +52,9 @@ export default class OpenDebuggerKeyboardHandler { } catch (e) { this.#log( 'error', - 'Failed to open debugger for %s on %s debug targets: %s', + 'Failed to open debugger for %s (%s): %s', + target.title, target.description, - target.deviceName, e.message, ); this.#clearTerminalMenu(); @@ -108,8 +107,8 @@ export default class OpenDebuggerKeyboardHandler { `Multiple debug targets available, please select:\n ${targets .slice(0, 9) .map( - ({description, deviceName}, i) => - `${chalk.white.inverse(` ${i + 1} `)} - "${description}" on "${deviceName}"`, + ({title}, i) => + `${chalk.white.inverse(` ${i + 1} `)} - "${title}"`, ) .join('\n ')}`, ); diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index 8c692f06e51b..f0f6257afcd4 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -160,7 +160,7 @@ export default class InspectorProxy implements InspectorProxyQueries { return { id: `${deviceId}-${page.id}`, title: page.title, - description: page.app, + description: page.description ?? 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 83051ba0fdfd..dd26e3dd7f1a 100644 --- a/packages/dev-middleware/src/inspector-proxy/types.js +++ b/packages/dev-middleware/src/inspector-proxy/types.js @@ -53,6 +53,8 @@ export type TargetCapabilityFlags = $ReadOnly<{ export type PageFromDevice = $ReadOnly<{ id: string, title: string, + /** Sent from modern targets only */ + description?: string, /** @deprecated This is sent from legacy targets only */ vm?: string, app: string, @@ -119,6 +121,7 @@ export type PageDescription = $ReadOnly<{ webSocketDebuggerUrl: string, // React Native specific fields + /** @deprecated Prefer `title` */ deviceName: string, /** @deprecated This is sent from legacy targets only */ vm?: string, diff --git a/packages/react-native/React/Inspector/RCTCxxInspectorPackagerConnection.mm b/packages/react-native/React/Inspector/RCTCxxInspectorPackagerConnection.mm index 53d465bc64c9..19d53df5ff85 100644 --- a/packages/react-native/React/Inspector/RCTCxxInspectorPackagerConnection.mm +++ b/packages/react-native/React/Inspector/RCTCxxInspectorPackagerConnection.mm @@ -22,6 +22,7 @@ #import "RCTCxxInspectorPackagerConnection.h" #import "RCTCxxInspectorPackagerConnectionDelegate.h" #import "RCTCxxInspectorWebSocketAdapter.h" +#import "RCTInspectorUtils.h" using namespace facebook::react::jsinspector_modern; @interface RCTCxxInspectorPackagerConnection () { @@ -36,8 +37,10 @@ @implementation RCTCxxInspectorPackagerConnection - (instancetype)initWithURL:(NSURL *)url { if (self = [super init]) { + auto metadata = [RCTInspectorUtils getHostMetadata]; _cxxImpl = std::make_unique( [url absoluteString].UTF8String, + metadata.deviceName.UTF8String, [[NSBundle mainBundle] bundleIdentifier].UTF8String, std::make_unique()); } diff --git a/packages/react-native/React/Inspector/RCTInspector.mm b/packages/react-native/React/Inspector/RCTInspector.mm index 9385f5d19c33..634d11a4905f 100644 --- a/packages/react-native/React/Inspector/RCTInspector.mm +++ b/packages/react-native/React/Inspector/RCTInspector.mm @@ -71,7 +71,7 @@ @implementation RCTInspector NSMutableArray *array = [NSMutableArray arrayWithCapacity:pages.size()]; for (size_t i = 0; i < pages.size(); i++) { RCTInspectorPage *pageWrapper = [[RCTInspectorPage alloc] initWithId:pages[i].id - title:@(pages[i].title.c_str()) + title:@(pages[i].description.c_str()) vm:@(pages[i].vm.c_str())]; [array addObject:pageWrapper]; } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java index 8f03af06f99c..e70c6c65117c 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java @@ -28,12 +28,12 @@ @DoNotStrip private final HybridData mHybridData; - public CxxInspectorPackagerConnection(String url, String packageName) { - mHybridData = initHybrid(url, packageName, new DelegateImpl()); + public CxxInspectorPackagerConnection(String url, String deviceName, String packageName) { + mHybridData = initHybrid(url, deviceName, packageName, new DelegateImpl()); } private static native HybridData initHybrid( - String url, String packageName, DelegateImpl delegate); + String url, String deviceName, String packageName, DelegateImpl delegate); public native void connect(); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java index b1c41bb38d5c..6856884aa628 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java @@ -214,8 +214,12 @@ public void openInspectorConnection() { @Override protected Void doInBackground(Void... params) { if (InspectorFlags.getFuseboxEnabled()) { + Map metadata = + AndroidInfoHelpers.getInspectorHostMetadata(mApplicationContext); + mInspectorPackagerConnection = - new CxxInspectorPackagerConnection(getInspectorDeviceUrl(), mPackageName); + new CxxInspectorPackagerConnection( + getInspectorDeviceUrl(), metadata.get("deviceName"), mPackageName); } else { mInspectorPackagerConnection = new InspectorPackagerConnection(getInspectorDeviceUrl(), mPackageName); diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp index ab900a18bd83..8b6a20d2aa93 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.cpp @@ -15,17 +15,19 @@ namespace facebook::react::jsinspector_modern { JCxxInspectorPackagerConnection::JCxxInspectorPackagerConnection( const std::string& url, + const std::string& deviceName, const std::string& packageName, alias_ref delegate) - : cxxImpl_(url, packageName, delegate->wrapInUniquePtr()) {} + : cxxImpl_(url, deviceName, packageName, delegate->wrapInUniquePtr()) {} local_ref JCxxInspectorPackagerConnection::initHybrid( alias_ref, const std::string& url, + const std::string& deviceName, const std::string& packageName, alias_ref delegate) { - return makeCxxInstance(url, packageName, delegate); + return makeCxxInstance(url, deviceName, packageName, delegate); } void JCxxInspectorPackagerConnection::connect() { diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h b/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h index 18252ae9d7a1..7fc555cf2942 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnection.h @@ -44,12 +44,14 @@ class JCxxInspectorPackagerConnection */ JCxxInspectorPackagerConnection( const std::string& url, + const std::string& deviceName, const std::string& packageName, jni::alias_ref delegate); static jni::local_ref initHybrid( jni::alias_ref, const std::string& url, + const std::string& deviceName, const std::string& packageName, jni::alias_ref delegate); diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspector.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspector.cpp index 41e5c8f97072..e5b1f6fe2b83 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspector.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspector.cpp @@ -85,7 +85,7 @@ jni::local_ref> JInspector::getPages() { inspector_->getPages(); auto array = jni::JArrayClass::newArray(pages.size()); for (size_t i = 0; i < pages.size(); i++) { - (*array)[i] = JPage::create(pages[i].id, pages[i].title, pages[i].vm); + (*array)[i] = JPage::create(pages[i].id, pages[i].description, pages[i].vm); } return array; } diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp index 9efdfcd85cf2..0c6ad1dd999f 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp @@ -37,7 +37,7 @@ namespace { class InspectorImpl : public IInspector { public: int addPage( - const std::string& title, + const std::string& description, const std::string& vm, ConnectFunc connectFunc, InspectorTargetCapabilities capabilities) override; @@ -66,7 +66,7 @@ class InspectorImpl : public IInspector { private: int id_; - std::string title_; + std::string description_; std::string vm_; ConnectFunc connectFunc_; InspectorTargetCapabilities capabilities_; @@ -79,12 +79,12 @@ class InspectorImpl : public IInspector { InspectorImpl::Page::Page( int id, - const std::string& title, + const std::string& description, const std::string& vm, ConnectFunc connectFunc, InspectorTargetCapabilities capabilities) : id_(id), - title_(title), + description_(description), vm_(vm), connectFunc_(std::move(connectFunc)), capabilities_(std::move(capabilities)) {} @@ -92,7 +92,7 @@ InspectorImpl::Page::Page( InspectorImpl::Page::operator InspectorPageDescription() const { return InspectorPageDescription{ .id = id_, - .title = title_, + .description = description_, .vm = vm_, .capabilities = capabilities_, }; @@ -103,7 +103,7 @@ InspectorImpl::ConnectFunc InspectorImpl::Page::getConnectFunc() const { } int InspectorImpl::addPage( - const std::string& title, + const std::string& description, const std::string& vm, ConnectFunc connectFunc, InspectorTargetCapabilities capabilities) { @@ -114,7 +114,8 @@ int InspectorImpl::addPage( int pageId = nextPageId_++; assert(pages_.count(pageId) == 0 && "Unexpected duplicate page ID"); pages_.emplace( - pageId, Page{pageId, title, vm, std::move(connectFunc), capabilities}); + pageId, + Page{pageId, description, vm, std::move(connectFunc), capabilities}); return pageId; } diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h index b8fac7934d56..bebc76a50a88 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h @@ -44,7 +44,7 @@ const folly::dynamic targetCapabilitiesToDynamic( struct InspectorPageDescription { const int id; - const std::string title; + const std::string description; const std::string vm; const InspectorTargetCapabilities capabilities; }; @@ -100,7 +100,7 @@ class JSINSPECTOR_EXPORT IInspector : public IDestructible { * \returns the ID assigned to the new page. */ virtual int addPage( - const std::string& title, + const std::string& description, const std::string& vm, ConnectFunc connectFunc, InspectorTargetCapabilities capabilities = {}) = 0; diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp index 85cf1f1f0694..6c0d2875d801 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp @@ -28,21 +28,25 @@ static constexpr const char* INVALID = ""; std::shared_ptr InspectorPackagerConnection::Impl::create( std::string url, - std::string app, + std::string deviceName, + std::string appName, std::unique_ptr delegate) { // No make_shared because the constructor is private std::shared_ptr impl( - new InspectorPackagerConnection::Impl(url, app, std::move(delegate))); + new InspectorPackagerConnection::Impl( + url, deviceName, appName, std::move(delegate))); getInspectorInstance().registerPageStatusListener(impl); return impl; } InspectorPackagerConnection::Impl::Impl( std::string url, - std::string app, + std::string deviceName, + std::string appName, std::unique_ptr delegate) : url_(std::move(url)), - app_(std::move(app)), + deviceName_(std::move(deviceName)), + appName_(std::move(appName)), delegate_(std::move(delegate)) {} void InspectorPackagerConnection::Impl::handleProxyMessage( @@ -159,8 +163,9 @@ folly::dynamic InspectorPackagerConnection::Impl::pages() { for (const auto& page : pages) { folly::dynamic pageDescription = folly::dynamic::object; pageDescription["id"] = std::to_string(page.id); - pageDescription["title"] = page.title + " [C++ connection]"; - pageDescription["app"] = app_; + pageDescription["title"] = appName_ + " (" + deviceName_ + ")"; + pageDescription["description"] = page.description + " [C++ connection]"; + pageDescription["app"] = appName_; pageDescription["capabilities"] = targetCapabilitiesToDynamic(page.capabilities); @@ -341,9 +346,10 @@ void InspectorPackagerConnection::Impl::RemoteConnection::onDisconnect() { InspectorPackagerConnection::InspectorPackagerConnection( std::string url, - std::string app, + std::string deviceName, + std::string appName, std::unique_ptr delegate) - : impl_(Impl::create(url, app, std::move(delegate))) {} + : impl_(Impl::create(url, deviceName, appName, std::move(delegate))) {} bool InspectorPackagerConnection::isConnected() const { return impl_->isConnected(); diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h index 06ad56b5566b..a6d2bca845ac 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h @@ -33,13 +33,15 @@ class InspectorPackagerConnection { * Creates a new connection instance. Connections start in the disconnected * state; connect() should be called to establish a connection. * \param url The WebSocket URL where the inspector-proxy server is listening. - * \param app The name of the application being debugged. + * \param deviceName The host device name. + * \param appName The application name. * \param delegate An interface to platform-specific methods for creating a * WebSocket, scheduling async work, etc. */ InspectorPackagerConnection( std::string url, - std::string app, + std::string deviceName, + std::string appName, std::unique_ptr delegate); bool isConnected() const; void connect(); diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h index 3025103a22c7..7bf5727bf3c9 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorPackagerConnectionImpl.h @@ -31,7 +31,8 @@ class InspectorPackagerConnection::Impl */ static std::shared_ptr create( std::string url, - std::string app, + std::string deviceName, + std::string appName, std::unique_ptr delegate); // InspectorPackagerConnection's public API @@ -61,7 +62,8 @@ class InspectorPackagerConnection::Impl Impl( std::string url, - std::string app, + std::string deviceName, + std::string appName, std::unique_ptr delegate); Impl(const Impl&) = delete; Impl& operator=(const Impl&) = delete; @@ -91,7 +93,8 @@ class InspectorPackagerConnection::Impl virtual void onPageRemoved(int pageId) override; const std::string url_; - const std::string app_; + const std::string deviceName_; + const std::string appName_; const std::unique_ptr delegate_; std::unordered_map inspectorSessions_; diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp b/packages/react-native/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp index bc7a14814931..a4c59d9735db 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp @@ -39,6 +39,7 @@ class InspectorPackagerConnectionTestBase : public testing::Test { InspectorPackagerConnectionTestBase() : packagerConnection_(InspectorPackagerConnection{ "ws://mock-host:12345", + "my-device", "my-app", packagerConnectionDelegates_.make_unique(asyncExecutor_)}) { ON_CALL(*packagerConnectionDelegate(), connectWebSocket(_, _)) @@ -200,14 +201,14 @@ TEST_F(InspectorPackagerConnectionTest, TestGetPages) { })"); auto pageId1 = getInspectorInstance().addPage( - "mock-title-1", + "mock-description-1", "mock-vm", localConnections_ .lazily_make_unique>(), {.nativePageReloads = true}); auto pageId2 = getInspectorInstance().addPage( - "mock-title-2", + "mock-description-2", "mock-vm", localConnections_ .lazily_make_unique>(), @@ -222,17 +223,23 @@ TEST_F(InspectorPackagerConnectionTest, TestGetPages) { "/payload", ElementsAreArray( {AllOf( - AtJsonPtr("/app", Eq("my-app")), - AtJsonPtr("/title", Eq("mock-title-1 [C++ connection]")), AtJsonPtr("/id", Eq(std::to_string(pageId1))), + AtJsonPtr("/title", Eq("my-app (my-device)")), + AtJsonPtr( + "/description", + Eq("mock-description-1 [C++ connection]")), + AtJsonPtr("/app", Eq("my-app")), AtJsonPtr("/capabilities/nativePageReloads", Eq(true)), AtJsonPtr( "/capabilities/nativeSourceCodeFetching", Eq(false))), AllOf( - AtJsonPtr("/app", Eq("my-app")), - AtJsonPtr("/title", Eq("mock-title-2 [C++ connection]")), AtJsonPtr("/id", Eq(std::to_string(pageId2))), + AtJsonPtr("/title", Eq("my-app (my-device)")), + AtJsonPtr( + "/description", + Eq("mock-description-2 [C++ connection]")), + AtJsonPtr("/app", Eq("my-app")), AtJsonPtr("/capabilities/nativePageReloads", Eq(true)), AtJsonPtr( "/capabilities/nativeSourceCodeFetching", @@ -265,7 +272,7 @@ TEST_F(InspectorPackagerConnectionTest, TestSendReceiveEvents) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -351,7 +358,7 @@ TEST_F(InspectorPackagerConnectionTest, TestSendReceiveEventsToMultiplePages) { const int kNumPages = 2; for (int i = 0; i < kNumPages; ++i) { pageIds.push_back(getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>())); @@ -429,7 +436,7 @@ TEST_F(InspectorPackagerConnectionTest, TestSendEventToAllConnections) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -470,7 +477,7 @@ TEST_F(InspectorPackagerConnectionTest, TestConnectThenDisconnect) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -505,7 +512,7 @@ TEST_F(InspectorPackagerConnectionTest, TestConnectThenCloseSocket) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -533,7 +540,7 @@ TEST_F(InspectorPackagerConnectionTest, TestConnectThenSocketFailure) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -563,7 +570,7 @@ TEST_F( packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -609,7 +616,7 @@ TEST_F( packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -644,7 +651,7 @@ TEST_F(InspectorPackagerConnectionTest, TestMultipleDisconnect) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -690,7 +697,7 @@ TEST_F(InspectorPackagerConnectionTest, TestDisconnectThenSendEvent) { packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -916,7 +923,7 @@ TEST_F( packagerConnection_.reset(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -970,7 +977,7 @@ TEST_F(InspectorPackagerConnectionTest, TestDestroyConnectionOnPageRemoved) { ASSERT_TRUE(webSockets_[0]); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -1000,7 +1007,7 @@ TEST_F( packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -1040,7 +1047,7 @@ TEST_F( packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -1122,7 +1129,7 @@ TEST_F( packagerConnection_->connect(); auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", localConnections_ .lazily_make_unique>()); @@ -1228,7 +1235,7 @@ TEST_F(InspectorPackagerConnectionTest, TestRejectedPageConnection) { } mockNextConnectionBehavior; auto pageId = getInspectorInstance().addPage( - "mock-title", + "mock-description", "mock-vm", [&mockNextConnectionBehavior, this](auto remoteConnection) -> std::unique_ptr { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp b/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp index 1f48befd3679..3c3f81edd1f4 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp @@ -91,7 +91,7 @@ void ReactInstanceIntegrationTest::SetUp() { // Under modern CDP, the React host is responsible for adding itself as // the root target on startup. pageId_ = inspector.addPage( - "mock-title", + "mock-description", "mock-vm", [hostTargetIfModernCDP](std::unique_ptr remote) -> std::unique_ptr {