diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/InspectorFlags.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/InspectorFlags.java new file mode 100644 index 00000000000..2a76037313e --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/InspectorFlags.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.bridge; + +import com.facebook.proguard.annotations.DoNotStrip; + +/** fbjni interface for reading `jsinspector_modern::InspectorFlags`. */ +@DoNotStrip +public class InspectorFlags { + static { + ReactBridge.staticInit(); + } + + @DoNotStrip + public static native boolean getEnableModernCDPRegistry(); + + private InspectorFlags() {} +} diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspectorFlags.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspectorFlags.cpp new file mode 100644 index 00000000000..bbb92abaaf6 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspectorFlags.cpp @@ -0,0 +1,27 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#include "JInspectorFlags.h" + +#include + +namespace facebook::react { + +bool JInspectorFlags::getEnableModernCDPRegistry(jni::alias_ref) { + auto& inspectorFlags = jsinspector_modern::InspectorFlags::getInstance(); + return inspectorFlags.getEnableModernCDPRegistry(); +} + +void JInspectorFlags::registerNatives() { + javaClassLocal()->registerNatives({ + makeNativeMethod( + "getEnableModernCDPRegistry", + JInspectorFlags::getEnableModernCDPRegistry), + }); +} + +} // namespace facebook::react diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspectorFlags.h b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspectorFlags.h new file mode 100644 index 00000000000..5e2cc2f70b2 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JInspectorFlags.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +#include + +namespace facebook::react { + +/** + * fbjni interface for reading `jsinspector_modern::InspectorFlags`. + */ +class JInspectorFlags : public jni::JavaClass { + public: + static constexpr auto kJavaDescriptor = + "Lcom/facebook/react/bridge/InspectorFlags;"; + + static bool getEnableModernCDPRegistry(jni::alias_ref); + + static void registerNatives(); + + private: + JInspectorFlags(); +}; + +} // namespace facebook::react diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp index 6b37fefee65..19c0033c6fc 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp @@ -24,6 +24,7 @@ #ifdef WITH_INSPECTOR #include "JInspector.h" +#include "JInspectorFlags.h" #endif #ifndef WITH_GLOGINIT @@ -89,6 +90,7 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { #ifdef WITH_INSPECTOR JInspector::registerNatives(); + JInspectorFlags::registerNatives(); #endif }); }