Skip to content

Use umbrellas instead of direct includes in react/renderer/scheduler module - #58551

Open
j-piasecki wants to merge 3 commits into
react:mainfrom
j-piasecki:export-D120315036
Open

j-piasecki wants to merge 3 commits into
react:mainfrom
j-piasecki:export-D120315036

Conversation

@j-piasecki

Copy link
Copy Markdown
Contributor

Summary:
Changelog: [Internal]

Update the react/renderer/scheduler module to use the React/RendererCore.h, React/Utils.h, and React/ComponentRegistry.h umbrella includes instead of direct ones.

Differential Revision: D120315036

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 16, 2026
@facebook-github-tools facebook-github-tools Bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Sep 16, 2026
@j-piasecki
j-piasecki force-pushed the export-D120315036 branch 8 times, most recently from 3401282 to 61102e7 Compare September 22, 2026 13:17
)

Summary:

Changelog: [Internal]

Update the bridging module to use `React/Bridging.h` and `React/RendererCore.h` umbrella includes instead of direct ones.

Reviewed By: cipolleschi

Differential Revision: D120311601
…g module (react#58552)

Summary:

Changelog: [Internal]

Part of the C++ stable API migration to umbrella includes. Fixes a tier reachability violation in the `jsinspector-modern/tracing` module.

The headers in this module are "for frameworks" tier (they include `<react/cxxstableapi/FrameworksGuard.h>`), but they reached the timing module directly through `<react/timing/primitives.h>`. That header is protected by `<react/cxxstableapi/UmbrellaGuard.h>`. Exported headers are preprocessed in the consumer's translation unit, so a consumer building with `RN_STRICT_API` would hit the guard through these transitive includes. `RN_ALLOW_FRAMEWORKS` does not suppress the guard.

This change replaces `#include <react/timing/primitives.h>` with the `<React/Timing.h>` umbrella in all 12 tracing headers that used it. The umbrella scopes `RN_UMBRELLA_CONTEXT` around its include of `primitives.h`, so the guard accepts it. It re-exports the same declarations, so there is no functional change.

Out of scope: the module's `.cpp` files (`EventLoopReporter.cpp`, `PerformanceTracer.cpp`, `TraceEventSerializer.cpp`) keep the fine-grained include. They are compiled only within React Native's own build and are never preprocessed by consumers, which matches the umbrella's documented guidance. Other modules are migrated in separate changes.

Reviewed By: cortinico

Differential Revision: D120313623
…module

Summary:
Changelog: [Internal]

Update the react/renderer/scheduler module to use the `React/RendererCore.h`, `React/Utils.h`, and `React/ComponentRegistry.h` umbrella includes instead of direct ones.

Differential Revision: D120315036

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook p: Software Mansion Partner: Software Mansion Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant