diff --git a/packages/react-dom-bindings/src/shared/crossOriginStrings.js b/packages/react-dom-bindings/src/shared/crossOriginStrings.js index ebdb615f398..263bad7c52e 100644 --- a/packages/react-dom-bindings/src/shared/crossOriginStrings.js +++ b/packages/react-dom-bindings/src/shared/crossOriginStrings.js @@ -11,7 +11,7 @@ export opaque type CrossOriginString: string = string; export function getCrossOriginString(input: ?string): ?CrossOriginString { if (typeof input === 'string') { - return input === 'use-credentials' ? input : ''; + return input === 'use-credentials' || input === 'anonymous' ? input : ''; } return undefined; } @@ -24,7 +24,7 @@ export function getCrossOriginStringAs( return ''; } if (typeof input === 'string') { - return input === 'use-credentials' ? input : ''; + return input === 'use-credentials' || input === 'anonymous' ? input : ''; } return undefined; } diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js index 9a825bf1e38..b57c691af5c 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js @@ -160,7 +160,12 @@ describe('ReactDOMFizzStaticFloat', () => { crossorigin="use-credentials" integrity="module-hash" />, - , + , , { rel="stylesheet" data-precedence="default" href="style anon" - crossorigin="" + crossorigin="anonymous" /> @@ -231,7 +236,12 @@ describe('ReactDOMFizzStaticFloat', () => { crossorigin="use-credentials" integrity="module-hash" /> - + { + function App() { + return ( + + + + + + + ); + } + + await act(() => { + renderToPipeableStream().pipe(writable); + }); + expect(getMeaningfulChildren(document)).toEqual( + + + + + + + + + + , + ); + + ReactDOMClient.hydrateRoot(document, ); + await waitForAll([]); + expect(getMeaningfulChildren(document)).toEqual( + + + + + + + + + + , + ); + }); + + it('does not include crossOrigin when keying image preloads', async () => { + function App() { + return ( + + + + + + + ); + } + + await act(() => { + renderToPipeableStream().pipe(writable); + }); + expect(getMeaningfulChildren(document)).toEqual( + + + + + + + + + , + ); + }); + it('can emit preloads for non-lazy images that are rendered', async () => { function App() { ReactDOM.preload('script', {as: 'script'}); @@ -5307,6 +5389,7 @@ body { + hello world , @@ -5324,8 +5407,10 @@ body { + + hello world diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js index b792844a0b4..18683043377 100644 --- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js +++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js @@ -1407,22 +1407,32 @@ describe('ReactFlightDOM', () => { - + - +