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) => {
return value != null ? `${value}` : value
}
}
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) => {
})
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 () {