Skip to content

Seal renderer View public boundary - #58787

Closed
coado wants to merge 3 commits into
react:mainfrom
coado:export-D119970889
Closed

coado wants to merge 3 commits into
react:mainfrom
coado:export-D119970889

Conversation

@coado

@coado coado commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary:
Reclassify the CSS-dependent View conversion headers as private implementation details:

  • BackgroundImagePropsConversions.h
  • BoxShadowPropsConversions.h
  • CSSConversions.h
  • FilterPropsConversions.h
  • propsConversions.h

These headers now use the private guard and are removed from the <React/View.h> umbrella, along with conversions.h. The public accessibilityPropsConversions.h stays in the umbrella: it is CSS-free, and framework-tier headers such as the attributed string conversions reach the accessibility role parsers through it. LayoutConformanceProps.h now includes the public conversions.h and core propsConversions.h instead of the private View propsConversions.h, so the umbrella stays self-contained under the strict API.

Following the Graphics module, renderer CSS becomes an implementation dependency of View in Buck instead of an exported one. Header publishing in Buck, CocoaPods, SwiftPM, and Gradle prefab is unchanged, consistent with other private headers, and the C++ API snapshots are unchanged.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D119970889

@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 Oct 1, 2026
@facebook-github-tools facebook-github-tools Bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Oct 1, 2026
@meta-codesync

meta-codesync Bot commented Oct 1, 2026

Copy link
Copy Markdown

@coado has exported this pull request. If you are a Meta employee, you can view the originating Diff in D119970889.

Dawid Małecki added 2 commits October 2, 2026 03:59
Summary:
Move View CSS parsing implementation details for color and length coercion, box shadows, and filters from exported headers into compiled source files. Keep only the supported `coerceColor`, `coerceLength`, and `fromRawValue` declarations in public headers while preserving existing parsing behavior.

Update existing conversion tests to exercise the same paths through the public entry points, and regenerate the C++ API snapshots to remove private helper declarations.

Changelog: [Internal]

Differential Revision: D119507169
Summary:
Move CSS-dependent View conversion implementations for Yoga lengths, value units, transforms, transform origins, and aspect ratios from the exported `conversions.h` header into `conversions.cpp`. Keep the supported conversion declarations public and preserve existing parsing behavior.

Update existing conversion tests to exercise the same paths through supported public entry points, and regenerate the C++ API snapshots to remove private helper declarations.

Changelog: [Internal]

Differential Revision: D119507215
coado added a commit to coado/react-native that referenced this pull request Oct 2, 2026
Summary:
Pull Request resolved: react#58787

Reclassify the CSS-dependent View conversion headers as private implementation details:

- `BackgroundImagePropsConversions.h`
- `BoxShadowPropsConversions.h`
- `CSSConversions.h`
- `FilterPropsConversions.h`
- `propsConversions.h`

These headers now use the private guard and are removed from the `<React/View.h>` umbrella, along with `conversions.h` and `accessibilityPropsConversions.h`. `LayoutConformanceProps.h` now includes the public `conversions.h` and core `propsConversions.h` instead of the private View `propsConversions.h`, so the umbrella stays self-contained under the strict API.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D119970889
@coado
coado force-pushed the export-D119970889 branch from 0e7fd9a to 59df49a Compare October 2, 2026 11:05
@meta-codesync meta-codesync Bot changed the title Seal renderer View public boundary Seal renderer View public boundary (#58787) Oct 2, 2026
Summary:
Reclassify the CSS-dependent View conversion headers as private implementation details:

- `BackgroundImagePropsConversions.h`
- `BoxShadowPropsConversions.h`
- `CSSConversions.h`
- `FilterPropsConversions.h`
- `propsConversions.h`

These headers now use the private guard and are removed from the `<React/View.h>` umbrella, along with `conversions.h`. The public `accessibilityPropsConversions.h` stays in the umbrella: it is CSS-free, and framework-tier headers such as the attributed string conversions reach the accessibility role parsers through it. `LayoutConformanceProps.h` now includes the public `conversions.h` and core `propsConversions.h` instead of the private View `propsConversions.h`, so the umbrella stays self-contained under the strict API.

Following the Graphics module, renderer CSS becomes an implementation dependency of View in Buck instead of an exported one. Header publishing in Buck, CocoaPods, SwiftPM, and Gradle prefab is unchanged, consistent with other private headers, and the C++ API snapshots are unchanged.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D119970889
@coado
coado force-pushed the export-D119970889 branch from 59df49a to 2c2bcf6 Compare October 2, 2026 12:48
@meta-codesync meta-codesync Bot changed the title Seal renderer View public boundary (#58787) Seal renderer View public boundary Oct 2, 2026
@meta-codesync meta-codesync Bot closed this in 3928a43 Oct 2, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Oct 2, 2026
@meta-codesync

meta-codesync Bot commented Oct 2, 2026

Copy link
Copy Markdown

This pull request has been merged in 3928a43.

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. Merged This PR has been merged. meta-exported 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