From 16cd22ff6a4dcccc3b8cc3f959b83b0d3f1ac68f Mon Sep 17 00:00:00 2001 From: Milan Burda Date: Mon, 13 Jun 2022 19:07:47 +0200 Subject: [PATCH] test: use webContents.setWindowOpenHandler() in specs (#34514) * test: use webContents.setWindowOpenHandler() in specs * test: use browser-window-created instead of new-window for visibility spec --- spec-main/api-browser-window-spec.ts | 3 --- spec-main/chromium-spec.ts | 14 +++++++++----- spec-main/webview-spec.ts | 9 ++++++--- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/spec-main/api-browser-window-spec.ts b/spec-main/api-browser-window-spec.ts index e6cd0971be06..e68f47434582 100644 --- a/spec-main/api-browser-window-spec.ts +++ b/spec-main/api-browser-window-spec.ts @@ -3265,9 +3265,6 @@ describe('BrowserWindow module', () => { action: 'allow', overrideBrowserWindowOptions: { show: false, webPreferences: { contextIsolation: false, webviewTag: true, nodeIntegrationInSubFrames: true } } })); - w.webContents.once('new-window', (event, url, frameName, disposition, options) => { - options.show = false; - }); const webviewLoaded = emittedOnce(ipcMain, 'webview-loaded'); w.loadFile(path.join(fixtures, 'api', 'new-window-webview.html')); diff --git a/spec-main/chromium-spec.ts b/spec-main/chromium-spec.ts index f47c1b9b2a63..c1d29bbf8e17 100644 --- a/spec-main/chromium-spec.ts +++ b/spec-main/chromium-spec.ts @@ -788,10 +788,10 @@ describe('chromium features', () => { defer(() => { w.close(); }); - const newWindow = emittedOnce(w.webContents, 'new-window'); + const promise = emittedOnce(app, 'browser-window-created'); w.loadFile(path.join(fixturesPath, 'pages', 'window-open.html')); - const [,,,, options] = await newWindow; - expect(options.show).to.equal(true); + const [, newWindow] = await promise; + expect(newWindow.isVisible()).to.equal(true); }); } @@ -900,8 +900,12 @@ describe('chromium features', () => { const w = new BrowserWindow({ show: false }); w.loadURL('about:blank'); w.webContents.executeJavaScript('{ b = window.open(\'\', \'__proto__\'); null }'); - const [, , frameName] = await emittedOnce(w.webContents, 'new-window'); - + const frameName = await new Promise((resolve) => { + w.webContents.setWindowOpenHandler(details => { + setImmediate(() => resolve(details.frameName)); + return { action: 'allow' }; + }); + }); expect(frameName).to.equal('__proto__'); }); }); diff --git a/spec-main/webview-spec.ts b/spec-main/webview-spec.ts index 3e01f7d92fef..98cb2167e530 100644 --- a/spec-main/webview-spec.ts +++ b/spec-main/webview-spec.ts @@ -32,9 +32,12 @@ describe(' tag', function () { afterEach(closeAllWindows); function hideChildWindows (e: any, wc: WebContents) { - wc.on('new-window', (event, url, frameName, disposition, options) => { - options.show = false; - }); + wc.setWindowOpenHandler(() => ({ + action: 'allow', + overrideBrowserWindowOptions: { + show: false + } + })); } before(() => {