summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-06-25 11:31:39 +0200
committerOskar Nyberg <oskar@mullvad.net>2020-06-25 11:31:39 +0200
commitbb51fb4839fbcd5a64aa1aa38ed591e5453e7f7b (patch)
tree79c8d35e90501f7558d698bd39f0d83a2231da58
parenta55f618ca1b83c02a0239bece8f33cec060c33ef (diff)
parent853ec1e41da6b0b86e569c3ba50594444c4b40b7 (diff)
downloadmullvadvpn-bb51fb4839fbcd5a64aa1aa38ed591e5453e7f7b.tar.xz
mullvadvpn-bb51fb4839fbcd5a64aa1aa38ed591e5453e7f7b.zip
Merge branch 'upgrade-to-electron-8-again'
-rw-r--r--CHANGELOG.md3
-rw-r--r--README.md19
-rw-r--r--gui/package-lock.json97
-rw-r--r--gui/package.json2
-rw-r--r--gui/src/main/index.ts4
-rw-r--r--gui/tasks/distribution.js2
-rw-r--r--gui/test/setup/main.js5
7 files changed, 77 insertions, 55 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1835a17b9a..516a8c82a8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,9 @@ Line wrap the file at 100 chars. Th
- Add Korean, Polish and Thai languages to the desktop app.
- Show system notification when account has expired.
+### Changed
+- Upgrade from Electron 7 to Electron 8.
+
#### Android
- Show a system notification when the account time will soon run out.
diff --git a/README.md b/README.md
index adb237220d..e9e6dfc227 100644
--- a/README.md
+++ b/README.md
@@ -442,6 +442,20 @@ this procedure, the `integration-tests.sh` script can be used to run all integra
`linux`, `mac` or `win`
- `$ npm test` - run tests
+
+## Tray icon on Linux
+
+The requirements for displaying a tray icon varies between different desktop environments. If the
+tray icon doesn't appear, try installing one of these packages:
+- `libappindicator3-1`
+- `libappindicator1`
+- `libappindicator`
+
+If you're using GNOME, try installing one of these GNOME Shell extensions:
+- `TopIconsFix`
+- `TopIcons Plus`
+
+
## Repository structure
### Electron GUI app and electron-builder packaging assets
@@ -622,11 +636,6 @@ Instructions for how to handle locales and translations are found
Mullvad has used external pentesting companies to carry out security audits of this VPN app. Read
more about them in the [audits readme](./audits/README.md)
-## Quirks
-
-- If you want to modify babel-configurations please note that `BABEL_ENV=development` must be used
- for [react-native](https://github.com/facebook/react-native/issues/8723)
-
# License
Copyright (C) 2020 Mullvad VPN AB
diff --git a/gui/package-lock.json b/gui/package-lock.json
index c0e7601074..1d93e2fefa 100644
--- a/gui/package-lock.json
+++ b/gui/package-lock.json
@@ -295,9 +295,9 @@
}
},
"@electron/get": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.2.tgz",
- "integrity": "sha512-LSE4LZGMjGS9TloDx0yO44D2UTbaeKRk+QjlhWLiQlikV6J4spgDCjb6z4YIcqmPAwNzlNCnWF4dubytwI+ATA==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz",
+ "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -306,6 +306,7 @@
"global-agent": "^2.0.2",
"global-tunnel-ng": "^2.7.1",
"got": "^9.6.0",
+ "progress": "^2.0.3",
"sanitize-filename": "^1.6.2",
"sumchecker": "^3.0.1"
},
@@ -331,9 +332,9 @@
}
},
"graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"jsonfile": {
@@ -1618,9 +1619,9 @@
"dev": true
},
"boolean": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz",
- "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz",
+ "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==",
"dev": true,
"optional": true
},
@@ -2445,9 +2446,9 @@
}
},
"core-js": {
- "version": "3.6.4",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
- "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+ "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==",
"dev": true,
"optional": true
},
@@ -2940,9 +2941,9 @@
"dev": true
},
"electron": {
- "version": "7.1.10",
- "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.10.tgz",
- "integrity": "sha512-UDpS2CfBN3yufCrbET5Ozw1XrLhuANHn+Zs8Vgl/BcBT/MoNbkY79nRFcyxj6pCFrEde9IoNOf+DgNp6altNxw==",
+ "version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-8.3.3.tgz",
+ "integrity": "sha512-/LGnjnE9BQzkn2VpjflLi7jpQxYIp+maqmiDPy6ww76hkQvt/LJ991ewdHpfLR4or3VqzPIu+AK+ZJrTlDAWyw==",
"dev": true,
"requires": {
"@electron/get": "^1.0.1",
@@ -2951,9 +2952,9 @@
},
"dependencies": {
"@types/node": {
- "version": "12.12.25",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.25.tgz",
- "integrity": "sha512-nf1LMGZvgFX186geVZR1xMZKKblJiRfiASTHw85zED2kI1yDKHDwTKMdkaCbTlXoRKlGKaDfYywt+V0As30q3w==",
+ "version": "12.12.47",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz",
+ "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==",
"dev": true
}
}
@@ -5480,25 +5481,25 @@
}
},
"global-agent": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz",
- "integrity": "sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==",
+ "version": "2.1.12",
+ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz",
+ "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==",
"dev": true,
"optional": true,
"requires": {
- "boolean": "^3.0.0",
- "core-js": "^3.4.1",
+ "boolean": "^3.0.1",
+ "core-js": "^3.6.5",
"es6-error": "^4.1.1",
- "matcher": "^2.0.0",
- "roarr": "^2.14.5",
- "semver": "^6.3.0",
- "serialize-error": "^5.0.0"
+ "matcher": "^3.0.0",
+ "roarr": "^2.15.3",
+ "semver": "^7.3.2",
+ "serialize-error": "^7.0.1"
},
"dependencies": {
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true,
"optional": true
}
@@ -7075,19 +7076,19 @@
}
},
"matcher": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz",
- "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
+ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
"dev": true,
"optional": true,
"requires": {
- "escape-string-regexp": "^2.0.0"
+ "escape-string-regexp": "^4.0.0"
},
"dependencies": {
"escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
"optional": true
}
@@ -9268,15 +9269,15 @@
}
},
"roarr": {
- "version": "2.14.6",
- "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz",
- "integrity": "sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==",
+ "version": "2.15.3",
+ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz",
+ "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==",
"dev": true,
"optional": true,
"requires": {
"boolean": "^3.0.0",
"detect-node": "^2.0.4",
- "globalthis": "^1.0.0",
+ "globalthis": "^1.0.1",
"json-stringify-safe": "^5.0.1",
"semver-compare": "^1.0.0",
"sprintf-js": "^1.1.2"
@@ -9444,19 +9445,19 @@
}
},
"serialize-error": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz",
- "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
+ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
"dev": true,
"optional": true,
"requires": {
- "type-fest": "^0.8.0"
+ "type-fest": "^0.13.1"
},
"dependencies": {
"type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
"dev": true,
"optional": true
}
diff --git a/gui/package.json b/gui/package.json
index fe52e98690..62a1068b3a 100644
--- a/gui/package.json
+++ b/gui/package.json
@@ -68,7 +68,7 @@
"chai-as-promised": "^7.1.1",
"chai-spies": "^1.0.0",
"cross-env": "^5.1.3",
- "electron": "^7.1.10",
+ "electron": "^8.3.3",
"electron-builder": "^21.2.0",
"electron-devtools-installer": "^2.2.1",
"electron-mocha": "^8.2.1",
diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts
index cef8eda51b..0bdc71a2ef 100644
--- a/gui/src/main/index.ts
+++ b/gui/src/main/index.ts
@@ -210,6 +210,10 @@ class ApplicationMain {
this.guiSettings.load();
+ // The default value has previously been false but will be changed to true in Electron 9. The
+ // false value has been deprecated in Electron 8. This can be removed when Electron 9 is used.
+ app.allowRendererProcessReuse = true;
+
app.on('activate', this.onActivate);
app.on('ready', this.onReady);
app.on('window-all-closed', () => app.quit());
diff --git a/gui/tasks/distribution.js b/gui/tasks/distribution.js
index 006c9d6bc5..c0fc5ecb09 100644
--- a/gui/tasks/distribution.js
+++ b/gui/tasks/distribution.js
@@ -134,7 +134,7 @@ const config = {
],
afterInstall: distAssets('linux/after-install.sh'),
afterRemove: distAssets('linux/after-remove.sh'),
- depends: ['iputils-ping', 'libappindicator3-1'],
+ depends: ['iputils-ping'],
},
rpm: {
diff --git a/gui/test/setup/main.js b/gui/test/setup/main.js
index dd458a30b6..df773dc7b2 100644
--- a/gui/test/setup/main.js
+++ b/gui/test/setup/main.js
@@ -1,4 +1,9 @@
+const { app } = require('electron');
const log = require('electron-log');
log.transports.console.level = false;
log.transports.file.level = false;
+
+// The default value has previously been false but will be changed to true in Electron 9. The
+// false value has been deprecated in Electron 8. This can be removed when Electron 9 is used.
+app.allowRendererProcessReuse = true;