Upgrade to Electron 5

The APIs related to custom protocols went through some changes for Electron 5.x,
so adjusts Riot's usages to match.

I have scanned the Electron 5.x release notes, and I can't see anything else
that requires immediate changes. Things appear to be working well after the
upgrade.

Fixes https://github.com/vector-im/riot-web/issues/10296
Fixes https://github.com/vector-im/riot-web/issues/9562
This commit is contained in:
J. Ryan Stinnett 2019-07-22 14:32:50 +01:00
parent e71fcc33f9
commit 88e8fbb39a
3 changed files with 12 additions and 14 deletions

View File

@ -1,7 +1,7 @@
/* /*
Copyright 2016 Aviral Dasgupta Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd Copyright 2016 OpenMarket Ltd
Copyright 2018 New Vector Ltd Copyright 2018, 2019 New Vector Ltd
Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com> Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
@ -211,7 +211,14 @@ const launcher = new AutoLaunch({
// work. // work.
// Also mark it as secure (ie. accessing resources from this // Also mark it as secure (ie. accessing resources from this
// protocol and HTTPS won't trigger mixed content warnings). // protocol and HTTPS won't trigger mixed content warnings).
protocol.registerStandardSchemes(['vector'], {secure: true}); protocol.registerSchemesAsPrivileged([{
scheme: 'vector',
privileges: {
standard: true,
secure: true,
supportFetchAPI: true,
},
}]);
app.on('ready', () => { app.on('ready', () => {
if (argv['devtools']) { if (argv['devtools']) {

View File

@ -1,5 +1,5 @@
/* /*
Copyright 2018 New Vector Ltd Copyright 2018, 2019 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,16 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
const { ipcRenderer, webFrame } = require('electron'); const { ipcRenderer } = require('electron');
// expose ipcRenderer to the renderer process // expose ipcRenderer to the renderer process
window.ipcRenderer = ipcRenderer; window.ipcRenderer = ipcRenderer;
// Allow the fetch API to load resources from this
// protocol: this is necessary to load olm.wasm.
// (Also mark it a secure although we've already
// done this in the main process).
webFrame.registerURLSchemeAsPrivileged('vector', {
secure: true,
supportFetchAPI: true,
});

View File

@ -154,7 +154,7 @@
}, },
"build": { "build": {
"appId": "im.riot.app", "appId": "im.riot.app",
"electronVersion": "4.2.6", "electronVersion": "5.0.7",
"files": [ "files": [
"node_modules/**", "node_modules/**",
"src/**" "src/**"