fix: default prop of location should be empty str

This commit is contained in:
Cheng Zhao 2018-12-04 17:00:13 +09:00
parent fc4e10b6c0
commit ca7dec2082
4 changed files with 8 additions and 7 deletions

View file

@ -70,7 +70,8 @@ function LocationProxy (ipcRenderer, guestId) {
return { return {
get: function () { get: function () {
const guestURL = getGuestURL() const guestURL = getGuestURL()
return guestURL ? guestURL[property] : '' const value = guestURL ? guestURL[property] : ''
return value === undefined ? '' : value
}, },
set: function (newVal) { set: function (newVal) {
const guestURL = getGuestURL() const guestURL = getGuestURL()

View file

@ -3480,7 +3480,7 @@ describe('BrowserWindow module', () => {
iw.loadURL('about:blank') iw.loadURL('about:blank')
iw.webContents.executeJavaScript(` iw.webContents.executeJavaScript(`
const opened = window.open() const opened = window.open()
openedLocation = opened.location openedLocation = opened.location.href
opened.close() opened.close()
window.postMessage({openedLocation}, '*') window.postMessage({openedLocation}, '*')
`) `)

View file

@ -545,14 +545,14 @@ describe('chromium feature', () => {
webContents.once('did-finish-load', () => { webContents.once('did-finish-load', () => {
const { location } = b const { location } = b
b.close() b.close()
assert.strictEqual(location, 'about:blank') assert.strictEqual(location.href, 'about:blank')
let c = null let c = null
app.once('browser-window-created', (event, { webContents }) => { app.once('browser-window-created', (event, { webContents }) => {
webContents.once('did-finish-load', () => { webContents.once('did-finish-load', () => {
const { location } = c const { location } = c
c.close() c.close()
assert.strictEqual(location, 'about:blank') assert.strictEqual(location.href, 'about:blank')
done() done()
}) })
}) })
@ -645,7 +645,7 @@ describe('chromium feature', () => {
it('does nothing when origin of current window does not match opener', (done) => { it('does nothing when origin of current window does not match opener', (done) => {
listener = (event) => { listener = (event) => {
assert.strictEqual(event.data, null) assert.strictEqual(event.data, '')
done() done()
} }
window.addEventListener('message', listener) window.addEventListener('message', listener)
@ -694,7 +694,7 @@ describe('chromium feature', () => {
it('does nothing when origin of webview src URL does not match opener', (done) => { it('does nothing when origin of webview src URL does not match opener', (done) => {
webview = new WebView() webview = new WebView()
webview.addEventListener('console-message', (e) => { webview.addEventListener('console-message', (e) => {
assert.strictEqual(e.message, 'null') assert.strictEqual(e.message, '')
done() done()
}) })
webview.setAttribute('allowpopups', 'on') webview.setAttribute('allowpopups', 'on')

View file

@ -1,7 +1,7 @@
<html> <html>
<body> <body>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
window.opener.postMessage(window.opener.location, '*') window.opener.postMessage(window.opener.location.href, '*')
</script> </script>
</body> </body>
</html> </html>