Merge pull request #6029 from electron/web-contents-created-app-api
Add web-contents-created event to app
This commit is contained in:
commit
af722cc104
4 changed files with 33 additions and 13 deletions
|
@ -160,6 +160,15 @@ Returns:
|
||||||
|
|
||||||
Emitted when a new [browserWindow](browser-window.md) is created.
|
Emitted when a new [browserWindow](browser-window.md) is created.
|
||||||
|
|
||||||
|
### Event: 'web-contents-created'
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
* `event` Event
|
||||||
|
* `webContents` WebContents
|
||||||
|
|
||||||
|
Emitted when a new [webContents](web-contents.md) is created.
|
||||||
|
|
||||||
### Event: 'certificate-error'
|
### Event: 'certificate-error'
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const {EventEmitter} = require('events')
|
const {EventEmitter} = require('events')
|
||||||
const {ipcMain, session, Menu, NavigationController} = require('electron')
|
const {app, ipcMain, session, Menu, NavigationController} = require('electron')
|
||||||
|
|
||||||
// session is not used here, the purpose is to make sure session is initalized
|
// session is not used here, the purpose is to make sure session is initalized
|
||||||
// before the webContents module.
|
// before the webContents module.
|
||||||
|
@ -10,14 +10,6 @@ session
|
||||||
const binding = process.atomBinding('web_contents')
|
const binding = process.atomBinding('web_contents')
|
||||||
const debuggerBinding = process.atomBinding('debugger')
|
const debuggerBinding = process.atomBinding('debugger')
|
||||||
|
|
||||||
const WebContents = new EventEmitter()
|
|
||||||
WebContents.create = (options = {}) => {
|
|
||||||
return binding.create(options)
|
|
||||||
}
|
|
||||||
WebContents.fromId = (id) => {
|
|
||||||
return binding.fromId(id)
|
|
||||||
}
|
|
||||||
|
|
||||||
let nextId = 0
|
let nextId = 0
|
||||||
const getNextId = function () {
|
const getNextId = function () {
|
||||||
return ++nextId
|
return ++nextId
|
||||||
|
@ -232,7 +224,7 @@ const wrapWebContents = function (webContents) {
|
||||||
this._printToPDF(printingSetting, callback)
|
this._printToPDF(printingSetting, callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
WebContents.emit('web-contents-created', webContents)
|
app.emit('web-contents-created', {}, webContents)
|
||||||
}
|
}
|
||||||
|
|
||||||
binding._setWrapWebContents(wrapWebContents)
|
binding._setWrapWebContents(wrapWebContents)
|
||||||
|
@ -245,4 +237,12 @@ const wrapDebugger = function (webContentsDebugger) {
|
||||||
|
|
||||||
debuggerBinding._setWrapDebugger(wrapDebugger)
|
debuggerBinding._setWrapDebugger(wrapDebugger)
|
||||||
|
|
||||||
module.exports = WebContents
|
module.exports = {
|
||||||
|
create (options = {}) {
|
||||||
|
return binding.create(options)
|
||||||
|
},
|
||||||
|
|
||||||
|
fromId (id) {
|
||||||
|
return binding.fromId(id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -236,7 +236,7 @@ const loadDevToolsExtensions = function (win, manifests) {
|
||||||
win.devToolsWebContents.executeJavaScript(`DevToolsAPI.addExtensions(${JSON.stringify(extensionInfoArray)})`)
|
win.devToolsWebContents.executeJavaScript(`DevToolsAPI.addExtensions(${JSON.stringify(extensionInfoArray)})`)
|
||||||
}
|
}
|
||||||
|
|
||||||
webContents.on('web-contents-created', function (webContents) {
|
app.on('web-contents-created', function (event, webContents) {
|
||||||
if (webContents.getType() === 'remote') return
|
if (webContents.getType() === 'remote') return
|
||||||
|
|
||||||
hookWebContentsForTabEvents(webContents)
|
hookWebContentsForTabEvents(webContents)
|
||||||
|
|
|
@ -275,7 +275,18 @@ describe('app module', function () {
|
||||||
w = new BrowserWindow({
|
w = new BrowserWindow({
|
||||||
show: false
|
show: false
|
||||||
})
|
})
|
||||||
w.emit('blur')
|
})
|
||||||
|
|
||||||
|
it('should emit web-contents-created event when a webContents is created', function (done) {
|
||||||
|
app.once('web-contents-created', function (e, webContents) {
|
||||||
|
setImmediate(function () {
|
||||||
|
assert.equal(w.webContents.id, webContents.id)
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
w = new BrowserWindow({
|
||||||
|
show: false
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue