Skip to content

Commit 08774cc

Browse files
committed
Limit crossOrigin value usage
1 parent bc25880 commit 08774cc

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,11 @@ export function createResponseState(
268268
const integrity =
269269
typeof scriptConfig === 'string' ? undefined : scriptConfig.integrity;
270270
const crossOrigin =
271-
typeof scriptConfig === 'string' ? undefined : scriptConfig.crossOrigin;
271+
typeof scriptConfig === 'string' || scriptConfig.crossOrigin == null
272+
? undefined
273+
: scriptConfig.crossOrigin === 'use-credentials'
274+
? 'use-credentials'
275+
: '';
272276

273277
bootstrapChunks.push(
274278
startScriptSrc,
@@ -286,7 +290,7 @@ export function createResponseState(
286290
stringToChunk(escapeTextForBrowser(integrity)),
287291
);
288292
}
289-
if (crossOrigin) {
293+
if (typeof crossOrigin === 'string') {
290294
bootstrapChunks.push(
291295
scriptCrossOrigin,
292296
stringToChunk(escapeTextForBrowser(crossOrigin)),
@@ -303,7 +307,11 @@ export function createResponseState(
303307
const integrity =
304308
typeof scriptConfig === 'string' ? undefined : scriptConfig.integrity;
305309
const crossOrigin =
306-
typeof scriptConfig === 'string' ? undefined : scriptConfig.crossOrigin;
310+
typeof scriptConfig === 'string' || scriptConfig.crossOrigin == null
311+
? undefined
312+
: scriptConfig.crossOrigin === 'use-credentials'
313+
? 'use-credentials'
314+
: '';
307315

308316
bootstrapChunks.push(
309317
startModuleSrc,
@@ -322,7 +330,7 @@ export function createResponseState(
322330
stringToChunk(escapeTextForBrowser(integrity)),
323331
);
324332
}
325-
if (crossOrigin) {
333+
if (typeof crossOrigin === 'string') {
326334
bootstrapChunks.push(
327335
scriptCrossOrigin,
328336
stringToChunk(escapeTextForBrowser(crossOrigin)),

packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3794,7 +3794,11 @@ describe('ReactDOMFizzServer', () => {
37943794
},
37953795
{
37963796
src: 'baz',
3797-
crossOrigin: 'anonymous',
3797+
crossOrigin: '',
3798+
},
3799+
{
3800+
src: 'qux',
3801+
crossOrigin: 'defaults-to-empty',
37983802
},
37993803
],
38003804
bootstrapModules: [
@@ -3828,7 +3832,8 @@ describe('ReactDOMFizzServer', () => {
38283832
).toEqual([
38293833
'<script src="foo" async=""></script>',
38303834
'<script src="bar" async=""></script>',
3831-
'<script src="baz" crossorigin="anonymous" async=""></script>',
3835+
'<script src="baz" crossorigin="" async=""></script>',
3836+
'<script src="qux" crossorigin="" async=""></script>',
38323837
'<script type="module" src="quux" async=""></script>',
38333838
'<script type="module" src="corge" async=""></script>',
38343839
'<script type="module" src="grault" crossorigin="use-credentials" async=""></script>',

0 commit comments

Comments
 (0)