@samitouri / QOS-React-1 / commits / a7cce7b31b

[Fizz] Preserve referrerPolicy in image preload headers (#36803)

Ulises Jeremias committed Jun 17, 2026 at 09:57 UTC a7cce7b31b8fa057550be8f82027b7f7ad2414c5
2 files changed +30 -1
packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js
+1 -1
@@ -3405,7 +3405,7 @@ function pushImg(
3405 nonce: props.nonce,
3406 type: props.type,
3407 fetchPriority: props.fetchPriority,
3408 - referrerPolicy: props.refererPolicy,
3408 + referrerPolicy: props.referrerPolicy,
3409 })),
3410 // We always consume the header length since once we find one header that doesn't fit
3411 // we assume all the rest won't as well. This is to avoid getting into a situation
packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
+29
@@ -3934,6 +3934,35 @@ describe('ReactDOMFizzServer', () => {
3934 });
3935 });
3936
3937 + it('preserves referrerPolicy for image preload headers', async () => {
3938 + let headers = null;
3939 + function onHeaders(x) {
3940 + headers = x;
3941 + }
3942 +
3943 + function App() {
3944 + return (
3945 + <html>
3946 + <body>
3947 + <img
3948 + src="image-with-referrer-policy"
3949 + fetchPriority="high"
3950 + referrerPolicy="no-referrer"
3951 + />
3952 + </body>
3953 + </html>
3954 + );
3955 + }
3956 +
3957 + await act(() => {
3958 + renderToPipeableStream(<App />, {onHeaders});
3959 + });
3960 +
3961 + expect(headers).toEqual({
3962 + Link: `<image-with-referrer-policy>; rel=preload; as="image"; fetchpriority="high"; referrerpolicy="no-referrer"`,
3963 + });
3964 + });
3965 +
3966 it('emits nothing for headers if you pipe before work begins', async () => {
3967 let headers = null;
3968 function onHeaders(x) {