diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp b/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp index 398cc113673..c2f9492443d 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp @@ -27,6 +27,15 @@ void InspectorFlags::initFromConfig( "Flag value was changed after init"); } enableModernCDPRegistry_ = enableModernCDPRegistry; + bool enableCxxInspectorPackagerConnection = reactNativeConfig.getBool( + "react_native_devx:enable_cxx_inspector_packager_connection"); + if (enableCxxInspectorPackagerConnection_.has_value()) { + assert( + *enableCxxInspectorPackagerConnection_ == + enableCxxInspectorPackagerConnection && + "Flag value was changed after init"); + } + enableCxxInspectorPackagerConnection_ = enableCxxInspectorPackagerConnection; } bool InspectorFlags::getEnableModernCDPRegistry() const { @@ -37,4 +46,12 @@ bool InspectorFlags::getEnableModernCDPRegistry() const { return enableModernCDPRegistry_.value_or(false); } +bool InspectorFlags::getEnableCxxInspectorPackagerConnection() const { + if (!enableCxxInspectorPackagerConnection_.has_value()) { + LOG(WARNING) + << "InspectorFlags::getEnableCxxInspectorPackagerConnection was called before init"; + } + return enableCxxInspectorPackagerConnection_.value_or(false); +} + } // namespace facebook::react::jsinspector_modern diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.h b/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.h index 3af53f21f5a..bf5195e3261 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.h +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.h @@ -33,6 +33,12 @@ class InspectorFlags { */ bool getEnableModernCDPRegistry() const; + /** + * Flag determining if the C++ implementation of InspectorPackagerConnection + * should be used instead of the per-platform one. + */ + bool getEnableCxxInspectorPackagerConnection() const; + private: InspectorFlags() = default; InspectorFlags(const InspectorFlags&) = delete; @@ -40,6 +46,7 @@ class InspectorFlags { ~InspectorFlags() = default; std::optional enableModernCDPRegistry_; + std::optional enableCxxInspectorPackagerConnection_; }; } // namespace facebook::react::jsinspector_modern diff --git a/packages/react-native/ReactCommon/react/config/ReactNativeConfig.cpp b/packages/react-native/ReactCommon/react/config/ReactNativeConfig.cpp index 6f1eb0ecd9f..11585835245 100644 --- a/packages/react-native/ReactCommon/react/config/ReactNativeConfig.cpp +++ b/packages/react-native/ReactCommon/react/config/ReactNativeConfig.cpp @@ -16,6 +16,9 @@ bool EmptyReactNativeConfig::getBool(const std::string& param) const { if (param == "react_native_devx:enable_modern_cdp_registry") { return false; } + if (param == "react_native_devx:enable_cxx_inspector_packager_connection") { + return false; + } return false; }