const binding = process.atomBinding('web_contents')
const {WebContents} = binding
-Object.setPrototypeOf(WebContents.prototype, EventEmitter.prototype)
+Object.setPrototypeOf(NavigationController.prototype, EventEmitter.prototype)
+Object.setPrototypeOf(WebContents.prototype, NavigationController.prototype)
// WebContents::send(channel, args..)
// WebContents::sendToAll(channel, args..)
// Add JavaScript wrappers for WebContents class.
WebContents.prototype._init = function () {
+ // The navigation controller.
+ NavigationController.call(this, this)
+
// Every remote callback from renderer process would add a listenter to the
// render-view-deleted event, so ignore the listenters warning.
this.setMaxListeners(0)
- // The navigation controller.
- const controller = new NavigationController(this)
- for (const name in NavigationController.prototype) {
- const method = NavigationController.prototype[name]
- if (method instanceof Function) {
- this[name] = function () {
- return method.apply(controller, arguments)
- }
- }
- }
-
// Dispatch IPC messages to the ipc module.
this.on('ipc-message', function (event, [channel, ...args]) {
ipcMain.emit(channel, event, ...args)