Add explicit spec for removing preload from webview
This commit is contained in:
parent
9e88d337ec
commit
fd782706b2
4 changed files with 28 additions and 0 deletions
1
spec/fixtures/module/preload-set-global.js
vendored
Normal file
1
spec/fixtures/module/preload-set-global.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
window.foo = 'bar'
|
7
spec/fixtures/pages/webview-stripped-preload.html
vendored
Normal file
7
spec/fixtures/pages/webview-stripped-preload.html
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
console.log(typeof window.foo);
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -277,6 +277,14 @@ ipcMain.on('disable-node-on-next-will-attach-webview', (event, id) => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ipcMain.on('disable-preload-on-next-will-attach-webview', (event, id) => {
|
||||||
|
event.sender.once('will-attach-webview', (event, webPreferences, params) => {
|
||||||
|
params.src = `file://${path.join(__dirname, '..', 'fixtures', 'pages', 'webview-stripped-preload.html')}`
|
||||||
|
delete webPreferences.preload
|
||||||
|
delete webPreferences.preloadURL
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
ipcMain.on('try-emit-web-contents-event', (event, id, eventName) => {
|
ipcMain.on('try-emit-web-contents-event', (event, id, eventName) => {
|
||||||
const consoleWarn = console.warn
|
const consoleWarn = console.warn
|
||||||
let warningMessage = null
|
let warningMessage = null
|
||||||
|
|
|
@ -1140,6 +1140,18 @@ describe('<webview> tag', function () {
|
||||||
webview.src = 'file://' + fixtures + '/pages/c.html'
|
webview.src = 'file://' + fixtures + '/pages/c.html'
|
||||||
document.body.appendChild(webview)
|
document.body.appendChild(webview)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('supports removing the preload script', (done) => {
|
||||||
|
ipcRenderer.send('disable-preload-on-next-will-attach-webview')
|
||||||
|
webview.addEventListener('console-message', (event) => {
|
||||||
|
assert.equal(event.message, 'undefined')
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
webview.setAttribute('nodeintegration', 'yes')
|
||||||
|
webview.setAttribute('preload', path.join(fixtures, 'module', 'preload-set-global.js'))
|
||||||
|
webview.src = 'file://' + fixtures + '/pages/a.html'
|
||||||
|
document.body.appendChild(webview)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('loads devtools extensions registered on the parent window', function (done) {
|
it('loads devtools extensions registered on the parent window', function (done) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue