From fc4e10b6c067985b3a0cf9b6e4214dbff4287ca0 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 4 Dec 2018 16:22:03 +0900 Subject: [PATCH] fix: set setter of window.location --- lib/renderer/window-setup.js | 12 +++++++++++- spec/chromium-spec.js | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) 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() })