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 " { 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 {