From 210a7c2223ccbd71845f82326d00bab709a4255c Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Thu, 21 Dec 2023 05:09:10 -0800 Subject: [PATCH] Create new inspector flag for enabling the C++ packager connection implementation (#42035) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42035 In upcoming diffs we will begin integrating the new C++ `InspectorPackagerConnection` (D52134592) into React Native on Android and iOS. This diff adds a shared C++ flag that is the source of truth for whether the new implementation should be enabled. Changelog: [Internal] Reviewed By: huntie Differential Revision: D52335446 fbshipit-source-id: 7f16ffc1728c8de7d4fbf090268ffed6fbaa879f --- .../jsinspector-modern/InspectorFlags.cpp | 17 +++++++++++++++++ .../jsinspector-modern/InspectorFlags.h | 7 +++++++ .../react/config/ReactNativeConfig.cpp | 3 +++ 3 files changed, 27 insertions(+) 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; }