Conversation
Summary: Declare direct CSS dependencies for renderer targets that consume CSS headers instead of relying on View or Graphics to expose them transitively. Cover Buck, CMake, CocoaPods, and SwiftPM without changing header visibility or runtime behavior. Changelog: [Internal] Differential Revision: D119489856
Summary: Move shared and platform-specific Graphics color-parsing implementations from exported headers into owned source files across generic C++, Android, Apple, and Windows targets. Preserve the existing public entry points and parsing behavior. Update Buck source selection so default configurations link the generic C++ parser, and keep the React Native macOS and Windows mirrors synchronized. Changelog: [Internal] Differential Revision: D119500849
Summary: Keep the CSS-free color parsing helpers (`parsePlatformColorFn`, `fromRawValueShared`, and `parsePlatformColor`) in the public Graphics API so the platform `fromRawValue` wrappers remain inline. Move `hashGetColourArguments` and `configurePlatformColorCacheInvalidationHook` into private implementation scope. Stop exporting CSS, fbjni, and the Android cache library from the Buck target, and express implementation-only dependencies privately in Buck and CMake. The retained shared helper header depends only on `RawValue`, `Color`, and `ContextContainer`; CSS parsing headers remain confined to the implementation file. Regenerate C++ API snapshots to remove the private hash and cache declarations while retaining the public color parser helpers and inline `fromRawValue` entry point. Changelog: [Internal] Differential Revision: D119500886
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
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` 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. 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] Differential Revision: D119970889
Summary: Reclassify the renderer CSS headers (`react/renderer/css/*.h`) as framework-tier APIs by switching them from the public umbrella guard to the for-frameworks guard. Framework integrations keep access to the fine-grained headers and acknowledge that usage by defining `RN_ALLOW_FRAMEWORKS`. Remove the `React/CSS.h` umbrella, which has no consumers, and stop publishing it from Buck, CocoaPods, Android prefab, the iOS prebuild header config, and the iOS prebuild header linking step. Changelog: [Internal] Differential Revision: D119642784
Summary: The renderer CSS headers are framework-tier APIs, but several of them included fine-grained public `react/utils/*` headers directly. Those headers are guarded by the public umbrella guard, so a strict consumer that includes a CSS header without first including `<React/Utils.h>` hit a hard error even after acknowledging framework-tier usage with `RN_ALLOW_FRAMEWORKS`. Include `<React/Utils.h>` from the affected CSS headers instead of the fine-grained utils headers, matching how other exported headers reach public modules. Export the utils dependency from the CSS Buck target, since utils is now part of the CSS headers' public interface; CMake and CocoaPods already expose it. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D122337018
|
@coado has exported this pull request. If you are a Meta employee, you can view the originating Diff in D122337018. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
The renderer CSS headers are framework-tier APIs, but several of them included fine-grained public
react/utils/*headers directly. Those headers are guarded by the public umbrella guard, so a strict consumer that includes a CSS header without first including<React/Utils.h>hit a hard error even after acknowledging framework-tier usage withRN_ALLOW_FRAMEWORKS.Include
<React/Utils.h>from the affected CSS headers instead of the fine-grained utils headers, matching how other exported headers reach public modules. Export the utils dependency from the CSS Buck target, since utils is now part of the CSS headers' public interface; CMake and CocoaPods already expose it.Changelog: [Internal]
Reviewed By: cipolleschi
Differential Revision: D122337018