From d855974daea47b334147ddac0adee7e74b7db4db Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Wed, 3 Apr 2024 08:07:39 -0700 Subject: [PATCH] Set prefersFuseboxFrontend capability flag in jsinspector-modern targets (#43689) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43689 Context: https://github.com/facebookexperimental/rn-chrome-devtools-frontend/pull/34. Changelog: [Internal] Reviewed By: motiz88 Differential Revision: D55474521 fbshipit-source-id: 9756fe29adcbdda686af24c1a65073720cba4b53 --- packages/react-native/React/Base/RCTBridge.mm | 2 +- .../jni/react/jni/ReactInstanceManagerInspectorTarget.cpp | 2 +- .../main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp | 2 +- .../ReactCommon/jsinspector-modern/InspectorInterfaces.cpp | 3 ++- .../ReactCommon/jsinspector-modern/InspectorInterfaces.h | 5 +++-- .../react/runtime/platform/ios/ReactCommon/RCTHost.mm | 2 +- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/react-native/React/Base/RCTBridge.mm b/packages/react-native/React/Base/RCTBridge.mm index 0a5e8a6dc89..5ffcb25d887 100644 --- a/packages/react-native/React/Base/RCTBridge.mm +++ b/packages/react-native/React/Base/RCTBridge.mm @@ -436,7 +436,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)init) .integrationName = "iOS Bridge (RCTBridge)", }); }, - {.nativePageReloads = true}); + {.nativePageReloads = true, .prefersFuseboxFrontend = true}); } Class bridgeClass = self.bridgeClass; diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp index 52e1b879593..aba0a4335ad 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp @@ -50,7 +50,7 @@ ReactInstanceManagerInspectorTarget::ReactInstanceManagerInspectorTarget( "Android Bridge (ReactInstanceManagerInspectorTarget)", }); }, - {.nativePageReloads = true}); + {.nativePageReloads = true, .prefersFuseboxFrontend = true}); } } diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp index eb47f4af4a3..89fd8ce02bb 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp @@ -45,7 +45,7 @@ JReactHostInspectorTarget::JReactHostInspectorTarget( // Reject the connection. return nullptr; }, - {.nativePageReloads = true}); + {.nativePageReloads = true, .prefersFuseboxFrontend = true}); } } diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp index b8ac15d7b91..29580559389 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp @@ -28,7 +28,8 @@ const folly::dynamic targetCapabilitiesToDynamic( const InspectorTargetCapabilities& capabilities) { return folly::dynamic::object( "nativePageReloads", capabilities.nativePageReloads)( - "nativeSourceCodeFetching", capabilities.nativeSourceCodeFetching); + "nativeSourceCodeFetching", capabilities.nativeSourceCodeFetching)( + "prefersFuseboxFrontend", capabilities.prefersFuseboxFrontend); } namespace { diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h index 07591f194d5..86c9a4b03b9 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorInterfaces.h @@ -34,8 +34,9 @@ class IDestructible { }; struct InspectorTargetCapabilities { - const bool nativePageReloads = false; - const bool nativeSourceCodeFetching = false; + bool nativePageReloads = false; + bool nativeSourceCodeFetching = false; + bool prefersFuseboxFrontend = false; }; const folly::dynamic targetCapabilitiesToDynamic( diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm index 4547a0daee1..975906420bf 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm @@ -191,7 +191,7 @@ class RCTHostHostTargetDelegate : public facebook::react::jsinspector_modern::Ho .integrationName = "iOS Bridgeless (RCTHost)", }); }, - {.nativePageReloads = true}); + {.nativePageReloads = true, .prefersFuseboxFrontend = true}); } if (_instance) { RCTLogWarn(