Compare commits

...

384 Commits

Author SHA1 Message Date
RiotRobot
0f6f947254 v1.7.28 2021-05-17 14:06:36 +01:00
RiotRobot
bebed00200 Prepare changelog for v1.7.28 2021-05-17 14:06:35 +01:00
RiotRobot
d74631a555 v1.7.28-rc.1 2021-05-11 17:00:25 +01:00
RiotRobot
944bb3c717 Prepare changelog for v1.7.28-rc.1 2021-05-11 17:00:25 +01:00
Germain
7fad439078 Merge pull request #190 from vector-im/gsouquet-windows-requirements 2021-05-11 12:43:46 +01:00
Germain
f98d1672af Suggest installing Build tools rather than Visual Studio
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-05-11 12:41:24 +01:00
RiotRobot
debeef6ee6 Merge branch 'master' into develop 2021-05-10 15:39:35 +01:00
RiotRobot
28096f3a22 v1.7.27 2021-05-10 15:39:19 +01:00
RiotRobot
5efc4528a2 Prepare changelog for v1.7.27 2021-05-10 15:39:19 +01:00
J. Ryan Stinnett
75b41d65c1 Merge pull request #192 from aaronraimist/close-fullscreen-macos
Prevent black screen when closing window while in full screen mode on macOS
2021-05-05 16:54:48 +01:00
Aaron Raimist
cc5dc4d801 Prevent black screen when closing window while in full screen mode on macOS
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-05-04 21:55:32 -05:00
RiotRobot
7e34425d78 v1.7.27-rc.1 2021-05-04 16:10:00 +01:00
RiotRobot
5f09505056 Prepare changelog for v1.7.27-rc.1 2021-05-04 16:09:59 +01:00
J. Ryan Stinnett
9def502c95 Merge pull request #191 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-05-04 15:34:05 +01:00
J. Ryan Stinnett
e09b01f303 Merge pull request #187 from vector-im/dependabot/npm_and_yarn/ssri-6.0.2
Bump ssri from 6.0.1 to 6.0.2
2021-05-04 15:32:52 +01:00
Weblate
32aacbdd9a Merge branch 'origin/develop' into Weblate. 2021-05-04 14:31:35 +00:00
Ville Ranki
e1554cbbe0 Translated using Weblate (Finnish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fi/
2021-05-04 13:34:27 +00:00
Ville Ranki
2b8c378773 Added translation using Weblate (Finnish) 2021-05-03 12:17:56 +00:00
iaiz
fe7bf57565 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/es/
2021-05-02 13:34:27 +00:00
Priit Jõerüüt
cbaad79515 Translated using Weblate (Estonian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/et/
2021-05-02 13:34:27 +00:00
Martin Berg Alstad
a7a8115b17 Translated using Weblate (Norwegian Bokmål)
Currently translated at 2.2% (1 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/nb_NO/
2021-05-02 13:34:27 +00:00
random
e694a8e30e Translated using Weblate (Italian)
Currently translated at 95.4% (42 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/it/
2021-05-02 13:34:27 +00:00
Felicia Jongleur
cda4f8ccb4 Translated using Weblate (Swedish)
Currently translated at 88.6% (39 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/
2021-05-02 13:34:27 +00:00
rkfg
4369b3a5ad Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-05-02 13:34:26 +00:00
iaiz
933d0b80bf Added translation using Weblate (Spanish) 2021-05-01 12:38:39 +00:00
Priit Jõerüüt
043e006f3b Added translation using Weblate (Estonian) 2021-04-30 21:17:27 +00:00
libexus
2a1acf0525 Translated using Weblate (German)
Currently translated at 95.4% (42 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/de/
2021-04-30 14:39:20 +00:00
Martin Berg Alstad
820e32e250 Added translation using Weblate (Norwegian Bokmål) 2021-04-30 13:14:50 +00:00
J. Ryan Stinnett
20e4459bb5 Merge pull request #180 from tomvaneyck/hardware-media
Disables HardwareMediaKeyHandling
2021-04-30 13:01:53 +01:00
libexus
913c954eeb Added translation using Weblate (German) 2021-04-29 15:02:06 +00:00
Germain Souquet
b5fdeddec3 Add Windows native module requirements 2021-04-29 15:36:10 +01:00
random
38dab479b1 Added translation using Weblate (Italian) 2021-04-29 08:15:11 +00:00
XoseM
f385b1f1d5 Translated using Weblate (Galician)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/gl/
2021-04-29 06:34:26 +00:00
Szimszon
298ccbe16c Translated using Weblate (Hungarian)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/hu/
2021-04-29 06:34:26 +00:00
vintergatan
b8c99c6186 Translated using Weblate (Swedish)
Currently translated at 72.7% (32 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/sv/
2021-04-29 06:34:26 +00:00
rkfg
ca70486323 Translated using Weblate (Russian)
Currently translated at 86.3% (38 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-29 06:34:25 +00:00
Thibault Martin
4bee175f16 Translated using Weblate (French)
Currently translated at 100.0% (44 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-29 06:34:25 +00:00
XoseM
628b37a2d1 Added translation using Weblate (Galician) 2021-04-28 06:10:32 +00:00
Szimszon
9daf5ae413 Added translation using Weblate (Hungarian) 2021-04-27 17:57:43 +00:00
vintergatan
19c8c5f580 Added translation using Weblate (Swedish) 2021-04-27 16:02:25 +00:00
Travis Ralston
989b4df6c6 Merge pull request #189 from RiotTranslateBot/weblate-element-desktop-element-desktop
Translations update from Weblate
2021-04-27 09:11:00 -06:00
rkfg
21c40b796f Translated using Weblate (Russian)
Currently translated at 79.5% (35 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-27 15:10:33 +00:00
Thibault Martin
ccb302b951 Translated using Weblate (French)
Currently translated at 72.7% (32 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:10:33 +00:00
rkfg
7d29046cba Translated using Weblate (Russian)
Currently translated at 75.0% (33 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-27 15:10:21 +00:00
Thibault Martin
9c3e557333 Translated using Weblate (French)
Currently translated at 70.4% (31 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:10:21 +00:00
rkfg
6a7735247e Translated using Weblate (Russian)
Currently translated at 13.6% (6 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/ru/
2021-04-27 15:06:51 +00:00
Germain
c0f5ed15e2 Translated using Weblate (French)
Currently translated at 18.1% (8 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:06:51 +00:00
Thibault Martin
56d9a86152 Translated using Weblate (French)
Currently translated at 18.1% (8 of 44 strings)

Translation: Element Desktop/element-desktop
Translate-URL: https://translate.element.io/projects/element-desktop/element-desktop/fr/
2021-04-27 15:06:51 +00:00
rkfg
82def5ce37 Added translation using Weblate (Russian) 2021-04-27 15:05:35 +00:00
Germain
5ec91d3a53 Added translation using Weblate (French) 2021-04-27 15:01:32 +00:00
dependabot[bot]
8b69982023 Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-27 14:51:39 +00:00
Germain
7e69c81e62 Merge pull request #188 from vector-im/gsouquet-i18n-td 2021-04-27 15:50:19 +01:00
Germain Souquet
e64e6e642c Upgrade matrix-web-i18n to use matrix prefixed binaries 2021-04-27 15:10:20 +01:00
RiotRobot
7f24661357 Merge branch 'master' into develop 2021-04-26 18:13:06 +01:00
RiotRobot
c19baadcd3 v1.7.26 2021-04-26 18:12:16 +01:00
RiotRobot
ada58f826a Prepare changelog for v1.7.26 2021-04-26 18:12:15 +01:00
Germain Souquet
46b1015478 Fix typo in _t function declaration 2021-04-26 17:14:55 +01:00
Germain Souquet
8ae641bc59 Set appropriate appMenu submenu role 2021-04-26 17:12:13 +01:00
Germain Souquet
8f4c827089 change translate widget project ID 2021-04-26 16:59:24 +01:00
Germain Souquet
20ce3d10a3 add missing copyright header 2021-04-26 16:58:22 +01:00
Germain Souquet
72483a60cb Add diff-i18n script for CI 2021-04-26 16:22:33 +01:00
Travis Ralston
de16099360 Add required weblate basefile 2021-04-26 09:11:30 -06:00
Germain Souquet
ae0213b663 Move i18n scripts in its own module 2021-04-26 16:00:10 +01:00
Germain Souquet
b9510d0a0b use _t over _td for consistency with element-web 2021-04-26 14:50:18 +01:00
Germain Souquet
c56aa9100f appease max line length linting rule 2021-04-26 14:38:00 +01:00
Germain Souquet
d59384f3e7 Add internationalisation documentation 2021-04-26 14:19:48 +01:00
Germain Souquet
00ba42186b Add labels to role-only menu item to have consistent languages in menu 2021-04-26 14:14:35 +01:00
Germain Souquet
e950303966 stop using experimental class private methods 2021-04-26 14:13:32 +01:00
Germain Souquet
105070716e Make application react to element-web language change 2021-04-26 13:58:29 +01:00
Germain
3b4eb5c18e Merge pull request #186 from vector-im/gsouquet-eventindex-freshinstall 2021-04-26 09:43:56 +01:00
Germain Souquet
658304cc51 Wrap all strings in _td function for i18n 2021-04-23 16:56:17 +01:00
Germain Souquet
b7dd4e53a3 Ensure new passphrase is stored in keytar 2021-04-23 15:35:09 +01:00
Germain Souquet
1fa6671a17 Remove change passphrase logic and rely on keytar 2021-04-23 15:17:50 +01:00
RiotRobot
6526127998 v1.7.26-rc.1 2021-04-21 17:48:52 +01:00
RiotRobot
b640d5e7e4 Prepare changelog for v1.7.26-rc.1 2021-04-21 17:48:52 +01:00
Germain Souquet
3f9495f19d Fix event index passphrase change process 2021-04-21 12:20:29 +01:00
Hubert Chathi
1ff5387f1d Merge pull request #170 from hiqua/develop
Remove Debian dependency libappindicator3-1
2021-04-19 14:06:19 -04:00
Germain
5ae736e861 Merge pull request #185 from vector-im/gsouquet-exit-shortcut
Fix exit shortcuts for non QWERTY keyboards
2021-04-15 17:25:44 +01:00
Germain Souquet
29d22aefd7 Fix exit shortcuts for non QWERTY keyboards 2021-04-15 16:50:35 +01:00
Germain
11602bb578 Merge pull request #182 from tsnowlan/remove-missing-setDebVersion 2021-04-14 11:40:38 +01:00
Tor Solli-Nowlan
46ee80837a Update scripts/fetch-package.js
Co-authored-by: Germain <germain@souquet.com>
2021-04-14 12:34:53 +02:00
Tor Solli-Nowlan
97178f4297 setDebVersion function no longer exists
Signed-off-by: Tor Solli-Nowlan <tor.solli-nowlan@medisin.uio.no>
2021-04-13 12:22:32 +02:00
RiotRobot
cd93f29691 Merge branch 'master' into develop 2021-04-12 15:35:40 +01:00
RiotRobot
48132c9eab v1.7.25 2021-04-12 15:35:26 +01:00
RiotRobot
4f58ba1b22 Prepare changelog for v1.7.25 2021-04-12 15:35:25 +01:00
Quentin Hibon
955be8417b Use libappindicator3-1 as Recommends dep 2021-04-10 22:48:37 +02:00
Quentin Hibon
c136f2cafc Remove Debian dependency libappindicator3-1
libappindicator has been deprecated by Debian[0] and will not be shipped from
Debian Bullseye on.

[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037
2021-04-10 22:48:37 +02:00
Travis Ralston
adfa845d9c Merge pull request #181 from vector-im/travis/no-staging
Switch nightly to not-staging Scalar by default
2021-04-07 10:31:18 -06:00
Travis Ralston
017cfd70f4 Switch nightly to not-staging Scalar by default 2021-04-07 10:21:33 -06:00
RiotRobot
d63c27c50a v1.7.25-rc.1 2021-04-07 13:17:54 +01:00
RiotRobot
7edea00d4e Prepare changelog for v1.7.25-rc.1 2021-04-07 13:17:54 +01:00
J. Ryan Stinnett
ce26e7964d Merge pull request #179 from SimonBrandner/disable-spell-check
Fix disabling spellchecker
2021-04-07 12:07:50 +01:00
Tom Van Eyck
14a65fb0af Clarify HardwareMediaKeyHandling disable flag.
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
Signed-off-by: Tom Van Eyck <tom.vaneyck@telenet.be>
2021-04-03 14:26:08 +02:00
Tom Van Eyck
cdbda52d9a Disabled HardwareMediaKeyHandling, fixes vector-im/element-web#15704
Signed-off-by: Tom Van Eyck <tom.vaneyck@telenet.be>
2021-04-02 16:52:30 +02:00
Šimon Brandner
55dffc8c52 Fix disabling spellchecker
This is quite ugly. We have to use the store here to get this working since spellCheckerEnabled isn't persistent

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-02 12:07:33 +02:00
J. Ryan Stinnett
100f08161d Merge pull request #178 from vector-im/jryans/electron-12.0.2
Upgrade to Electron 12.0.2
2021-04-01 17:22:22 +01:00
Germain
d4bf14b47f Merge pull request #177 from vector-im/gsouquet-exit-shortcut 2021-04-01 15:25:57 +01:00
J. Ryan Stinnett
dabca5dc33 Upgrade electron-builder to 22.10.5
This upgrade will help prepare us for macOS aarch64 support
(https://github.com/vector-im/element-web/issues/16075) as well as pulling in
other smaller fixes.
2021-04-01 12:11:56 +01:00
J. Ryan Stinnett
d11a7e77ac Upgrade to Electron 12.0.2
This is a [major release](https://www.electronjs.org/blog/electron-12-0)
upgrade. There are a few breaking changes, but none seem to affect us.

We believe moving to Electron 12 will help with some graphics issues on certain
systems.

Fixes https://github.com/vector-im/element-web/issues/15869
2021-04-01 12:11:56 +01:00
Germain Souquet
adfb4a424a remove unused imports 2021-04-01 09:30:15 +01:00
Germain Souquet
5fc871492e make shortcut pressed variable more explanatory 2021-03-31 17:18:39 +01:00
Germain
3c68fe796f Merge pull request #176 from vector-im/gsouquet-docs
Migrate native-node-modules docs to element-desktop
2021-03-31 12:53:09 +01:00
Germain
a996aff19b Update punctuation for native module docs
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-03-31 12:51:22 +01:00
Germain Souquet
84990559ec Avoid exit listener to hijack other application shortcuts 2021-03-31 08:58:24 +01:00
Germain Souquet
fdf216ca75 Clarify native modules build options 2021-03-30 09:38:19 +01:00
Germain Souquet
f460cfa99a Migrate native-node-modules docs to element-desktop 2021-03-29 16:01:11 +01:00
RiotRobot
d2bc3a8a03 Merge branch 'master' into develop 2021-03-29 13:49:40 +01:00
RiotRobot
6a107f7095 v1.7.24 2021-03-29 13:49:24 +01:00
RiotRobot
ff4ebd4b39 Prepare changelog for v1.7.24 2021-03-29 13:49:24 +01:00
Germain
76eef82274 Merge pull request #173 from vector-im/gsouquet-warn-before-exit 2021-03-29 12:12:27 +01:00
Germain Souquet
d986555517 Only prompt exit warning for keyboard shortcuts 2021-03-29 12:10:27 +01:00
J. Ryan Stinnett
939c5b4588 Merge pull request #172 from vector-im/jryans/electron-11.4.1
Upgrade to Electron 11.4.1
2021-03-26 09:59:56 +00:00
Germain
f51001a460 Merge pull request #174 from vector-im/gsouquet-fix-dockerbuild-typo
Fix docker:build:native documentation typo
2021-03-25 17:38:42 +00:00
Germain
db2fd9dd53 Fix docker:build:native documentation typo 2021-03-25 15:40:47 +00:00
Germain Souquet
3d18ff16d1 Attempt to minimise the window first rather than exiting 2021-03-25 14:50:33 +00:00
Germain Souquet
9cdea580d3 Remove checkbox options for exit dialog 2021-03-25 14:34:02 +00:00
Germain Souquet
68587e84ed Add user settings for warn before exit 2021-03-25 14:15:04 +00:00
J. Ryan Stinnett
58be4c62f7 Upgrade to Electron 11.4.1 2021-03-25 13:57:29 +00:00
Germain Souquet
c9c0ceb757 Add prompt to warn before quitting the application 2021-03-25 12:46:10 +00:00
RiotRobot
a46698559f v1.7.24-rc.1 2021-03-25 12:36:14 +00:00
RiotRobot
c18b213699 Prepare changelog for v1.7.24-rc.1 2021-03-25 12:36:14 +00:00
RiotRobot
b309562244 v1.7.23 2021-03-15 15:05:22 +00:00
RiotRobot
6c6a7d1bd6 Prepare changelog for v1.7.23 2021-03-15 15:05:21 +00:00
RiotRobot
6bff9f9a20 v1.7.23-rc.1 2021-03-11 10:13:06 +00:00
RiotRobot
42139ec30d Prepare changelog for v1.7.23-rc.1 2021-03-11 10:13:05 +00:00
J. Ryan Stinnett
6edc4cb965 Merge pull request #171 from SimonBrandner/fix-disabling-spell-check
Fix disabling spell-checker
2021-03-08 14:11:20 +00:00
Šimon Brandner
121bba1f35 Set an empty array to disable spell-checker
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-03 14:49:07 +01:00
J. Ryan Stinnett
b8adc66898 Merge pull request #154 from SimonBrandner/feature-multi-language-spell-check
Add multi language spell check
2021-03-02 14:38:37 +00:00
RiotRobot
323c42bb72 v1.7.22 2021-03-01 13:28:11 +00:00
RiotRobot
8e51f6299c Prepare changelog for v1.7.22 2021-03-01 13:28:10 +00:00
RiotRobot
888ce434ff v1.7.22-rc.1 2021-02-24 17:44:10 +00:00
RiotRobot
a223489511 Prepare changelog for v1.7.22-rc.1 2021-02-24 17:44:10 +00:00
Šimon Brandner
9ca19d7de6 Use getSpellCheckLanguages() instead of a setting
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 20:12:47 +01:00
Šimon Brandner
dce524f5bc Use try-catch
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 18:39:51 +01:00
Šimon Brandner
48d66c0031 Merge branch 'feature-multi-language-spell-check' of https://github.com/SimonBrandner/element-desktop into feature-multi-language-spell-check 2021-02-18 18:30:37 +01:00
Šimon Brandner
36438479fc Merge branch 'develop' into feature-multi-language-spell-check 2021-02-18 18:25:21 +01:00
Šimon Brandner
f51acb78e0 Update src/electron-main.js
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-02-18 18:05:37 +01:00
RiotRobot
343215925a Merge branch 'master' into develop 2021-02-16 11:24:49 +00:00
RiotRobot
a535efc1cc v1.7.21 2021-02-16 11:24:31 +00:00
RiotRobot
57496d89e5 Prepare changelog for v1.7.21 2021-02-16 11:24:31 +00:00
J. Ryan Stinnett
5dc9ba94ca Merge pull request #169 from vector-im/jryans/disable-countly
Disable Countly
2021-02-11 15:26:55 +00:00
J. Ryan Stinnett
3d519f571f Disable Countly
The Countly experiment has ended, so this removes the configuration to enable
it.
2021-02-11 15:18:45 +00:00
J. Ryan Stinnett
d9702e2f92 Merge pull request #168 from vector-im/jryans/electron-11.2.3
Upgrade to Electron 11.2.3
2021-02-10 20:40:30 +00:00
RiotRobot
23ecc8573d v1.7.21-rc.1 2021-02-10 17:07:33 +00:00
RiotRobot
7199a697f4 Prepare changelog for v1.7.21-rc.1 2021-02-10 17:07:33 +00:00
J. Ryan Stinnett
ecbcafe9ea Upgrade to Electron 11.2.3
No breaking changes, so let's see how this works for a wider audience. In
particular, we'll want to check
https://github.com/vector-im/element-web/issues/15869 again.
2021-02-10 16:52:47 +00:00
David Baker
8828838e8a Merge pull request #161 from SimonBrandner/fix-screen-sharing
Fix desktop Matrix screen sharing
2021-02-08 13:54:57 +00:00
RiotRobot
c7c56f2f97 v1.7.20 2021-02-04 12:42:04 +00:00
RiotRobot
2c619a3a3f Prepare changelog for v1.7.20 2021-02-04 12:42:04 +00:00
RiotRobot
a4f6d68001 v1.7.19 2021-02-03 12:31:40 +00:00
RiotRobot
d4c48f68ec Prepare changelog for v1.7.19 2021-02-03 12:31:40 +00:00
RiotRobot
6ce89b667e v1.7.19-rc.1 2021-01-29 17:40:02 +00:00
RiotRobot
d9bfd239c5 Prepare changelog for v1.7.19-rc.1 2021-01-29 17:40:01 +00:00
RiotRobot
030fe38834 Merge branch 'master' into develop 2021-01-26 12:31:31 +00:00
RiotRobot
70c3446339 v1.7.18 2021-01-26 12:31:13 +00:00
RiotRobot
de0e7483a9 Prepare changelog for v1.7.18 2021-01-26 12:31:13 +00:00
J. Ryan Stinnett
0b01b32e98 Merge pull request #167 from vector-im/jryans/rm-buildkite
Remove Buildkite pipeline file
2021-01-25 12:46:51 +00:00
J. Ryan Stinnett
f7e5d0aa5f Remove Buildkite pipeline file
These are managed from a separate repo now
(https://github.com/matrix-org/pipelines).
2021-01-25 12:37:38 +00:00
J. Ryan Stinnett
21f3847ccc Merge pull request #166 from vector-im/jryans/upgrade-deps-2021-01-18
Upgrade deps 2021-01-18
2021-01-20 10:54:00 +00:00
J. Ryan Stinnett
e826c04c03 Upgrade various misc packages 2021-01-18 15:50:23 +00:00
J. Ryan Stinnett
39404a62e6 Upgrade electron-store 2021-01-18 15:46:07 +00:00
J. Ryan Stinnett
4b7a442a73 Upgrade electron-window-state
This may help with window disappearing issues on monitor change.
2021-01-18 15:43:10 +00:00
J. Ryan Stinnett
6de76f5b02 Upgrade Electron packaging utils 2021-01-18 15:40:58 +00:00
RiotRobot
7058196c25 Merge branch 'master' into develop 2021-01-18 15:26:34 +00:00
RiotRobot
1cd2ce9d34 v1.7.17 2021-01-18 15:26:16 +00:00
RiotRobot
542e2c6891 Prepare changelog for v1.7.17 2021-01-18 15:26:16 +00:00
J. Ryan Stinnett
03ce222464 Merge pull request #165 from vector-im/bump-seshat-release
[Release] package: Bump our seshat version
2021-01-18 10:57:40 +00:00
Damir Jelić
00fd261dc1 package: Bump our seshat version 2021-01-15 13:07:33 +00:00
J. Ryan Stinnett
74ebc6cb22 Merge pull request #164 from vector-im/bump-seshat2
package: Bump our seshat version
2021-01-15 11:45:31 +00:00
Damir Jelić
a64516483b package: Bump our seshat version 2021-01-15 12:18:26 +01:00
Šimon Brandner
44c8f2c30f Merge 'upstream/develop' and use contextBridge
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-01-14 08:31:52 +01:00
J. Ryan Stinnett
faa217c767 Merge pull request #163 from vector-im/jryans/context-isolation
Enable context isolation, bridge expected IPC
2021-01-13 16:50:26 +00:00
J. Ryan Stinnett
5ad0967b07 Enable context isolation, bridge expected IPC
This enables Electron's context isolation mode as recommended in their guidance.
We use the context bridge feature to regain access to only the IPC channels we
expect to have access to.
2021-01-13 15:21:00 +00:00
RiotRobot
cda9f3f190 v1.7.17-rc.1 2021-01-13 13:20:56 +00:00
RiotRobot
2c2addb282 Prepare changelog for v1.7.17-rc.1 2021-01-13 13:20:56 +00:00
J. Ryan Stinnett
19515b614f Merge pull request #162 from vector-im/bump-seshat
package: Bump our Seshat version
2021-01-12 11:48:08 +00:00
Damir Jelić
b646f78897 package: Bump our Seshat version 2021-01-12 12:45:30 +01:00
Šimon Brandner
3b496c362b Don't wait for loaded
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-01-05 19:45:34 +01:00
Šimon Brandner
c4b7e856db Expose desktopCapturer instead of the awfullness
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-26 08:28:35 +01:00
Šimon Brandner
cb1626cb9f Merge branch 'develop' into fix-screen-sharing 2020-12-25 16:28:16 +01:00
Šimon Brandner
a36321b697 Some improvements
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-25 16:24:21 +01:00
Šimon Brandner
353f5b35df Fix screen-sharing
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-25 15:54:13 +01:00
RiotRobot
8ae1a518fa Merge branch 'master' into develop 2020-12-21 17:50:26 +00:00
RiotRobot
edea42e30e v1.7.16 2020-12-21 17:50:09 +00:00
RiotRobot
fafd8fb206 Prepare changelog for v1.7.16 2020-12-21 17:50:09 +00:00
J. Ryan Stinnett
f9e61d09c9 Merge pull request #159 from vector-im/jryans/electron-10.2.0
Upgrade to Electron 10.2.0
2020-12-17 18:53:12 +00:00
J. Ryan Stinnett
974514e2e6 Upgrade to Electron 10.2.0 2020-12-17 12:18:51 +00:00
RiotRobot
b8d0d990bb v1.7.16-rc.1 2020-12-16 16:47:35 +00:00
RiotRobot
ed1b9247c1 Prepare changelog for v1.7.16-rc.1 2020-12-16 16:47:35 +00:00
J. Ryan Stinnett
d3adfe3777 Merge pull request #158 from vector-im/dependabot/npm_and_yarn/ini-1.3.8
Bump ini from 1.3.5 to 1.3.8
2020-12-14 12:17:45 +00:00
dependabot[bot]
d45007cd1b Bump ini from 1.3.5 to 1.3.8
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-12 03:11:34 +00:00
RiotRobot
ed00cfada3 Merge branch 'master' into develop 2020-12-07 13:05:07 +00:00
RiotRobot
3a660b2461 v1.7.15 2020-12-07 13:04:50 +00:00
RiotRobot
c6bbff5ffe Prepare changelog for v1.7.15 2020-12-07 13:04:50 +00:00
J. Ryan Stinnett
fa8aef94af Merge pull request #157 from vector-im/jryans/add-gitter
Add gitter.im to room directory
2020-12-04 11:06:23 +00:00
J. Ryan Stinnett
b7c31f17b5 Add gitter.im to room directory 2020-12-04 11:01:33 +00:00
Šimon Brandner
62b6aa26ff Merge branch 'develop' into feature-multi-language-spell-check 2020-12-03 12:03:56 +01:00
RiotRobot
d69f2a6d44 v1.7.15-rc.1 2020-12-02 15:07:44 +00:00
J. Ryan Stinnett
c1ed8ab377 Merge pull request #156 from vector-im/jryans/electron-10.x-rollback
Revert back to the 10.x series
2020-12-02 12:22:08 +00:00
J. Ryan Stinnett
df1c7f2498 Revert back to the 10.x series
The latest 11.x still exhibits
https://github.com/vector-im/element-web/issues/15869, so let's try the latest
10.x version instead.
2020-12-02 12:17:03 +00:00
Šimon Brandner
0d00f3ea6c Fix more formatting 2020-12-01 20:27:09 +01:00
Šimon Brandner
2ef3c8c1ab Fix formatting 2020-12-01 20:22:51 +01:00
Šimon Brandner
e373c03b2a Cleanup 2020-12-01 20:19:12 +01:00
J. Ryan Stinnett
99c13923ea Merge pull request #155 from vector-im/jryans/electron-11.0.3
Upgrade to Electron 11.0.3
2020-12-01 12:42:52 +00:00
J. Ryan Stinnett
80cb503c48 Upgrade to Electron 11.0.3
We're hoping this may help with frozen window issues in https://github.com/vector-im/element-web/issues/15869.
2020-12-01 12:40:04 +00:00
Šimon Brandner
107efba6f3 Added getAvailableSpellCheckLanguages case 2020-11-29 20:50:57 +01:00
J. Ryan Stinnett
239bab38ca Merge pull request #153 from vector-im/jryans/rebrand-packaged-artifact
Update branding of packaging artifacts
2020-11-25 11:16:57 +00:00
J. Ryan Stinnett
e952b479ac Update branding of packaging artifacts
This updates the names of various packaging and build artifacts to match current
branding.

Part of https://github.com/vector-im/element-web/issues/14896
2020-11-24 12:48:37 +00:00
J. Ryan Stinnett
231ac2bbb9 Merge pull request #152 from vector-im/jryans/electron-11.0.1
Upgrade to Electron 11.0.1
2020-11-23 19:00:25 +00:00
RiotRobot
58543cacc8 v1.7.14 2020-11-23 16:54:03 +00:00
RiotRobot
8582e360b5 Prepare changelog for v1.7.14 2020-11-23 16:54:03 +00:00
J. Ryan Stinnett
0e919f9992 Upgrade to Electron 11.0.1
No breaking changes we need to adjust for as far as I can tell. Tested on macOS
only so far, appears to be working.
2020-11-18 16:56:35 +00:00
RiotRobot
b0a5003eaa v1.7.14-rc.1 2020-11-18 16:38:21 +00:00
RiotRobot
6c0d8d5bda Prepare changelog for v1.7.14-rc.1 2020-11-18 16:38:21 +00:00
J. Ryan Stinnett
302f25054a Merge pull request #151 from EdwardBetts/spelling
Correct spelling mistakes
2020-11-16 13:27:47 +00:00
Edward Betts
82c88ca654 Correct spelling mistakes 2020-11-14 21:54:07 +00:00
RiotRobot
b9b7dcb264 v1.7.13 2020-11-09 16:44:51 +00:00
RiotRobot
90d5612548 Prepare changelog for v1.7.13 2020-11-09 16:44:50 +00:00
RiotRobot
e4583ed752 v1.7.13-rc.1 2020-11-04 14:25:33 +00:00
RiotRobot
20dace2679 Prepare changelog for v1.7.13-rc.1 2020-11-04 14:25:32 +00:00
Michael Telatynski
bc7231fb00 Merge pull request #150 from vector-im/t3chguy/countly
Add countly experiment to develop/nightly configs
2020-10-30 13:09:09 +00:00
Michael Telatynski
270daf1356 Add countly experiment to develop/nightly configs 2020-10-30 10:32:21 +00:00
RiotRobot
4957e9e24f v1.7.12 2020-10-28 15:12:32 +00:00
RiotRobot
7be314caf8 Prepare changelog for v1.7.12 2020-10-28 15:12:32 +00:00
RiotRobot
2b0ec9eb2f v1.7.11 2020-10-26 17:24:28 +00:00
RiotRobot
5220abbfd4 Prepare changelog for v1.7.11 2020-10-26 17:24:28 +00:00
RiotRobot
272f317415 v1.7.11-rc.1 2020-10-21 14:54:46 +01:00
RiotRobot
0023fb25a2 Prepare changelog for v1.7.11-rc.1 2020-10-21 14:54:46 +01:00
RiotRobot
783117fea9 Merge branch 'master' into develop 2020-10-20 11:31:41 +01:00
RiotRobot
4e61aad299 v1.7.10 2020-10-20 11:31:22 +01:00
RiotRobot
94dee7bece Prepare changelog for v1.7.10 2020-10-20 11:31:22 +01:00
Travis Ralston
92f57ca880 Merge pull request #148 from vector-im/dependabot/npm_and_yarn/npm-user-validate-1.0.1
Bump npm-user-validate from 1.0.0 to 1.0.1
2020-10-16 13:40:10 -06:00
dependabot[bot]
7bd70e2eb6 Bump npm-user-validate from 1.0.0 to 1.0.1
Bumps [npm-user-validate](https://github.com/npm/npm-user-validate) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/npm/npm-user-validate/releases)
- [Commits](https://github.com/npm/npm-user-validate/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-16 19:33:28 +00:00
Damir Jelić
8add8d7717 electron-main: Fix some lint issues. 2020-10-13 17:07:39 +02:00
Damir Jelić
1d811b6f4b electron-main: Use keytar to for the seshat passphrase.
This will also change the passphrase for existing setups if no
passphrase is found in the secret store.
2020-10-13 15:59:21 +02:00
Damir Jelić
50a4069893 electron-main: Refactor out the randomArray method. 2020-10-13 15:58:35 +02:00
RiotRobot
14415e2707 Merge branch 'master' into develop 2020-10-12 13:52:44 +01:00
RiotRobot
367dd5640c v1.7.9 2020-10-12 13:52:24 +01:00
RiotRobot
08ee24dfb6 Prepare changelog for v1.7.9 2020-10-12 13:52:23 +01:00
J. Ryan Stinnett
9bb386f2b5 Merge pull request #146 from vector-im/jryans/electron-10.1.3
Upgrade to Electron 10.1.3
2020-10-07 15:24:19 +01:00
J. Ryan Stinnett
0f94667dea Upgrade to Electron 10.1.3 2020-10-07 15:02:51 +01:00
RiotRobot
a71ac70a13 v1.7.9-rc.1 2020-10-07 14:23:43 +01:00
RiotRobot
5a0f686b28 Prepare changelog for v1.7.9-rc.1 2020-10-07 14:23:43 +01:00
poljar
2170e494fb Merge pull request #145 from vector-im/poljar/seshat-bump
package.json: Bump the seshat version.
2020-10-05 18:30:27 +02:00
Damir Jelić
6ced94914f package.json: Bump the seshat version. 2020-10-05 18:23:32 +02:00
Michael Telatynski
5ca16bf2fc Merge pull request #144 from vector-im/t3chguy/fix/15311
Explicitly depend on `request` as webcontents-handler requires it
2020-09-29 13:03:41 +01:00
Michael Telatynski
f56dadd0ad Explicitly depend on request as webcontents-handler requires it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-29 12:53:08 +01:00
J. Ryan Stinnett
215babb081 Merge pull request #143 from vector-im/jryans/upgrade-pti-2020
Upgrade png-to-ico
2020-09-28 16:35:37 +01:00
J. Ryan Stinnett
f71e2bf232 Upgrade png-to-ico
This is a major version upgrade, but seems API compatible for our case. This
helps bring several dependencies up to modern versions.
2020-09-28 16:22:30 +01:00
RiotRobot
b146f50e91 Merge branch 'master' into develop 2020-09-28 16:13:25 +01:00
RiotRobot
e86e784359 v1.7.8 2020-09-28 16:13:06 +01:00
RiotRobot
afd578df71 Prepare changelog for v1.7.8 2020-09-28 16:13:06 +01:00
David Baker
b54ebc9008 Merge pull request #142 from vector-im/dbkr/fix_new_issue_link
Point 'new issue' link at issue-type choice page
2020-09-28 12:52:18 +01:00
David Baker
30d03d64b3 Point 'new issue' link at issue-type choice page
Fixes https://github.com/vector-im/element-web/issues/15289
2020-09-28 11:37:34 +01:00
RiotRobot
e14c43a2fe v1.7.8-rc.1 2020-09-23 15:27:17 +01:00
RiotRobot
8e16b1b5e0 Prepare changelog for v1.7.8-rc.1 2020-09-23 15:27:17 +01:00
J. Ryan Stinnett
161b024bf2 Merge pull request #141 from vector-im/jryans/neon-seshat
Fix neon error by upgrading Seshat
2020-09-21 14:55:17 +01:00
J. Ryan Stinnett
434215b24b Fix neon error by upgrading Seshat 2020-09-21 14:52:26 +01:00
RiotRobot
df958ff56b Merge branch 'master' into develop 2020-09-14 16:05:19 +01:00
RiotRobot
89d4be6cb6 v1.7.7 2020-09-14 16:05:02 +01:00
RiotRobot
e9ecdde704 Prepare changelog for v1.7.7 2020-09-14 16:05:02 +01:00
RiotRobot
0e6ae2514a Merge branch 'master' into develop 2020-09-14 13:45:34 +01:00
RiotRobot
f5b51aecfe v1.7.6 2020-09-14 13:45:15 +01:00
RiotRobot
a88d1a838c Prepare changelog for v1.7.6 2020-09-14 13:45:15 +01:00
RiotRobot
3a3b9641e9 v1.7.6-rc.1 2020-09-09 15:59:31 +01:00
RiotRobot
6e9407e7c1 Prepare changelog for v1.7.6-rc.1 2020-09-09 15:59:31 +01:00
J. Ryan Stinnett
7d3c203464 Merge pull request #140 from vector-im/jryans/electron-10.1.1
Upgrade to Electron 10.1.1
2020-09-09 15:10:26 +01:00
J. Ryan Stinnett
e9b4fb2245 Upgrade to Electron 10.1.1 2020-09-09 14:57:09 +01:00
J. Ryan Stinnett
2382cc56b1 Merge pull request #139 from vector-im/jryans/rename-pipeline
Update to Element pipeline name
2020-09-09 11:10:19 +01:00
J. Ryan Stinnett
b7a2810dc3 Update to Element pipeline name 2020-09-09 11:09:10 +01:00
Travis Ralston
9eb6932f11 Merge pull request #137 from vector-im/dependabot/npm_and_yarn/bl-4.0.3
Bump bl from 4.0.2 to 4.0.3
2020-09-02 10:39:57 -06:00
dependabot[bot]
d1883aa2e8 Bump bl from 4.0.2 to 4.0.3
Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-02 16:24:05 +00:00
RiotRobot
2308ab9a83 v1.7.5 2020-09-01 17:24:09 +01:00
RiotRobot
b33205d607 Prepare changelog for v1.7.5 2020-09-01 17:24:09 +01:00
RiotRobot
df3d37586e v1.7.5-rc.1 2020-08-26 12:17:37 +01:00
RiotRobot
fd68a83c08 Prepare changelog for v1.7.5-rc.1 2020-08-26 12:17:37 +01:00
Travis Ralston
b0f4a4debc Merge pull request #135 from vector-im/travis/settings-v3
Settings v3: Update configs for new feature flag behaviour
2020-08-19 11:56:53 -06:00
Travis Ralston
7fac3a9b7c Update configs for new settings structure 2020-08-17 13:44:17 -06:00
RiotRobot
711967d19b Merge branch 'master' into develop 2020-08-17 12:53:54 +01:00
RiotRobot
e00eb4b952 v1.7.4 2020-08-17 12:53:31 +01:00
RiotRobot
caff0ef9f0 Prepare changelog for v1.7.4 2020-08-17 12:53:31 +01:00
Michael Telatynski
065f5d7adc Merge pull request #134 from vector-im/t3chguy-patch-1
Add reaction preview labs flags to nightly
2020-08-17 11:15:52 +01:00
Michael Telatynski
67f0570af4 Add reaction preview labs flags to nightly 2020-08-17 11:10:11 +01:00
RiotRobot
87125f4c59 v1.7.4-rc.1 2020-08-13 12:04:28 +01:00
RiotRobot
bae3f08936 Prepare changelog for v1.7.4-rc.1 2020-08-13 12:04:28 +01:00
J. Ryan Stinnett
efc8baf1df Merge pull request #132 from vector-im/jryans/rebrand-policy
Update policy links to element.io
2020-08-13 11:30:44 +01:00
J. Ryan Stinnett
c0ca8cd240 Merge pull request #131 from vector-im/jryans/rebrand-rageshakes
Update bug report submission URL
2020-08-10 11:11:42 +01:00
J. Ryan Stinnett
501611fa30 Update policy links to element.io
Part of https://github.com/vector-im/element-web/issues/14904
2020-08-07 11:38:48 +01:00
J. Ryan Stinnett
9d6cd6c7c0 Update bug report submission URL
Part of https://github.com/vector-im/element-web/issues/14892
2020-08-07 10:53:15 +01:00
J. Ryan Stinnett
d67f75779e Merge pull request #130 from vector-im/jryans/new-cert
Update code signing cert for Windows
2020-08-05 19:04:10 +01:00
J. Ryan Stinnett
26f283b56d Update code signing cert for Windows
The existing Windows code signing cert was due to expire 2020-08-23, so this
replaces it with a renewed cert.
2020-08-05 18:59:02 +01:00
RiotRobot
e1b1020700 Merge branch 'master' into develop 2020-08-05 15:34:06 +01:00
RiotRobot
53d46343b8 v1.7.3 2020-08-05 15:33:43 +01:00
RiotRobot
aaddcef169 Prepare changelog for v1.7.3 2020-08-05 15:33:43 +01:00
J. Ryan Stinnett
ba0210f8c1 Merge pull request #129 from vector-im/jryans/riot-to-element
Replace Riot with Element in docs and comments
2020-08-04 10:07:32 +01:00
David Baker
99d1ed4ff1 Merge pull request #128 from vector-im/dbkr/readme_build_order
Fix order of README steps
2020-08-04 08:23:34 +01:00
J. Ryan Stinnett
045f122688 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:32:42 +01:00
David Baker
cbfb247ade Fix order of README steps
to be in the order they needd to be run.
2020-07-31 21:04:54 +01:00
J. Ryan Stinnett
eb4bf9e401 Merge pull request #127 from vector-im/jryans/electron-9.1.2
Upgrade to Electron 9.1.2
2020-07-31 13:20:33 +01:00
RiotRobot
0cdf85e20b v1.7.3-rc.1 2020-07-31 13:18:34 +01:00
RiotRobot
6e455f6bd4 Prepare changelog for v1.7.3-rc.1 2020-07-31 13:18:33 +01:00
J. Ryan Stinnett
0892ea5006 Upgrade to Electron 9.1.2 2020-07-31 12:56:47 +01:00
J. Ryan Stinnett
f344d8cac4 Merge pull request #126 from vector-im/jryans/cleanup-lint
Clean up linting
2020-07-28 18:38:43 +01:00
J. Ryan Stinnett
3decdb060e Remove redundant lint dependencies
We can let the linting package pull these in transitively for us.
2020-07-28 16:56:15 +01:00
J. Ryan Stinnett
92f48eced9 Remove JS SDK, no longer needed for lint rules
The JS SDK was previously only here for the ESLint config, but this is now part
of a separate package.
2020-07-28 16:37:46 +01:00
David Baker
045f6f8b42 Merge pull request #125 from vector-im/dbkr/more_renaming_faff
Update renaming workaround for 'Element' name
2020-07-28 16:16:32 +01:00
David Baker
358e3b8f7d Update rebrand stub to run 'Element.exe' 2020-07-28 16:02:40 +01:00
David Baker
c6ab88508f Remove the Element (Riot) shortcuts too 2020-07-28 15:56:05 +01:00
RiotRobot
a4cbe3acab Reset matrix-js-sdk back to develop branch 2020-07-27 21:11:27 +01:00
RiotRobot
4c7bdb35dd v1.7.2 2020-07-27 21:10:48 +01:00
RiotRobot
5735a0abdd Prepare changelog for v1.7.2 2020-07-27 21:10:48 +01:00
RiotRobot
0e882b80d2 Upgrade matrix-js-sdk to 8.0.0 2020-07-27 21:05:45 +01:00
David Baker
6b75b83c00 Merge pull request #124 from vector-im/dbkr/catch_exceptions_fetch_scripts
Catch exceptions from main method in fetch script
2020-07-23 11:21:47 +01:00
David Baker
d9e8fa34e7 Catch exceptions from main method in fetch script 2020-07-23 11:14:26 +01:00
Jorik Schellekens
300eac197d Merge pull request #122 from vector-im/joriks/eslint-config
Use new eslint package
2020-07-22 16:53:57 +01:00
David Baker
d49625e253 Merge pull request #123 from vector-im/dbkr/remove_bracketed_riot
Remove ' (Riot)' from app name
2020-07-21 18:11:48 +01:00
David Baker
94086f247a Remove ' (Riot)' from app name
And remove the hacks to make the user data path different from the
app name. Also add the profile dir to the legacy user data dir too.

Fixes https://github.com/vector-im/riot-web/issues/14619
Fixes https://github.com/vector-im/riot-web/issues/14623
2020-07-21 17:57:54 +01:00
Jorik Schellekens
422a827b82 Use new eslint package 2020-07-21 15:06:38 +01:00
RiotRobot
f21c1bee11 Reset matrix-js-sdk back to develop branch 2020-07-16 16:13:19 +01:00
RiotRobot
a6c86b131d v1.7.1 2020-07-16 16:12:44 +01:00
RiotRobot
777003d9a3 Prepare changelog for v1.7.1 2020-07-16 16:12:44 +01:00
RiotRobot
72334b8cd4 Upgrade matrix-js-sdk to 7.1.0 2020-07-16 16:12:07 +01:00
J. Ryan Stinnett
5ae86cd728 Merge pull request #121 from vector-im/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-16 14:07:42 +01:00
dependabot[bot]
adf4453903 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 08:55:42 +00:00
David Baker
180710f54c Merge pull request #120 from vector-im/dbkr/userdata_support_nightly
Don't forget nightly when computing userData path
2020-07-16 09:55:09 +01:00
David Baker
afa40de885 Merge pull request #119 from vector-im/dbkr/hostinglink
Fix hosting link
2020-07-16 09:30:38 +01:00
J. Ryan Stinnett
96c9b85e11 Merge pull request #117 from vector-im/neilalexander/icns
New macOS icon
2020-07-15 22:34:58 +01:00
David Baker
9d15c1bbd0 Don't forget nightly when computing userData path
We were assuming we were always 'Element'
2020-07-15 20:21:06 +01:00
David Baker
9004ce4fa5 Merge remote-tracking branch 'origin/develop' into dbkr/hostinglink 2020-07-15 20:16:57 +01:00
David Baker
174aaa684e Apparently this has been changed and should be changed here too 2020-07-15 20:05:43 +01:00
David Baker
583caa0aaa Fix hosting link
Fixes https://github.com/vector-im/riot-web/issues/14500
2020-07-15 20:03:02 +01:00
J. Ryan Stinnett
62736b86f1 Merge pull request #118 from theoryshaw/patch-1
Update README.md
2020-07-15 17:39:50 +01:00
Ryan Schultz
16c6f9839b Update README.md 2020-07-15 11:25:02 -05:00
Neil Alexander
e3e79fdfe1 New macOS icon 2020-07-15 15:52:31 +01:00
David Baker
764835a43c Merge pull request #115 from vector-im/dbkr/update_more_icons
More icon updates
2020-07-15 13:57:56 +01:00
David Baker
769d4cf647 Merge remote-tracking branch 'old-origin/develop' into dbkr/update_more_icons 2020-07-15 13:53:04 +01:00
David Baker
b06bba2c69 More icon updates 2020-07-15 13:50:00 +01:00
David Baker
80746c1f22 Merge pull request #114 from vector-im/dbkr/yarn_install
Don't forget to yarn install
2020-07-15 13:28:51 +01:00
David Baker
c2a39a4a8e Merge remote-tracking branch 'old-origin/develop' into dbkr/yarn_install 2020-07-15 12:55:58 +01:00
David Baker
e7190e3168 Don't forget to yarn install 2020-07-15 12:53:50 +01:00
RiotRobot
78a601fbeb Reset matrix-js-sdk back to develop branch 2020-07-15 12:12:12 +01:00
RiotRobot
6c3edb9a13 v1.7.0 2020-07-15 12:11:21 +01:00
RiotRobot
def85eef19 Prepare changelog for v1.7.0 2020-07-15 12:11:20 +01:00
RiotRobot
b25479093b Upgrade matrix-js-sdk to 7.1.0 2020-07-15 12:08:07 +01:00
David Baker
b839264d9f Merge pull request #113 from vector-im/dbkr/move_function_for_linter
Fix lint error
2020-07-15 11:43:54 +01:00
David Baker
5f01bbd9e0 Fix lint error 2020-07-15 11:41:30 +01:00
J. Ryan Stinnett
71c8ea417d Merge remote-tracking branch 'origin/develop' into element-develop 2020-07-15 10:44:25 +01:00
J. Ryan Stinnett
c2cfed72df Merge branch 'jryans/update-packages' into 'develop'
Update nightly transitional package

See merge request new-vector/element/element-desktop!8
2020-07-15 08:32:28 +00:00
J. Ryan Stinnett
da58f1d3d1 Update nightly transitional package 2020-07-15 09:25:00 +01:00
Jorik Schellekens
735ba9ce75 Merge pull request #112 from vector-im/joriks/delabs-font-scaling
Delabs font-scaling
2020-07-14 22:01:17 +01:00
David Baker
ed9a0a60de Merge branch 'dbkr/windows_rebrand' into 'develop'
Some terribleness to make updating work on windows

See merge request new-vector/element/element-desktop!7
2020-07-14 18:20:01 +00:00
David Baker
3a253fe742 Some terribleness to make updating work on windows
Squirrel doesn't handle the executable changing name, as hopefully
explained in comments
2020-07-14 19:05:28 +01:00
J. Ryan Stinnett
a00d98a95a Merge branch 'jryans/update-brand' into 'develop'
Update brand name in config

See merge request new-vector/element/element-desktop!6
2020-07-13 20:44:27 +00:00
Jorik Schellekens
2cc25f699b Delabs font-scaling 2020-07-13 19:10:59 +01:00
J. Ryan Stinnett
0978a5042c Update brand name in config 2020-07-13 18:40:21 +01:00
David Baker
3e80cdedd8 Merge branch 'dbkr/rebrand_icons' into 'develop'
New icons (expect install spinner)

See merge request new-vector/element/element-desktop!5
2020-07-13 16:12:59 +00:00
David Baker
358fe6f878 New install spinner 2020-07-13 17:10:31 +01:00
David Baker
8c9352dff0 colour profile on 512x512 icon 2020-07-13 16:59:04 +01:00
David Baker
483860fb00 add back the 512x512 icon 2020-07-13 15:57:14 +01:00
David Baker
7f6a2c6a50 Change mac icons to display p3 colourspace
so the logo is the right colour (on wide gamut displays)
2020-07-13 15:15:23 +01:00
Travis Ralston
94b2ac703a Merge pull request #109 from vector-im/travis/room-list/enable
Remove room list labs flag from config
2020-07-13 06:56:19 -06:00
David Baker
332d52cfdc New icons (expect install spinner) 2020-07-13 13:21:21 +01:00
Travis Ralston
e88ef97b87 Merge branch 'develop' into travis/room-list/enable 2020-07-10 21:35:47 -06:00
Jorik Schellekens
c7683d70b4 Merge pull request #111 from vector-im/joriks/delabs-irc-layout
Remove the irc layout setting from labs
2020-07-09 16:20:41 +01:00
Jorik Schellekens
53950e69ad Remove the irc layout setting from labs 2020-07-09 15:59:16 +01:00
David Baker
9d650eacbb Merge branch 'dbkr/add_brackets' into 'develop'
Add old app name in brackets

See merge request new-vector/element/element-desktop!4
2020-07-08 11:01:25 +00:00
Travis Ralston
d9047d7960 Merge pull request #108 from vector-im/travis/update-npm
Update npm to ^6.14.6
2020-07-07 14:49:35 -06:00
Travis Ralston
5e2876649d Update npm to ^6.14.6 2020-07-07 14:48:36 -06:00
Travis Ralston
bed2eb2c41 Remove labs flag from config 2020-07-07 13:58:33 -06:00
David Baker
4a488c9ab2 Add old app name in brackets
And fix user data path to be non-bracketed version always.
2020-07-07 18:57:29 +01:00
David Baker
6cc225059a Merge branch 'dbkr/debian_package_rename' into 'develop'
Rename riot package

See merge request new-vector/element/element-desktop!3
2020-07-03 16:29:14 +00:00
David Baker
2862870bb5 Remove transitional packages from the main control file
because this generated a broken package
2020-07-03 16:14:41 +01:00
RiotRobot
4f844d9a64 Reset matrix-js-sdk back to develop branch 2020-07-03 13:23:36 +01:00
David Baker
197f1dc451 Rename riot package
Add a transitional package which hopefully does the upgrade in the
right way (following https://wiki.debian.org/RenamingPackages
except that adding the transitional package to the new package's
control file make a package that reprepro rejects...)

The transitional packages can be built with:

```
dpkg -b riot-desktop_1.7.0_all
```

The nightly transitional package is named / versioned assuming a
release on Monday the 13th and will need to be edited & renamed
as approriate (it just needs to be greater than whatever the latest
nightly is at that point).
2020-07-03 12:30:01 +01:00
David Baker
fdb02b93e5 Merge branch 'dbkr/rebrand_step_2' into 'develop'
Rebrand step 2

See merge request new-vector/element/element-desktop!2
2020-07-02 14:01:17 +00:00
David Baker
c048dff4de Apply 1 suggestion(s) to 1 file(s) 2020-07-02 13:42:45 +00:00
David Baker
85dd2504db Rebrand step 2
* Continue to use Riot user data directory if it exists and the new
   one doesn't, so users stay logged in.
 * Move the auto-launcher over to new name.
 * Look for keytar password under both names.
2020-07-02 13:30:11 +01:00
David Baker
6d5ada7e3f Merge branch 'dbkr/rebrand_step_1' into 'develop'
Rebrand step 1: s/riot/element/ in the places where it's reasonably simple

See merge request new-vector/element/element-desktop!1
2020-07-01 16:49:46 +00:00
David Baker
72c88c8c87 change domain for fetching key 2020-07-01 17:46:17 +01:00
David Baker
ff84841b52 Apply suggestion to README.md 2020-07-01 16:42:50 +00:00
David Baker
3a2176443c Apply suggestion to README.md 2020-07-01 16:42:39 +00:00
David Baker
5b2139a048 Apply suggestion to README.md 2020-07-01 16:42:24 +00:00
David Baker
386e0be08d This one's easy too 2020-07-01 15:40:23 +01:00
David Baker
466a871094 Rebrand step 1: s/riot/element/ in the places where it's reasonably simple 2020-07-01 15:30:53 +01:00
69 changed files with 4455 additions and 1591 deletions

View File

@@ -1,8 +0,0 @@
steps:
- label: ":eslint: Lint"
command:
- "yarn install"
- "yarn lint"
plugins:
- docker#v3.0.1:
image: "node:10"

View File

@@ -1,5 +1,3 @@
const jsSdkEslintCfg = require('matrix-js-sdk/.eslintrc');
module.exports = {
parserOptions: {
ecmaVersion: 8,
@@ -10,17 +8,15 @@ module.exports = {
// we also have some browser code (ie. the preload script)
browser: true,
},
extends: ["eslint:recommended", "google"],
rules: jsSdkEslintCfg.rules,
extends: ["matrix-org"],
rules: {
// js-sdk uses a babel rule which we can't use because we
// don't use babel, so remove it & put the original back
"babel/no-invalid-this": "off",
"no-invalid-this": "error",
"quotes": "off",
"indent": "off",
"prefer-promise-reject-errors": "off",
"no-async-promise-executor": "off",
}
}
// js-sdk uses a babel rule which we can't use because we
// don't use babel, so remove it & put the original back
delete module.exports.rules["babel/no-invalid-this"];
module.exports.rules["no-invalid-this"] = "error";
// also override the line length to be consistent with
// vector-web / react-sdk rather than js-sdk
module.exports.rules["max-len"] = ["warn", {
code: 120,
}];

View File

@@ -1,3 +1,422 @@
Changes in [1.7.28](https://github.com/vector-im/element-desktop/releases/tag/v1.7.28) (2021-05-17)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.28-rc.1...v1.7.28)
* No changes since rc.1
Changes in [1.7.28-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.28-rc.1) (2021-05-11)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.27...v1.7.28-rc.1)
* Add Windows native module requirements
[\#190](https://github.com/vector-im/element-desktop/pull/190)
* Prevent black screen when closing window while in full screen mode on macOS
[\#192](https://github.com/vector-im/element-desktop/pull/192)
Changes in [1.7.27](https://github.com/vector-im/element-desktop/releases/tag/v1.7.27) (2021-05-10)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.27-rc.1...v1.7.27)
* No changes since rc.1
Changes in [1.7.27-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.27-rc.1) (2021-05-04)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.26...v1.7.27-rc.1)
* Translations update from Weblate
[\#191](https://github.com/vector-im/element-desktop/pull/191)
* Bump ssri from 6.0.1 to 6.0.2
[\#187](https://github.com/vector-im/element-desktop/pull/187)
* Disables HardwareMediaKeyHandling
[\#180](https://github.com/vector-im/element-desktop/pull/180)
* Translations update from Weblate
[\#189](https://github.com/vector-im/element-desktop/pull/189)
* Add internationalisation support
[\#188](https://github.com/vector-im/element-desktop/pull/188)
* Fix event index passphrase change process
[\#186](https://github.com/vector-im/element-desktop/pull/186)
Changes in [1.7.26](https://github.com/vector-im/element-desktop/releases/tag/v1.7.26) (2021-04-26)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.26-rc.1...v1.7.26)
* No changes since rc.1
Changes in [1.7.26-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.26-rc.1) (2021-04-21)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.25...v1.7.26-rc.1)
* Remove Debian dependency libappindicator3-1
[\#170](https://github.com/vector-im/element-desktop/pull/170)
* Fix exit shortcuts for non QWERTY keyboards
[\#185](https://github.com/vector-im/element-desktop/pull/185)
* Fix using yarn run fetch with a specific version
[\#182](https://github.com/vector-im/element-desktop/pull/182)
* Switch nightly to not-staging Scalar by default
[\#181](https://github.com/vector-im/element-desktop/pull/181)
Changes in [1.7.25](https://github.com/vector-im/element-desktop/releases/tag/v1.7.25) (2021-04-12)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.25-rc.1...v1.7.25)
* No changes since rc.1
Changes in [1.7.25-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.25-rc.1) (2021-04-07)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.24...v1.7.25-rc.1)
* Fix disabling spellchecker
[\#179](https://github.com/vector-im/element-desktop/pull/179)
* Upgrade to Electron 12.0.2
[\#178](https://github.com/vector-im/element-desktop/pull/178)
* Avoid exit listener to hijack other application shortcuts
[\#177](https://github.com/vector-im/element-desktop/pull/177)
* Migrate native-node-modules docs to element-desktop
[\#176](https://github.com/vector-im/element-desktop/pull/176)
* Add prompt to warn before quitting the application
[\#173](https://github.com/vector-im/element-desktop/pull/173)
* Upgrade to Electron 11.4.1
[\#172](https://github.com/vector-im/element-desktop/pull/172)
* Fix docker:build:native documentation typo
[\#174](https://github.com/vector-im/element-desktop/pull/174)
Changes in [1.7.24](https://github.com/vector-im/element-desktop/releases/tag/v1.7.24) (2021-03-29)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.24-rc.1...v1.7.24)
* No changes since rc.1
Changes in [1.7.24-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.24-rc.1) (2021-03-25)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.23...v1.7.24-rc.1)
* No changes since 1.7.23
Changes in [1.7.23](https://github.com/vector-im/element-desktop/releases/tag/v1.7.23) (2021-03-15)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.23-rc.1...v1.7.23)
* No changes since rc.1
Changes in [1.7.23-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.23-rc.1) (2021-03-11)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.22...v1.7.23-rc.1)
* Fix disabling spell-checker
[\#171](https://github.com/vector-im/element-desktop/pull/171)
* Add multi language spell check
[\#154](https://github.com/vector-im/element-desktop/pull/154)
Changes in [1.7.22](https://github.com/vector-im/element-desktop/releases/tag/v1.7.22) (2021-03-01)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.22-rc.1...v1.7.22)
* No changes since rc.1
Changes in [1.7.22-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.22-rc.1) (2021-02-24)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.21...v1.7.22-rc.1)
* Disable Countly
[\#169](https://github.com/vector-im/element-desktop/pull/169)
* Upgrade to Electron 11.2.3
[\#168](https://github.com/vector-im/element-desktop/pull/168)
Changes in [1.7.21](https://github.com/vector-im/element-desktop/releases/tag/v1.7.21) (2021-02-16)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.21-rc.1...v1.7.21)
* No changes since rc.1
Changes in [1.7.21-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.21-rc.1) (2021-02-10)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.20...v1.7.21-rc.1)
* Fix desktop Matrix screen sharing
[\#161](https://github.com/vector-im/element-desktop/pull/161)
Changes in [1.7.20](https://github.com/vector-im/element-desktop/releases/tag/v1.7.20) (2021-02-04)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.19...v1.7.20)
* No changes since 1.7.19
Changes in [1.7.19](https://github.com/vector-im/element-desktop/releases/tag/v1.7.19) (2021-02-03)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.19-rc.1...v1.7.19)
* No changes since rc.1
Changes in [1.7.19-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.19-rc.1) (2021-01-29)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.18...v1.7.19-rc.1)
* Remove Buildkite pipeline file
[\#167](https://github.com/vector-im/element-desktop/pull/167)
* Upgrade deps 2021-01-18
[\#166](https://github.com/vector-im/element-desktop/pull/166)
* package: Bump our seshat version
[\#164](https://github.com/vector-im/element-desktop/pull/164)
* Enable context isolation, bridge expected IPC
[\#163](https://github.com/vector-im/element-desktop/pull/163)
Changes in [1.7.18](https://github.com/vector-im/element-desktop/releases/tag/v1.7.18) (2021-01-26)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.17...v1.7.18)
* No changes since 1.7.17
Changes in [1.7.17](https://github.com/vector-im/element-desktop/releases/tag/v1.7.17) (2021-01-18)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.17-rc.1...v1.7.17)
* [Release] package: Bump our seshat version
[\#165](https://github.com/vector-im/element-desktop/pull/165)
Changes in [1.7.17-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.17-rc.1) (2021-01-13)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.16...v1.7.17-rc.1)
* package: Bump our Seshat version
[\#162](https://github.com/vector-im/element-desktop/pull/162)
* Upgrade to Electron 10.2.0
[\#159](https://github.com/vector-im/element-desktop/pull/159)
Changes in [1.7.16](https://github.com/vector-im/element-desktop/releases/tag/v1.7.16) (2020-12-21)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.16-rc.1...v1.7.16)
* No changes since rc.1
Changes in [1.7.16-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.16-rc.1) (2020-12-16)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.15...v1.7.16-rc.1)
* Bump ini from 1.3.5 to 1.3.8
[\#158](https://github.com/vector-im/element-desktop/pull/158)
* Add gitter.im to room directory
[\#157](https://github.com/vector-im/element-desktop/pull/157)
Changes in [1.7.15](https://github.com/vector-im/element-desktop/releases/tag/v1.7.15) (2020-12-07)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.15-rc.1...v1.7.15)
* No changes since rc.1
Changes in [1.7.15-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.15-rc.1) (2020-12-02)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.14...v1.7.15-rc.1)
* No changes since 1.7.14
Changes in [1.7.14](https://github.com/vector-im/element-desktop/releases/tag/v1.7.14) (2020-11-23)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.14-rc.1...v1.7.14)
* No changes since rc.1
Changes in [1.7.14-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.14-rc.1) (2020-11-18)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.13...v1.7.14-rc.1)
* Correct spelling mistakes
[\#151](https://github.com/vector-im/element-desktop/pull/151)
Changes in [1.7.13](https://github.com/vector-im/element-desktop/releases/tag/v1.7.13) (2020-11-09)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.13-rc.1...v1.7.13)
* No changes since rc.1
Changes in [1.7.13-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.13-rc.1) (2020-11-04)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.12...v1.7.13-rc.1)
* Add countly experiment to develop/nightly configs
[\#150](https://github.com/vector-im/element-desktop/pull/150)
Changes in [1.7.12](https://github.com/vector-im/element-desktop/releases/tag/v1.7.12) (2020-10-28)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.11...v1.7.12)
* No changes since 1.7.11
Changes in [1.7.11](https://github.com/vector-im/element-desktop/releases/tag/v1.7.11) (2020-10-26)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.11-rc.1...v1.7.11)
* No changes since rc.1
Changes in [1.7.11-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.11-rc.1) (2020-10-21)
=============================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.10...v1.7.11-rc.1)
* Bump npm-user-validate from 1.0.0 to 1.0.1
[\#148](https://github.com/vector-im/element-desktop/pull/148)
* Use keytar for the seshat passphrase.
[\#147](https://github.com/vector-im/element-desktop/pull/147)
* Upgrade to Electron 10.1.3
[\#146](https://github.com/vector-im/element-desktop/pull/146)
Changes in [1.7.10](https://github.com/vector-im/element-desktop/releases/tag/v1.7.10) (2020-10-20)
===================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.9...v1.7.10)
* No changes since 1.7.9
Changes in [1.7.9](https://github.com/vector-im/element-desktop/releases/tag/v1.7.9) (2020-10-12)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.9-rc.1...v1.7.9)
* No changes since rc.1
Changes in [1.7.9-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.9-rc.1) (2020-10-07)
===========================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.8...v1.7.9-rc.1)
* package.json: Bump the seshat version.
[\#145](https://github.com/vector-im/element-desktop/pull/145)
* Explicitly depend on `request` as webcontents-handler requires it
[\#144](https://github.com/vector-im/element-desktop/pull/144)
* Upgrade png-to-ico
[\#143](https://github.com/vector-im/element-desktop/pull/143)
* Point 'new issue' link at issue-type choice page
[\#142](https://github.com/vector-im/element-desktop/pull/142)
Changes in [1.7.8](https://github.com/vector-im/element-desktop/releases/tag/v1.7.8) (2020-09-28)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.8-rc.1...v1.7.8)
* No changes since rc.1
Changes in [1.7.8-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.8-rc.1) (2020-09-23)
===========================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.7...v1.7.8-rc.1)
* Fix neon error by upgrading Seshat
[\#141](https://github.com/vector-im/element-desktop/pull/141)
* Upgrade to Electron 10.1.1
[\#140](https://github.com/vector-im/element-desktop/pull/140)
Changes in [1.7.7](https://github.com/vector-im/element-desktop/releases/tag/v1.7.7) (2020-09-14)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.6...v1.7.7)
* No changes since 1.7.6
Changes in [1.7.6](https://github.com/vector-im/element-desktop/releases/tag/v1.7.6) (2020-09-14)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.6-rc.1...v1.7.6)
* No changes since rc.1
Changes in [1.7.6-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.6-rc.1) (2020-09-09)
===========================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.5...v1.7.6-rc.1)
* Update to Element pipeline name
[\#139](https://github.com/vector-im/element-desktop/pull/139)
* Bump bl from 4.0.2 to 4.0.3
[\#137](https://github.com/vector-im/element-desktop/pull/137)
Changes in [1.7.5](https://github.com/vector-im/element-desktop/releases/tag/v1.7.5) (2020-09-01)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.5-rc.1...v1.7.5)
* No changes since 1.7.5-rc.1
Changes in [1.7.5-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.5-rc.1) (2020-08-26)
===========================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.4...v1.7.5-rc.1)
* Settings v3: Update configs for new feature flag behaviour
[\#135](https://github.com/vector-im/element-desktop/pull/135)
* Add reaction preview labs flags to nightly
[\#134](https://github.com/vector-im/element-desktop/pull/134)
Changes in [1.7.4](https://github.com/vector-im/element-desktop/releases/tag/v1.7.4) (2020-08-17)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.4-rc.1...v1.7.4)
* No changes since 1.7.4-rc.1
Changes in [1.7.4-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.7.4-rc.1) (2020-08-13)
===========================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.3...v1.7.4-rc.1)
* Update policy links to element.io
[\#132](https://github.com/vector-im/element-desktop/pull/132)
* Update bug report submission URL
[\#131](https://github.com/vector-im/element-desktop/pull/131)
* Update code signing cert for Windows
[\#130](https://github.com/vector-im/element-desktop/pull/130)
* Replace Riot with Element in docs and comments
[\#129](https://github.com/vector-im/element-desktop/pull/129)
* Fix order of README steps
[\#128](https://github.com/vector-im/element-desktop/pull/128)
* Upgrade to Electron 9.1.2
[\#127](https://github.com/vector-im/element-desktop/pull/127)
Changes in [1.7.3](https://github.com/vector-im/element-desktop/releases/tag/v1.7.3) (2020-08-05)
=================================================================================================
[Full Changelog](https://github.com/vector-im/element-desktop/compare/v1.7.3-rc.1...v1.7.3)
* No changes since 1.7.3-rc.1
Changes in [1.7.3-rc.1](https://github.com/vector-im/riot-desktop/releases/tag/v1.7.3-rc.1) (2020-07-31)
========================================================================================================
[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.7.2...v1.7.3-rc.1)
* Clean up linting
[\#126](https://github.com/vector-im/riot-desktop/pull/126)
* Update renaming workaround for 'Element' name
[\#125](https://github.com/vector-im/riot-desktop/pull/125)
Changes in [1.7.2](https://github.com/vector-im/riot-desktop/releases/tag/v1.7.2) (2020-07-27)
==============================================================================================
[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.7.1...v1.7.2)
* Catch exceptions from main method in fetch script
[\#124](https://github.com/vector-im/riot-desktop/pull/124)
* Use new eslint package
[\#122](https://github.com/vector-im/riot-desktop/pull/122)
* Remove ' (Riot)' from app name
[\#123](https://github.com/vector-im/riot-desktop/pull/123)
Changes in [1.7.1](https://github.com/vector-im/riot-desktop/releases/tag/v1.7.1) (2020-07-16)
==============================================================================================
[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.7.0...v1.7.1)
* Bump lodash from 4.17.15 to 4.17.19
[\#121](https://github.com/vector-im/riot-desktop/pull/121)
* Don't forget nightly when computing userData path
[\#120](https://github.com/vector-im/riot-desktop/pull/120)
* Fix hosting link
[\#119](https://github.com/vector-im/riot-desktop/pull/119)
* New macOS icon
[\#117](https://github.com/vector-im/riot-desktop/pull/117)
* Update README.md
[\#118](https://github.com/vector-im/riot-desktop/pull/118)
* More icon updates
[\#115](https://github.com/vector-im/riot-desktop/pull/115)
* Don't forget to yarn install
[\#114](https://github.com/vector-im/riot-desktop/pull/114)
Changes in [1.7.0](https://github.com/vector-im/riot-desktop/releases/tag/v1.7.0) (2020-07-15)
==============================================================================================
[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.8...v1.7.0)
* Fix lint error
[\#113](https://github.com/vector-im/riot-desktop/pull/113)
* Delabs font-scaling
[\#112](https://github.com/vector-im/riot-desktop/pull/112)
* Remove room list labs flag from config
[\#109](https://github.com/vector-im/riot-desktop/pull/109)
* Remove the irc layout setting from labs
[\#111](https://github.com/vector-im/riot-desktop/pull/111)
* Update npm to ^6.14.6
[\#108](https://github.com/vector-im/riot-desktop/pull/108)
Changes in [1.6.8](https://github.com/vector-im/riot-desktop/releases/tag/v1.6.8) (2020-07-03)
==============================================================================================
[Full Changelog](https://github.com/vector-im/riot-desktop/compare/v1.6.8-rc.1...v1.6.8)
@@ -201,7 +620,7 @@ Changes in [1.6.0-rc.1](https://github.com/vector-im/riot-desktop/releases/tag/v
[\#57](https://github.com/vector-im/riot-desktop/pull/57)
* Remove welcome user from config
[\#56](https://github.com/vector-im/riot-desktop/pull/56)
* electron-main: Immediatelly set the eventIndex variable to null when
* electron-main: Immediately set the eventIndex variable to null when
closing.
[\#55](https://github.com/vector-im/riot-desktop/pull/55)
* Enable Seshat on Nightly

102
README.md
View File

@@ -1,23 +1,31 @@
Riot Desktop
============
Element Desktop
===============
This is Riot desktop app as of release 1.6.
Element Desktop is a Matrix client for desktop platforms with Element Web at its core.
Fetching Riot
=============
Since this package is just the Electron wrapper for Riot, it doesn't contain any of the Riot code,
so the first step is to get a working copy of Riot. There are a few ways of doing this:
First Steps
===========
Before you do anything else, fetch the dependencies:
```
# Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version
# fetched will be the same as the local riot-desktop package.
# We're explicitly asking for no config, so the package Riot will have no config.json.
yarn install
```
Fetching Element
================
Since this package is just the Electron wrapper for Element Web, it doesn't contain any of the Element Web code,
so the first step is to get a working copy of Element Web. There are a few ways of doing this:
```
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version
# fetched will be the same as the local element-desktop package.
# We're explicitly asking for no config, so the packaged Element will have no config.json.
yarn run fetch --noverify --cfgdir ''
```
...or if you'd like to use GPG to verify the downloaded package:
```
# Fetch the Riot public key from the riot.im web server over a secure connection and import
# Fetch the Element public key from the element.io web server over a secure connection and import
# it into your local GPG keychain (you'll need GPG installed). You only need to to do this
# once.
yarn run fetch --importkey
@@ -25,18 +33,18 @@ yarn run fetch --importkey
yarn run fetch --cfgdir ''
```
...or either of the above, but fetching a specific version of Riot:
...or either of the above, but fetching a specific version of Element:
```
# Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version
# fetched will be the same as the local riot-desktop package.
# Fetch the prebuilt release Element package from the element-web GitHub releases page. The version
# fetched will be the same as the local element-desktop package.
yarn run fetch --noverify --cfgdir '' v1.5.6
```
If you only want to run the app locally and don't need to build packages, you can
provide the `webapp` directory directly:
```
# Assuming you've checked out and built a copy of riot-web in ../riot-web
ln -s ../riot-web/webapp ./
# Assuming you've checked out and built a copy of element-web in ../element-web
ln -s ../element-web/webapp ./
```
[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]
@@ -44,15 +52,29 @@ ln -s ../riot-web/webapp ./
Building
========
Now you have a copy of Riot, you're ready to build packages. If you'd just like to
run Riot locally, skip to the next section.
Now you have a copy of Element, you're ready to build packages. If you'd just like to
run Element locally, skip to the next section.
If you'd like to build the native modules (for searching in encrypted rooms and
secure storage), do this first. This will take 10 minutes or so, and will
require a number of native tools to be installed, depending on your OS (eg.
rust, tcl, make/nmake). If you don't need these features, you can skip this
step.
```
yarn run build:native
```
On Windows, this will automatically determine the architecture to build for based
on the environment. Make sure that you have all the [tools required to perform the native modules build](docs/windows-requirements.md)
Now you can build the package:
```
yarn run build
```
This will do a couple of things:
* Run the `setversion` script to set the local package version to match whatever
version of Riot you installed above.
version of Element you installed above.
* Run electron-builder to build a package. The package built will match the operating system
you're running the build process on.
@@ -67,16 +89,6 @@ yarn run build64
This build step will not build any native modules.
If you'd like to build the native modules (for searching in encrypted rooms):
This will take 10 minutes or so, and will require a number of native tools
to be installed, depending on your OS (eg. rust, tcl, make/nmake).
```
yarn run build:native
```
On Windows, this will automatically determine the architecture to build for based
on the environment (ie. set up by vcvarsall.bat).
You can also build using docker, which will always produce the linux package:
```
# Run this once to make the docker image
@@ -84,7 +96,7 @@ yarn run docker:setup
yarn run docker:install
# if you want to build the native modules (this will take a while)
yarn run docker:buildnative
yarn run docker:build:native
yarn run docker:build
```
@@ -102,7 +114,7 @@ yarn start
Config
======
If you'd like the packaged Riot to have a configuration file, you can create a
If you'd like the packaged Element to have a configuration file, you can create a
config directory and place `config.json` in there, then specify this directory
with the `--cfgdir` option to `yarn run fetch`, eg:
```
@@ -110,15 +122,15 @@ mkdir myconfig
cp /path/to/my/config.json myconfig/
yarn run fetch --cfgdir myconfig
```
The config dir for the official Riot.im app is in `riot.im`. If you use this,
your app will auto-update itself using builds from Riot.im.
The config dir for the official Element app is in `element.io`. If you use this,
your app will auto-update itself using builds from element.io.
Profiles
========
To run multiple instances of the desktop app for different accounts, you can
launch the executable with the `--profile` argument followed by a unique
identifier, e.g `riot-desktop --profile Work` for it to run a separate profile and
identifier, e.g `element-desktop --profile Work` for it to run a separate profile and
not interfere with the default one.
Alternatively, a custom location for the profile data can be specified using the
@@ -131,5 +143,23 @@ User-specified config.json
+ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
+ `~/Library/Application Support/$NAME/config.json` on macOS
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile
$PROFILE` in which case it becomes `Riot-$PROFILE`.
In the paths above, `$NAME` is typically `Element`, unless you use `--profile
$PROFILE` in which case it becomes `Element-$PROFILE`, or it is using one of
the above created by a pre-1.7 install, in which case it will be `Riot` or
`Riot-$PROFILE`.
Translations
==========================
To add a new translation, head to the [translating doc](https://github.com/vector-im/element-web/blob/develop/docs/translating.md).
For a developer guide, see the [translating dev doc](https://github.com/vector-im/element-web/blob/develop/docs/translating-dev.md).
[<img src="https://translate.element.io/widgets/element-desktop/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.element.io/engage/element-desktop/?utm_source=widget)
Report bugs & give feedback
==========================
If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.
To help avoid duplicate issues, please [view existing issues](https://github.com/vector-im/element-web/issues?q=is%3Aopen+is%3Aissue+sort%3Areactions-%2B1-desc) first (and add a +1) or [create a new issue](https://github.com/vector-im/element-web/issues/new/choose) if you can't find it. Please note that this issue tracker is associated with the [element-web](https://github.com/vector-im/element-web) repo, but is also applied to the code in this repo as well.

View File

Binary file not shown.

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 256 KiB

View File

@@ -0,0 +1,51 @@
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <tchar.h>
/*
* This just runs 'Element.exe' with the same args as
* this process was invoked with. This gets around the fact that
* squirrel always tries to run an executable with the same name,
* so fails to restart if the app's name has changed.
*/
void _tmain( int argc, TCHAR *argv[] )
{
LPSTR myCmdLine = GetCommandLineA();
char cmdLine[32767];
LPSTR cmdLinePos = cmdLine;
LPSTR toRun = "\"Element.exe\" ";
strncpy(cmdLinePos, toRun, strlen(toRun));
cmdLinePos += strlen(toRun);
if (myCmdLine[0] == '"') ++myCmdLine;
myCmdLine += strlen(argv[0]);
if (myCmdLine[0] == '"') ++myCmdLine;
if (myCmdLine[0] == ' ') ++myCmdLine;
strncpy(cmdLinePos, myCmdLine, (cmdLine + 32767) - cmdLinePos);
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (!CreateProcess(NULL,
cmdLine, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ) // Pointer to PROCESS_INFORMATION structure
)
{
printf("CreateProcess failed (%d).\n", GetLastError());
return;
}
}

View File

Binary file not shown.

View File

@@ -0,0 +1,61 @@
# Native Node Modules
For some features, the desktop version of Element can make use of native Node
modules. These allow Element to integrate with the desktop in ways that a browser
cannot.
While native modules enable powerful new features, they must be complied for
each operating system. For official Element releases, we will always build these
modules from source to ensure we can trust the compiled output. In the future,
we may offer a pre-compiled path for those who want to use these features in a
custom build of Element without installing the various build tools required.
Do note that compiling a module for a particular operating system
(Linux/macOS/Windows) will need to be done on that operating system.
Cross-compiling from a host OS for a different target OS may be possible, but
we don't support this flow with Element dependencies at this time.
The process is automated by [vector-im/element-builder](https://github.com/vector-im/element-builder)
when releasing.
The following sections explain the manual steps you can use with a custom build of Element to enable
these features if you'd like to try them out.
It is possible to [build those native modules locally automatically](https://github.com/vector-im/element-desktop#building).
```
yarn run build:native
```
## Adding Seshat for search in E2E encrypted rooms
Seshat is a native Node module that adds support for local event indexing and
full text search in E2E encrypted rooms.
Since Seshat is written in Rust, the Rust compiler and related tools need to be
installed before installing Seshat itself. To install Rust please consult the
official Rust [documentation](https://www.rust-lang.org/tools/install).
Seshat also depends on the SQLCipher library to store its data in encrypted form
on disk. You'll need to install it via your OS package manager.
After installing the Rust compiler and SQLCipher, Seshat support can be added
using yarn at the root of this project:
yarn add matrix-seshat
You will have to rebuild the native libraries against electron's version of
of node rather than your system node, using the `electron-build-env` tool.
This is also needed to when pulling in changes to Seshat using `yarn link`.
yarn add electron-build-env
Recompiling Seshat itself can be done like so:
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release
Please make sure to include all the `--` as well as the `--release` command line
switch at the end. Modify your electron version accordingly depending on the
version that is installed on your system.
After this is done the Electron version of Element can be run from the main folder
as usual using:
yarn start

View File

@@ -0,0 +1,26 @@
# Windows
## Requirements to build native modules
If you want to build native modules, make sure that the following tools are installed on your system.
- [Node 14](https://nodejs.org)
- [Python 3](https://www.python.org/downloads/)
- [Strawberry Perl](https://strawberryperl.com/)
- [Rust](https://rustup.rs/)
- [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019) with the following configuration:
- On the Workloads tab:
- Desktop & Mobile -> C++ build tools
- On the Individual components tab:
- MSVC VS 2019 C++ build tools
- Windows 10 SDK (latest version available)
- C++ CMake tools for Windows
Once installed make sure all those utilities are accessible in your `PATH`.
In order to load all the C++ utilities installed by Visual Studio you can run the following in a terminal window.
```
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
```
You can replace `amd64` with `x86` depending on your CPU architecture.

View File

@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIF8DCCBNigAwIBAgIRAIZSd8hNVs3w8AhJIsQSoYYwDQYJKoZIhvcNAQELBQAw
gZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYD
VQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5n
IENBMB4XDTIwMDczMDAwMDAwMFoXDTIzMDczMDIzNTk1OVowgfMxETAPBgNVBAUT
CDEwODczNjYxMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRl
IE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxDzANBgNVBBEMBlc0IDFRVTEYMBYG
A1UECAwPTG9uZG9uLCBDaXR5IG9mMQ8wDQYDVQQHDAZMb25kb24xJzAlBgNVBAkM
HjE0IFR1cm5oYW0gR3JlZW4sIFRlcnJhY2UgTWV3czEbMBkGA1UECgwSTmV3IFZl
Y3RvciBMaW1pdGVkMRswGQYDVQQDDBJOZXcgVmVjdG9yIExpbWl0ZWQwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKDnGul2M7oCCN+3veGf7yfakSfMjK
Kqeylyo0Nj8dUleNQvsRo0OHxIWJlbHDYglxebT109MqgyASr0SoeiqvXOSSFACD
MYFoyerRGMnXEuomTU0y7+FE3p/hcim8+C5gS+rHr3YaJJuzzXRztjjCBGoY4was
h9V8kYiyMMK0xi2WftOCBa1yYS32CInHIZVmdhzoK4k4YzSYIp57BWvnIUlDyCYk
slNfp0SFbDrOGa7kbmy8HRfWPLjNmW5PPIrsf8LlnVRBfmTeUIJtV31w/FuMjeir
pzYjzooXmpIrj96ecxdc9thP6etCUazvpowjfewu7UNWRUhGPtYn8v8rAgMBAAGj
ggHdMIIB2TAfBgNVHSMEGDAWgBTfj/MgDOnKpgTYW1g3Kj2rRtyDSTAdBgNVHQ4E
FgQUB9su4pCQXE5ZWFhB1eo48992LEcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB
/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZIAYb4QgEBBAQDAgQQMEkG
A1UdIARCMEAwNQYMKwYBBAGyMQECAQYBMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8v
c2VjdGlnby5jb20vQ1BTMAcGBWeBDAEDMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6
Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4dGVuZGVkVmFsaWRhdGlvbkNv
ZGVTaWduaW5nQ0EuY3JsMIGGBggrBgEFBQcBAQR6MHgwUAYIKwYBBQUHMAKGRGh0
dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4dGVuZGVkVmFsaWRhdGlv
bkNvZGVTaWduaW5nQ0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v
ZG9jYS5jb20wJgYDVR0RBB8wHaAbBggrBgEFBQcIA6APMA0MC0dCLTEwODczNjYx
MA0GCSqGSIb3DQEBCwUAA4IBAQBZ8/YtqW/+VUoV8knKpdhMR2uTn8AEyVmfmoZA
Ly5kdCRoKvFm/z4VK4cqF7gsUDxRIgDuMKKbWTtr1FEXuaZkUkOjicNcdYxc0pDn
nFKBWAv5pN5OmnC9cVqIG7PtvD+8bKVzDdQRjpGMy6PY4rN2PYGfQ7KGgddEDD6m
oM51jI/OTvCeU0Tyl0bixKEmpUJvbeQM9Ul2Y1o5Enx1Q9uda8xATb0HCMKgJ+GC
iFHL2DNC3j1xK4QoZEIYgbTscj9rK4OMEov3PT/e1FwQyB5V9xdJ5i1MDBDD9fAf
OiVgf90SffT7TgWUbA4Z+PtQHq/qNma0+dZWyeq7zYn2IIX3
-----END CERTIFICATE-----

6
element.io/README Normal file
View File

@@ -0,0 +1,6 @@
This directory contains the config file for the official element.io distribution
of Element Desktop.
You probably do not want to build with this config unless you're building the
official element.io distribution, or you'll find your builds will replace
themselves with the element.io build.

View File

@@ -0,0 +1,42 @@
{
"update_base_url": "https://packages.riot.im/nightly/update/",
"default_server_name": "matrix.org",
"brand": "Element Nightly",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"showLabsSettings": true,
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://element.io/cookie-policy"
},
"roomDirectory": {
"servers": [
"matrix.org",
"gitter.im"
]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://element.io/privacy",
"text": "Privacy Policy"
},
{
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
]
}

View File

@@ -0,0 +1,12 @@
Package: element-nightly
License: Apache-2.0
Vendor: support@element.io
Architecture: amd64
Maintainer: support@element.io
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0, libsqlcipher0
Recommends: libappindicator3-1
Section: net
Priority: extra
Homepage: https://element.io/
Description:
riot.im A feature-rich client for Matrix.org (nightly unstable build).

View File

@@ -0,0 +1,9 @@
Package: riot-nightly
Version: 2020071502
Depends: element-nightly
Maintainer: packages@element.io
Architecture: all
Priority: optional
Section: oldlibs
Description: transitional package
This is a transitional package. It can safely be removed.

View File

@@ -1,7 +1,7 @@
{
"update_base_url": "https://packages.riot.im/desktop/update/",
"default_server_name": "matrix.org",
"brand": "Riot",
"brand": "Element",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
@@ -11,17 +11,19 @@
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"roomDirectory": {
"servers": [
"matrix.org"
"matrix.org",
"gitter.im"
]
},
"showLabsSettings": false,
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
"policyUrl": "https://element.io/cookie-policy"
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
@@ -29,11 +31,11 @@
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"url": "https://element.io/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/legal/riot-im-cookie-policy",
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
]

View File

@@ -0,0 +1,14 @@
Package: element-desktop
License: Apache-2.0
Vendor: support@element.io
Architecture: amd64
Maintainer: support@element.io
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0, libsqlcipher0
Recommends: libappindicator3-1
Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)
Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0)
Section: net
Priority: extra
Homepage: https://element.io/
Description:
A feature-rich client for Matrix.org

View File

@@ -0,0 +1,9 @@
Package: riot-desktop
Version: 1.7.0
Depends: element-desktop
Maintainer: packages@element.io
Architecture: all
Priority: optional
Section: oldlibs
Description: transitional package
This is a transitional package. It can safely be removed.

View File

@@ -1,17 +1,20 @@
{
"name": "riot-desktop",
"productName": "Riot",
"name": "element-desktop",
"productName": "Element",
"main": "src/electron-main.js",
"version": "1.6.8",
"version": "1.7.28",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"author": "Element",
"repository": {
"type": "git",
"url": "https://github.com/vector-im/riot-desktop"
"url": "https://github.com/vector-im/element-desktop"
},
"license": "Apache-2.0",
"files": [],
"scripts": {
"i18n": "matrix-gen-i18n",
"prunei18n": "matrix-prune-i18n",
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
"mkdirs": "mkdirp packages deploys",
"fetch": "yarn run mkdirs && node scripts/fetch-package.js",
"asar-webapp": "asar p webapp webapp.asar",
@@ -21,7 +24,7 @@
"build32": "electron-builder --ia32",
"build64": "electron-builder --x64",
"build": "electron-builder",
"docker:setup": "docker build -t riot-desktop-dockerbuild dockerbuild",
"docker:setup": "docker build -t element-desktop-dockerbuild dockerbuild",
"docker:build:native": "scripts/in-docker.sh yarn run hak",
"docker:build": "scripts/in-docker.sh yarn run build",
"docker:install": "scripts/in-docker.sh yarn install",
@@ -30,40 +33,41 @@
"hak": "node scripts/hak/index.js"
},
"dependencies": {
"auto-launch": "^5.0.1",
"electron-store": "^2.0.0",
"electron-window-state": "^4.1.0",
"auto-launch": "^5.0.5",
"counterpart": "^0.18.6",
"electron-store": "^6.0.1",
"electron-window-state": "^5.0.3",
"minimist": "^1.2.3",
"png-to-ico": "^1.0.2"
"png-to-ico": "^2.1.1",
"request": "^2.88.2"
},
"devDependencies": {
"asar": "^2.0.1",
"electron-builder": "^22.7.0",
"electron-builder-squirrel-windows": "^22.7.0",
"electron-devtools-installer": "^2.2.4",
"electron-notarize": "^0.2.0",
"eslint": "^5.8.0",
"eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.2",
"electron-builder": "22.10.5",
"electron-builder-squirrel-windows": "22.10.5",
"electron-devtools-installer": "^3.1.1",
"electron-notarize": "^1.0.0",
"eslint": "7.3.1",
"eslint-config-matrix-org": "^0.1.2",
"find-npm-prefix": "^1.0.2",
"fs-extra": "^8.1.0",
"glob": "^7.1.6",
"matrix-js-sdk": "7.1.0",
"matrix-web-i18n": "github:matrix-org/matrix-web-i18n",
"mkdirp": "^1.0.3",
"needle": "^2.5.0",
"node-pre-gyp": "^0.15.0",
"npm": "^6.13.7",
"npm": "^6.14.11",
"rimraf": "^3.0.2",
"semver": "^7.1.3",
"tar": "^6.0.1"
"semver": "^7.3.4",
"tar": "^6.1.0"
},
"hakDependencies": {
"matrix-seshat": "^2.1.0",
"matrix-seshat": "^2.2.3",
"keytar": "^5.6.0"
},
"build": {
"appId": "im.riot.app",
"electronVersion": "9.0.5",
"electronVersion": "12.0.2",
"files": [
"package.json",
{
@@ -82,9 +86,9 @@
"linux": {
"target": "deb",
"category": "Network;InstantMessaging;Chat",
"maintainer": "support@riot.im",
"maintainer": "support@element.io",
"desktop": {
"StartupWMClass": "riot"
"StartupWMClass": "element"
}
},
"mac": {
@@ -100,12 +104,13 @@
"directories": {
"output": "dist"
},
"afterPack": "scripts/electron_afterPack",
"afterSign": "scripts/electron_afterSign",
"protocols": [
{
"name": "riot",
"name": "element",
"schemes": [
"riot"
"element"
]
}
]

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Script to perform a release of riot-desktop.
# Script to perform a release of element-desktop.
#
# Requires githib-changelog-generator; to install, do
# pip install git+https://github.com/matrix-org/github-changelog-generator.git
@@ -9,52 +9,4 @@ set -e
cd `dirname $0`
for i in matrix-js-sdk
do
echo "Checking version of $i..."
depver=`cat package.json | jq -r .devDependencies[\"$i\"]`
latestver=`yarn info -s $i dist-tags.next`
if [ "$depver" != "$latestver" ]
then
echo "The latest version of $i is $latestver but package.json depends on $depver."
echo -n "Type 'u' to auto-upgrade, 'c' to continue anyway, or 'a' to abort:"
read resp
if [ "$resp" != "u" ] && [ "$resp" != "c" ]
then
echo "Aborting."
exit 1
fi
if [ "$resp" == "u" ]
then
echo "Upgrading $i to $latestver..."
yarn add -ED $i@$latestver
git add -u
# The `-e` flag opens the editor and gives you a chance to check
# the upgrade for correctness.
git commit -m "Upgrade $i to $latestver" -e
fi
fi
done
./node_modules/matrix-js-sdk/release.sh -n -z "$@"
release="${1#v}"
prerelease=0
# We check if this build is a prerelease by looking to
# see if the version has a hyphen in it. Crude,
# but semver doesn't support postreleases so anything
# with a hyphen is a prerelease.
echo $release | grep -q '-' && prerelease=1
if [ $prerelease -eq 0 ]
then
# For a release, reset SDK deps back to the `develop` branch.
for i in matrix-js-sdk
do
echo "Resetting $i to develop branch..."
yarn add -D github:matrix-org/$i#develop
git add -u
git commit -m "Reset $i back to develop branch"
done
git push origin develop
fi

BIN
res/img/element.ico Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
res/img/element.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,34 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIF0jCCBLqgAwIBAgIRAISYBqZi3VvCUeSfHXF+cbwwDQYJKoZIhvcNAQELBQAw
gZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYD
VQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5n
IENBMB4XDTE3MDgyMzAwMDAwMFoXDTIwMDgyMjIzNTk1OVowgdgxETAPBgNVBAUT
CDEwODczNjYxMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRl
IE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxETAPBgNVBBEMCFdDMVIgNEFHMQ8w
DQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjEbMBkGA1UECQwSMjYgUmVk
IExpb24gU3F1YXJlMRcwFQYDVQQKDA5OZXcgVmVjdG9yIEx0ZDEXMBUGA1UEAwwO
TmV3IFZlY3RvciBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7
X0HP3oM/SVr6PboD03ndtYTONZDcJ/GJ3EyYi6UNrcbKjuDHwPktx9hjAhNjcVkG
lmuTEPluPj9DbvjaTrers0cQsAS1vJ0RHjLfA93Flg1ys9Q6OThUMw77FtFPtiJU
z5cSYzfFAhn/4dv7BcgGptn+Mv/8CaTu+RUZJUgoSlRWcT1TREmxkzWotbblqsHO
zjDmUg20tL5/qpt6BSWsNespf5udKQFXMtqkczBcLvBLmql0vurVcQy8BibB+Q89
QKwRzwLgaIa7O8WEssFcW8uJe9s0SNtUy8ehbuoSxpA/DbHFwsiDbNA78vp7HrqM
qY6t6OIgLtDYBFCfe/btAgMBAAGjggHaMIIB1jAfBgNVHSMEGDAWgBTfj/MgDOnK
pgTYW1g3Kj2rRtyDSTAdBgNVHQ4EFgQUH+mDOdRkF3bYDxCWEaGB4lxiCxcwDgYD
VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
EQYJYIZIAYb4QgEBBAQDAgQQMEYGA1UdIAQ/MD0wOwYMKwYBBAGyMQECAQYBMCsw
KQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMFUGA1Ud
HwROMEwwSqBIoEaGRGh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQUV4
dGVuZGVkVmFsaWRhdGlvbkNvZGVTaWduaW5nQ0EuY3JsMIGGBggrBgEFBQcBAQR6
MHgwUAYIKwYBBQUHMAKGRGh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JT
QUV4dGVuZGVkVmFsaWRhdGlvbkNvZGVTaWduaW5nQ0EuY3J0MCQGCCsGAQUFBzAB
hhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wJgYDVR0RBB8wHaAbBggrBgEFBQcI
A6APMA0MC0dCLTEwODczNjYxMA0GCSqGSIb3DQEBCwUAA4IBAQBJ2aH4aixh0aiz
4WKlK+LMVLHpQ2POE3FZYNpAW7o1q2YDGEADXdGrygPE9NCGNBXKo0CAemCYNWfX
Ov/jdoiMfeqW3vrZ66oEy8OqbvJSwK1xmomWuYw3wYPWcPVG+YbWYD2CGdQu8jTz
fzAJCpvAuY3Wji3fQjiecAC7JCSB4fBHa0ALJOmiSqKQUUpkXs5kW7O0lPBnHzNF
2tQGltXMSIrq1QfFtcreMyKlwDOxPIh360dv5aHhaeSRDRKxq7uq5ikQF2gjKx4k
ieg2HRbAW6fVPpFr4zRS5umpeZV3i06i11VQQPS/mA/OBEXyaqzx4mr6B7U6ptrp
jMqiUv2w
-----END CERTIFICATE-----

View File

@@ -1,6 +0,0 @@
This directory contains the config file for the official riot.im distribution
of Riot Desktop.
You probably do not want to build with this config unless you're building the
official riot.im distribution, or you'll find your builds will replace
themselves with the riot.im build.

View File

@@ -1,56 +0,0 @@
{
"update_base_url": "https://packages.riot.im/nightly/update/",
"default_server_name": "matrix.org",
"brand": "Riot Nightly",
"integrations_ui_url": "https://scalar-staging.vector.im/",
"integrations_rest_url": "https://scalar-staging.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
"feature_new_spinner": "labs",
"feature_pinning": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_state_counters": "labs",
"feature_many_integration_managers": "labs",
"feature_mjolnir": "labs",
"feature_dm_verification": "labs",
"feature_bridge_state": "labs",
"feature_presence_in_room_list": "labs",
"feature_custom_themes": "labs",
"feature_new_room_list": "labs",
"feature_irc_ui": "labs",
"feature_font_scaling": "labs"
},
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
},
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/legal/riot-im-cookie-policy",
"text": "Cookie Policy"
}
]
}

View File

@@ -1,11 +0,0 @@
Package: riot-nightly
License: Apache-2.0
Vendor: support@riot.im
Architecture: amd64
Maintainer: support@riot.im
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libappindicator3-1, libsecret-1-0, libsqlcipher0
Section: net
Priority: extra
Homepage: https://riot.im/
Description:
A feature-rich client for Matrix.org (nightly unstable build).

View File

@@ -1,13 +0,0 @@
Package: riot-desktop
License: Apache-2.0
Vendor: support@riot.im
Architecture: amd64
Maintainer: support@riot.im
Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libappindicator3-1, libsecret-1-0, libsqlcipher0
Provides: riot-web
Replaces: riot-web
Section: net
Priority: extra
Homepage: https://riot.im/
Description:
A feature-rich client for Matrix.org

View File

@@ -2,12 +2,4 @@
set -ex
scripts/fetchdep.sh matrix-org matrix-js-sdk
pushd matrix-js-sdk
yarn link
yarn install $@
popd
yarn link matrix-js-sdk
yarn install $@

View File

@@ -1,170 +0,0 @@
#!/bin/bash
usage() {
echo "Usage: $0 -v <version> -d <config directory> [-n]"
echo
echo "version: commit-ish to check out and build"
echo "config directory: a path to a directory containing"
echo "config.json, a json config file to ship with the build"
echo "and env.sh, a file to source environment variables"
echo "from."
echo "-n: build with no config file."
echo
echo "The update_base_url value from config.json is used to set up auto-update."
echo
echo "Environment variables:"
echo " OSSLSIGNCODE_SIGNARGS: Arguments to pass to osslsigncode when signing"
echo " NOTARIZE_APPLE_ID: Apple ID to use for notarisation. The password for"
echo " this account must be set in NOTARIZE_CREDS in the keychain."
}
confdir=
version=
skipcfg=0
while getopts "d:v:n" opt; do
case $opt in
d)
confdir=$OPTARG
;;
v)
version=$OPTARG
;;
n)
skipcfg=1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
usage
exit
;;
esac
done
if [ -z "$version" ]; then
echo "No version supplied"
usage
exit
fi
conffile="$confdir/config.json"
if [ -z "$conffile" ] && [ "$skipcfg" = 0 ]; then
echo "No config file given. Use -c to supply a config file or"
echo "-n to build with no config file (and no auto update)."
exit
fi
if [ -n "$conffile" ]; then
update_base_url=`jq -r .update_base_url $conffile`
if [ -z "$update_base_url" ]; then
echo "No update URL supplied. Use update_base_url: null if you really"
echo "want a build with no auto-update."
usage
exit
fi
# Make sure the base URL ends in a slash if it doesn't already
update_base_url=`echo $update_base_url | sed -e 's#\([^\/]\)$#\1\/#'`
fi
if [ ! -f package.json ]; then
echo "No package.json found. This script must be run from"
echo "the riot-web directory."
exit
fi
[ -f "$confdir/env.sh" ] && . "$confdir/env.sh"
if [ -z "$NOTARIZE_APPLE_ID" ]; then
echo "NOTARIZE_APPLE_ID is not set"
exit
fi
osslsigncode -h 2> /dev/null
if [ $? -ne 255 ]; then # osslsigncode exits with 255 after printing usage...
echo "osslsigncode not found"
exit
fi
# Test that altool can get its credentials for notarising the mac app
xcrun altool -u "$NOTARIZE_APPLE_ID" -p '@keychain:NOTARIZE_CREDS' --list-apps || exit
# Get the token password: we'll need it later, but get it now so we fail early if it's not there
token_password=`security find-generic-password -s riot_signing_token -w`
if [ $? -ne 0 ]; then
echo "riot_signing_token not found in keychain"
exit
fi
set -e
echo "Building $version using Update base URL $update_base_url"
projdir=`pwd`
builddir=`mktemp -d 2>/dev/null || mktemp -d -t 'buildtmp'`
pushd "$builddir"
git clone "$projdir" .
git checkout "$version"
# Figure out what version we're building
vername=`jq -r .version package.json`
if [ -n "$conffile" ]; then
popd
cp "$conffile" "$builddir/"
pushd "$builddir"
fi
# We use Git branch / commit dependencies for some packages, and Yarn seems
# to have a hard time getting that right. See also
# https://github.com/yarnpkg/yarn/issues/4734. As a workaround, we clean the
# global cache here to ensure we get the right thing.
yarn cache clean
yarn install
yarn build:electron
popd
distdir="$builddir/electron_app/dist"
pubdir="$projdir/electron_app/pub"
rm -r "$pubdir" || true
mkdir -p "$pubdir"
rm -r "$projdir/electron_app/dist" || true
mkdir -p "$projdir/electron_app/dist"
# Install packages: what the user downloads the first time,
# (DMGs for mac, exe installer for windows)
mkdir -p "$pubdir/install/macos"
cp $distdir/*.dmg "$pubdir/install/macos/"
mkdir -p "$pubdir/install/win32/ia32/"
cp $distdir/squirrel-windows-ia32/*.exe "$pubdir/install/win32/ia32/"
mkdir -p "$pubdir/install/win32/x64/"
cp $distdir/squirrel-windows/*.exe "$pubdir/install/win32/x64/"
# Packages for auto-update
mkdir -p "$pubdir/update/macos"
cp $distdir/*-mac.zip "$pubdir/update/macos/"
echo "$vername" > "$pubdir/update/macos/latest"
mkdir -p "$pubdir/update/win32/ia32/"
cp $distdir/squirrel-windows-ia32/*.nupkg "$pubdir/update/win32/ia32/"
cp $distdir/squirrel-windows-ia32/RELEASES "$pubdir/update/win32/ia32/"
mkdir -p "$pubdir/update/win32/x64/"
cp $distdir/squirrel-windows/*.nupkg "$pubdir/update/win32/x64/"
cp $distdir/squirrel-windows/RELEASES "$pubdir/update/win32/x64/"
# Move the deb to the main project dir's dist folder
# (just the 64 bit one - the 32 bit one still gets built because
# it's one arch argument for all platforms and we still want 32 bit
# windows, but 32 bit linux is unsupported as of electron 4 and no
# longer appears to work).
cp $distdir/*_amd64.deb "$projdir/electron_app/dist/"
rm -rf "$builddir"
echo "$pubdir can now be hosted on your web server."
echo "deb archives are in electron_app/dist/ - these should be added into your debian repository"

View File

@@ -0,0 +1,15 @@
const fsProm = require('fs').promises;
const path = require('path');
exports.default = async function(context) {
const { electronPlatformName, appOutDir } = context;
// Squirrel windows will try to relaunch the app using an executable of the same name as
// before in the new version, so will fail if the executable is now called something else.
// We add a fake Riot.exe that it can run which runs the real one.
// This also gets signed automatically, presumably because electron-build just looks for all
// exe files and signs them all...
if (electronPlatformName === 'win32') {
await fsProm.copyFile('build/rebrand_stub/rebrand_stub.exe', path.join(appOutDir, "Riot.exe"));
}
};

View File

@@ -24,7 +24,7 @@ function computeSignToolArgs(options, keyContainer) {
// so we don't have to hard-code this here
// fwiw https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing
// is about the most useful resource on automating code signing...
args.push('/f', 'riot.im\\New_Vector_Ltd.pem');
args.push('/f', 'element.io\\New_Vector_Ltd.pem');
if (options.hash !== "sha1") {
args.push("/fd", options.hash);

View File

@@ -11,15 +11,15 @@ const needle = require('needle');
const riotDesktopPackageJson = require('../package.json');
const PUB_KEY_URL = "https://packages.riot.im/riot-release-key.asc";
const PACKAGE_URL_PREFIX = "https://github.com/vector-im/riot-web/releases/download/";
const PUB_KEY_URL = "https://packages.riot.im/element-release-key.asc";
const PACKAGE_URL_PREFIX = "https://github.com/vector-im/element-web/releases/download/";
const ASAR_PATH = 'webapp.asar';
const {setPackageVersion, setDebVersion} = require('./set-version.js');
const {setPackageVersion} = require('./set-version.js');
async function getLatestDevelopUrl(bkToken) {
const buildsResult = await needle('get',
"https://api.buildkite.com/v2/organizations/matrix-dot-org/pipelines/riot-web/builds",
"https://api.buildkite.com/v2/organizations/matrix-dot-org/pipelines/element-web/builds",
{
branch: 'develop',
state: 'passed',
@@ -55,7 +55,7 @@ async function getLatestDevelopUrl(bkToken) {
let dlUrl;
let dlFilename;
for (const artifact of artifactsResult.body) {
if (artifact.filename && /^riot-.*\.tar.gz$/.test(artifact.filename)) {
if (artifact.filename && /^element-.*\.tar.gz$/.test(artifact.filename)) {
dlUrl = artifact.download_url;
dlFilename = artifact.filename;
break;
@@ -149,7 +149,7 @@ async function main() {
if (targetVersion === undefined) {
targetVersion = 'v' + riotDesktopPackageJson.version;
filename = 'riot-' + targetVersion + '.tar.gz';
filename = 'element-' + targetVersion + '.tar.gz';
url = PACKAGE_URL_PREFIX + targetVersion + '/' + filename;
} else if (targetVersion === 'develop') {
const buildKiteApiKey = process.env.BUILDKITE_API_KEY;
@@ -164,7 +164,7 @@ async function main() {
[filename, url] = await getLatestDevelopUrl(buildKiteApiKey);
verify = false; // develop builds aren't signed
} else {
filename = 'riot-' + targetVersion + '.tar.gz';
filename = 'element-' + targetVersion + '.tar.gz';
url = PACKAGE_URL_PREFIX + targetVersion + '/' + filename;
setVersion = true;
}
@@ -283,10 +283,9 @@ async function main() {
const semVer = targetVersion.slice(1);
console.log("Updating version to " + semVer);
await setPackageVersion(semVer);
await setDebVersion(semVer);
}
console.log("Done!");
}
main().then((ret) => process.exit(ret));
main().then((ret) => process.exit(ret)).catch(e => process.exit(1));

View File

@@ -1,7 +1,7 @@
hak
===
This tool builds native dependencies for riot-desktop. Here follows some very minimal
This tool builds native dependencies for element-desktop. Here follows some very minimal
documentation for it.
Goals:

View File

@@ -1,8 +1,8 @@
#!/bin/bash
docker inspect riot-desktop-dockerbuild 2> /dev/null > /dev/null
docker inspect element-desktop-dockerbuild 2> /dev/null > /dev/null
if [ $? != 0 ]; then
echo "Docker image riot-desktop-dockerbuild not found. Have you run yarn run docker:setup?"
echo "Docker image element-desktop-dockerbuild not found. Have you run yarn run docker:setup?"
exit 1
fi
@@ -17,4 +17,4 @@ docker run --rm -ti \
-v ${PWD}/docker/.gnupg:/root/.gnupg \
-v ~/.cache/electron:/root/.cache/electron \
-v ~/.cache/electron-builder:/root/.cache/electron-builder \
riot-desktop-dockerbuild "$@"
element-desktop-dockerbuild "$@"

View File

@@ -22,10 +22,10 @@ cp $confdir/conf_distributions $repodir/conf/distributions
pushd $repodir
for i in `cat conf/distributions | grep Codename | cut -d ' ' -f 2`
do
reprepro includedeb $i $distdir/riot-desktop_${ver}_amd64.deb
reprepro includedeb $i $distdir/element-desktop_${ver}_amd64.deb
done
tar cvzf $distdir/riot-desktop_repo_$ver.tar.gz .
tar cvzf $distdir/element-desktop_repo_$ver.tar.gz .
popd

View File

@@ -1,9 +1,8 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2018, 2019 New Vector Ltd
Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2018 - 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -28,12 +27,14 @@ const argv = require('minimist')(process.argv, {
alias: {help: "h"},
});
const {app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol} = require('electron');
const {
app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol, dialog,
} = require('electron');
const AutoLaunch = require('auto-launch');
const path = require('path');
const tray = require('./tray');
const vectorMenu = require('./vectormenu');
const buildMenuTemplate = require('./vectormenu');
const webContentsHandler = require('./webcontents-handler');
const updater = require('./updater');
const {getProfileFromDeeplink, protocolInit, recordSSOSession} = require('./protocol');
@@ -56,13 +57,13 @@ try {
}
}
const { _t, AppLocalization } = require('./language-helper');
let seshatSupported = false;
let Seshat;
let SeshatRecovery;
let ReindexError;
const seshatPassphrase = "DEFAULT_PASSPHRASE";
try {
const seshatModule = require('matrix-seshat');
Seshat = seshatModule.Seshat;
@@ -85,6 +86,7 @@ let vectorConfig;
let iconPath;
let trayConfig;
let launcher;
let appLocalization;
if (argv["help"]) {
console.log("Options:");
@@ -99,15 +101,43 @@ if (argv["help"]) {
app.exit();
}
// Electron creates the user data directory (with just an empty 'Dictionaries' directory...)
// as soon as the app path is set, so pick a random path in it that must exist if it's a
// real user data directory.
function isRealUserDataDir(d) {
return fs.existsSync(path.join(d, 'IndexedDB'));
}
// check if we are passed a profile in the SSO callback url
let userDataPath;
const userDataPathInProtocol = getProfileFromDeeplink(argv["_"]);
if (userDataPathInProtocol) {
app.setPath('userData', userDataPathInProtocol);
userDataPath = userDataPathInProtocol;
} else if (argv['profile-dir']) {
app.setPath('userData', argv['profile-dir']);
} else if (argv['profile']) {
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
userDataPath = argv['profile-dir'];
} else {
let newUserDataPath = app.getPath('userData');
if (argv['profile']) {
newUserDataPath += '-' + argv['profile'];
}
const newUserDataPathExists = isRealUserDataDir(newUserDataPath);
let oldUserDataPath = path.join(app.getPath('appData'), app.getName().replace('Element', 'Riot'));
if (argv['profile']) {
oldUserDataPath += '-' + argv['profile'];
}
const oldUserDataPathExists = isRealUserDataDir(oldUserDataPath);
console.log(newUserDataPath + " exists: " + (newUserDataPathExists ? 'yes' : 'no'));
console.log(oldUserDataPath + " exists: " + (oldUserDataPathExists ? 'yes' : 'no'));
if (!newUserDataPathExists && oldUserDataPathExists) {
console.log("Using legacy user data path: " + oldUserDataPath);
userDataPath = oldUserDataPath;
} else {
userDataPath = newUserDataPath;
}
}
app.setPath('userData', userDataPath);
async function tryPaths(name, root, rawPaths) {
// Make everything relative to root
@@ -154,7 +184,7 @@ async function setupGlobals() {
vectorConfig = require(asarPath + 'config.json');
} catch (e) {
// it would be nice to check the error code here and bail if the config
// is unparseable, but we get MODULE_NOT_FOUND in the case of a missing
// is unparsable, but we get MODULE_NOT_FOUND in the case of a missing
// file or invalid json, so node is just very unhelpful.
// Continue with the defaults (ie. an empty config)
vectorConfig = {};
@@ -182,16 +212,16 @@ async function setupGlobals() {
// The tray icon
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
const iconFile = `element.${process.platform === 'win32' ? 'ico' : 'png'}`;
iconPath = path.join(resPath, "img", iconFile);
trayConfig = {
icon_path: iconPath,
brand: vectorConfig.brand || 'Riot',
brand: vectorConfig.brand || 'Element',
};
// launcher
launcher = new AutoLaunch({
name: vectorConfig.brand || 'Riot',
name: vectorConfig.brand || 'Element',
isHidden: true,
mac: {
useLaunchAgent: true,
@@ -199,6 +229,25 @@ async function setupGlobals() {
});
}
async function moveAutoLauncher() {
// Look for an auto-launcher under 'Riot' and if we find one, port it's
// enabled/disbaledp-ness over to the new 'Element' launcher
if (!vectorConfig.brand || vectorConfig.brand === 'Element') {
const oldLauncher = new AutoLaunch({
name: 'Riot',
isHidden: true,
mac: {
useLaunchAgent: true,
},
});
const wasEnabled = await oldLauncher.isEnabled();
if (wasEnabled) {
await oldLauncher.disable();
await launcher.enable();
}
}
}
const eventStorePath = path.join(app.getPath('userData'), 'EventStore');
const store = new Store({ name: "electron-config" });
@@ -207,6 +256,30 @@ let eventIndex = null;
let mainWindow = null;
global.appQuitting = false;
const exitShortcuts = [
(input, platform) => platform !== 'darwin' && input.alt && input.key.toUpperCase() === 'F4',
(input, platform) => platform !== 'darwin' && input.control && input.key.toUpperCase() === 'Q',
(input, platform) => platform === 'darwin' && input.meta && input.key.toUpperCase() === 'Q',
];
const warnBeforeExit = (event, input) => {
const shouldWarnBeforeExit = store.get('warnBeforeExit', true);
const exitShortcutPressed = exitShortcuts.some(shortcutFn => shortcutFn(input, process.platform));
if (shouldWarnBeforeExit && exitShortcutPressed) {
const shouldCancelCloseRequest = dialog.showMessageBoxSync(mainWindow, {
type: "question",
buttons: [_t("Cancel"), _t("Close Element")],
message: _t("Are you sure you want to quit?"),
defaultId: 1,
cancelId: 0,
}) === 0;
if (shouldCancelCloseRequest) {
event.preventDefault();
}
}
};
const deleteContents = async (p) => {
for (const entry of await afs.readdir(p)) {
@@ -215,6 +288,18 @@ const deleteContents = async (p) => {
}
};
async function randomArray(size) {
return new Promise((resolve, reject) => {
crypto.randomBytes(size, (err, buf) => {
if (err) {
reject(err);
} else {
resolve(buf.toString("base64").replace(/=+$/g, ''));
}
});
});
}
// handle uncaught errors otherwise it displays
// stack traces in popup dialogs, which is terrible (which
// it will do any time the auto update poke fails, and there's
@@ -282,6 +367,15 @@ ipcMain.on('ipcCall', async function(ev, payload) {
launcher.disable();
}
break;
case 'setLanguage':
appLocalization.setAppLocale(args[0]);
break;
case 'shouldWarnBeforeExit':
ret = store.get('warnBeforeExit', true);
break;
case 'setWarnBeforeExit':
store.set('warnBeforeExit', args[0]);
break;
case 'getMinimizeToTrayEnabled':
ret = tray.hasTray();
break;
@@ -327,57 +421,44 @@ ipcMain.on('ipcCall', async function(ev, payload) {
mainWindow.webContents.goForward();
}
break;
case 'setLanguage': {
// work around `setSpellCheckerLanguages` being case-sensitive by converting to expected case
const caseMap = {};
const availableLanguages = mainWindow.webContents.session.availableSpellCheckerLanguages;
availableLanguages.forEach(lang => {
caseMap[lang.toLowerCase()] = lang;
});
case 'setSpellCheckLanguages':
if (args[0] && args[0].length > 0) {
mainWindow.webContents.session.setSpellCheckerEnabled(true);
store.set("spellCheckerEnabled", true);
if (!caseMap["en"]) {
// default special-case for `en` as in Riot is actually implies `en-GB`. `en-US` is distinct.
// this way if `en` is requested and not available and `en-GB` is available it'll be used.
caseMap["en"] = caseMap["en-gb"];
}
const languages = new Set();
args[0].forEach(lang => {
const lcLang = lang.toLowerCase();
if (caseMap[lcLang]) {
languages.add(caseMap[lcLang]);
return;
try {
mainWindow.webContents.session.setSpellCheckerLanguages(args[0]);
} catch (er) {
console.log("There were problems setting the spellcheck languages", er);
}
// as a fallback if the language is unknown check if the language group is known, e.g en for en-AU
const langGroup = lcLang.split("-")[0];
if (caseMap[langGroup]) {
languages.add(caseMap[langGroup]);
return;
}
// as a further fallback, pick all other matching variants from the same language group
// this means that if we cannot find `ar-dz` or `ar` for example, we will pick `ar-*` to
// offer a spellcheck which is least likely to wrongly red underline something.
availableLanguages.forEach(availableLang => {
if (availableLang.startsWith(langGroup)) {
languages.add(availableLang);
}
});
});
if (languages.size > 0) {
mainWindow.webContents.session.setSpellCheckerLanguages([...languages]);
} else {
mainWindow.webContents.session.setSpellCheckerEnabled(false);
store.set("spellCheckerEnabled", false);
}
break;
}
case 'getSpellCheckLanguages':
if (store.get("spellCheckerEnabled", true)) {
ret = mainWindow.webContents.session.getSpellCheckerLanguages();
} else {
ret = [];
}
break;
case 'getAvailableSpellCheckLanguages':
ret = mainWindow.webContents.session.availableSpellCheckerLanguages;
break;
case 'startSSOFlow':
recordSSOSession(args[0]);
break;
case 'getPickleKey':
try {
ret = await keytar.getPassword("riot.im", `${args[0]}|${args[1]}`);
ret = await keytar.getPassword("element.io", `${args[0]}|${args[1]}`);
// migrate from riot.im (remove once we think there will no longer be
// logins from the time of riot.im)
if (ret === null) {
ret = await keytar.getPassword("riot.im", `${args[0]}|${args[1]}`);
}
} catch (e) {
// if an error is thrown (e.g. keytar can't connect to the keychain),
// then return null, which means the default pickle key will be used
@@ -387,17 +468,8 @@ ipcMain.on('ipcCall', async function(ev, payload) {
case 'createPickleKey':
try {
const randomArray = await new Promise((resolve, reject) => {
crypto.randomBytes(32, (err, buf) => {
if (err) {
reject(err);
} else {
resolve(buf);
}
});
});
const pickleKey = randomArray.toString("base64").replace(/=+$/g, '');
await keytar.setPassword("riot.im", `${args[0]}|${args[1]}`, pickleKey);
const pickleKey = await randomArray(32);
await keytar.setPassword("element.io", `${args[0]}|${args[1]}`, pickleKey);
ret = pickleKey;
} catch (e) {
ret = null;
@@ -406,6 +478,9 @@ ipcMain.on('ipcCall', async function(ev, payload) {
case 'destroyPickleKey':
try {
await keytar.deletePassword("element.io", `${args[0]}|${args[1]}`);
// migrate from riot.im (remove once we think there will no longer be
// logins from the time of riot.im)
await keytar.deletePassword("riot.im", `${args[0]}|${args[1]}`);
} catch (e) {}
break;
@@ -424,6 +499,27 @@ ipcMain.on('ipcCall', async function(ev, payload) {
});
});
const seshatDefaultPassphrase = "DEFAULT_PASSPHRASE";
async function getOrCreatePassphrase(key) {
if (keytar) {
try {
const storedPassphrase = await keytar.getPassword("element.io", key);
if (storedPassphrase !== null) {
return storedPassphrase;
} else {
const newPassphrase = await randomArray(32);
await keytar.setPassword("element.io", key, newPassphrase);
return newPassphrase;
}
} catch (e) {
console.log("Error getting the event index passphrase out of the secret store", e);
}
} else {
return seshatDefaultPassphrase;
}
}
ipcMain.on('seshat', async function(ev, payload) {
if (!mainWindow) return;
@@ -448,42 +544,41 @@ ipcMain.on('seshat', async function(ev, payload) {
case 'initEventIndex':
if (eventIndex === null) {
const userId = args[0];
const deviceId = args[1];
const passphraseKey = `seshat|${userId}|${deviceId}`;
const passphrase = await getOrCreatePassphrase(passphraseKey);
try {
await afs.mkdir(eventStorePath, {recursive: true});
eventIndex = new Seshat(eventStorePath, {passphrase: seshatPassphrase});
eventIndex = new Seshat(eventStorePath, {passphrase});
} catch (e) {
if (e instanceof ReindexError) {
// If this is a reindex error, the index schema
// changed. Try to open the database in recovery mode,
// reindex the database and finally try to open the
// database again.
try {
const recoveryIndex = new SeshatRecovery(eventStorePath, {
passphrase: seshatPassphrase,
});
const recoveryIndex = new SeshatRecovery(eventStorePath, {
passphrase,
});
const userVersion = await recoveryIndex.getUserVersion();
const userVersion = await recoveryIndex.getUserVersion();
// If our user version is 0 we'll delete the db
// anyways so reindexing it is a waste of time.
if (userVersion === 0) {
await recoveryIndex.shutdown();
// If our user version is 0 we'll delete the db
// anyways so reindexing it is a waste of time.
if (userVersion === 0) {
await recoveryIndex.shutdown();
try {
await deleteContents(eventStorePath);
} catch (e) {
}
} else {
await recoveryIndex.reindex();
try {
await deleteContents(eventStorePath);
} catch (e) {
}
eventIndex = new Seshat(eventStorePath, {
passphrase: seshatPassphrase,
});
} catch (e) {
sendError(payload.id, e);
return;
} else {
await recoveryIndex.reindex();
}
eventIndex = new Seshat(eventStorePath, {passphrase});
} else {
sendError(payload.id, e);
return;
@@ -708,9 +803,13 @@ protocol.registerSchemesAsPrivileged([{
// transition into the user's browser.
app.enableSandbox();
// We disable media controls here. We do this because calls use audio and video elements and they sometimes capture the media keys. See https://github.com/vector-im/element-web/issues/15704
app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling,MediaSessionService');
app.on('ready', async () => {
try {
await setupGlobals();
await moveAutoLauncher();
} catch (e) {
console.log("App setup failed: exiting", e);
process.exit(1);
@@ -820,17 +919,15 @@ app.on('ready', async () => {
nodeIntegration: false,
//sandbox: true, // We enable sandboxing from app.enableSandbox() above
enableRemoteModule: false,
// We don't use this: it's useful for the preload script to
// share a context with the main page so we can give select
// objects to the main page. The sandbox option isolates the
// main page from the background script.
contextIsolation: false,
contextIsolation: true,
webgl: false,
spellcheck: true,
},
});
mainWindow.loadURL('vector://vector/webapp/');
Menu.setApplicationMenu(vectorMenu);
// Handle spellchecker
// For some reason spellCheckerEnabled isn't persisted so we have to use the store here
mainWindow.webContents.session.setSpellCheckerEnabled(store.get("spellCheckerEnabled", true));
// Create trayIcon icon
if (store.get('minimizeToTray', true)) tray.create(trayConfig);
@@ -846,17 +943,27 @@ app.on('ready', async () => {
}
});
mainWindow.webContents.on('before-input-event', warnBeforeExit);
mainWindow.on('closed', () => {
mainWindow = global.mainWindow = null;
});
mainWindow.on('close', (e) => {
mainWindow.on('close', async (e) => {
// If we are not quitting and have a tray icon then minimize to tray
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
// On Mac, closing the window just hides it
// (this is generally how single-window Mac apps
// behave, eg. Mail.app)
e.preventDefault();
mainWindow.hide();
if (mainWindow.isFullScreen()) {
mainWindow.once('leave-full-screen', () => mainWindow.hide());
mainWindow.setFullScreen(false);
} else {
mainWindow.hide();
}
return false;
}
});
@@ -873,6 +980,14 @@ app.on('ready', async () => {
}
webContentsHandler(mainWindow.webContents);
appLocalization = new AppLocalization({
store,
components: [
() => tray.initApplicationMenu(),
() => Menu.setApplicationMenu(buildMenuTemplate()),
],
});
});
app.on('window-all-closed', () => {
@@ -909,4 +1024,4 @@ app.on('second-instance', (ev, commandLine, workingDirectory) => {
// installer uses for the shortcut icon.
// This makes notifications work on windows 8.1 (and is
// a noop on other platforms).
app.setAppUserModelId('com.squirrel.riot-web.Riot');
app.setAppUserModelId('com.squirrel.element-desktop.Element');

View File

@@ -0,0 +1 @@
{}

46
src/i18n/strings/de.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Speech": "Sprache",
"Paste and Match Style": "Einfügen und Formatierung beibehalten",
"Stop Speaking": "Aufnahme beenden",
"Start Speaking": "Aufnahme starten",
"Services": "Dienste",
"Are you sure you want to quit?": "Wirklich beenden?",
"Add to dictionary": "Wörterbuch hinzufügen",
"The image failed to save": "Das Bild konnte nicht gespeichert werden",
"Failed to save image": "Bild kann nicht gespeichert werden",
"Save image as...": "Bild speichern unter...",
"Copy link address": "Link-Adresse kopieren",
"Copy email address": "Email-Adresse kopieren",
"Copy image": "Bild kopieren",
"File": "Datei",
"Bring All to Front": "Alles in den Vordergrund",
"Zoom": "Zoom",
"Unhide": "Wieder anzeigen",
"Hide Others": "Andere verstecken",
"Hide": "Verstecken",
"About": "Über",
"Element Help": "Hilfe zu Element",
"Help": "Hilfe",
"Close": "Schließen",
"Minimize": "Minimieren",
"Window": "Fenster",
"Toggle Developer Tools": "Developer-Tools an/aus",
"Toggle Full Screen": "Vollbildschirm an/aus",
"Preferences": "Einstellungen",
"Zoom Out": "Verkleinern",
"Zoom In": "Vergrößern",
"Actual Size": "Tatsächliche Größe",
"View": "Ansicht",
"Select All": "Alles auswählen",
"Delete": "Löschen",
"Paste": "Einfügen",
"Copy": "Kopieren",
"Cut": "Ausschneiden",
"Redo": "Wiederherstellen",
"Undo": "Rückgängig",
"Edit": "Bearbeiten",
"Quit": "Beenden",
"Show/Hide": "Anzeigen/Ausblenden",
"Close Element": "Element schließen",
"Cancel": "Abbrechen"
}

View File

@@ -0,0 +1,46 @@
{
"Cancel": "Cancel",
"Close Element": "Close Element",
"Are you sure you want to quit?": "Are you sure you want to quit?",
"Show/Hide": "Show/Hide",
"Quit": "Quit",
"Edit": "Edit",
"Undo": "Undo",
"Redo": "Redo",
"Cut": "Cut",
"Copy": "Copy",
"Paste": "Paste",
"Paste and Match Style": "Paste and Match Style",
"Delete": "Delete",
"Select All": "Select All",
"View": "View",
"Actual Size": "Actual Size",
"Zoom In": "Zoom In",
"Zoom Out": "Zoom Out",
"Preferences": "Preferences",
"Toggle Full Screen": "Toggle Full Screen",
"Toggle Developer Tools": "Toggle Developer Tools",
"Window": "Window",
"Minimize": "Minimize",
"Close": "Close",
"Help": "Help",
"Element Help": "Element Help",
"About": "About",
"Services": "Services",
"Hide": "Hide",
"Hide Others": "Hide Others",
"Unhide": "Unhide",
"Speech": "Speech",
"Start Speaking": "Start Speaking",
"Stop Speaking": "Stop Speaking",
"Zoom": "Zoom",
"Bring All to Front": "Bring All to Front",
"File": "File",
"Copy image": "Copy image",
"Copy email address": "Copy email address",
"Copy link address": "Copy link address",
"Save image as...": "Save image as...",
"Failed to save image": "Failed to save image",
"The image failed to save": "The image failed to save",
"Add to dictionary": "Add to dictionary"
}

46
src/i18n/strings/es.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Add to dictionary": "Añadir al diccionario",
"The image failed to save": "La imagen no se ha podido guardar",
"Failed to save image": "No se ha podido guardar la imagen",
"Save image as...": "Guardar imagen como...",
"Copy link address": "Copiar dirección de enlace",
"Copy email address": "Copiar dirección de correo",
"Copy image": "Copiar imagen",
"File": "Archivo",
"Bring All to Front": "Traer todas al primer plano",
"Zoom": "Zoom",
"Start Speaking": "Empezar a hablar",
"Stop Speaking": "Parar de hablar",
"Speech": "Dictado",
"Unhide": "Mostrar",
"Hide Others": "Ocultar otros",
"Hide": "Ocultar",
"Services": "Servicios",
"About": "Acerca de",
"Element Help": "Ayuda de Element",
"Help": "Ayuda",
"Close": "Cerrar",
"Minimize": "Minimizar",
"Window": "Ventana",
"Toggle Developer Tools": "Abrir/cerrar herramientas de desarrollo",
"Toggle Full Screen": "Entrar/salir de pantalla completa",
"Preferences": "Preferencias",
"Zoom Out": "Alejar",
"Zoom In": "Acercar",
"Actual Size": "Tamaño real",
"View": "Ver",
"Select All": "Seleccionar todo",
"Delete": "Eliminar",
"Paste and Match Style": "Pegar manteniendo estilo",
"Paste": "Pegar",
"Copy": "Copiar",
"Cut": "Cortar",
"Redo": "Rehacer",
"Undo": "Deshacer",
"Edit": "Editar",
"Quit": "Salir",
"Show/Hide": "Ver/Ocultar",
"Are you sure you want to quit?": "¿Quieres salir?",
"Close Element": "Cerrar Element",
"Cancel": "Cancelar"
}

46
src/i18n/strings/et.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Element Help": "Rakenduse Element abiteave",
"About": "Rakenduse teave",
"The image failed to save": "Seda pilti ei õnnestunud salvestada",
"Add to dictionary": "Lisa sõnastikku",
"Failed to save image": "Pildi salvestamine ei õnnestunud",
"Save image as...": "Salvesta pilt kui...",
"Copy link address": "Kopeeri lingi aadress",
"Copy email address": "Kopeeri e-posti aadress",
"Copy image": "Kopeeri pilt",
"File": "Fail",
"Bring All to Front": "Too kõik esiplaanile",
"Zoom": "Suumi",
"Stop Speaking": "Lõpeta rääkimine",
"Start Speaking": "Alusta rääkimist",
"Speech": "Kõne",
"Unhide": "Näita uuesti",
"Hide Others": "Peida muud",
"Hide": "Peida",
"Services": "Teenused",
"Help": "Abiteave",
"Close": "Sulge",
"Minimize": "Vähenda",
"Window": "Aken",
"Toggle Developer Tools": "Arendaja töövahendid sisse/välja",
"Toggle Full Screen": "Täisekraanivaade sisse/välja",
"Preferences": "Seadistused",
"Zoom Out": "Vähenda",
"Zoom In": "Suurenda",
"Actual Size": "Näita tavasuuruses",
"View": "Vaata",
"Select All": "Vali kõik",
"Delete": "Kustuta",
"Paste and Match Style": "Aseta kasutades sama stiili",
"Paste": "Aseta",
"Copy": "Kopeeri",
"Cut": "Lõika",
"Redo": "Tee uuesti",
"Undo": "Võta tagasi",
"Edit": "Muuda",
"Quit": "Välju",
"Show/Hide": "Näita/peida",
"Are you sure you want to quit?": "Kas sa kindlasti soovid rakendusest väljuda?",
"Close Element": "Sulge Element",
"Cancel": "Tühista"
}

46
src/i18n/strings/fi.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Paste": "Liitä",
"Paste and Match Style": "Liitä ja sovita tyyli",
"Add to dictionary": "Lisää sanakirjaan",
"The image failed to save": "Kuvan tallennus epäonnistui",
"Failed to save image": "Kuvan tallennus epäonnistui",
"Save image as...": "Tallenna kuva nimellä...",
"Copy link address": "Kopioi linkin osoite",
"Copy email address": "Kopioi sähköpostiosoite",
"Copy image": "Kopioi kuva",
"File": "Tiedosto",
"Bring All to Front": "Tuo kaikki eteen",
"Zoom": "Suurennus",
"Stop Speaking": "Lopeta puhe",
"Start Speaking": "Aloita puhe",
"Speech": "Puhe",
"Unhide": "Palauta näkyviin",
"Hide Others": "Piilota muut",
"Hide": "Piilota",
"Services": "Palvelut",
"About": "Tietoja",
"Element Help": "Elementin ohjeet",
"Help": "Apua",
"Close": "Sulje",
"Minimize": "Pienennä",
"Window": "Ikkuna",
"Toggle Developer Tools": "Näytä tai piilota kehittäjätyökalut",
"Toggle Full Screen": "Vaihda koko näyttö-tilaa",
"Preferences": "Asetukset",
"Zoom Out": "Pienennä",
"Zoom In": "Suurenna",
"Actual Size": "Alkuperäinen koko",
"View": "Näytä",
"Select All": "Valitse kaikki",
"Delete": "Poista",
"Copy": "Kopioi",
"Cut": "Leikkaa",
"Redo": "Tee uudestaan",
"Undo": "Peru",
"Edit": "Muokkaa",
"Quit": "Lopeta",
"Show/Hide": "Näytä/Piilota",
"Are you sure you want to quit?": "Oletko varma että haluat poistua?",
"Close Element": "Sulje Element",
"Cancel": "Peruuta"
}

45
src/i18n/strings/fr.json Normal file
View File

@@ -0,0 +1,45 @@
{
"Undo": "Annuler",
"Edit": "Modifier",
"Quit": "Quitter",
"Show/Hide": "Afficher/Masquer",
"Are you sure you want to quit?": "Êtes-vous sûr de vouloir quitter ?",
"Close Element": "Fermer Element",
"Cancel": "Annuler",
"Unhide": "Dé-masquer",
"Hide Others": "Masquer les autres",
"Hide": "Masquer",
"Services": "Services",
"About": "À propos",
"Element Help": "Aide dElement",
"Help": "Aide",
"Close": "Fermer",
"Minimize": "Minimiser",
"Window": "Fenêtre",
"Toggle Developer Tools": "Basculer les outils de développement",
"Toggle Full Screen": "Basculer le plein écran",
"Preferences": "Préférences",
"Zoom Out": "Dé-zoomer",
"Zoom In": "Zoomer",
"Actual Size": "Taille réelle",
"View": "Afficher",
"Select All": "Tout sélectionner",
"Delete": "Supprimer",
"Paste and Match Style": "Copier avec le style de destination",
"Paste": "Coller",
"Copy": "Copier",
"Cut": "Couper",
"Speech": "Dictée",
"Add to dictionary": "Ajouter au dictionnaire",
"The image failed to save": "Limage na pas pu être sauvegardée",
"Failed to save image": "Échec de la sauvegarde de limage",
"Save image as...": "Enregistrer limage sous…",
"Copy link address": "Copier ladresse du lien",
"Copy email address": "Copier ladresse e-mail",
"Copy image": "Copier limage",
"File": "Fichier",
"Bring All to Front": "Tout amener au premier plan",
"Zoom": "Zoom",
"Stop Speaking": "Arrêter la dictée",
"Start Speaking": "Commencer la dictée"
}

46
src/i18n/strings/gl.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Add to dictionary": "Engadir ao dicionario",
"The image failed to save": "Non se gardou a imaxe",
"Failed to save image": "Fallou o gardado da imaxe",
"Save image as...": "Gardar imaxe como...",
"Copy link address": "Copiar enderezo da ligazón",
"Copy email address": "Copiar enderezo de email",
"Copy image": "Copiar imaxe",
"File": "Ficheiro",
"Bring All to Front": "Traer todo á fronte",
"Zoom": "Aumento",
"Stop Speaking": "Deixa de falar",
"Start Speaking": "Comeza a falar",
"Speech": "Falar",
"Unhide": "Desagochar",
"Hide Others": "Agochar outras",
"Hide": "Agochar",
"Services": "Servizos",
"About": "Acerca de",
"Element Help": "Axuda de Element",
"Help": "Axuda",
"Close": "Pechar",
"Minimize": "Minimizar",
"Window": "Ventá",
"Toggle Developer Tools": "Activar ferramentas de desenvolvemento",
"Toggle Full Screen": "Activar pantalla completa",
"Preferences": "Preferencias",
"Zoom Out": "Diminuir",
"Zoom In": "Aumentar",
"Actual Size": "Tamaño real",
"View": "Ver",
"Select All": "Elexir todo",
"Delete": "Eliminar",
"Paste and Match Style": "Pegar e imitar estilo",
"Paste": "Pegar",
"Copy": "Copiar",
"Cut": "Cortar",
"Redo": "Refacer",
"Undo": "Desfacer",
"Edit": "Editar",
"Quit": "Saír",
"Show/Hide": "Mostrar/Agochar",
"Are you sure you want to quit?": "Tes a certeza de que queres saír?",
"Close Element": "Pechar Element",
"Cancel": "Cancelar"
}

46
src/i18n/strings/hu.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Add to dictionary": "Hozzáadás a szótárhoz",
"The image failed to save": "A kép mentése sikertelen",
"Failed to save image": "Kép mentése sikertelen",
"Save image as...": "Kép mentése másként...",
"Copy link address": "Hivatkozás másolása",
"Copy email address": "E-mail cím másolása",
"Copy image": "Kép másolása",
"File": "Fájl",
"Bring All to Front": "Mindent előtérbe hoz",
"Zoom": "Nagyítás",
"Stop Speaking": "Fejezze be a beszédet",
"Start Speaking": "Kezdjen beszélni",
"Speech": "Beszéd",
"Unhide": "Felfed",
"Hide Others": "Minden mást eltakar",
"Hide": "Eltakar",
"Services": "Szolgáltatás",
"About": "Névjegy",
"Element Help": "Element segítség",
"Help": "Segítség",
"Close": "Bezár",
"Minimize": "Lecsukás",
"Window": "Ablak",
"Toggle Developer Tools": "Fejlesztői eszközök",
"Toggle Full Screen": "Teljes képernyő",
"Preferences": "Beállítások",
"Zoom Out": "Kicsinyít",
"Zoom In": "Nagyít",
"Actual Size": "Jelenlegi méret",
"View": "Nézet",
"Select All": "Mind kijelölése",
"Delete": "Töröl",
"Paste and Match Style": "Beillesztés formázással",
"Paste": "Beillesztés",
"Copy": "Másol",
"Cut": "Kivág",
"Redo": "Újra",
"Undo": "Visszavon",
"Edit": "Szerkeszt",
"Quit": "Kilép",
"Show/Hide": "Megmutat/Elrejt",
"Are you sure you want to quit?": "Biztos, hogy kilép?",
"Close Element": "Element bezárása",
"Cancel": "Mégsem"
}

44
src/i18n/strings/it.json Normal file
View File

@@ -0,0 +1,44 @@
{
"Add to dictionary": "Aggiungi al dizionario",
"The image failed to save": "Non è stato possibile salvare l'immagine",
"Failed to save image": "Salvataggio immagine fallito",
"Save image as...": "Salva immagine come...",
"Copy link address": "Copia indirizzo collegamento",
"Copy email address": "Copia indirizzo email",
"Copy image": "Copia immagine",
"File": "File",
"Bring All to Front": "Porta tutto in primo piano",
"Zoom": "Zoom",
"Start Speaking": "Inizia a parlare",
"Unhide": "Mostra",
"Hide Others": "Nascondi gli altri",
"Hide": "Nascondi",
"Services": "Servizi",
"About": "Al riguardo",
"Element Help": "Aiuto di Element",
"Help": "Aiuto",
"Close": "Chiudi",
"Minimize": "Riduci",
"Window": "Finestra",
"Toggle Developer Tools": "Attiva strumenti per sviluppatori",
"Toggle Full Screen": "Passa a schermo intero",
"Preferences": "Preferenze",
"Zoom Out": "Rimpicciolisci",
"Zoom In": "Ingrandisci",
"Actual Size": "Dimensione effettiva",
"View": "Vedi",
"Select All": "Seleziona tutto",
"Delete": "Elimina",
"Paste and Match Style": "Incolla e abbina lo stile",
"Paste": "Incolla",
"Copy": "Copia",
"Cut": "Taglia",
"Redo": "Ripeti",
"Undo": "Annulla",
"Edit": "Modifica",
"Quit": "Esci",
"Show/Hide": "Mostra/Nascondi",
"Are you sure you want to quit?": "Vuoi veramente uscire?",
"Close Element": "Chiudi Element",
"Cancel": "Annulla"
}

View File

@@ -0,0 +1,3 @@
{
"Toggle Developer Tools": "Veksle Utvikleralternativer"
}

46
src/i18n/strings/ru.json Normal file
View File

@@ -0,0 +1,46 @@
{
"Edit": "Изменить",
"Quit": "Выйти",
"Close Element": "Закрыть Element",
"Cancel": "Отмена",
"Show/Hide": "Показать/скрыть",
"Are you sure you want to quit?": "Вы уверены, что хотите выйти?",
"Copy email address": "Копировать адрес почты",
"Copy image": "Копировать изображение",
"File": "Файл",
"Zoom": "Масштаб",
"Unhide": "Показать",
"Hide": "Скрыть",
"Services": "Сервисы",
"About": "О программе",
"Element Help": "Справка Element",
"Help": "Справка",
"Close": "Закрыть",
"Minimize": "Свернуть",
"Window": "Окно",
"Toggle Developer Tools": "Переключить инструменты разработчика",
"Toggle Full Screen": "Переключить полноэкранный режим",
"Preferences": "Параметры",
"Zoom Out": "Уменьшить",
"Zoom In": "Увеличить",
"Actual Size": "Фактический размер",
"View": "Просмотр",
"Select All": "Выбрать все",
"Delete": "Удалить",
"Paste": "Вставить",
"Copy": "Копировать",
"Cut": "Вырезать",
"Redo": "Повторить",
"Undo": "Отменить",
"Save image as...": "Сохранить изображение как...",
"Copy link address": "Копировать ссылку",
"Add to dictionary": "Добавить в словарь",
"The image failed to save": "Не удалось сохранить изображение",
"Failed to save image": "Не удалось сохранить изображение",
"Bring All to Front": "Вынести всё вперёд",
"Stop Speaking": "Перестаньте говорить",
"Start Speaking": "Говорите",
"Speech": "Голос",
"Hide Others": "Скрыть прочие",
"Paste and Match Style": "Вставить с тем же стилем"
}

41
src/i18n/strings/sv.json Normal file
View File

@@ -0,0 +1,41 @@
{
"Save image as...": "Spara bild som...",
"Copy link address": "Kopiera länkadress",
"Copy email address": "Kopiera e-postadress",
"Copy image": "Kopiera bild",
"File": "Arkiv",
"Bring All to Front": "Lägg alla överst",
"Stop Speaking": "Sluta tala",
"Start Speaking": "Börja tala",
"Speech": "Tal",
"Hide Others": "Göm övriga",
"Hide": "Göm",
"Services": "Tjänster",
"About": "Om",
"Element Help": "Element Hjälp",
"Help": "Hjälp",
"Close": "Stäng",
"Minimize": "Minimera",
"Window": "Fönster",
"Preferences": "Inställningar",
"Actual Size": "Verklig storlek",
"View": "Visa",
"Select All": "Markera allt",
"Delete": "Radera",
"Paste and Match Style": "Klistra in och matcha stilen",
"Paste": "Klistra in",
"Copy": "Kopiera",
"Cut": "Klipp ut",
"Redo": "Gör om",
"Undo": "Ångra",
"Edit": "Redigera",
"Quit": "Avsluta",
"Cancel": "Avbryt",
"Zoom": "Zooma",
"Toggle Developer Tools": "Växla utvecklarverktyg",
"Toggle Full Screen": "Växla helskärm",
"Unhide": "Göm inte",
"Zoom Out": "Zooma ut",
"Zoom In": "Zooma in",
"Close Element": "Stäng Element"
}

129
src/language-helper.js Normal file
View File

@@ -0,0 +1,129 @@
/*
Copyright 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const counterpart = require('counterpart');
const DEFAULT_LOCALE = "en";
function _td(text) {
return text;
}
function _t(text, variables = {}) {
const args = Object.assign({ interpolate: false }, variables);
const { count } = args;
// Horrible hack to avoid https://github.com/vector-im/element-web/issues/4191
// The interpolation library that counterpart uses does not support undefined/null
// values and instead will throw an error. This is a problem since everywhere else
// in JS land passing undefined/null will simply stringify instead, and when converting
// valid ES6 template strings to i18n strings it's extremely easy to pass undefined/null
// if there are no existing null guards. To avoid this making the app completely inoperable,
// we'll check all the values for undefined/null and stringify them here.
Object.keys(args).forEach((key) => {
if (args[key] === undefined) {
console.warn("safeCounterpartTranslate called with undefined interpolation name: " + key);
args[key] = 'undefined';
}
if (args[key] === null) {
console.warn("safeCounterpartTranslate called with null interpolation name: " + key);
args[key] = 'null';
}
});
let translated = counterpart.translate(text, args);
if (translated === undefined && count !== undefined) {
// counterpart does not do fallback if no pluralisation exists
// in the preferred language, so do it here
translated = counterpart.translate(text, Object.assign({}, args, {locale: DEFAULT_LOCALE}));
}
// The translation returns text so there's no XSS vector here (no unsafe HTML, no code execution)
return translated;
}
class AppLocalization {
static STORE_KEY = "locale"
store = null
constructor({ store, components = [] }) {
counterpart.registerTranslations("en", this.fetchTranslationJson("en_EN"));
counterpart.setFallbackLocale('en');
counterpart.setSeparator('|');
if (Array.isArray(components)) {
this.localizedComponents = new Set(components);
}
this.store = store;
if (this.store.has(AppLocalization.STORE_KEY)) {
const locales = this.store.get(AppLocalization.STORE_KEY);
this.setAppLocale(locales);
}
this.resetLocalizedUI();
}
fetchTranslationJson(locale) {
try {
console.log("Fetching translation json for locale: " + locale);
return require(`./i18n/strings/${locale}.json`);
} catch (e) {
console.log(`Could not fetch translation json for locale: '${locale}'`, e);
return null;
}
}
get languageTranslationJson() {
return this.translationJsonMap.get(this.language);
}
setAppLocale(locales) {
console.log(`Changing application language to ${locales}`);
if (!Array.isArray(locales)) {
locales = [locales];
}
locales.forEach(locale => {
const translations = this.fetchTranslationJson(locale);
if (translations !== null) {
counterpart.registerTranslations(locale, translations);
}
});
counterpart.setLocale(locales);
this.store.set(AppLocalization.STORE_KEY, locales);
this.resetLocalizedUI();
}
resetLocalizedUI() {
console.log("Resetting the UI components after locale change");
this.localizedComponents.forEach(componentSetup => {
if (typeof componentSetup === "function") {
componentSetup();
}
});
}
}
module.exports = {
AppLocalization,
_t,
_td,
};

View File

@@ -1,5 +1,5 @@
/*
Copyright 2018, 2019 New Vector Ltd
Copyright 2018, 2019, 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,7 +14,58 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const { ipcRenderer } = require('electron');
const { ipcRenderer, desktopCapturer, contextBridge } = require('electron');
// expose ipcRenderer to the renderer process
window.ipcRenderer = ipcRenderer;
// Expose only expected IPC wrapper APIs to the renderer process to avoid
// handing out generalised messaging access.
const CHANNELS = [
"app_onAction",
"before-quit",
"check_updates",
"install_update",
"ipcCall",
"ipcReply",
"loudNotification",
"preferences",
"seshat",
"seshatReply",
"setBadgeCount",
"update-downloaded",
"userDownloadCompleted",
"userDownloadOpen",
];
contextBridge.exposeInMainWorld(
"electron",
{
on(channel, listener) {
if (!CHANNELS.includes(channel)) {
console.error(`Unknown IPC channel ${channel} ignored`);
return;
}
ipcRenderer.on(channel, listener);
},
send(channel, ...args) {
if (!CHANNELS.includes(channel)) {
console.error(`Unknown IPC channel ${channel} ignored`);
return;
}
ipcRenderer.send(channel, ...args);
},
async getDesktopCapturerSources(options) {
const sources = await desktopCapturer.getSources(options);
const desktopCapturerSources = [];
for (const source of sources) {
desktopCapturerSources.push({
id: source.id,
name: source.name,
thumbnailURL: source.thumbnail.toDataURL(),
});
}
return desktopCapturerSources;
},
},
);

View File

@@ -18,8 +18,8 @@ const {app} = require("electron");
const path = require("path");
const fs = require("fs");
const PROTOCOL = "riot://";
const SEARCH_PARAM = "riot-desktop-ssoid";
const PROTOCOL = "element://";
const SEARCH_PARAM = "element-desktop-ssoid";
const STORE_FILE_NAME = "sso-sessions.json";
// we getPath userData before electron-main changes it, so this is the default value
@@ -61,10 +61,10 @@ module.exports = {
},
getProfileFromDeeplink: (args) => {
// check if we are passed a profile in the SSO callback url
const deeplinkUrl = args.find(arg => arg.startsWith('riot://'));
const deeplinkUrl = args.find(arg => arg.startsWith('element://'));
if (deeplinkUrl && deeplinkUrl.includes(SEARCH_PARAM)) {
const parsedUrl = new URL(deeplinkUrl);
if (parsedUrl.protocol === 'riot:') {
if (parsedUrl.protocol === 'element:') {
const ssoID = parsedUrl.searchParams.get(SEARCH_PARAM);
const store = readStore();
console.log("Forwarding to profile: ", store[ssoID]);
@@ -78,10 +78,10 @@ module.exports = {
// --profile/--profile-dir are passed via the SEARCH_PARAM var in the callback url
const args = process.argv.slice(1).filter(arg => arg !== "--hidden" && arg !== "-hidden");
if (app.isPackaged) {
app.setAsDefaultProtocolClient('riot', process.execPath, args);
app.setAsDefaultProtocolClient('element', process.execPath, args);
} else if (process.platform === 'win32') { // on Mac/Linux this would just cause the electron binary to open
// special handler for running without being packaged, e.g `electron .` by passing our app path to electron
app.setAsDefaultProtocolClient('riot', process.execPath, [app.getAppPath(), ...args]);
app.setAsDefaultProtocolClient('element', process.execPath, [app.getAppPath(), ...args]);
}
if (process.platform === 'darwin') {

View File

@@ -17,17 +17,20 @@ limitations under the License.
const path = require('path');
const spawn = require('child_process').spawn;
const {app} = require('electron');
const fsProm = require('fs').promises;
function runUpdateExe(args, done) {
function runUpdateExe(args) {
// Invokes Squirrel's Update.exe which will do things for us like create shortcuts
// Note that there's an Update.exe in the app-x.x.x directory and one in the parent
// directory: we need to run the one in the parent directory, because it discovers
// information about the app by inspecting the directory it's run from.
const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
console.log(`Spawning '${updateExe}' with args '${args}'`);
spawn(updateExe, args, {
detached: true,
}).on('close', done);
return new Promise(resolve => {
spawn(updateExe, args, {
detached: true,
}).on('close', resolve);
});
}
function checkSquirrelHooks() {
@@ -36,10 +39,42 @@ function checkSquirrelHooks() {
const cmd = process.argv[1];
const target = path.basename(process.execPath);
if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') {
runUpdateExe(['--createShortcut=' + target + ''], app.quit);
Promise.resolve().then(() => {
return runUpdateExe(['--createShortcut=' + target]);
}).then(() => {
// remove the old 'Riot' shortcuts, if they exist (update.exe --removeShortcut doesn't work
// because it always uses the name of the product as the name of the shortcut: the only variable
// is what executable you're linking to)
const appDataDir = process.env.APPDATA;
if (!appDataDir) return;
const startMenuDir = path.join(
appDataDir, 'Microsoft', 'Windows', 'Start Menu', 'Programs', 'New Vector Ltd',
);
return fsProm.rmdir(startMenuDir, { recursive: true });
}).then(() => {
// same for 'Element (Riot) which is old now too (we have to try to delete both because
// we don't know what version we're updating from, but of course we do know this version
// is 'Element' so the two old ones are all safe to delete).
const appDataDir = process.env.APPDATA;
if (!appDataDir) return;
const oldStartMenuLink = path.join(
appDataDir, 'Microsoft', 'Windows', 'Start Menu', 'Programs', 'Element', 'Element (Riot).lnk',
);
return fsProm.unlink(oldStartMenuLink).catch(() => {});
}).then(() => {
const oldDesktopShortcut = path.join(app.getPath('desktop'), 'Element (Riot).lnk');
return fsProm.unlink(oldDesktopShortcut).catch(() => {});
}).then(() => {
const oldDesktopShortcut = path.join(app.getPath('desktop'), 'Riot.lnk');
return fsProm.unlink(oldDesktopShortcut).catch(() => {});
}).then(() => {
app.quit();
});
return true;
} else if (cmd === '--squirrel-uninstall') {
runUpdateExe(['--removeShortcut=' + target + ''], app.quit);
runUpdateExe(['--removeShortcut=' + target]).then(() => {
app.quit();
});
return true;
} else if (cmd === '--squirrel-obsolete') {
app.quit();

View File

@@ -19,6 +19,7 @@ const {app, Tray, Menu, nativeImage} = require('electron');
const pngToIco = require('png-to-ico');
const path = require('path');
const fs = require('fs');
const { _t } = require('./language-helper');
let trayIcon = null;
@@ -33,39 +34,24 @@ exports.destroy = function() {
}
};
const toggleWin = function() {
if (global.mainWindow.isVisible() && !global.mainWindow.isMinimized()) {
global.mainWindow.hide();
} else {
if (global.mainWindow.isMinimized()) global.mainWindow.restore();
if (!global.mainWindow.isVisible()) global.mainWindow.show();
global.mainWindow.focus();
}
};
exports.create = function(config) {
// no trays on darwin
if (process.platform === 'darwin' || trayIcon) return;
const toggleWin = function() {
if (global.mainWindow.isVisible() && !global.mainWindow.isMinimized()) {
global.mainWindow.hide();
} else {
if (global.mainWindow.isMinimized()) global.mainWindow.restore();
if (!global.mainWindow.isVisible()) global.mainWindow.show();
global.mainWindow.focus();
}
};
const contextMenu = Menu.buildFromTemplate([
{
label: `Show/Hide ${config.brand}`,
click: toggleWin,
},
{ type: 'separator' },
{
label: 'Quit',
click: function() {
app.quit();
},
},
]);
const defaultIcon = nativeImage.createFromPath(config.icon_path);
trayIcon = new Tray(defaultIcon);
trayIcon.setToolTip(config.brand);
trayIcon.setContextMenu(contextMenu);
initApplicationMenu();
trayIcon.on('click', toggleWin);
let lastFavicon = null;
@@ -88,7 +74,7 @@ exports.create = function(config) {
// Windows likes ico's too much.
if (process.platform === 'win32') {
try {
const icoPath = path.join(app.getPath('temp'), 'win32_riot_icon.ico');
const icoPath = path.join(app.getPath('temp'), 'win32_element_icon.ico');
fs.writeFileSync(icoPath, await pngToIco(newFavicon.toPNG()));
newFavicon = nativeImage.createFromPath(icoPath);
} catch (e) {
@@ -104,3 +90,27 @@ exports.create = function(config) {
trayIcon.setToolTip(title);
});
};
function initApplicationMenu() {
if (!trayIcon) {
return;
}
const contextMenu = Menu.buildFromTemplate([
{
label: _t('Show/Hide'),
click: toggleWin,
},
{ type: 'separator' },
{
label: _t('Quit'),
click: function() {
app.quit();
},
},
]);
trayIcon.setContextMenu(contextMenu);
}
exports.initApplicationMenu = initApplicationMenu;

View File

@@ -15,129 +15,212 @@ limitations under the License.
*/
const {app, shell, Menu} = require('electron');
const { _t } = require('./language-helper');
// Menu template from http://electron.atom.io/docs/api/menu/, edited
const template = [
{
label: '&Edit',
submenu: [
{ role: 'undo' },
{ role: 'redo' },
{ type: 'separator' },
{ role: 'cut' },
{ role: 'copy' },
{ role: 'paste' },
{ role: 'pasteandmatchstyle' },
{ role: 'delete' },
{ role: 'selectall' },
],
},
{
label: '&View',
submenu: [
{ type: 'separator' },
{ role: 'resetzoom' },
{ role: 'zoomin', accelerator: 'CommandOrControl+=' },
{ role: 'zoomout' },
{ type: 'separator' },
{
label: 'Preferences',
accelerator: 'Command+,', // Mac-only accelerator
click() { global.mainWindow.webContents.send('preferences'); },
},
{ role: 'togglefullscreen' },
{ role: 'toggledevtools' },
],
},
{
label: '&Window',
role: 'window',
submenu: [
{ role: 'minimize' },
{ role: 'close' },
],
},
{
label: '&Help',
role: 'help',
submenu: [
{
label: 'Riot Help',
click() { shell.openExternal('https://about.riot.im/help'); },
},
],
},
];
// macOS has specific menu conventions...
if (process.platform === 'darwin') {
template.unshift({
// first macOS menu is the name of the app
label: app.name,
submenu: [
{ role: 'about' },
{ type: 'separator' },
{
role: 'services',
submenu: [],
},
{ type: 'separator' },
{ role: 'hide' },
{ role: 'hideothers' },
{ role: 'unhide' },
{ type: 'separator' },
{ role: 'quit' },
],
});
// Edit menu.
// This has a 'speech' section on macOS
template[1].submenu.push(
{ type: 'separator' },
function buildMenuTemplate() {
// Menu template from http://electron.atom.io/docs/api/menu/, edited
const template = [
{
label: 'Speech',
label: _t('Edit'),
accelerator: 'e',
submenu: [
{ role: 'startspeaking' },
{ role: 'stopspeaking' },
{
role: 'undo',
label: _t('Undo'),
},
{
role: 'redo',
label: _t('Redo'),
},
{ type: 'separator' },
{
role: 'cut',
label: _t('Cut'),
},
{
role: 'copy',
label: _t('Copy'),
},
{
role: 'paste',
label: _t('Paste'),
},
{
role: 'pasteandmatchstyle',
label: _t('Paste and Match Style'),
},
{
role: 'delete',
label: _t('Delete'),
},
{
role: 'selectall',
label: _t('Select All'),
},
],
});
// Window menu.
// This also has specific functionality on macOS
template[3].submenu = [
{
label: 'Close',
accelerator: 'CmdOrCtrl+W',
role: 'close',
},
{
label: 'Minimize',
accelerator: 'CmdOrCtrl+M',
role: 'minimize',
label: _t('View'),
accelerator: 'V',
submenu: [
{ type: 'separator' },
{
role: 'resetzoom',
label: _t('Actual Size'),
},
{
role: 'zoomin',
accelerator: 'CommandOrControl+=',
label: _t('Zoom In'),
},
{
role: 'zoomout',
label: _t('Zoom Out'),
},
{ type: 'separator' },
{
label: _t('Preferences'),
accelerator: 'Command+,', // Mac-only accelerator
click() { global.mainWindow.webContents.send('preferences'); },
},
{
role: 'togglefullscreen',
label: _t('Toggle Full Screen'),
},
{
role: 'toggledevtools',
label: _t('Toggle Developer Tools'),
},
],
},
{
label: 'Zoom',
role: 'zoom',
label: _t('Window'),
accelerator: 'w',
role: 'window',
submenu: [
{
role: 'minimize',
label: _t('Minimize'),
},
{
role: 'close',
label: _t('Close'),
},
],
},
{
type: 'separator',
},
{
label: 'Bring All to Front',
role: 'front',
label: _t('Help'),
accelerator: 'h',
role: 'help',
submenu: [
{
label: _t('Element Help'),
click() { shell.openExternal('https://element.io/help'); },
},
],
},
];
} else {
template.unshift({
label: '&File',
submenu: [
// For some reason, 'about' does not seem to work on windows.
/*{
role: 'about'
},*/
{ role: 'quit' },
],
});
// macOS has specific menu conventions...
if (process.platform === 'darwin') {
template.unshift({
// first macOS menu is the name of the app
role: 'appMenu',
label: app.name,
submenu: [
{
role: 'about',
label: _t('About'),
},
{ type: 'separator' },
{
role: 'services',
label: _t('Services'),
submenu: [],
},
{ type: 'separator' },
{
role: 'hide',
label: _t('Hide'),
},
{
role: 'hideothers',
label: _t('Hide Others'),
},
{
role: 'unhide',
label: _t('Unhide'),
},
{ type: 'separator' },
{
role: 'quit',
label: _t('Quit'),
},
],
});
// Edit menu.
// This has a 'speech' section on macOS
template[1].submenu.push(
{ type: 'separator' },
{
label: _t('Speech'),
submenu: [
{
role: 'startspeaking',
label: _t('Start Speaking'),
},
{
role: 'stopspeaking',
label: _t('Stop Speaking'),
},
],
});
// Window menu.
// This also has specific functionality on macOS
template[3].submenu = [
{
label: _t('Close'),
accelerator: 'CmdOrCtrl+W',
role: 'close',
},
{
label: _t('Minimize'),
accelerator: 'CmdOrCtrl+M',
role: 'minimize',
},
{
label: _t('Zoom'),
role: 'zoom',
},
{
type: 'separator',
},
{
label: _t('Bring All to Front'),
role: 'front',
},
];
} else {
template.unshift({
label: _t('File'),
accelerator: 'f',
submenu: [
// For some reason, 'about' does not seem to work on windows.
/*{
role: 'about',
label: _t('About'),
},*/
{
role: 'quit',
label: _t('Quit'),
},
],
});
}
return Menu.buildFromTemplate(template);
}
module.exports = Menu.buildFromTemplate(template);
module.exports = buildMenuTemplate;

View File

@@ -3,6 +3,7 @@ const url = require('url');
const fs = require('fs');
const request = require('request');
const path = require('path');
const { _t } = require('./language-helper');
const MAILTO_PREFIX = "mailto:";
@@ -57,7 +58,7 @@ function onLinkContextMenu(ev, params) {
// Avoid showing a context menu for app icons
if (params.hasImageContents) return;
// Rewrite URL so that it can be used outside of the app
url = "https://riot.im/app/" + url.substring(23);
url = "https://app.element.io/" + url.substring(23);
}
const popupMenu = new Menu();
@@ -73,7 +74,8 @@ function onLinkContextMenu(ev, params) {
if (params.hasImageContents) {
popupMenu.append(new MenuItem({
label: '&Copy image',
label: _t('Copy image'),
accelerator: 'c',
click() {
ev.sender.copyImageAt(params.x, params.y);
},
@@ -85,14 +87,16 @@ function onLinkContextMenu(ev, params) {
// Special-case e-mail URLs to strip the `mailto:` like modern browsers do
if (url.startsWith(MAILTO_PREFIX)) {
popupMenu.append(new MenuItem({
label: 'Copy email &address',
label: _t('Copy email address'),
accelerator: 'a',
click() {
clipboard.writeText(url.substr(MAILTO_PREFIX.length));
},
}));
} else {
popupMenu.append(new MenuItem({
label: 'Copy link &address',
label: _t('Copy link address'),
accelerator: 'a',
click() {
clipboard.writeText(url);
},
@@ -104,7 +108,8 @@ function onLinkContextMenu(ev, params) {
// only the renderer can resolve them so don't give the user an option to.
if (params.hasImageContents && !url.startsWith('blob:')) {
popupMenu.append(new MenuItem({
label: 'Sa&ve image as...',
label: _t('Save image as...'),
accelerator: 'a',
async click() {
const targetFileName = params.titleText || "image.png";
const {filePath} = await dialog.showSaveDialog({
@@ -123,8 +128,8 @@ function onLinkContextMenu(ev, params) {
console.error(err);
dialog.showMessageBox({
type: "error",
title: "Failed to save image",
message: "The image failed to save",
title: _t("Failed to save image"),
message: _t("The image failed to save"),
});
}
},
@@ -151,7 +156,7 @@ function _CutCopyPasteSelectContextMenus(params) {
options.push({
type: 'separator',
}, {
label: 'Add to dictionary',
label: _t('Add to dictionary'),
click: (menuItem, browserWindow) => {
browserWindow.webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord);
},
@@ -162,22 +167,26 @@ function _CutCopyPasteSelectContextMenus(params) {
options.push({
role: 'cut',
label: 'Cu&t',
label: _t('Cut'),
accelerator: 't',
enabled: params.editFlags.canCut,
}, {
role: 'copy',
label: '&Copy',
label: _t('Copy'),
accelerator: 'c',
enabled: params.editFlags.canCopy,
}, {
role: 'paste',
label: '&Paste',
label: _t('Paste'),
accelerator: 'p',
enabled: params.editFlags.canPaste,
}, {
role: 'pasteandmatchstyle',
enabled: params.editFlags.canPaste,
}, {
role: 'selectall',
label: "Select &All",
label: _t("Select All"),
accelerator: 'a',
enabled: params.editFlags.canSelectAll,
});
return options;

3292
yarn.lock
View File

File diff suppressed because it is too large Load Diff