feat: add multi BrowserView support to BrowserWindow (#16148)

* feat: add multi BrowserView support to BrowserWindow

Add functions addBrowserView, removeBroserView, getBrowserViews to
BrowserWindow class. Existing API as setBrowserView and
getBrowserView code replaced to use new api inside.

* fix: for lint and osx compile errors

* fix: lint error in test code

* feat: add multi BrowserView support to BrowserWindow

Add functions addBrowserView, removeBroserView, getBrowserViews to
BrowserWindow class. Existing API as setBrowserView and
getBrowserView code replaced to use new api inside.

* fix: for lint and osx compile errors

* fix: lint error in test code

* fix: method to be accessible on mac api impl

* fix: missed function declarations for mac impl

* fix: use base class reset function
This commit is contained in:
Vladimir 2018-12-22 04:49:26 +03:00 committed by Cheng Zhao
parent 18ca4b6a3a
commit 5ae3d1a1b2
12 changed files with 244 additions and 74 deletions

View file

@ -132,6 +132,54 @@ describe('BrowserView module', () => {
})
})
describe('BrowserWindow.addBrowserView()', () => {
it('does not throw for valid args', () => {
let view1 = new BrowserView()
w.addBrowserView(view1)
let view2 = new BrowserView()
w.addBrowserView(view2)
view1.destroy()
view1 = null
view2.destroy()
view2 = null
})
it('does not throw if called multiple times with same view', () => {
view = new BrowserView()
w.addBrowserView(view)
w.addBrowserView(view)
w.addBrowserView(view)
})
})
describe('BrowserWindow.removeBrowserView()', () => {
it('does not throw if called multiple times with same view', () => {
view = new BrowserView()
w.addBrowserView(view)
w.removeBrowserView(view)
w.removeBrowserView(view)
})
})
describe('BrowserWindow.getBrowserViews()', () => {
it('returns same views as was added', () => {
let view1 = new BrowserView()
w.addBrowserView(view1)
let view2 = new BrowserView()
w.addBrowserView(view2)
expect(view1.id).to.be.not.null()
const views = w.getBrowserViews()
expect(views.length).to.equal(2)
expect(views[0].webContents.id).to.equal(view1.webContents.id)
expect(views[1].webContents.id).to.equal(view2.webContents.id)
view1.destroy()
view1 = null
view2.destroy()
view2 = null
})
})
describe('BrowserView.webContents.getOwnerBrowserWindow()', () => {
it('points to owning window', () => {
view = new BrowserView()