Skip to content

Commit ff9dcc6

Browse files
authored
Ensure custom app regex is correct for Windows (#28631)
* Ensure custom app regex is correct for Windows * lint-fix * update test for ie * update test * lint-fix
1 parent 9be387c commit ff9dcc6

File tree

5 files changed

+33
-20
lines changed

5 files changed

+33
-20
lines changed

packages/next/build/webpack-config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1561,7 +1561,9 @@ export default async function getBaseWebpackConfig(
15611561

15621562
webpackConfig = await buildConfiguration(webpackConfig, {
15631563
rootDirectory: dir,
1564-
customAppFile: new RegExp(path.join(pagesDir, `_app`)),
1564+
customAppFile: new RegExp(
1565+
path.join(pagesDir, `_app`).replace(/\\/g, '(/|\\\\)')
1566+
),
15651567
isDevelopment: dev,
15661568
isServer,
15671569
assetPrefix: config.assetPrefix || '',

test/integration/css-client-nav/test/index.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function runTests(dev) {
6464
if (!dev) {
6565
// Ensure only `/blue` page's CSS is preloaded
6666
const serverCssPreloads = $('link[rel="preload"][as="style"]')
67-
expect(serverCssPreloads.length).toBe(1)
67+
expect(serverCssPreloads.length).toBe(2)
6868

6969
const serverCssPrefetches = $('link[rel="prefetch"][as="style"]')
7070
expect(serverCssPrefetches.length).toBe(0)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import './global.css'
2+
3+
export default function MyApp({ Component, pageProps }) {
4+
return <Component {...pageProps} />
5+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
html {
2+
background: grey;
3+
}

test/integration/production/test/security.js

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/* eslint-env jest */
2+
/* global browserName */
23
import webdriver from 'next-webdriver'
34
import { readFileSync } from 'fs'
45
import url from 'url'
@@ -343,23 +344,25 @@ module.exports = (context) => {
343344
expect(hostname).not.toBe('example.com')
344345
})
345346

346-
it('should not execute script embedded inside svg image', async () => {
347-
let browser
348-
try {
349-
browser = await webdriver(context.appPort, '/svg-image')
350-
await browser.eval(`document.getElementById("img").scrollIntoView()`)
351-
expect(await browser.elementById('img').getAttribute('src')).toContain(
352-
'xss.svg'
353-
)
354-
expect(await browser.elementById('msg').text()).toBe('safe')
355-
browser = await webdriver(
356-
context.appPort,
357-
'/_next/image?url=%2Fxss.svg&w=256&q=75'
358-
)
359-
expect(await browser.elementById('msg').text()).toBe('safe')
360-
} finally {
361-
if (browser) await browser.close()
362-
}
363-
})
347+
if (browserName !== 'internet explorer') {
348+
it('should not execute script embedded inside svg image', async () => {
349+
let browser
350+
try {
351+
browser = await webdriver(context.appPort, '/svg-image')
352+
await browser.eval(`document.getElementById("img").scrollIntoView()`)
353+
expect(
354+
await browser.elementById('img').getAttribute('src')
355+
).toContain('xss.svg')
356+
expect(await browser.elementById('msg').text()).toBe('safe')
357+
browser = await webdriver(
358+
context.appPort,
359+
'/_next/image?url=%2Fxss.svg&w=256&q=75'
360+
)
361+
expect(await browser.elementById('msg').text()).toBe('safe')
362+
} finally {
363+
if (browser) await browser.close()
364+
}
365+
})
366+
}
364367
})
365368
}

0 commit comments

Comments
 (0)