Merge branch 'develop' into noscript
						commit
						22bc98c8bc
					
				|  | @ -5,20 +5,30 @@ | |||
|     "setClasses" | ||||
|   ], | ||||
|   "feature-detects": [ | ||||
|     "test/css/animations", | ||||
|     "test/css/displaytable", | ||||
|     "test/css/filters", | ||||
|     "test/css/flexbox", | ||||
|     "test/es5/specification", | ||||
|     "test/css/objectfit", | ||||
|     "test/storage/localstorage", | ||||
| 
 | ||||
|     "test/es5/date", | ||||
|     "test/es5/function", | ||||
|     "test/es5/object", | ||||
|     "test/es5/undefined", | ||||
| 
 | ||||
|     "test/es6/array", | ||||
|     "test/es6/collections", | ||||
|     "test/es6/promises", | ||||
|     "test/es6/string", | ||||
| 
 | ||||
|     "test/svg", | ||||
|     "test/svg/asimg", | ||||
|     "test/svg/filters", | ||||
|     "test/css/animations", | ||||
|     "test/css/filters", | ||||
| 
 | ||||
|     "test/cors", | ||||
|     "test/iframe/sandbox", | ||||
|     "test/json", | ||||
|     "test/network/fetch", | ||||
|     "test/iframe/sandbox" | ||||
|     "test/storage/localstorage" | ||||
|   ] | ||||
| } | ||||
|  |  | |||
|  | @ -11,8 +11,10 @@ Riot has several tiers of support for different environments: | |||
| 
 | ||||
| * Supported | ||||
|   * Definition: Issues **actively triaged**, regressions **block** the release | ||||
|   * Last 2 major versions of Chrome, Firefox, and Safari | ||||
|   * 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 | ||||
|   * Last 2 major versions of Chrome, Firefox, and Safari on desktop OSes | ||||
|   * 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 | ||||
|   * Definition: Issues **accepted**, regressions **do not block** the release | ||||
|   * 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>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>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 | ||||
|  |  | |||
|  | @ -174,18 +174,6 @@ function onEditableContextMenu(ev, params) { | |||
| 
 | ||||
| module.exports = (webContents) => { | ||||
|     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('context-menu', function(ev, params) { | ||||
|  |  | |||
|  | @ -153,7 +153,7 @@ | |||
|   }, | ||||
|   "build": { | ||||
|     "appId": "im.riot.app", | ||||
|     "electronVersion": "7.1.12", | ||||
|     "electronVersion": "8.0.2", | ||||
|     "files": [ | ||||
|       "node_modules/**", | ||||
|       "src/**" | ||||
|  |  | |||
|  | @ -10,7 +10,13 @@ exports.default = async function(context) { | |||
|         // from the keychain, so we need to get it from the environment.
 | ||||
|         const userId = process.env.NOTARIZE_APPLE_ID; | ||||
|         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."); | ||||
|  |  | |||
|  | @ -8,23 +8,31 @@ exports.default = async function(options) { | |||
|     const appOutDir = path.dirname(inPath); | ||||
| 
 | ||||
|     // get the token passphrase from the keychain
 | ||||
|     const tokenPassphrase = await new Promise((resolve, reject) => { | ||||
|         execFile( | ||||
|             'security', | ||||
|             ['find-generic-password', '-s', 'riot_signing_token', '-w'], | ||||
|             {}, | ||||
|             (err, stdout) => { | ||||
|                 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); | ||||
|                 } else { | ||||
|                     resolve(stdout.trim()); | ||||
|                 } | ||||
|             }, | ||||
|     let tokenPassphrase; | ||||
|     try { | ||||
|         tokenPassphrase = await new Promise((resolve, reject) => { | ||||
|             execFile( | ||||
|                 'security', | ||||
|                 ['find-generic-password', '-s', 'riot_signing_token', '-w'], | ||||
|                 {}, | ||||
|                 (err, stdout) => { | ||||
|                     if (err) { | ||||
|                         reject(err); | ||||
|                     } else { | ||||
|                         resolve(stdout.trim()); | ||||
|                     } | ||||
|                 }, | ||||
|             ); | ||||
|         }); | ||||
|     } catch (err) { | ||||
|         console.warn( | ||||
|             "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" + | ||||
|             "! Skipping Windows signing.            !\n" + | ||||
|             "! Signing token not found in keychain. !\n" + | ||||
|             "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", | ||||
|         ); | ||||
|     }); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     return new Promise((resolve, reject) => { | ||||
|         let cmdLine = 'osslsigncode sign '; | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage { | |||
|     translate(s) { | ||||
|         s = sanitizeHtml(_t(s)); | ||||
|         // 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; | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ const VectorAuthFooter = () => { | |||
|     const authFooterLinks = []; | ||||
|     for (const linkEntry of links) { | ||||
|         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} | ||||
|             </a>, | ||||
|         ); | ||||
|  | @ -43,7 +43,7 @@ const VectorAuthFooter = () => { | |||
|     return ( | ||||
|         <div className="mx_AuthFooter"> | ||||
|             {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> | ||||
|     ); | ||||
| }; | ||||
|  |  | |||
|  | @ -1,10 +1,10 @@ | |||
| { | ||||
|     "Custom Server Options": "Egyedi szerverbeállítások", | ||||
|     "Dismiss": "Eltüntet", | ||||
|     "Dismiss": "Eltüntetés", | ||||
|     "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", | ||||
|     "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.", | ||||
|     "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", | ||||
|  |  | |||
|  | @ -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.", | ||||
|     "Dismiss": "Avvis", | ||||
|     "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", | ||||
|     "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", | ||||
|     "Create Account": "Lag konto", | ||||
|     "Need help?": "Trenger du hjelp?", | ||||
|     "Room Directory": "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.", | ||||
|     "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", | ||||
|     "Unknown device": "Ukjend eining", | ||||
|     "%(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", | ||||
|     "powered by Matrix": "Matrixdriven", | ||||
|     "Welcome to Riot.im": "Velkomen til Riot.im", | ||||
|  | @ -16,7 +16,7 @@ | |||
|     "Explore rooms": "Utforsk romma", | ||||
|     "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.", | ||||
|     "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", | ||||
|     "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.", | ||||
|  |  | |||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -385,4 +385,11 @@ export default class ElectronPlatform extends VectorBasePlatform { | |||
|     getEventIndexingManager(): BaseEventIndexManager | null { | ||||
|         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, | ||||
|                 "matrix-js-sdk:crypto", | ||||
|             ); | ||||
|             await cryptoStore._connect(); | ||||
|             await cryptoStore.startup(); | ||||
|         }); | ||||
| 
 | ||||
|         it('shows the last known room by default', function() { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Travis Ralston
						Travis Ralston