From 7ed63a46eeacdbfe16b51c830a085ee9e865b900 Mon Sep 17 00:00:00 2001 From: TheGoddessInari Date: Tue, 3 Mar 2020 11:16:47 -0800 Subject: [PATCH] Fix sandboxing for webview. Update electron-contextmenu-wrapper to 4.0.0. --- app/ux/WebView.js | 2 +- package-lock.json | 6 +++--- package.json | 2 +- resources/js/hamsket-service-api.js | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/ux/WebView.js b/app/ux/WebView.js index 1a30c712..d3e83d29 100644 --- a/app/ux/WebView.js +++ b/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' diff --git a/package-lock.json b/package-lock.json index f7ddb7b5..539d7027 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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" }, diff --git a/package.json b/package.json index a381730b..ab5ae17e 100644 --- a/package.json +++ b/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" }, diff --git a/resources/js/hamsket-service-api.js b/resources/js/hamsket-service-api.js index 9a7ba66b..4197db03 100644 --- a/resources/js/hamsket-service-api.js +++ b/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()); /**