From 0361323ca00798118fcc03a2d92ee6bb98a1bf7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 18 Sep 2026 04:17:02 -0700 Subject: [PATCH 1/2] Use View umbrella in generated components (#58539) Summary: Update Fabric component codegen to consume the public View module through for generated props, event emitters, shadow nodes, and dimension conversions. Refresh generated snapshots and checked-in popup-menu bindings, and add strict consumer compile coverage that does not use RN_BUILDING. Make the View umbrella compatible with force-CXX platform configurations discovered by the broader generated-header coverage. On Android, gate the ViewPropsInterpolation rawProps workaround on both ANDROID and RN_SERIALIZABLE_STATE, since rawProps only exists when serializable state is enabled; this preserves existing Android behavior without enabling the runtime/ABI feature globally. For Android, macOS, and Windows platform types, rely on the Buck-selected HostPlatformViewProps and HostPlatformViewEventEmitter headers instead of compiler platform macros: the native implementations already expose NativeDrawable, HostPlatformViewEvents, KeyEvent, MouseEvent, and WindowsViewEvents, while force-CXX builds intentionally do not export those platform-only headers. Changelog: [Internal]. Reviewed By: cipolleschi Differential Revision: D119490247 --- .../GenerateEventEmitterH-test.js.snap | 36 ++++----- .../GeneratePropsCpp-test.js.snap | 4 +- .../__snapshots__/GeneratePropsH-test.js.snap | 36 ++++----- .../GenerateShadowNodeH-test.js.snap | 36 ++++----- .../GenerateEventEmitterH-test.js.snap | 36 ++++----- .../GeneratePropsCpp-test.js.snap | 4 +- .../__snapshots__/GeneratePropsH-test.js.snap | 36 ++++----- .../GenerateShadowNodeH-test.js.snap | 36 ++++----- .../src/generators/ReservedPrimitiveTypes.js | 4 +- .../components/GenerateEventEmitterH.js | 2 +- .../generators/components/GeneratePropsH.js | 4 +- .../components/GenerateShadowNodeH.js | 2 +- .../GenerateEventEmitterH-test.js.snap | 76 +++++++++---------- .../GeneratePropsCpp-test.js.snap | 8 +- .../__snapshots__/GeneratePropsH-test.js.snap | 76 +++++++++---------- .../GenerateShadowNodeH-test.js.snap | 76 +++++++++---------- .../__snapshots__/GenerateTests-test.js.snap | 8 +- .../EventEmitters.h | 2 +- .../ReactPopupMenuAndroidSpecs/Props.h | 2 +- .../ReactPopupMenuAndroidSpecs/ShadowNodes.h | 2 +- .../renderer/components/view/React/View.h | 19 ----- .../components/view/ViewPropsInterpolation.h | 4 +- .../GeneratedComponentsStrictApiTest.cpp | 16 ++++ .../GeneratedEventEmittersStrictApiTest.cpp | 16 ++++ .../GeneratedPropsStrictApiTest.cpp | 16 ++++ .../GeneratedShadowNodesStrictApiTest.cpp | 16 ++++ 26 files changed, 307 insertions(+), 266 deletions(-) create mode 100644 packages/rn-tester/NativeComponentExample/GeneratedComponentsStrictApiTest.cpp create mode 100644 packages/rn-tester/NativeComponentExample/GeneratedEventEmittersStrictApiTest.cpp create mode 100644 packages/rn-tester/NativeComponentExample/GeneratedPropsStrictApiTest.cpp create mode 100644 packages/rn-tester/NativeComponentExample/GeneratedShadowNodesStrictApiTest.cpp diff --git a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap index 0b01320fa269..0542733dfe33 100644 --- a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap +++ b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap @@ -13,7 +13,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -42,7 +42,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -71,7 +71,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -100,7 +100,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -129,7 +129,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -158,7 +158,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -187,7 +187,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -237,7 +237,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -314,7 +314,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -343,7 +343,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -372,7 +372,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -401,7 +401,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -432,7 +432,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -461,7 +461,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -490,7 +490,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -519,7 +519,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -548,7 +548,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -577,7 +577,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { diff --git a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap index 87cbfe09cb32..adbf0eb81071 100644 --- a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap @@ -13,8 +13,8 @@ Object { */ #include +#include #include -#include #include #include @@ -239,7 +239,7 @@ Object { */ #include -#include +#include #include #include diff --git a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap index bde3235cbb4d..f41b85833b98 100644 --- a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap +++ b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap @@ -13,8 +13,8 @@ Object { */ #pragma once +#include #include -#include #include #include #include @@ -228,7 +228,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -271,7 +271,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -314,7 +314,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -358,7 +358,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -400,7 +400,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -515,7 +515,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -557,7 +557,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -599,7 +599,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -647,7 +647,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -690,7 +690,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -734,7 +734,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -776,7 +776,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -818,7 +818,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -866,7 +866,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -908,8 +908,8 @@ Object { */ #pragma once +#include #include -#include #include #include #include @@ -1160,7 +1160,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -1203,7 +1203,7 @@ Object { */ #pragma once -#include +#include #include #include diff --git a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap index 0d9839e13568..1c7df1f58455 100644 --- a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap +++ b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap @@ -17,7 +17,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -55,7 +55,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -93,7 +93,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -131,7 +131,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -169,7 +169,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -207,7 +207,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -245,7 +245,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -283,7 +283,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -321,7 +321,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -359,7 +359,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -397,7 +397,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -435,7 +435,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -464,7 +464,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -502,7 +502,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -540,7 +540,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -578,7 +578,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -616,7 +616,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -654,7 +654,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { diff --git a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap index 6fc5096fb14e..479e9ea91b8c 100644 --- a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap +++ b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap @@ -13,7 +13,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -42,7 +42,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -71,7 +71,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -100,7 +100,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -129,7 +129,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -158,7 +158,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -187,7 +187,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -237,7 +237,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -314,7 +314,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -343,7 +343,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -372,7 +372,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -401,7 +401,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -432,7 +432,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -461,7 +461,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -490,7 +490,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -519,7 +519,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -548,7 +548,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { @@ -577,7 +577,7 @@ Object { */ #pragma once -#include +#include namespace facebook::react { diff --git a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap index c8a653467e6a..f9b2d81b2d8c 100644 --- a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap @@ -13,8 +13,8 @@ Object { */ #include +#include #include -#include #include #include @@ -239,7 +239,7 @@ Object { */ #include -#include +#include #include #include diff --git a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap index 1f2ae7dd4c24..a3ba5b86ea2f 100644 --- a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap +++ b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap @@ -13,8 +13,8 @@ Object { */ #pragma once +#include #include -#include #include #include #include @@ -228,7 +228,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -271,7 +271,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -314,7 +314,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -358,7 +358,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -400,7 +400,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -515,7 +515,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -557,7 +557,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -599,7 +599,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -647,7 +647,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -690,7 +690,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -734,7 +734,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -776,7 +776,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -818,7 +818,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -866,7 +866,7 @@ Object { */ #pragma once -#include +#include #include #include @@ -908,8 +908,8 @@ Object { */ #pragma once +#include #include -#include #include #include #include @@ -1160,7 +1160,7 @@ Object { */ #pragma once -#include +#include #include #include #include @@ -1203,7 +1203,7 @@ Object { */ #pragma once -#include +#include #include #include diff --git a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap index 6c8ac859f29e..1de70facd8d6 100644 --- a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap +++ b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GenerateShadowNodeH-test.js.snap @@ -17,7 +17,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -55,7 +55,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -93,7 +93,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -131,7 +131,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -169,7 +169,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -207,7 +207,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -245,7 +245,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -283,7 +283,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -321,7 +321,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -359,7 +359,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -397,7 +397,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -435,7 +435,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -464,7 +464,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -502,7 +502,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -540,7 +540,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -578,7 +578,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -616,7 +616,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { @@ -654,7 +654,7 @@ Object { #include #include #include -#include +#include #include namespace facebook::react { diff --git a/packages/react-native-codegen/src/generators/ReservedPrimitiveTypes.js b/packages/react-native-codegen/src/generators/ReservedPrimitiveTypes.js index 1de738277d01..a99d6b0806d3 100644 --- a/packages/react-native-codegen/src/generators/ReservedPrimitiveTypes.js +++ b/packages/react-native-codegen/src/generators/ReservedPrimitiveTypes.js @@ -114,9 +114,7 @@ const RESERVED_TYPES: {readonly [ReservedPrimitiveName]: ReservedTypeMapping} = '#include ', '#include ', ], - conversionIncludes: [ - '#include ', - ], + conversionIncludes: ['#include '], }, java: { interfaceImports: ['import com.facebook.yoga.YogaValue;'], diff --git a/packages/react-native-codegen/src/generators/components/GenerateEventEmitterH.js b/packages/react-native-codegen/src/generators/components/GenerateEventEmitterH.js index 5356ecf1f0c6..6aeadb5a6e03 100644 --- a/packages/react-native-codegen/src/generators/components/GenerateEventEmitterH.js +++ b/packages/react-native-codegen/src/generators/components/GenerateEventEmitterH.js @@ -53,7 +53,7 @@ const FileTemplate = ({ */ #pragma once -#include +#include ${[...extraIncludes].join('\n')} namespace facebook::react { diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsH.js b/packages/react-native-codegen/src/generators/components/GeneratePropsH.js index 58cb6a927ebd..8aa4dd9fcbb5 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsH.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsH.js @@ -569,9 +569,7 @@ function getExtendsImports( case 'ReactNativeBuiltInType': switch (extendProps.knownTypeName) { case 'ReactNativeCoreViewProps': - imports.add( - '#include ', - ); + imports.add('#include '); return; default: extendProps.knownTypeName as empty; diff --git a/packages/react-native-codegen/src/generators/components/GenerateShadowNodeH.js b/packages/react-native-codegen/src/generators/components/GenerateShadowNodeH.js index 93891001d088..a4ca1fd55678 100644 --- a/packages/react-native-codegen/src/generators/components/GenerateShadowNodeH.js +++ b/packages/react-native-codegen/src/generators/components/GenerateShadowNodeH.js @@ -38,7 +38,7 @@ const FileTemplate = ({ ${IncludeTemplate({headerPrefix, file: 'EventEmitters.h'})} ${IncludeTemplate({headerPrefix, file: 'Props.h'})} ${IncludeTemplate({headerPrefix, file: 'States.h'})} -#include +#include #include namespace facebook::react { diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap index 5d04378c28ef..1166d4293198 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap @@ -13,7 +13,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -42,7 +42,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -71,7 +71,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -100,7 +100,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -129,7 +129,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -158,7 +158,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -187,7 +187,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -216,7 +216,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -245,7 +245,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -274,7 +274,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -303,7 +303,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -332,7 +332,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -361,7 +361,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -390,7 +390,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -419,7 +419,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -448,7 +448,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -489,7 +489,7 @@ Map { */ #pragma once -#include +#include #include namespace facebook::react { @@ -585,7 +585,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -622,7 +622,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -651,7 +651,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -680,7 +680,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -716,7 +716,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -745,7 +745,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -774,7 +774,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -803,7 +803,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -832,7 +832,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -861,7 +861,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -892,7 +892,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -921,7 +921,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -950,7 +950,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -979,7 +979,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1008,7 +1008,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1037,7 +1037,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1066,7 +1066,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1095,7 +1095,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1124,7 +1124,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1153,7 +1153,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { @@ -1189,7 +1189,7 @@ Map { */ #pragma once -#include +#include namespace facebook::react { diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap index fbf62c1c987f..a88c7f9758e6 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap @@ -443,8 +443,8 @@ Map { */ #include +#include #include -#include #include #include @@ -725,8 +725,8 @@ Map { */ #include +#include #include -#include #include #include @@ -892,8 +892,8 @@ Map { */ #include +#include #include -#include #include #include @@ -1268,7 +1268,7 @@ Map { */ #include -#include +#include #include #include diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap index 9caeed3455d1..dddfce67e68a 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap @@ -13,8 +13,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -390,8 +390,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -767,8 +767,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -1158,8 +1158,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -1458,8 +1458,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -1561,8 +1561,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -1664,8 +1664,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -1773,8 +1773,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -2073,8 +2073,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -2375,7 +2375,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2417,7 +2417,7 @@ Map { */ #pragma once -#include +#include #include #include #include @@ -2460,7 +2460,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2502,7 +2502,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2544,7 +2544,7 @@ Map { */ #pragma once -#include +#include #include #include #include @@ -2588,7 +2588,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2635,7 +2635,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2677,7 +2677,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2719,7 +2719,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2761,7 +2761,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2803,7 +2803,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2845,7 +2845,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2905,7 +2905,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -2952,7 +2952,7 @@ Map { */ #pragma once -#include +#include #include #include #include @@ -2995,7 +2995,7 @@ Map { */ #pragma once -#include +#include #include #include #include @@ -3038,7 +3038,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -3122,7 +3122,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -3166,7 +3166,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -3208,7 +3208,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -3250,7 +3250,7 @@ Map { */ #pragma once -#include +#include #include #include #include @@ -3298,7 +3298,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -3340,8 +3340,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -3777,8 +3777,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -4214,8 +4214,8 @@ Map { */ #pragma once +#include #include -#include #include #include #include @@ -4659,7 +4659,7 @@ Map { */ #pragma once -#include +#include #include #include #include @@ -4702,7 +4702,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -4770,7 +4770,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -4813,7 +4813,7 @@ Map { */ #pragma once -#include +#include #include #include @@ -4873,7 +4873,7 @@ Map { */ #pragma once -#include +#include #include #include diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap index c441beb9b39b..53357a622285 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap @@ -17,7 +17,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -55,7 +55,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -93,7 +93,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -131,7 +131,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -169,7 +169,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -207,7 +207,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -245,7 +245,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -283,7 +283,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -321,7 +321,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -359,7 +359,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -397,7 +397,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -435,7 +435,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -473,7 +473,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -511,7 +511,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -549,7 +549,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -587,7 +587,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -625,7 +625,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -663,7 +663,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -692,7 +692,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -730,7 +730,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -768,7 +768,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -817,7 +817,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -855,7 +855,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -893,7 +893,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -931,7 +931,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -969,7 +969,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1007,7 +1007,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1036,7 +1036,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1074,7 +1074,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1112,7 +1112,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1150,7 +1150,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1188,7 +1188,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1226,7 +1226,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1264,7 +1264,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1302,7 +1302,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1340,7 +1340,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1378,7 +1378,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { @@ -1427,7 +1427,7 @@ Map { #include #include #include -#include +#include #include namespace facebook::react { diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap index b06982ce8f31..55dc41f9c75f 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap @@ -512,8 +512,8 @@ Map { #include #include #include +#include #include -#include #include #include #include @@ -654,8 +654,8 @@ Map { #include #include #include +#include #include -#include #include #include #include @@ -691,8 +691,8 @@ Map { #include #include #include +#include #include -#include #include #include #include @@ -907,7 +907,7 @@ Map { #include #include #include -#include +#include #include #include #include diff --git a/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h b/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h index 94a01949d676..353ce29b1a29 100644 --- a/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h +++ b/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h @@ -9,7 +9,7 @@ */ #pragma once -#include +#include namespace facebook::react { diff --git a/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h b/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h index 191f0b15776b..981090716949 100644 --- a/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h +++ b/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h @@ -9,7 +9,7 @@ */ #pragma once -#include +#include #include #include diff --git a/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h b/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h index 0fd9852b1bca..ab50bc5d9304 100644 --- a/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h +++ b/packages/react-native-popup-menu-android/android/src/main/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h @@ -13,7 +13,7 @@ #include "EventEmitters.h" #include "Props.h" #include "States.h" -#include +#include #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h index 70357d7fcaea..05b502a52229 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h @@ -31,10 +31,6 @@ #undef RN_UMBRELLA_CONTEXT #define RN_UMBRELLA_CONTEXT 1 -#if defined(__APPLE__) -#include -#endif - #include #include #include @@ -68,20 +64,5 @@ #include #include -#ifdef ANDROID -#include -#endif - -#if defined(TARGET_OS_OSX) && TARGET_OS_OSX -#include -#include -#include -#endif - -#ifdef USE_WINUI_FABRIC -#include -#include -#endif - #undef RN_UMBRELLA_CONTEXT #pragma pop_macro("RN_UMBRELLA_CONTEXT") diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h index 143a13566a9d..99fb1ce9043f 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h @@ -12,7 +12,7 @@ #include #include -#ifdef ANDROID +#if defined(ANDROID) && defined(RN_SERIALIZABLE_STATE) #include #endif @@ -46,7 +46,7 @@ static inline void interpolateViewProps( // that use RawProps/folly::dynamic instead of concrete props on the // mounting layer. Once we can remove this, we should change `rawProps` to // be const again. -#ifdef ANDROID +#if defined(ANDROID) && defined(RN_SERIALIZABLE_STATE) if (!interpolatedProps->rawProps.isNull()) { interpolatedProps->rawProps["opacity"] = interpolatedProps->opacity; diff --git a/packages/rn-tester/NativeComponentExample/GeneratedComponentsStrictApiTest.cpp b/packages/rn-tester/NativeComponentExample/GeneratedComponentsStrictApiTest.cpp new file mode 100644 index 000000000000..5beaf63ee7a2 --- /dev/null +++ b/packages/rn-tester/NativeComponentExample/GeneratedComponentsStrictApiTest.cpp @@ -0,0 +1,16 @@ +/* + * 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 + +#include + +namespace facebook::react { + +TEST(GeneratedComponentsStrictApiTest, generatedHeadersCompile) {} + +} // namespace facebook::react diff --git a/packages/rn-tester/NativeComponentExample/GeneratedEventEmittersStrictApiTest.cpp b/packages/rn-tester/NativeComponentExample/GeneratedEventEmittersStrictApiTest.cpp new file mode 100644 index 000000000000..84e8927eb7f3 --- /dev/null +++ b/packages/rn-tester/NativeComponentExample/GeneratedEventEmittersStrictApiTest.cpp @@ -0,0 +1,16 @@ +/* + * 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 + +#include + +namespace facebook::react { + +TEST(GeneratedEventEmittersStrictApiTest, generatedHeaderCompiles) {} + +} // namespace facebook::react diff --git a/packages/rn-tester/NativeComponentExample/GeneratedPropsStrictApiTest.cpp b/packages/rn-tester/NativeComponentExample/GeneratedPropsStrictApiTest.cpp new file mode 100644 index 000000000000..221bcf7c5cae --- /dev/null +++ b/packages/rn-tester/NativeComponentExample/GeneratedPropsStrictApiTest.cpp @@ -0,0 +1,16 @@ +/* + * 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 + +#include + +namespace facebook::react { + +TEST(GeneratedPropsStrictApiTest, generatedHeaderCompiles) {} + +} // namespace facebook::react diff --git a/packages/rn-tester/NativeComponentExample/GeneratedShadowNodesStrictApiTest.cpp b/packages/rn-tester/NativeComponentExample/GeneratedShadowNodesStrictApiTest.cpp new file mode 100644 index 000000000000..db8f073af6a9 --- /dev/null +++ b/packages/rn-tester/NativeComponentExample/GeneratedShadowNodesStrictApiTest.cpp @@ -0,0 +1,16 @@ +/* + * 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 + +#include + +namespace facebook::react { + +TEST(GeneratedShadowNodesStrictApiTest, generatedHeaderCompiles) {} + +} // namespace facebook::react From a5456cb4d82f7fc8a87a3294d91c6ba4eabc98e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 18 Sep 2026 04:17:02 -0700 Subject: [PATCH 2/2] Use public umbrellas in modal headers (#58570) Summary: Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the modal module with strict API enforcement enabled. Changelog: [Internal] Differential Revision: D120528333 --- .../components/modal/ModalHostViewComponentDescriptor.h | 2 +- .../react/renderer/components/modal/ModalHostViewShadowNode.h | 2 +- .../react/renderer/components/modal/ModalHostViewState.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h index 095c60b26432..7300b59588cd 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h @@ -9,9 +9,9 @@ #include +#include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h index 0219d44ca775..0b767161d136 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h @@ -9,10 +9,10 @@ #include +#include #include #include #include -#include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h index 4b12b0539692..f85268778d7e 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h @@ -9,7 +9,7 @@ #include -#include +#include #include #include "ModalHostViewUtils.h"