dillon1000/react

Commit

[Fizz/Float] Float for stylesheet resources (#25243)

* [Fizz/Float] Float for stylesheet resources

This commit implements Float in Fizz and on the Client. The initial set of supported APIs is roughly

1. Convert certain stylesheets into style Resources when opting in with precedence prop
2. Emit preloads for stylesheets and explicit preload tags
3. Dedupe all Resources by href
4. Implement ReactDOM.preload() to allow for imperative preloading
5. Implement ReactDOM.preinit() to allow for imperative preinitialization

Currently supports
1. style Resources (link rel "stylesheet")
2. font Resources (preload as "font")

later updates will include support for scripts and modules
Browse files
Changed paths57 files
First-parent comparison
M packages/react-art/src/ReactARTHostConfig.js ModifiedM packages/react-dom-bindings/src/client/ReactDOMComponent.js ModifiedM packages/react-dom-bindings/src/client/ReactDOMComponentTree.js ModifiedA packages/react-dom-bindings/src/client/ReactDOMFloatClient.js AddedM packages/react-dom-bindings/src/client/ReactDOMHostConfig.js ModifiedM packages/react-dom-bindings/src/events/DOMPluginEventSystem.js ModifiedA packages/react-dom-bindings/src/server/ReactDOMFloatServer.js AddedM packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js ModifiedM packages/react-dom-bindings/src/server/ReactDOMServerLegacyFormatConfig.js ModifiedA packages/react-dom-bindings/src/shared/ReactDOMDispatcher.js AddedA packages/react-dom-bindings/src/shared/ReactDOMFloat.js AddedA packages/react-dom-bindings/src/shared/ReactDOMResourceValidation.js AddedM packages/react-dom/index.experimental.js ModifiedM packages/react-dom/src/ReactDOMSharedInternals.js ModifiedM packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js ModifiedA packages/react-dom/src/__tests__/ReactDOMFloat-test.js AddedM packages/react-dom/src/client/ReactDOM.js ModifiedM packages/react-dom/src/client/ReactDOMRoot.js ModifiedM packages/react-dom/src/test-utils/ReactTestUtils.js ModifiedM packages/react-native-renderer/src/ReactFabricHostConfig.js ModifiedM packages/react-native-renderer/src/ReactNativeHostConfig.js ModifiedM packages/react-native-renderer/src/server/ReactNativeServerFormatConfig.js ModifiedM packages/react-noop-renderer/src/ReactNoopServer.js ModifiedM packages/react-noop-renderer/src/createReactNoop.js ModifiedM packages/react-reconciler/src/ReactFiber.new.js ModifiedM packages/react-reconciler/src/ReactFiber.old.js ModifiedM packages/react-reconciler/src/ReactFiberBeginWork.new.js ModifiedM packages/react-reconciler/src/ReactFiberBeginWork.old.js ModifiedM packages/react-reconciler/src/ReactFiberCommitWork.new.js ModifiedM packages/react-reconciler/src/ReactFiberCommitWork.old.js ModifiedM packages/react-reconciler/src/ReactFiberCompleteWork.new.js ModifiedM packages/react-reconciler/src/ReactFiberCompleteWork.old.js ModifiedM packages/react-reconciler/src/ReactFiberComponentStack.js ModifiedM packages/react-reconciler/src/ReactFiberHostConfigWithNoHydration.js ModifiedA packages/react-reconciler/src/ReactFiberHostConfigWithNoResources.js AddedM packages/react-reconciler/src/ReactFiberHotReloading.new.js ModifiedM packages/react-reconciler/src/ReactFiberHotReloading.old.js ModifiedM packages/react-reconciler/src/ReactFiberHydrationContext.new.js ModifiedM packages/react-reconciler/src/ReactFiberHydrationContext.old.js ModifiedM packages/react-reconciler/src/ReactFiberTreeReflection.js ModifiedM packages/react-reconciler/src/ReactFiberUnwindWork.new.js ModifiedM packages/react-reconciler/src/ReactFiberUnwindWork.old.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.new.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.old.js ModifiedM packages/react-reconciler/src/ReactTestSelectors.js ModifiedM packages/react-reconciler/src/ReactWorkTags.js ModifiedM packages/react-reconciler/src/__tests__/ReactFiberHostContext-test.internal.js ModifiedM packages/react-reconciler/src/forks/ReactFiberHostConfig.custom.js ModifiedM packages/react-reconciler/src/getComponentNameFromFiber.js ModifiedM packages/react-server-dom-relay/package.json ModifiedM packages/react-server/src/ReactFizzServer.js ModifiedM packages/react-server/src/forks/ReactServerFormatConfig.custom.js ModifiedM packages/react-test-renderer/src/ReactTestHostConfig.js ModifiedM packages/react-test-renderer/src/ReactTestRenderer.js ModifiedM scripts/error-codes/codes.json ModifiedM scripts/rollup/bundles.js ModifiedM scripts/shared/inlinedHostConfigs.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…