From 931d7de169a61a9e33c46a0768a591c58b357643 Mon Sep 17 00:00:00 2001
From: BIKI DAS
Date: Thu, 18 Aug 2022 11:06:59 +0530
Subject: [PATCH] Revert "support subresource integrity for bootstrapScripts
and bootstrapModules (#25104)"
This reverts commit 1e5245df89e45b788acf3af3769f0d816b18458d.
---
.../src/__tests__/ReactDOMFizzServer-test.js | 55 -------------------
.../src/server/ReactDOMFizzServerBrowser.js | 5 +-
.../src/server/ReactDOMFizzServerNode.js | 5 +-
.../src/server/ReactDOMFizzStaticBrowser.js | 5 +-
.../src/server/ReactDOMFizzStaticNode.js | 6 +-
.../src/server/ReactDOMServerFormatConfig.js | 39 ++-----------
6 files changed, 14 insertions(+), 101 deletions(-)
diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
index 3812baffc7486..10d3237bf38d0 100644
--- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
@@ -3390,61 +3390,6 @@ describe('ReactDOMFizzServer', () => {
});
});
- it('accepts an integrity property for bootstrapScripts and bootstrapModules', async () => {
- await actIntoEmptyDocument(() => {
- const {pipe} = ReactDOMFizzServer.renderToPipeableStream(
-
-
-
- hello world
-
- ,
- {
- bootstrapScripts: [
- 'foo',
- {
- src: 'bar',
- },
- {
- src: 'baz',
- integrity: 'qux',
- },
- ],
- bootstrapModules: [
- 'quux',
- {
- src: 'corge',
- },
- {
- src: 'grault',
- integrity: 'garply',
- },
- ],
- },
- );
- pipe(writable);
- });
-
- expect(getVisibleChildren(document)).toEqual(
-
-
- hello world
-
- ,
- );
- expect(
- Array.from(document.getElementsByTagName('script')).map(n => n.outerHTML),
- ).toEqual([
- '',
- '',
- '',
- '',
- '',
- '',
- ]);
- });
-
describe('bootstrapScriptContent escaping', () => {
it('the "S" in "?[Ss]cript" strings are replaced with unicode escaped lowercase s or S depending on case, preserving case sensitivity of nearby characters', async () => {
window.__test_outlet = '';
diff --git a/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js b/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js
index 2f626c922aa1a..acfe13e4ebbcc 100644
--- a/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js
+++ b/packages/react-dom/src/server/ReactDOMFizzServerBrowser.js
@@ -8,7 +8,6 @@
*/
import type {ReactNodeList} from 'shared/ReactTypes';
-import type {BootstrapScriptDescriptor} from './ReactDOMServerFormatConfig';
import ReactVersion from 'shared/ReactVersion';
@@ -29,8 +28,8 @@ type Options = {|
namespaceURI?: string,
nonce?: string,
bootstrapScriptContent?: string,
- bootstrapScripts?: Array,
- bootstrapModules?: Array,
+ bootstrapScripts?: Array,
+ bootstrapModules?: Array,
progressiveChunkSize?: number,
signal?: AbortSignal,
onError?: (error: mixed) => ?string,
diff --git a/packages/react-dom/src/server/ReactDOMFizzServerNode.js b/packages/react-dom/src/server/ReactDOMFizzServerNode.js
index 6790c44bccaca..4728a48a0552f 100644
--- a/packages/react-dom/src/server/ReactDOMFizzServerNode.js
+++ b/packages/react-dom/src/server/ReactDOMFizzServerNode.js
@@ -9,7 +9,6 @@
import type {ReactNodeList} from 'shared/ReactTypes';
import type {Writable} from 'stream';
-import type {BootstrapScriptDescriptor} from './ReactDOMServerFormatConfig';
import ReactVersion from 'shared/ReactVersion';
@@ -39,8 +38,8 @@ type Options = {|
namespaceURI?: string,
nonce?: string,
bootstrapScriptContent?: string,
- bootstrapScripts?: Array,
- bootstrapModules?: Array,
+ bootstrapScripts?: Array,
+ bootstrapModules?: Array,
progressiveChunkSize?: number,
onShellReady?: () => void,
onShellError?: (error: mixed) => void,
diff --git a/packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js b/packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js
index 38e4c948f6b9b..989d2de31ba0d 100644
--- a/packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js
+++ b/packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js
@@ -8,7 +8,6 @@
*/
import type {ReactNodeList} from 'shared/ReactTypes';
-import type {BootstrapScriptDescriptor} from './ReactDOMServerFormatConfig';
import ReactVersion from 'shared/ReactVersion';
@@ -28,8 +27,8 @@ type Options = {|
identifierPrefix?: string,
namespaceURI?: string,
bootstrapScriptContent?: string,
- bootstrapScripts?: Array,
- bootstrapModules?: Array,
+ bootstrapScripts?: Array,
+ bootstrapModules?: Array,
progressiveChunkSize?: number,
signal?: AbortSignal,
onError?: (error: mixed) => ?string,
diff --git a/packages/react-dom/src/server/ReactDOMFizzStaticNode.js b/packages/react-dom/src/server/ReactDOMFizzStaticNode.js
index b5f0022d12956..e799c21a8b78c 100644
--- a/packages/react-dom/src/server/ReactDOMFizzStaticNode.js
+++ b/packages/react-dom/src/server/ReactDOMFizzStaticNode.js
@@ -8,8 +8,6 @@
*/
import type {ReactNodeList} from 'shared/ReactTypes';
-import type {BootstrapScriptDescriptor} from './ReactDOMServerFormatConfig';
-
import {Writable, Readable} from 'stream';
import ReactVersion from 'shared/ReactVersion';
@@ -30,8 +28,8 @@ type Options = {|
identifierPrefix?: string,
namespaceURI?: string,
bootstrapScriptContent?: string,
- bootstrapScripts?: Array,
- bootstrapModules?: Array,
+ bootstrapScripts?: Array,
+ bootstrapModules?: Array,
progressiveChunkSize?: number,
signal?: AbortSignal,
onError?: (error: mixed) => ?string,
diff --git a/packages/react-dom/src/server/ReactDOMServerFormatConfig.js b/packages/react-dom/src/server/ReactDOMServerFormatConfig.js
index 308e35a20b3ae..1cf876940d3fb 100644
--- a/packages/react-dom/src/server/ReactDOMServerFormatConfig.js
+++ b/packages/react-dom/src/server/ReactDOMServerFormatConfig.js
@@ -82,7 +82,6 @@ const endInlineScript = stringToPrecomputedChunk('');
const startScriptSrc = stringToPrecomputedChunk('');
/**
@@ -105,17 +104,13 @@ const scriptRegex = /(<\/|<)(s)(cript)/gi;
const scriptReplacer = (match, prefix, s, suffix) =>
`${prefix}${s === 's' ? '\\u0073' : '\\u0053'}${suffix}`;
-export type BootstrapScriptDescriptor = {
- src: string,
- integrity?: string,
-};
// Allows us to keep track of what we've already written so we can refer back to it.
export function createResponseState(
identifierPrefix: string | void,
nonce: string | void,
bootstrapScriptContent: string | void,
- bootstrapScripts: $ReadOnlyArray | void,
- bootstrapModules: $ReadOnlyArray | void,
+ bootstrapScripts: Array | void,
+ bootstrapModules: Array | void,
): ResponseState {
const idPrefix = identifierPrefix === undefined ? '' : identifierPrefix;
const inlineScriptWithNonce =
@@ -134,42 +129,20 @@ export function createResponseState(
}
if (bootstrapScripts !== undefined) {
for (let i = 0; i < bootstrapScripts.length; i++) {
- const scriptConfig = bootstrapScripts[i];
- const src =
- typeof scriptConfig === 'string' ? scriptConfig : scriptConfig.src;
- const integrity =
- typeof scriptConfig === 'string' ? undefined : scriptConfig.integrity;
bootstrapChunks.push(
startScriptSrc,
- stringToChunk(escapeTextForBrowser(src)),
+ stringToChunk(escapeTextForBrowser(bootstrapScripts[i])),
+ endAsyncScript,
);
- if (integrity) {
- bootstrapChunks.push(
- scriptIntegirty,
- stringToChunk(escapeTextForBrowser(integrity)),
- );
- }
- bootstrapChunks.push(endAsyncScript);
}
}
if (bootstrapModules !== undefined) {
for (let i = 0; i < bootstrapModules.length; i++) {
- const scriptConfig = bootstrapModules[i];
- const src =
- typeof scriptConfig === 'string' ? scriptConfig : scriptConfig.src;
- const integrity =
- typeof scriptConfig === 'string' ? undefined : scriptConfig.integrity;
bootstrapChunks.push(
startModuleSrc,
- stringToChunk(escapeTextForBrowser(src)),
+ stringToChunk(escapeTextForBrowser(bootstrapModules[i])),
+ endAsyncScript,
);
- if (integrity) {
- bootstrapChunks.push(
- scriptIntegirty,
- stringToChunk(escapeTextForBrowser(integrity)),
- );
- }
- bootstrapChunks.push(endAsyncScript);
}
}
return {