Add failing spec for webview nodeIntegration inheritance
This commit is contained in:
parent
4890734f66
commit
fd12e1f506
2 changed files with 38 additions and 0 deletions
9
spec/fixtures/pages/webview-opener-no-node-integration.html
vendored
Normal file
9
spec/fixtures/pages/webview-opener-no-node-integration.html
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
var windowUrl = decodeURIComponent(window.location.search.substring(3))
|
||||||
|
window.open('file://' + windowUrl, '', 'nodeIntegration=yes,show=no')
|
||||||
|
console.log('window opened')
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -3,6 +3,9 @@ const path = require('path')
|
||||||
const http = require('http')
|
const http = require('http')
|
||||||
const url = require('url')
|
const url = require('url')
|
||||||
|
|
||||||
|
const {remote} = require('electron')
|
||||||
|
const {BrowserWindow} = remote
|
||||||
|
|
||||||
describe('<webview> tag', function () {
|
describe('<webview> tag', function () {
|
||||||
this.timeout(10000)
|
this.timeout(10000)
|
||||||
|
|
||||||
|
@ -74,6 +77,32 @@ describe('<webview> tag', function () {
|
||||||
document.body.appendChild(webview)
|
document.body.appendChild(webview)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
it('disables node integration on child windows when it is disabled on the webview', function (done) {
|
||||||
|
webview.addEventListener('console-message', function (e) {
|
||||||
|
assert.equal(e.message, 'window opened')
|
||||||
|
const sourceId = remote.getCurrentWindow().id
|
||||||
|
const windows = BrowserWindow.getAllWindows().filter(function (window) {
|
||||||
|
return window.id !== sourceId
|
||||||
|
})
|
||||||
|
assert.equal(windows.length, 1)
|
||||||
|
assert.equal(windows[0].webContents.getWebPreferences().nodeIntegration, false)
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
|
||||||
|
webview.setAttribute('allowpopups', 'on')
|
||||||
|
|
||||||
|
webview.src = require('url').format({
|
||||||
|
pathname: `${fixtures}/pages/webview-opener-no-node-integration.html`,
|
||||||
|
protocol: 'file',
|
||||||
|
query: {
|
||||||
|
p: `${fixtures}/pages/window-opener-node.html`
|
||||||
|
},
|
||||||
|
slashes: true
|
||||||
|
})
|
||||||
|
document.body.appendChild(webview)
|
||||||
|
})
|
||||||
|
|
||||||
if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) {
|
if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) {
|
||||||
it('loads native modules when navigation happens', function (done) {
|
it('loads native modules when navigation happens', function (done) {
|
||||||
var listener = function () {
|
var listener = function () {
|
||||||
|
|
Loading…
Add table
Reference in a new issue