Convert targetOrigin to string in render process
This commit is contained in:
parent
3894c1c625
commit
246937a372
2 changed files with 12 additions and 1 deletions
|
@ -32,6 +32,9 @@ const resolveURL = function (url) {
|
||||||
return a.href
|
return a.href
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use this method to ensure value expected as string in the main process
|
||||||
|
// are convertible to string in the renderer process. This ensures exceptions
|
||||||
|
// converting values to string are thrown in this process.
|
||||||
const toString = (value) => {
|
const toString = (value) => {
|
||||||
return value != null ? `${value}` : value
|
return value != null ? `${value}` : value
|
||||||
}
|
}
|
||||||
|
@ -86,7 +89,7 @@ function BrowserWindowProxy (ipcRenderer, guestId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.postMessage = (message, targetOrigin) => {
|
this.postMessage = (message, targetOrigin) => {
|
||||||
ipcRenderer.send('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', guestId, message, targetOrigin, window.location.origin)
|
ipcRenderer.send('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', guestId, message, toString(targetOrigin), window.location.origin)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.eval = (...args) => {
|
this.eval = (...args) => {
|
||||||
|
|
|
@ -548,6 +548,14 @@ describe('chromium feature', function () {
|
||||||
})
|
})
|
||||||
b = window.open('file://' + fixtures + '/pages/window-open-postMessage.html', '', 'show=no')
|
b = window.open('file://' + fixtures + '/pages/window-open-postMessage.html', '', 'show=no')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('throws an exception when the targetOrigin cannot be converted to a string', function () {
|
||||||
|
var b = window.open('')
|
||||||
|
assert.throws(function () {
|
||||||
|
b.postMessage('test', {toString: null})
|
||||||
|
}, /Cannot convert object to primitive value/)
|
||||||
|
b.close()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('window.opener.postMessage', function () {
|
describe('window.opener.postMessage', function () {
|
||||||
|
|
Loading…
Reference in a new issue