Merge branch 'develop' into noscript
This commit is contained in:
commit
22bc98c8bc
16 changed files with 1286 additions and 1340 deletions
|
@ -5,20 +5,30 @@
|
||||||
"setClasses"
|
"setClasses"
|
||||||
],
|
],
|
||||||
"feature-detects": [
|
"feature-detects": [
|
||||||
|
"test/css/animations",
|
||||||
"test/css/displaytable",
|
"test/css/displaytable",
|
||||||
|
"test/css/filters",
|
||||||
"test/css/flexbox",
|
"test/css/flexbox",
|
||||||
"test/es5/specification",
|
|
||||||
"test/css/objectfit",
|
"test/css/objectfit",
|
||||||
"test/storage/localstorage",
|
|
||||||
|
"test/es5/date",
|
||||||
|
"test/es5/function",
|
||||||
|
"test/es5/object",
|
||||||
|
"test/es5/undefined",
|
||||||
|
|
||||||
"test/es6/array",
|
"test/es6/array",
|
||||||
"test/es6/collections",
|
"test/es6/collections",
|
||||||
"test/es6/promises",
|
"test/es6/promises",
|
||||||
|
"test/es6/string",
|
||||||
|
|
||||||
"test/svg",
|
"test/svg",
|
||||||
"test/svg/asimg",
|
"test/svg/asimg",
|
||||||
"test/svg/filters",
|
"test/svg/filters",
|
||||||
"test/css/animations",
|
|
||||||
"test/css/filters",
|
"test/cors",
|
||||||
|
"test/iframe/sandbox",
|
||||||
|
"test/json",
|
||||||
"test/network/fetch",
|
"test/network/fetch",
|
||||||
"test/iframe/sandbox"
|
"test/storage/localstorage"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,10 @@ Riot has several tiers of support for different environments:
|
||||||
|
|
||||||
* Supported
|
* Supported
|
||||||
* Definition: Issues **actively triaged**, regressions **block** the release
|
* Definition: Issues **actively triaged**, regressions **block** the release
|
||||||
* Last 2 major versions of Chrome, Firefox, and Safari
|
* Last 2 major versions of Chrome, Firefox, and Safari on desktop OSes
|
||||||
* Latest release of official Riot Desktop app on macOS, Windows, and Linux versions that are actively supported by the OS vendor and receive security updates
|
* Latest release of official Riot Desktop app on desktop OSes
|
||||||
|
* Desktop OSes means macOS, Windows, and Linux versions for desktop devices
|
||||||
|
that are actively supported by the OS vendor and receive security updates
|
||||||
* Experimental
|
* Experimental
|
||||||
* Definition: Issues **accepted**, regressions **do not block** the release
|
* Definition: Issues **accepted**, regressions **do not block** the release
|
||||||
* Riot as an installed PWA via current stable version of Chrome, Firefox, and Safari
|
* Riot as an installed PWA via current stable version of Chrome, Firefox, and Safari
|
||||||
|
|
|
@ -10,5 +10,6 @@ The modifier is <kbd>Ctrl</kbd> on Windows & Linux and <kbd>⌘</kbd> on Mac.
|
||||||
- <kbd>↑</kbd>/<kbd>↓</kbd> - next/prev room when focus in room list
|
- <kbd>↑</kbd>/<kbd>↓</kbd> - next/prev room when focus in room list
|
||||||
- <kbd>Alt</kbd>+<kbd>↑</kbd>/<kbd>↓</kbd> - resend previous messages when the composer is in focus
|
- <kbd>Alt</kbd>+<kbd>↑</kbd>/<kbd>↓</kbd> - resend previous messages when the composer is in focus
|
||||||
- <kbd>PageUp</kbd>/<kbd>PageDown</kbd> - scroll timeline up/down
|
- <kbd>PageUp</kbd>/<kbd>PageDown</kbd> - scroll timeline up/down
|
||||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>Home</kbd>/<kbd>End</kbd> - jump to timeline start/end
|
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>Home</kbd>/<kbd>End</kbd> - jump to
|
||||||
|
start/end of the composer when focused, otherwise jump to timeline start/end
|
||||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>`</kbd> - toggle the top left menu
|
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>`</kbd> - toggle the top left menu
|
||||||
|
|
|
@ -174,18 +174,6 @@ function onEditableContextMenu(ev, params) {
|
||||||
|
|
||||||
module.exports = (webContents) => {
|
module.exports = (webContents) => {
|
||||||
webContents.on('new-window', onWindowOrNavigate);
|
webContents.on('new-window', onWindowOrNavigate);
|
||||||
// XXX: The below now does absolutely nothing because of
|
|
||||||
// https://github.com/electron/electron/issues/8841
|
|
||||||
// Whilst this isn't a security issue since without
|
|
||||||
// node integration and with the sandbox, it should be
|
|
||||||
// no worse than opening the site in Chrome, it obviously
|
|
||||||
// means the user has to restart Riot to make it usable
|
|
||||||
// again (often unintuitive because it minimises to the
|
|
||||||
// system tray). We therefore need to be vigilant about
|
|
||||||
// putting target="_blank" on links in Riot (although
|
|
||||||
// we should generally be doing this anyway since links
|
|
||||||
// navigating you away from Riot in the browser is
|
|
||||||
// also annoying).
|
|
||||||
webContents.on('will-navigate', onWindowOrNavigate);
|
webContents.on('will-navigate', onWindowOrNavigate);
|
||||||
|
|
||||||
webContents.on('context-menu', function(ev, params) {
|
webContents.on('context-menu', function(ev, params) {
|
||||||
|
|
|
@ -153,7 +153,7 @@
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"appId": "im.riot.app",
|
"appId": "im.riot.app",
|
||||||
"electronVersion": "7.1.12",
|
"electronVersion": "8.0.2",
|
||||||
"files": [
|
"files": [
|
||||||
"node_modules/**",
|
"node_modules/**",
|
||||||
"src/**"
|
"src/**"
|
||||||
|
|
|
@ -10,7 +10,13 @@ exports.default = async function(context) {
|
||||||
// from the keychain, so we need to get it from the environment.
|
// from the keychain, so we need to get it from the environment.
|
||||||
const userId = process.env.NOTARIZE_APPLE_ID;
|
const userId = process.env.NOTARIZE_APPLE_ID;
|
||||||
if (userId === undefined) {
|
if (userId === undefined) {
|
||||||
throw new Error("User ID not found. Set NOTARIZE_APPLE_ID.");
|
console.warn(
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
|
||||||
|
"! Skipping macOS notarisation. !\n" +
|
||||||
|
"! User ID not found, set NOTARIZE_APPLE_ID. !\n" +
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Notarising macOS app. This may be some time.");
|
console.log("Notarising macOS app. This may be some time.");
|
||||||
|
|
|
@ -8,16 +8,15 @@ exports.default = async function(options) {
|
||||||
const appOutDir = path.dirname(inPath);
|
const appOutDir = path.dirname(inPath);
|
||||||
|
|
||||||
// get the token passphrase from the keychain
|
// get the token passphrase from the keychain
|
||||||
const tokenPassphrase = await new Promise((resolve, reject) => {
|
let tokenPassphrase;
|
||||||
|
try {
|
||||||
|
tokenPassphrase = await new Promise((resolve, reject) => {
|
||||||
execFile(
|
execFile(
|
||||||
'security',
|
'security',
|
||||||
['find-generic-password', '-s', 'riot_signing_token', '-w'],
|
['find-generic-password', '-s', 'riot_signing_token', '-w'],
|
||||||
{},
|
{},
|
||||||
(err, stdout) => {
|
(err, stdout) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error("Couldn't find signing token in keychain", err);
|
|
||||||
// electron-builder seems to print '[object Object]' on the
|
|
||||||
// console whether you reject with an Error or a string...
|
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
resolve(stdout.trim());
|
resolve(stdout.trim());
|
||||||
|
@ -25,6 +24,15 @@ exports.default = async function(options) {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.warn(
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
|
||||||
|
"! Skipping Windows signing. !\n" +
|
||||||
|
"! Signing token not found in keychain. !\n" +
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let cmdLine = 'osslsigncode sign ';
|
let cmdLine = 'osslsigncode sign ';
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
|
||||||
translate(s) {
|
translate(s) {
|
||||||
s = sanitizeHtml(_t(s));
|
s = sanitizeHtml(_t(s));
|
||||||
// ugly fix for https://github.com/vector-im/riot-web/issues/4243
|
// ugly fix for https://github.com/vector-im/riot-web/issues/4243
|
||||||
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noopener"><img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
|
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noreferrer noopener"><img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ const VectorAuthFooter = () => {
|
||||||
const authFooterLinks = [];
|
const authFooterLinks = [];
|
||||||
for (const linkEntry of links) {
|
for (const linkEntry of links) {
|
||||||
authFooterLinks.push(
|
authFooterLinks.push(
|
||||||
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noopener">
|
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noreferrer noopener">
|
||||||
{linkEntry.text}
|
{linkEntry.text}
|
||||||
</a>,
|
</a>,
|
||||||
);
|
);
|
||||||
|
@ -43,7 +43,7 @@ const VectorAuthFooter = () => {
|
||||||
return (
|
return (
|
||||||
<div className="mx_AuthFooter">
|
<div className="mx_AuthFooter">
|
||||||
{authFooterLinks}
|
{authFooterLinks}
|
||||||
<a href="https://matrix.org" target="_blank" rel="noopener">{ _t('powered by Matrix') }</a>
|
<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">{ _t('powered by Matrix') }</a>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"Custom Server Options": "Egyedi szerverbeállítások",
|
"Custom Server Options": "Egyedi szerverbeállítások",
|
||||||
"Dismiss": "Eltüntet",
|
"Dismiss": "Eltüntetés",
|
||||||
"powered by Matrix": "Matrix hajtja",
|
"powered by Matrix": "Matrix hajtja",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s alkalmazás %(browserName)s böngészőn %(osName)s rendszeren",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s alkalmazás %(browserName)s böngészőn %(osName)s rendszeren",
|
||||||
"Riot Desktop on %(platformName)s": "Riot Desktop itt: %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot Desktop itt: %(platformName)s",
|
||||||
"Unknown device": "Ismeretlen készülék",
|
"Unknown device": "Ismeretlen eszköz",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Képernyőmegosztás indításához HTTPS-t kell használnod.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Képernyőmegosztás indításához HTTPS-t kell használnod.",
|
||||||
"Welcome to Riot.im": "Üdvözöl a Riot.im",
|
"Welcome to Riot.im": "Üdvözöl a Riot.im",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizált, titkosított csevegés és kollaboráció [matrix] alapokon",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizált, titkosított csevegés és kollaboráció [matrix] alapokon",
|
||||||
|
|
|
@ -7,14 +7,17 @@
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Du er nødt til å bruke HTTPS for å ha en samtale med skjermdeling.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Du er nødt til å bruke HTTPS for å ha en samtale med skjermdeling.",
|
||||||
"Dismiss": "Avvis",
|
"Dismiss": "Avvis",
|
||||||
"Welcome to Riot.im": "Velkommen til Riot.im",
|
"Welcome to Riot.im": "Velkommen til Riot.im",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Desentralisert, kryptert chat & sammabeid drevet av [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Desentralisert, kryptert chat & samarbeid drevet av [matrix]",
|
||||||
"Chat with Riot Bot": "Chat med Riot Bot",
|
"Chat with Riot Bot": "Chat med Riot Bot",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan bruke instillinger for «egendefinert tjener» til å logge inn på andre Matrix tjenere ved å spesifisere en annen URL. Dette lar deg bruke Riot med en eksisterende Matrix konto på en annen hjemmetjener.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan bruke instillinger for «egendefinert tjener» til å logge inn på andre Matrix-tjenere ved å spesifisere en annen URL. Dette lar deg bruke Riot med en eksisterende Matrix-konto på en annen hjemmetjener.",
|
||||||
"Sign In": "Logg inn",
|
"Sign In": "Logg inn",
|
||||||
"Create Account": "Lag konto",
|
"Create Account": "Lag konto",
|
||||||
"Need help?": "Trenger du hjelp?",
|
"Need help?": "Trenger du hjelp?",
|
||||||
"Room Directory": "Alle rom",
|
"Room Directory": "Alle rom",
|
||||||
"Explore rooms": "Se alle rom",
|
"Explore rooms": "Se alle rom",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din inneholder ugyldig JSON. Vennligst fiks problemet og oppdater siden.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din inneholder ugyldig JSON. Vennligst fiks problemet og oppdater siden.",
|
||||||
"The message from the parser is: %(message)s": "Meldingen fra parseren er: %(message)s"
|
"The message from the parser is: %(message)s": "Meldingen fra parseren er: %(message)s",
|
||||||
|
"Invalid JSON": "Ugyldig JSON",
|
||||||
|
"Your Riot is misconfigured": "Riot er feilkonfigurert",
|
||||||
|
"Invalid configuration: no default server specified.": "Ugyldig konfigurasjon: ingen standardserver spesifisert."
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"Riot Desktop on %(platformName)s": "Riot på Skrivebord for %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot på Skrivebord for %(platformName)s",
|
||||||
"Unknown device": "Ukjend eining",
|
"Unknown device": "Ukjend eining",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s gjennom %(browserName)s på %(osName)s",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s gjennom %(browserName)s på %(osName)s",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Du må bruka HTTPS for å ha ei samtale med skjermdeling.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Du må bruka HTTPS for å ha ein samtale med skjermdeling.",
|
||||||
"Dismiss": "Avvis",
|
"Dismiss": "Avvis",
|
||||||
"powered by Matrix": "Matrixdriven",
|
"powered by Matrix": "Matrixdriven",
|
||||||
"Welcome to Riot.im": "Velkomen til Riot.im",
|
"Welcome to Riot.im": "Velkomen til Riot.im",
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
"Explore rooms": "Utforsk romma",
|
"Explore rooms": "Utforsk romma",
|
||||||
"Room Directory": "Romkatalog",
|
"Room Directory": "Romkatalog",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har ugyldig JSON-kode. Korriger dette og last inn sida på nytt.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har ugyldig JSON-kode. Korriger dette og last inn sida på nytt.",
|
||||||
"The message from the parser is: %(message)s": "Meldingen frå kodetolkaren er: %(message)s",
|
"The message from the parser is: %(message)s": "Meldinga frå kodetolkaren er: %(message)s",
|
||||||
"Invalid JSON": "Ugyldig JSON",
|
"Invalid JSON": "Ugyldig JSON",
|
||||||
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
|
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
|
||||||
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -385,4 +385,11 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||||
getEventIndexingManager(): BaseEventIndexManager | null {
|
getEventIndexingManager(): BaseEventIndexManager | null {
|
||||||
return this.eventIndexManager;
|
return this.eventIndexManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setLanguage(preferredLangs: string[]) {
|
||||||
|
this._ipcCall('setLanguage', preferredLangs).catch(error => {
|
||||||
|
console.log("Failed to send setLanguage IPC to Electron");
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -307,7 +307,7 @@ describe('loading:', function() {
|
||||||
indexedDB,
|
indexedDB,
|
||||||
"matrix-js-sdk:crypto",
|
"matrix-js-sdk:crypto",
|
||||||
);
|
);
|
||||||
await cryptoStore._connect();
|
await cryptoStore.startup();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('shows the last known room by default', function() {
|
it('shows the last known room by default', function() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue