};
}
handleEvents(options) {
- var self = this;
+ let self = this;
this.mainWindow.on('ready-to-show', function() {
if (self.firstRendered)
return;
}
});
wrt.on('permission-response', function(event, id, result) {
+ console.log(`permission-response for ${id} is ${result}`);
let callback = self.pendingCallbacks.get(id);
if (typeof callback === 'function') {
console.log('calling permission response callback');
event.preventDefault();
if (certificate.data) {
const id = ++self.pendingID;
+ console.log(`Raising a certificate error response with id: ${id}`);
self.pendingCallbacks.set(id, callback);
wrt.handleCertificateError(id, webContents, certificate.data, url);
} else {
callback(false);
}
});
+ function handlePermissionRequests(webContents, permission, callback) {
+ console.log(`handlePermissionRequests for ${permission}`);
+ if (permission === 'notifications') {
+ const id = ++self.pendingID;
+ console.log(`Raising a notification permission request with id: ${id}`);
+ self.pendingCallbacks.set(id, callback);
+ wrt.handleNotificationPermissionRequest(id, webContents);
+ } else {
+ /* electron by default allows permission for all if no request handler
+ is there; so granting permission only temporarily to not have any
+ side effects */
+ callback(true);
+ }
+ }
+ this.mainWindow.webContents.session.setPermissionRequestHandler(handlePermissionRequests);
+ app.on('web-contents-created', function(event, webContents) {
+ const ses = webContents.session;
+ ses.setPermissionRequestHandler(handlePermissionRequests);
+ });
}
suspend() {
console.log('WebApplication : suspend');