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) {
|
it('should set ipc event sender correctly', function (done) {
|
||||||
w.destroy()
|
w.destroy()
|
||||||
w = new BrowserWindow({
|
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())
|
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) => {
|
ipcMain.on('prevent-next-will-attach-webview', (event) => {
|
||||||
event.sender.once('will-attach-webview', event => event.preventDefault())
|
event.sender.once('will-attach-webview', event => event.preventDefault())
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue