Add spec for configuring web preferences from sandboxed new-window event
This commit is contained in:
parent
06e60e5d4d
commit
c71b0a5441
4 changed files with 46 additions and 0 deletions
|
@ -1066,6 +1066,26 @@ describe('BrowserWindow module', function () {
|
|||
})
|
||||
})
|
||||
|
||||
it('should open windows with the options configured via new-window event listeners', function (done) {
|
||||
w.destroy()
|
||||
w = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
sandbox: true
|
||||
}
|
||||
})
|
||||
|
||||
const preloadPath = path.join(fixtures, 'api', 'new-window-preload.js')
|
||||
ipcRenderer.send('set-web-preferences-on-next-new-window', w.webContents.id, 'preload', preloadPath)
|
||||
ipcRenderer.send('set-web-preferences-on-next-new-window', w.webContents.id, 'sandbox', true)
|
||||
ipcMain.once('answer', (event, args) => {
|
||||
assert.ok(args.includes('--enable-sandbox'))
|
||||
assert.ok(args.includes(`--preload=${path.join(fixtures, 'api', 'new-window-preload.js')}`))
|
||||
done()
|
||||
})
|
||||
w.loadURL(`file://${path.join(fixtures, 'api', 'new-window.html')}`)
|
||||
})
|
||||
|
||||
it('should set ipc event sender correctly', function (done) {
|
||||
w.destroy()
|
||||
w = new BrowserWindow({
|
||||
|
|
4
spec/fixtures/api/new-window-preload.js
vendored
Normal file
4
spec/fixtures/api/new-window-preload.js
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
const {ipcRenderer} = require('electron')
|
||||
|
||||
ipcRenderer.send('answer', process.argv)
|
||||
window.close()
|
14
spec/fixtures/api/new-window.html
vendored
Normal file
14
spec/fixtures/api/new-window.html
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
setTimeout(function () {
|
||||
window.open('http://localhost')
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -264,6 +264,14 @@ ipcMain.on('prevent-next-new-window', (event, id) => {
|
|||
webContents.fromId(id).once('new-window', event => event.preventDefault())
|
||||
})
|
||||
|
||||
ipcMain.on('set-web-preferences-on-next-new-window', (event, id, key, value) => {
|
||||
webContents.fromId(id).once('new-window', (event, url, frameName, disposition, options) => {
|
||||
options.webPreferences[key] = value
|
||||
|
||||
console.log('her?', options.webPreferences)
|
||||
})
|
||||
})
|
||||
|
||||
ipcMain.on('prevent-next-will-attach-webview', (event) => {
|
||||
event.sender.once('will-attach-webview', event => event.preventDefault())
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue