fix: BrowserWindow.fromWebContents() can return null (#19983)
This commit is contained in:
parent
efe6e7b04d
commit
ead8f2bbcd
3 changed files with 7 additions and 4 deletions
|
@ -664,7 +664,8 @@ Returns `BrowserWindow | null` - The window that is focused in this application,
|
||||||
|
|
||||||
* `webContents` [WebContents](web-contents.md)
|
* `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)`
|
#### `BrowserWindow.fromBrowserView(browserView)`
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,8 @@ BrowserWindow.fromWebContents = (webContents) => {
|
||||||
for (const window of BrowserWindow.getAllWindows()) {
|
for (const window of BrowserWindow.getAllWindows()) {
|
||||||
if (window.webContents.equal(webContents)) return window
|
if (window.webContents.equal(webContents)) return window
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
BrowserWindow.fromBrowserView = (browserView) => {
|
BrowserWindow.fromBrowserView = (browserView) => {
|
||||||
|
|
|
@ -1304,13 +1304,13 @@ describe('BrowserWindow module', () => {
|
||||||
it('returns the window with the webContents', () => {
|
it('returns the window with the webContents', () => {
|
||||||
const w = new BrowserWindow({show: false})
|
const w = new BrowserWindow({show: false})
|
||||||
const found = BrowserWindow.fromWebContents(w.webContents)
|
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({})
|
const contents = (webContents as any).create({})
|
||||||
try {
|
try {
|
||||||
expect(BrowserWindow.fromWebContents(contents)).to.be.undefined('BrowserWindow.fromWebContents(contents)')
|
expect(BrowserWindow.fromWebContents(contents)).to.be.null('BrowserWindow.fromWebContents(contents)')
|
||||||
} finally {
|
} finally {
|
||||||
contents.destroy()
|
contents.destroy()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue