fix(next): add cross origin in react dom preload (#67423)
Co-authored-by: Jiwon Choi <devjiwonchoi@gmail.com>
This commit is contained in:
parent
a5ef0d8da5
commit
0dbe761e52
5 changed files with 55 additions and 4 deletions
|
@ -332,8 +332,13 @@ function Script(props: ScriptProps): JSX.Element | null {
|
|||
ReactDOM.preload(
|
||||
src,
|
||||
restProps.integrity
|
||||
? { as: 'script', integrity: restProps.integrity, nonce }
|
||||
: { as: 'script', nonce }
|
||||
? {
|
||||
as: 'script',
|
||||
integrity: restProps.integrity,
|
||||
nonce,
|
||||
crossOrigin: restProps.crossOrigin,
|
||||
}
|
||||
: { as: 'script', nonce, crossOrigin: restProps.crossOrigin }
|
||||
)
|
||||
return (
|
||||
<script
|
||||
|
@ -353,8 +358,13 @@ function Script(props: ScriptProps): JSX.Element | null {
|
|||
ReactDOM.preload(
|
||||
src,
|
||||
restProps.integrity
|
||||
? { as: 'script', integrity: restProps.integrity, nonce }
|
||||
: { as: 'script', nonce }
|
||||
? {
|
||||
as: 'script',
|
||||
integrity: restProps.integrity,
|
||||
nonce,
|
||||
crossOrigin: restProps.crossOrigin,
|
||||
}
|
||||
: { as: 'script', nonce, crossOrigin: restProps.crossOrigin }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
8
test/e2e/app-dir/next-script/app/layout.tsx
Normal file
8
test/e2e/app-dir/next-script/app/layout.tsx
Normal file
|
@ -0,0 +1,8 @@
|
|||
import { ReactNode } from 'react'
|
||||
export default function Root({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<html>
|
||||
<body>{children}</body>
|
||||
</html>
|
||||
)
|
||||
}
|
10
test/e2e/app-dir/next-script/app/page.tsx
Normal file
10
test/e2e/app-dir/next-script/app/page.tsx
Normal file
|
@ -0,0 +1,10 @@
|
|||
import Script from 'next/script'
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<Script
|
||||
src="https://code.jquery.com/jquery-3.7.1.min.js"
|
||||
crossOrigin="use-credentials"
|
||||
/>
|
||||
)
|
||||
}
|
17
test/e2e/app-dir/next-script/next-script.test.ts
Normal file
17
test/e2e/app-dir/next-script/next-script.test.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
import { nextTestSetup } from 'e2e-utils'
|
||||
|
||||
describe('Script component with crossOrigin props', () => {
|
||||
const { next } = nextTestSetup({
|
||||
files: __dirname,
|
||||
})
|
||||
|
||||
it('should be set crossOrigin also in preload link tag', async () => {
|
||||
const browser = await next.browser('/')
|
||||
|
||||
const crossorigin = await browser
|
||||
.elementByCss('link[href="https://code.jquery.com/jquery-3.7.1.min.js"]')
|
||||
.getAttribute('crossorigin')
|
||||
|
||||
expect(crossorigin).toBe('use-credentials')
|
||||
})
|
||||
})
|
6
test/e2e/app-dir/next-script/next.config.js
Normal file
6
test/e2e/app-dir/next-script/next.config.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
/**
|
||||
* @type {import('next').NextConfig}
|
||||
*/
|
||||
const nextConfig = {}
|
||||
|
||||
module.exports = nextConfig
|
Loading…
Reference in a new issue