diff --git a/lib/renderer/window-setup.js b/lib/renderer/window-setup.js index 486da6ca6a..ec7580916e 100644 --- a/lib/renderer/window-setup.js +++ b/lib/renderer/window-setup.js @@ -103,7 +103,17 @@ function LocationProxy (ipcRenderer, guestId) { function BrowserWindowProxy (ipcRenderer, guestId) { this.closed = false - this.location = new LocationProxy(ipcRenderer, guestId) + + const location = new LocationProxy(ipcRenderer, guestId) + defineProperty(this, 'location', { + get: function () { + return location + }, + set: function (url) { + url = resolveURL(url) + return ipcRenderer.sendSync('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', guestId, 'loadURL', url) + } + }) ipcRenderer.once(`ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_CLOSED_${guestId}`, () => { removeProxy(guestId) diff --git a/spec/chromium-spec.js b/spec/chromium-spec.js index 439475506a..79063476e8 100644 --- a/spec/chromium-spec.js +++ b/spec/chromium-spec.js @@ -515,7 +515,7 @@ describe('chromium feature', () => { } app.once('browser-window-created', (event, window) => { window.webContents.once('did-finish-load', () => { - assert.strictEqual(b.location, targetURL) + assert.strictEqual(b.location.href, targetURL) b.close() done() })