fix: BrowserWindow.fromWebContents() can return null (#19983)

This commit is contained in:
Milan Burda 2019-09-27 13:07:55 +02:00 committed by Shelley Vohr
parent efe6e7b04d
commit ead8f2bbcd
3 changed files with 7 additions and 4 deletions

View file

@ -664,7 +664,8 @@ Returns `BrowserWindow | null` - The window that is focused in this application,
* `webContents` [WebContents](web-contents.md)
Returns `BrowserWindow` - The window that owns the given `webContents`.
Returns `BrowserWindow | null` - The window that owns the given `webContents`
or `null` if the contents are not owned by a window.
#### `BrowserWindow.fromBrowserView(browserView)`

View file

@ -118,6 +118,8 @@ BrowserWindow.fromWebContents = (webContents) => {
for (const window of BrowserWindow.getAllWindows()) {
if (window.webContents.equal(webContents)) return window
}
return null
}
BrowserWindow.fromBrowserView = (browserView) => {

View file

@ -1304,13 +1304,13 @@ describe('BrowserWindow module', () => {
it('returns the window with the webContents', () => {
const w = new BrowserWindow({show: false})
const found = BrowserWindow.fromWebContents(w.webContents)
expect(found.id).to.equal(w.id)
expect(found!.id).to.equal(w.id)
})
it('returns undefined for webContents without a BrowserWindow', () => {
it('returns null for webContents without a BrowserWindow', () => {
const contents = (webContents as any).create({})
try {
expect(BrowserWindow.fromWebContents(contents)).to.be.undefined('BrowserWindow.fromWebContents(contents)')
expect(BrowserWindow.fromWebContents(contents)).to.be.null('BrowserWindow.fromWebContents(contents)')
} finally {
contents.destroy()
}