Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

Commit c6dabde

Browse files
Switch back to '@electron/remote' and switch back to 'electron-context-menu'.
1 parent 87e9e61 commit c6dabde

File tree

10 files changed

+293
-79
lines changed

10 files changed

+293
-79
lines changed

app/Application.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ Ext.define('Hamsket.Application', {
2727

2828

2929
// Set cookies to help Tooltip.io messages segmentation
30-
Ext.util.Cookies.set('version', require('electron').remote.app.getVersion());
30+
Ext.util.Cookies.set('version', require('@electron/remote').app.getVersion());
3131

3232
// Check for updates
33-
if ( require('electron').remote.process.argv.indexOf('--without-update') === -1 ) Hamsket.app.checkUpdate(true);
33+
if ( require('@electron/remote').process.argv.indexOf('--without-update') === -1 ) Hamsket.app.checkUpdate(true);
3434

3535
// Mouse Wheel zooming
3636
document.addEventListener('mousewheel', function(e) {
@@ -85,7 +85,7 @@ Ext.define('Hamsket.Application', {
8585
,method: 'GET'
8686
,success(response) {
8787
const json = JSON.parse(response.responseText);
88-
const appVersion = new Ext.Version(require('electron').remote.app.getVersion());
88+
const appVersion = new Ext.Version(require('@electron/remote').app.getVersion());
8989
const updateVersion = new Ext.Version(json.tag_name);
9090
if ( appVersion.isLessThan(updateVersion) ) {
9191
console.info('New version is available', updateVersion);

app/ux/FileBackup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Ext.define('Hamsket.ux.FileBackup', {
33
constructor() {
44
const me = this;
55
me.callParent(arguments);
6-
me.remote = require('electron').remote;
6+
me.remote = require('@electron/remote');
77
me.path = me.remote.require('path');
88
me.fs = me.remote.require('fs');
99
me.userPath = me.remote.app.getPath('userData');

app/ux/WebView.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ Ext.define('Hamsket.ux.WebView',{
164164
,partition: 'persist:' + me.record.get('type') + '_' + me.id.replace('tab_', '')
165165
,allowtransparency: 'on'
166166
,autosize: 'on'
167-
,webpreferences: 'nativeWindowOpen=yes,enableRemoteModule=yes,spellcheck=yes,contextIsolation=no' //,nativeWindowOpen=true
167+
,webpreferences: 'nativeWindowOpen=yes,spellcheck=yes,contextIsolation=no' //,nativeWindowOpen=true
168168
,allowpopups: 'on'
169169
//,disablewebsecurity: 'on' // Disabled because some services (Like Google Drive) dont work with this enabled
170170
,userAgent: me.getUserAgent()
@@ -265,7 +265,7 @@ Ext.define('Hamsket.ux.WebView',{
265265
// Block some Deep links to prevent that open its app (Ex: Slack)
266266
if (['slack:'].includes(protocol)) return;
267267
// Allow Deep links
268-
if (!['http:', 'https:', 'about:'].includes(protocol)) return require('electron').shell.openExternal(url.href);
268+
if (!['http:', 'https:', 'about:'].includes(protocol)) return require('@electron/remote').shell.openExternal(url.href);
269269
});
270270

271271
webview.addEventListener('will-navigate', function(e, url) {
@@ -437,7 +437,7 @@ Ext.define('Hamsket.ux.WebView',{
437437
}
438438

439439
function showWindowAndActivateTab(event) {
440-
const currentWindow = require('electron').remote.getCurrentWindow();
440+
const currentWindow = require('@electron/remote').getCurrentWindow();
441441
currentWindow.show();
442442
currentWindow.focus();
443443
const tabPanel = Ext.cq1('app-main');
@@ -700,10 +700,11 @@ Ext.define('Hamsket.ux.WebView',{
700700
}
701701
,getWebContents() {
702702
if ( this.record.get('enabled') ) {
703-
const remote = require('electron').remote;
703+
const remote = require('@electron/remote');
704704
const webview = this.getWebView();
705705
const id = webview.getWebContentsId();
706-
return remote.webContents.fromId(id);
706+
const webContents = remote.webContents.fromId(id);
707+
return webContents;
707708
} else {
708709
return false;
709710
}
@@ -743,7 +744,7 @@ Ext.define('Hamsket.ux.WebView',{
743744
}
744745
,getOSArch(platform) {
745746
const me = this;
746-
const remote = require('electron').remote;
747+
const remote = require('@electron/remote');
747748
platform = platform ? platform : remote.require('os').platform();
748749
let arch = remote.require('os').arch();
749750

@@ -765,7 +766,7 @@ Ext.define('Hamsket.ux.WebView',{
765766
return arch;
766767
}
767768
,getOSArchType() {
768-
let arch = require('electron').remote.require('os').arch();
769+
let arch = require('@electron/remote').require('os').arch();
769770

770771
switch(arch) {
771772
case 'x64':
@@ -797,7 +798,7 @@ Ext.define('Hamsket.ux.WebView',{
797798
}
798799
,getOSPlatform(platform) {
799800
const me = this;
800-
platform = platform ? platform : require('electron').remote.require('os').platform();
801+
platform = platform ? platform : require('@electron/remote').require('os').platform();
801802
switch (platform) {
802803
case 'win32':
803804
platform = `${me.getOSRelease(platform)}; ${me.getOSArch(platform)}`;
@@ -820,23 +821,23 @@ Ext.define('Hamsket.ux.WebView',{
820821
return platform;
821822
}
822823
,isWindows(platform) {
823-
platform = platform ? platform : require('electron').remote.require('os').platform();
824+
platform = platform ? platform : require('@electron/remote').require('os').platform();
824825
return platform === 'win32';
825826
}
826827
,isMac(platform) {
827-
platform = platform ? platform : require('electron').remote.require('os').platform();
828+
platform = platform ? platform : require('@electron/remote').require('os').platform();
828829
return platform === 'darwin';
829830
}
830831
,is32bit() {
831-
const arch = require('electron').remote.require('os').arch();
832+
const arch = require('@electron/remote').require('os').arch();
832833
if (arch === 'ia32' || arch === 'x32')
833834
return true;
834835
else
835836
return false;
836837
}
837838
,getOSRelease(platform) {
838839
const me = this;
839-
const remote = require('electron').remote;
840+
const remote = require('@electron/remote');
840841
if (me.isWindows(platform)) {
841842
if (platform)
842843
{
@@ -852,13 +853,13 @@ Ext.define('Hamsket.ux.WebView',{
852853
}
853854
}
854855
,getChromeVersion(version) {
855-
return version || require('electron').remote.require('process').versions['chrome'];
856+
return version || require('@electron/remote').process.versions['chrome'];
856857
}
857858
,getElectronVersion() {
858-
return require('electron').require('process').versions['electron'];
859+
return require('@electron/remote').process.versions['electron'];
859860
}
860861
,getAppVersion() {
861-
return require('electron').remote.app.getVersion();
862+
return require('@electron/remote').app.getVersion();
862863
}
863864
,blur() {
864865
this.getWebView().blur();

app/view/main/About.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Ext.define('Hamsket.view.main.About', {
1515
me.data.buildversion = require('fs').readFileSync( __dirname + '/BUILDVERSION', 'utf8');
1616
}
1717
,data: {
18-
version: require('electron').remote.app.getVersion()
18+
version: require('@electron/remote').app.getVersion()
1919
,platform: process.platform
2020
,arch: process.arch
2121
,electron: process.versions.electron

app/view/main/MainController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ Ext.define('Hamsket.view.main.MainController', {
137137

138138
// Get Record
139139
const rec = Ext.getStore('Services').getById(serviceId);
140-
const {session: rsession} = require('electron').remote;
140+
const {session: rsession} = require('@electron/remote');
141141

142142
if ( !rec.get('enabled') ) {
143143
const session = rsession.fromPartition(`persist:${rec.get('type')}_${serviceId}`);

electron/main.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const updater = require('./updater');
1212
// File System
1313
const fs = require("fs");
1414
const path = require('path');
15+
const contextMenu = require('electron-context-menu');
1516

1617
// If 'data' folder exists in Hamsket's folder, set userdata, logs, and usercache path to there
1718
var basepath = app.getAppPath();
@@ -117,11 +118,12 @@ function createWindow () {
117118
partition: 'persist:hamsket',
118119
nodeIntegration: true,
119120
webviewTag: true,
120-
enableRemoteModule: true,
121-
contextIsolation: false
121+
contextIsolation: false,
122122
}
123123
});
124124

125+
require("@electron/remote/main").enable(mainWindow.webContents);
126+
125127
if ( !config.get('start_minimized') && config.get('maximized') ) mainWindow.maximize();
126128
if (config.get('start_minimized')){
127129
if (config.get('window_display_behavior') == 'show_taskbar') {
@@ -235,11 +237,11 @@ function createMasterPasswordWindow() {
235237
,frame: false
236238
,webPreferences: {
237239
nodeIntegration: true,
238-
enableRemoteModule: true,
239240
contextIsolation: false
240241
}
241242

242243
});
244+
require("@electron/remote/main").enable(mainMasterPasswordWindow.webContents);
243245

244246
mainMasterPasswordWindow.loadURL('file://' + __dirname + '/../masterpassword.html');
245247
mainMasterPasswordWindow.on('close', function() { mainMasterPasswordWindow = null; });
@@ -585,6 +587,7 @@ if ( config.get('disable_gpu') ) app.disableHardwareAcceleration();
585587
// This method will be called when Electron has finished
586588
// initialization and is ready to create browser windows.
587589
app.on('ready', function() {
590+
require('@electron/remote/main').initialize();
588591
if (config.get('master_password')) {
589592
createMasterPasswordWindow();
590593
} else {
@@ -621,8 +624,18 @@ app.on('before-quit', function () {
621624

622625
// Prevent the ability to create webview with nodeIntegration.
623626
app.on('web-contents-created', (event, contents) => {
627+
const contextMenuWebContentsDispose = contextMenu({
628+
window: contents,
629+
showCopyImageAddress: true,
630+
showSaveImage: false,
631+
showSaveImageAs: true,
632+
});
624633
contents.on('will-attach-webview', (event, webPreferences, params) => {
625634
// Always prevent node integration
626635
webPreferences.nodeIntegration = false;
636+
627637
});
638+
contents.on('destroyed', function() {
639+
contextMenuWebContentsDispose();
640+
})
628641
});

masterpassword.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
}
4949

5050
function exit() {
51-
require('electron').remote.app.quit();
51+
require('@electron/remote').app.quit();
5252
}
5353

5454
</script>

0 commit comments

Comments
 (0)