chore: add helper to wait for a window to load in a remote-safe way (#16837)
This commit is contained in:
parent
1632c4b837
commit
833daaa2b2
2 changed files with 10 additions and 3 deletions
|
@ -9,7 +9,7 @@ const url = require('url')
|
||||||
const ChildProcess = require('child_process')
|
const ChildProcess = require('child_process')
|
||||||
const { ipcRenderer, remote } = require('electron')
|
const { ipcRenderer, remote } = require('electron')
|
||||||
const { emittedOnce } = require('./events-helpers')
|
const { emittedOnce } = require('./events-helpers')
|
||||||
const { closeWindow } = require('./window-helpers')
|
const { closeWindow, waitForWebContentsToLoad } = require('./window-helpers')
|
||||||
const { resolveGetters } = require('./assert-helpers')
|
const { resolveGetters } = require('./assert-helpers')
|
||||||
const { app, BrowserWindow, ipcMain, protocol, session, webContents } = remote
|
const { app, BrowserWindow, ipcMain, protocol, session, webContents } = remote
|
||||||
const isCI = remote.getGlobal('isCi')
|
const isCI = remote.getGlobal('isCi')
|
||||||
|
@ -525,7 +525,7 @@ describe('chromium feature', () => {
|
||||||
const w = window.open()
|
const w = window.open()
|
||||||
try {
|
try {
|
||||||
const [, { webContents }] = await browserWindowCreated
|
const [, { webContents }] = await browserWindowCreated
|
||||||
await emittedOnce(webContents, 'did-finish-load')
|
await waitForWebContentsToLoad(webContents)
|
||||||
assert.strictEqual(w.location.href, 'about:blank')
|
assert.strictEqual(w.location.href, 'about:blank')
|
||||||
} finally {
|
} finally {
|
||||||
w.close()
|
w.close()
|
||||||
|
@ -537,7 +537,7 @@ describe('chromium feature', () => {
|
||||||
const w = window.open('')
|
const w = window.open('')
|
||||||
try {
|
try {
|
||||||
const [, { webContents }] = await browserWindowCreated
|
const [, { webContents }] = await browserWindowCreated
|
||||||
await emittedOnce(webContents, 'did-finish-load')
|
await waitForWebContentsToLoad(webContents)
|
||||||
assert.strictEqual(w.location.href, 'about:blank')
|
assert.strictEqual(w.location.href, 'about:blank')
|
||||||
} finally {
|
} finally {
|
||||||
w.close()
|
w.close()
|
||||||
|
|
|
@ -17,3 +17,10 @@ exports.closeWindow = async (window = null,
|
||||||
expect(BrowserWindow.getAllWindows()).to.have.lengthOf(1)
|
expect(BrowserWindow.getAllWindows()).to.have.lengthOf(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.waitForWebContentsToLoad = async (webContents) => {
|
||||||
|
const didFinishLoadPromise = emittedOnce(webContents, 'did-finish-load')
|
||||||
|
if (webContents.isLoadingMainFrame()) {
|
||||||
|
await didFinishLoadPromise
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue