Merge pull request #11224 from electron/browser-view-window
feature: Add `BrowserWindow.fromBrowserView()`
This commit is contained in:
		
				commit
				
					
						9c217fc6c7
					
				
			
		
					 3 changed files with 38 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -580,6 +580,12 @@ Returns `BrowserWindow` - The window that is focused in this application, otherw
 | 
			
		|||
 | 
			
		||||
Returns `BrowserWindow` - The window that owns the given `webContents`.
 | 
			
		||||
 | 
			
		||||
#### `BrowserWindow.fromBrowserView(browserView)`
 | 
			
		||||
 | 
			
		||||
* `browserView` [BrowserView](browser-view.md)
 | 
			
		||||
 | 
			
		||||
Returns `BrowserWindow | null` - The window that owns the given `browserView`. If the given view is not attached to any window, returns `null`.
 | 
			
		||||
 | 
			
		||||
#### `BrowserWindow.fromId(id)`
 | 
			
		||||
 | 
			
		||||
* `id` Integer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -144,6 +144,14 @@ BrowserWindow.fromWebContents = (webContents) => {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BrowserWindow.fromBrowserView = (browserView) => {
 | 
			
		||||
  for (const window of BrowserWindow.getAllWindows()) {
 | 
			
		||||
    if (window.getBrowserView() === browserView) return window
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BrowserWindow.fromDevToolsWebContents = (webContents) => {
 | 
			
		||||
  for (const window of BrowserWindow.getAllWindows()) {
 | 
			
		||||
    const {devToolsWebContents} = window
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ const http = require('http')
 | 
			
		|||
const {closeWindow} = require('./window-helpers')
 | 
			
		||||
 | 
			
		||||
const {ipcRenderer, remote, screen} = require('electron')
 | 
			
		||||
const {app, ipcMain, BrowserWindow, protocol, webContents} = remote
 | 
			
		||||
const {app, ipcMain, BrowserWindow, BrowserView, protocol, webContents} = remote
 | 
			
		||||
 | 
			
		||||
const isCI = remote.getGlobal('isCi')
 | 
			
		||||
const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled')
 | 
			
		||||
| 
						 | 
				
			
			@ -802,6 +802,29 @@ describe('BrowserWindow module', () => {
 | 
			
		|||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  describe('BrowserWindow.fromBrowserView(browserView)', () => {
 | 
			
		||||
    let bv = null
 | 
			
		||||
 | 
			
		||||
    beforeEach(() => {
 | 
			
		||||
      bv = new BrowserView()
 | 
			
		||||
      w.setBrowserView(bv)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    afterEach(() => {
 | 
			
		||||
      w.setBrowserView(null)
 | 
			
		||||
      bv.destroy()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    it('returns the window with the browserView', () => {
 | 
			
		||||
      assert.equal(BrowserWindow.fromBrowserView(bv).id, w.id)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    it('returns undefined if not attached', () => {
 | 
			
		||||
      w.setBrowserView(null)
 | 
			
		||||
      assert.equal(BrowserWindow.fromBrowserView(bv), undefined)
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  describe('BrowserWindow.setOpacity(opacity)', () => {
 | 
			
		||||
    it('make window with initial opacity', () => {
 | 
			
		||||
      w.destroy()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue