Skip to content

Commit e35280d

Browse files
j-piaseckifacebook-github-bot
authored andcommitted
Cover the mutation observer modules with Stable API guards (#58126)
Summary: Classifies `react/renderer/observers/mutation:mutation` and `react/nativemodule/mutationobserver:mutationobserver` as private targets under the three-tier C++ stable API visibility model. Consumers that opt into `RN_STRICT_API` now get an error if they include their headers directly; without that flag the guards are inert, so no existing build changes behaviour. Changelog: [Internal] Differential Revision: D117326015
1 parent ea06a31 commit e35280d

6 files changed

Lines changed: 9 additions & 0 deletions

File tree

packages/react-native/ReactCommon/react/nativemodule/mutationobserver/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ target_include_directories(react_nativemodule_mutationobserver PUBLIC ${REACT_CO
1515

1616
target_link_libraries(react_nativemodule_mutationobserver
1717
react_codegen_rncore
18+
react_cxxstableapi
1819
react_renderer_bridging
1920
react_renderer_core
2021
react_renderer_uimanager

packages/react-native/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/PrivateGuard.h>
11+
1012
#if __has_include("FBReactNativeSpecJSI.h") // CocoaPod headers on Apple
1113
#include "FBReactNativeSpecJSI.h"
1214
#else

packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ Pod::Spec.new do |s|
6161
s.dependency "React-Fabric/bridging"
6262
s.dependency "React-Fabric/observers/mutation"
6363
s.dependency "React-featureflags"
64+
s.dependency "React-cxxstableapi"
6465
add_dependency(s, "React-RCTFBReactNativeSpec")
6566
add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"])
6667

packages/react-native/ReactCommon/react/renderer/observers/mutation/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ target_include_directories(react_renderer_observers_mutation PUBLIC ${REACT_COMM
1515

1616
target_link_libraries(react_renderer_observers_mutation
1717
react_cxxreact
18+
react_cxxstableapi
1819
react_renderer_core
1920
react_renderer_uimanager
2021
react_renderer_mounting

packages/react-native/ReactCommon/react/renderer/observers/mutation/MutationObserver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/PrivateGuard.h>
11+
1012
#include <react/renderer/components/root/RootShadowNode.h>
1113
#include <react/renderer/core/ShadowNode.h>
1214
#include <react/renderer/core/ShadowNodeFamily.h>

packages/react-native/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/PrivateGuard.h>
11+
1012
#include <react/renderer/core/ShadowNode.h>
1113
#include <react/renderer/mounting/ShadowTree.h>
1214
#include <react/renderer/uimanager/UIManager.h>

0 commit comments

Comments
 (0)