-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Push-to-Talk Support for Jitsi #10369
Conversation
…evelop * 'master' of https://github.com/vector-im/riot-web: Fix cleanup script not to remove extracted/bundles directories (#8764)
…evelop * 'master' of https://github.com/vector-im/riot-web: Update issue templates
* develop: Update issue templates Fix cleanup script not to remove extracted/bundles directories (#8764)
* develop: (30 commits) [matrix] -> Matrix Nudge karma to 3.1.2 set chrome path for travis CI explicitly Updated install spinner referenced in #8913 Add support for localConfig at $appData/config.json. Move electron-config to $appData/electron-config.json Translated using Weblate (Hungarian) Update to electron 4.0.6 Translated using Weblate (Spanish) Translated using Weblate (Norwegian Bokmål) Translated using Weblate (Hungarian) Translated using Weblate (Hindi) Translated using Weblate (Greek) Translated using Weblate (German) Translated using Weblate (Finnish) Translated using Weblate (Arabic) Translated using Weblate (Portuguese (Brazil)) Translated using Weblate (Czech) Translated using Weblate (Swedish) Translated using Weblate (Swedish) Allow disabling update mechanism ...
…to anoa/jitsi_ptt
* develop: (75 commits) Support CI for matching branches on forks Update yarn.lock v1.0.4 Prepare changelog for v1.0.4 v1.0.4 Released js-sdk & react-sdk Translated using Weblate (Irish) Translated using Weblate (English (United States)) Added translation using Weblate (Irish) Update README.md grammar Cross-promote mobile apps Fix downstream branch fetching Update issue templates Declare the officially supported browsers in the README Update version number in issue templates Use the right CI branch Set up BuildKite for Chrome Lint doesn't need develop deps Remove Travis (CI) Add a basic BuildKite :pipeline: ...
* develop: (47 commits) Translated using Weblate (Romanian) Translated using Weblate (Finnish) Translated using Weblate (Dutch) Added translation using Weblate (Slovenian) bump olm version Use a different cookie to expire any cookies people may already have Step cookie down to 4 hours Fix autolaunch setting appearing toggled off Expire mobile guide cookie after 24 hours Don't try to save files the user didn't want to save v1.0.6 Prepare changelog for v1.0.6 v1.0.6 Released js-sdk & react-sdk, and bump electron version Deleted translation using Weblate (English (United Kingdom)) Translated using Weblate (Italian) Translated using Weblate (Irish) Translated using Weblate (Finnish) Translated using Weblate (Esperanto) Translated using Weblate (English (United Kingdom)) ...
* develop: (249 commits) Clarify deployment scripts Add riot.im configuration files Enable reactions and edits for desktop Remove unused disable_identity_server config flag Improve wording in debug log sending in issue templates Require a rageshake description in mxSendRageshake Fetch deps Verify i18n in CI Upgrade dependencies v1.2.4 Prepare changelog for v1.2.4 v1.2.4 Upgrade lodash Upgrade to JS SDK 2.1.1 and React SDK 1.3.1 v1.2.3 Prepare changelog for v1.2.3 v1.2.3 Upgrade to JS SDK 2.1.0 and React SDK 1.3.0 Upgrade dependencies v1.2.3-rc.1 ...
* develop: (22 commits) v1.3.0 Prepare changelog for v1.3.0 v1.3.0 Upgrade to JS SDK 2.2.0 and React SDK 1.4.0 Remove reactions feature flag from docs and config Remove edits feature flag from docs and config Remove reactions feature flag from docs and config Remove edits feature flag from docs and config cachebust config file requests v1.3.0-rc.3 Prepare changelog for v1.3.0-rc.3 v1.3.0-rc.3 react-sdk rc.3 v1.3.0-rc.2 Prepare changelog for v1.3.0-rc.2 v1.3.0-rc.2 Upgrade to JS SDK 2.2.0-rc.2 and React SDK 1.4.0-rc.2 Convert install-app-deps to subcommand v1.3.0-rc.1 Prepare changelog for v1.3.0-rc.1 ...
* develop: Upgrade dependencies Translated using Weblate (Vietnamese) Translated using Weblate (Azerbaijani) Translated using Weblate (Swedish) Translated using Weblate (Azerbaijani) Update references to features Update feature references Upgrade to Electron 5 Translated using Weblate (Tamil) Translated using Weblate (Latvian) Translated using Weblate (Esperanto) Translated using Weblate (Spanish)
@anoadragon453, thanks for all your work in this space so far! 😁 I'd like to work out a way to land this soon (so that it's not rotting away in a PR). What do you think about changing to do the following:
With that, we should hopefully be able to review and merge this at least. It would require manual steps to use it for now, but that's at least forward progress. |
Hi @jryans, and thanks! Some clarifying questions though:
Test as in checking to see if it exists, and if not, not enabling the functionality?
So take it out of |
Correct, for example: let ioHook;
try {
ioHook = require('iohook');
catch (e) {
// Not available
} The code that makes use of it should be changed to test for
Yes, that's right. We can't list it as a dependency for the moment, as that would cause us to accidentally ship the third-party-built version. I suppose the actual command might be closer to |
@jryans Right, all makes sense. I'm currently working on once again getting the code working with latest develop (and electron 6), then I'll get on cleaning up everything so it can work with or without the module :) |
@anoadragon453 When ready, feel free to flag me specifically for review if you like, as I'm mentoring similar work on the seshat PRs. |
This needs porting to https://github.com/vector-im/riot-desktop when you get a chance :) |
@anoadragon453 is this still relevant? |
I believe it is though it's probably quite bitrotten by now |
@Palid @SimonBrandner. Yes and yes. It's relevant but doesn't need active review currently. It probably doesn't need to be open; any new implementation will likely be done in a separate PR anyhow. |
* Allow desktop app to expose recent rooms in UI integrations ([\element-hq#16940](element-hq#16940)). * Add API params to mute audio and/or video in Jitsi calls by default ([\element-hq#24820](element-hq#24820)). Contributed by @dhenneke. * Style mentions as pills in rich text editor ([\element-hq#10448](matrix-org/matrix-react-sdk#10448)). Contributed by @alunturner. * Show room create icon if "UIComponent.roomCreation" is enabled ([\element-hq#10364](matrix-org/matrix-react-sdk#10364)). Contributed by @maheichyk. * Mentions as links rte ([\element-hq#10463](matrix-org/matrix-react-sdk#10463)). Contributed by @alunturner. * Better error handling in jump to date ([\element-hq#10405](matrix-org/matrix-react-sdk#10405)). Contributed by @MadLittleMods. * Show "Invite" menu option if "UIComponent.sendInvites" is enabled. ([\element-hq#10363](matrix-org/matrix-react-sdk#10363)). Contributed by @maheichyk. * Added `UserProfilesStore`, `LruCache` and user permalink profile caching ([\element-hq#10425](matrix-org/matrix-react-sdk#10425)). Fixes element-hq#10559. * Mentions as links rte ([\element-hq#10422](matrix-org/matrix-react-sdk#10422)). Contributed by @alunturner. * Implement MSC3952: intentional mentions ([\element-hq#9983](matrix-org/matrix-react-sdk#9983)). * Implement MSC3973: Search users in the user directory with the Widget API ([\element-hq#10269](matrix-org/matrix-react-sdk#10269)). Contributed by @dhenneke. * Permalinks to message are now displayed as pills ([\element-hq#10392](matrix-org/matrix-react-sdk#10392)). Fixes element-hq#24751 and element-hq#24706. * Show search,dial,explore in filterContainer if "UIComponent.filterContainer" is enabled ([\element-hq#10381](matrix-org/matrix-react-sdk#10381)). Contributed by @maheichyk. * Increase space panel collapse clickable area ([\element-hq#6084](matrix-org/matrix-react-sdk#6084)). Fixes element-hq#17379. Contributed by @jaiwanth-v. * Add fallback for replies to Polls ([\element-hq#10380](matrix-org/matrix-react-sdk#10380)). Fixes element-hq#24197. Contributed by @kerryarchibald. * Permalinks to rooms and users are now pillified ([\element-hq#10388](matrix-org/matrix-react-sdk#10388)). Fixes element-hq#24825. * Poll history - access poll history from room settings ([\element-hq#10356](matrix-org/matrix-react-sdk#10356)). Contributed by @kerryarchibald. * Add API params to mute audio and/or video in Jitsi calls by default ([\element-hq#10376](matrix-org/matrix-react-sdk#10376)). Contributed by @dhenneke. * Notifications: inline error message on notifications saving error ([\#10288](matrix-org/matrix-react-sdk#10288)). Contributed by @kerryarchibald. * Support dynamic room predecessor in SpaceProvider ([\element-hq#10348](matrix-org/matrix-react-sdk#10348)). Contributed by @andybalaam. * Support dynamic room predecessors for RoomProvider ([\element-hq#10346](matrix-org/matrix-react-sdk#10346)). Contributed by @andybalaam. * Support dynamic room predecessors in OwnBeaconStore ([\element-hq#10339](matrix-org/matrix-react-sdk#10339)). Contributed by @andybalaam. * Support dynamic room predecessors in ForwardDialog ([\element-hq#10344](matrix-org/matrix-react-sdk#10344)). Contributed by @andybalaam. * Support dynamic room predecessors in SpaceHierarchy ([\element-hq#10341](matrix-org/matrix-react-sdk#10341)). Contributed by @andybalaam. * Support dynamic room predecessors in AddExistingToSpaceDialog ([\element-hq#10342](matrix-org/matrix-react-sdk#10342)). Contributed by @andybalaam. * Support dynamic room predecessors in leave-behaviour ([\#10340](matrix-org/matrix-react-sdk#10340)). Contributed by @andybalaam. * Support dynamic room predecessors in StopGapWidgetDriver ([\element-hq#10338](matrix-org/matrix-react-sdk#10338)). Contributed by @andybalaam. * Support dynamic room predecessors in WidgetLayoutStore ([\element-hq#10326](matrix-org/matrix-react-sdk#10326)). Contributed by @andybalaam. * Support dynamic room predecessors in SpaceStore ([\element-hq#10332](matrix-org/matrix-react-sdk#10332)). Contributed by @andybalaam. * Sync polls push rules on changes to account_data ([\element-hq#10287](matrix-org/matrix-react-sdk#10287)). Contributed by @kerryarchibald. * Support dynamic room predecessors in BreadcrumbsStore ([\element-hq#10295](matrix-org/matrix-react-sdk#10295)). Contributed by @andybalaam. * Improved a11y for Field feedback and Secure Phrase input ([\element-hq#10320](matrix-org/matrix-react-sdk#10320)). Contributed by @Sebbones. * Support dynamic room predecessors in RoomNotificationStateStore ([\#10297](matrix-org/matrix-react-sdk#10297)). Contributed by @andybalaam. * Use a newly generated access_token while joining Jitsi ([\element-hq#24646](element-hq#24646)). Fixes element-hq#24687. Contributed by @emrahcom. * Fix cloudflare action pointing at commit hash instead of tag ([\element-hq#24777](element-hq#24777)). Contributed by @justjanne. * Allow editing with RTE to overflow for autocomplete visibility ([\element-hq#10499](matrix-org/matrix-react-sdk#10499)). Contributed by @alunturner. * Added auto focus to Github URL on opening of debug logs modal ([\element-hq#10479](matrix-org/matrix-react-sdk#10479)). Contributed by @ShivamSpm. * Fix detection of encryption for all users in a room ([\#10487](matrix-org/matrix-react-sdk#10487)). Fixes element-hq#24995. * Properly generate mentions when editing a reply with MSC3952 ([\element-hq#10486](matrix-org/matrix-react-sdk#10486)). Fixes element-hq#24924. Contributed by @kerryarchibald. * Improve performance of rendering a room with many hidden events ([\#10131](matrix-org/matrix-react-sdk#10131)). Contributed by @andybalaam. * Prevent future date selection in jump to date ([\element-hq#10419](matrix-org/matrix-react-sdk#10419)). Fixes element-hq#20800. Contributed by @MadLittleMods. * Add aria labels to message search bar to improve accessibility ([\element-hq#10476](matrix-org/matrix-react-sdk#10476)). Fixes element-hq#24921. * Fix decryption failure bar covering the timeline ([\element-hq#10360](matrix-org/matrix-react-sdk#10360)). Fixes element-hq#24780 element-hq#24074 and element-hq#24183. Contributed by @luixxiul. * Improve profile picture settings accessibility ([\element-hq#10470](matrix-org/matrix-react-sdk#10470)). Fixes element-hq#24919. * Handle group call redaction ([\element-hq#10465](matrix-org/matrix-react-sdk#10465)). * Display relative timestamp for threads on the same calendar day ([\#10399](matrix-org/matrix-react-sdk#10399)). Fixes element-hq#24841. Contributed by @kerryarchibald. * Fix timeline list and paragraph display issues ([\element-hq#10424](matrix-org/matrix-react-sdk#10424)). Fixes element-hq#24602. Contributed by @alunturner. * Use unique keys for voice broadcast pips ([\element-hq#10457](matrix-org/matrix-react-sdk#10457)). Fixes element-hq#24959. * Fix "show read receipts sent by other users" not applying to threads ([\element-hq#10445](matrix-org/matrix-react-sdk#10445)). Fixes element-hq#24910. * Fix joining public rooms without aliases in search dialog ([\element-hq#10437](matrix-org/matrix-react-sdk#10437)). Fixes element-hq#23937. * Add input validation for `m.direct` in `DMRoomMap` ([\element-hq#10436](matrix-org/matrix-react-sdk#10436)). Fixes element-hq#24909. * Reduce height reserved for "collapse" button's line on IRC layout ([\element-hq#10211](matrix-org/matrix-react-sdk#10211)). Fixes element-hq#24605. Contributed by @luixxiul. * Fix `creatorUserId is required` error when opening sticker picker ([\element-hq#10423](matrix-org/matrix-react-sdk#10423)). * Fix block/inline Element descendants error noise in `NewRoomIntro.tsx` ([\element-hq#10412](matrix-org/matrix-react-sdk#10412)). Contributed by @MadLittleMods. * Fix profile resizer to make first character of a line selectable in IRC layout ([\element-hq#10396](matrix-org/matrix-react-sdk#10396)). Fixes element-hq#14764. Contributed by @luixxiul. * Ensure space between wrapped lines of room name on IRC layout ([\#10188](matrix-org/matrix-react-sdk#10188)). Fixes element-hq#24742. Contributed by @luixxiul. * Remove unreadable alt attribute from the room status bar warning icon (nonsense to screenreaders) ([\element-hq#10402](matrix-org/matrix-react-sdk#10402)). Contributed by @MadLittleMods. * Fix big date separators when jump to date is enabled ([\element-hq#10404](matrix-org/matrix-react-sdk#10404)). Fixes element-hq#22969. Contributed by @MadLittleMods. * Fixes user authentication when registering via the module API ([\element-hq#10257](matrix-org/matrix-react-sdk#10257)). Contributed by @maheichyk. * Handle more edge cases in Space Hierarchy ([\element-hq#10280](matrix-org/matrix-react-sdk#10280)). Contributed by @justjanne. * Further improve performance with lots of hidden events ([\element-hq#10353](matrix-org/matrix-react-sdk#10353)). Fixes element-hq#24480. Contributed by @andybalaam. * Respect user cancelling upload flow by dismissing spinner ([\element-hq#10373](matrix-org/matrix-react-sdk#10373)). Fixes element-hq#24667. * When starting a DM, the end-to-end encryption status icon does now only appear if the DM can be encrypted ([\element-hq#10394](matrix-org/matrix-react-sdk#10394)). Fixes element-hq#24397. * Fix `[object Object]` in feedback metadata ([\element-hq#10390](matrix-org/matrix-react-sdk#10390)). * Fix pinned messages card saying nothing pinned while loading ([\#10385](matrix-org/matrix-react-sdk#10385)). Fixes element-hq#24615. * Fix import e2e key dialog staying disabled after paste ([\element-hq#10375](matrix-org/matrix-react-sdk#10375)). Fixes element-hq#24818. * Show all labs even if incompatible, with appropriate tooltip explaining requirements ([\element-hq#10369](matrix-org/matrix-react-sdk#10369)). Fixes element-hq#24813. * Fix UIFeature.Registration not applying to all paths ([\element-hq#10371](matrix-org/matrix-react-sdk#10371)). Fixes element-hq#24814. * Clicking on a user pill does now only open the profile in the right panel and no longer navigates to the home view. ([\element-hq#10359](matrix-org/matrix-react-sdk#10359)). Fixes element-hq#24797. * Fix start DM with pending third party invite ([\element-hq#10347](matrix-org/matrix-react-sdk#10347)). Fixes element-hq#24781. * Fix long display name overflowing reply tile on IRC layout ([\element-hq#10343](matrix-org/matrix-react-sdk#10343)). Fixes element-hq#24738. Contributed by @luixxiul. * Display redacted body on ThreadView in the same way as normal messages ([\element-hq#9016](matrix-org/matrix-react-sdk#9016)). Fixes element-hq#24729. Contributed by @luixxiul. * Handle more edge cases in ACL updates ([\element-hq#10279](matrix-org/matrix-react-sdk#10279)). Contributed by @justjanne. * Allow parsing png files to fail if thumbnailing is successful ([\element-hq#10308](matrix-org/matrix-react-sdk#10308)).
Continuation from #7709, that was originally on a separate repo's branch.
Implements the riot-web portion of Push-to-Talk support for Jitsi voice and video calls. The matrix-react-sdk portion is matrix-org/matrix-react-sdk#2280.
Adds a new native node addon,
iohook
, which is used for listening to shortcuts globally, meaning even when Riot is minimized. As such, iohook needs to be compiled, however like most native node addons, compiled versions for your platform are downloaded duringnpm install
for you. The idea is you should never have to compile your own version unless you are using an unsupported platform. The currently supported platforms are Windows, Mac and Linux, however I am unsure what the support is for *BSD.Of course there are those who wish to compile their own software, including ourselves for our releases. For this usecase, a script has been provided in
./scripts/build-native-modules.sh
which supports MacOS and Linux. Usage instructions are at docs/native-node-modules.md and within the script itself.In terms of security,
iohook
is set to stop itself if it is no longer in charge of any shortcuts. It will only enable itself during a Jitsi call or while recording a new shortcut in settings. While recording a new shortcut, iohook will report every keyboard shortcut that is pressed on the keyboard. This is necessary for shortcut recording. However, if Riot is minimized or otherwise somehow removed from focus while recording a shortcut, the recording session will end.All of the security functionality is controlled by the Main process, with all of the Renderer processes acting like unprivileged clients. Thus, assuming a security flaw like an XSS only gives you access to functions in the Renderer process, no malicious keylogging should be possible.
The code is set up to allow for any global shortcut to be registered, not just those regarding Push-To-Talk functionality. However, the amount of shortcuts that can be registered at one time is currently controlled by
const keybindingRegistrationLimit
, which is set to 1, so this limit will need to be raised if any future functionality need be added.