Browse Source

Fix sandboxing for webview. Update electron-contextmenu-wrapper to 4.0.0.

pull/3202/head
TheGoddessInari 5 years ago
parent
commit
7ed63a46ee
No known key found for this signature in database
GPG Key ID: 1209B1B7632D69A
  1. 2
      app/ux/WebView.js
  2. 6
      package-lock.json
  3. 2
      package.json
  4. 10
      resources/js/hamsket-service-api.js

2
app/ux/WebView.js

@ -167,7 +167,7 @@ Ext.define('Hamsket.ux.WebView',{
,partition: 'persist:' + me.record.get('type') + '_' + me.id.replace('tab_', '')
,allowtransparency: 'on'
,autosize: 'on'
,webpreferences: 'sandbox: true' //,nativeWindowOpen=true
,webpreferences: 'sandbox=yes' //,nativeWindowOpen=true
//,disablewebsecurity: 'on' // Disabled because some services (Like Google Drive) dont work with this enabled
,userAgent: me.getUserAgent()
,preload: './resources/js/hamsket-service-api.js'

6
package-lock.json generated

@ -1945,9 +1945,9 @@
}
},
"electron-contextmenu-wrapper": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/electron-contextmenu-wrapper/-/electron-contextmenu-wrapper-3.0.0.tgz",
"integrity": "sha512-UQ7jsbZVIQ2MnBW9+MJmh1ouhpmEZAdDcHkxS5xlz+A2XuCbF1mJuby4gmZ45/ybU2UmtHb4s2d7RoFCir5T6Q==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/electron-contextmenu-wrapper/-/electron-contextmenu-wrapper-4.0.0.tgz",
"integrity": "sha512-+JbZpviWsPl1JvehM4MHC/Zj5t0Bekly2fyJIHhJVvetkwPN4l2qGMVnAMf0ps58N36fZ5oV4NT2PR46oFBrhQ==",
"requires": {
"debug": "^4.1.1"
},

2
package.json

@ -83,7 +83,7 @@
"auto-launch-patched": "5.0.2",
"electron-store": "^5.0.0",
"electron-is-dev": "^1.1.0",
"electron-contextmenu-wrapper": "^3.0.0",
"electron-contextmenu-wrapper": "^4.0.0",
"mime": "^2.4.4",
"tmp": "^0.1.0"
},

10
resources/js/hamsket-service-api.js

@ -2,9 +2,9 @@
* This file is loaded in the service web views to provide a Hamsket API.
*/
const { ipcRenderer } = require('electron');
const { MenuItem } = require('electron').remote;
const { ContextMenuBuilder, ContextMenuListener } = require('electron-contextmenu-wrapper');
const { ipcRenderer, remote } = require('electron');
const { MenuItem } = remote;
const { ContextMenuBuilder, ContextMenuListener } = remote.require('electron-contextmenu-wrapper');
/**
* Make the Hamsket API available via a global "hamsket" variable.
@ -40,10 +40,10 @@ window.hamsket.clearUnreadCount = function() {
ipcRenderer.sendToHost('hamsket.clearUnreadCount');
}
window.hamsket.contextMenuBuilder = new ContextMenuBuilder();
window.hamsket.contextMenuBuilder = new ContextMenuBuilder(remote.getCurrentWebContents());
window.hamsket.contextMenuListener = new ContextMenuListener(function(event, info) {
window.hamsket.contextMenuBuilder.showPopupMenu(info);
});
}, remote.getCurrentWebContents());
/**

Loading…
Cancel
Save