-
-
Notifications
You must be signed in to change notification settings - Fork 831
Improve decryption error UI by consolidating error messages and providing instructions when possible #9544
Conversation
…ding instructions when possible
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@duxovni I've made a start on a review here, and made a bunch of comments. I've not looked at the test code at all yet.
Architecturally speaking, I find it very surprising to have the failure bar be responsible for sending out the room key requests, rather than that living elsewhere and the failure bar just being a view of what's going on. It may be that folks with more familiarity with E-W's architecture can either suggest better approaches or confirm that this this is a good approach.
Stylistically speaking:
- I'm surprised at the lack of comments here. I'm generally of the opinion that comments are important: not only do they explain to people reading/maintaining the code how it works, they can provide useful information on how the author expected things to work when there is a difference to reality. Without comments, the behaviour of functions and variables is left implicit, which means it's open to interpretation. TL;DR: more comments please.
- I am woefully out of touch with current React development practices. I may have made stupid suggestions, or missed obvious opportunities for improvement. Another pair of eyes would probably be beneficial.
Also, it looks like CI is currently failing on a number of fronts.
I've added Jest tests for most of the interesting parts of this; the remainder is stuff that requires simulating an actual browser viewport and can't really be tested outside of Cypress, so the opinion from Web team chat was that it should be fine to override the SonarCloud gate in this case. |
* Switch threads on for everyone ([\#9879](matrix-org/matrix-react-sdk#9879)). * Make threads use new Unable to Decrypt UI ([\#9876](matrix-org/matrix-react-sdk#9876)). Fixes element-hq/element-web#24060. * Add edit and remove actions to link in RTE ([\#9864](matrix-org/matrix-react-sdk#9864)). * Remove extensible events v1 experimental rendering ([\#9881](matrix-org/matrix-react-sdk#9881)). * Make create poll dialog scale better (PSG-929) ([\#9873](matrix-org/matrix-react-sdk#9873)). Fixes element-hq/element-web#21855. * Change RTE mode icons ([\#9861](matrix-org/matrix-react-sdk#9861)). * Device manager - prune client information events after remote sign out ([\#9874](matrix-org/matrix-react-sdk#9874)). * Check connection before starting broadcast ([\#9857](matrix-org/matrix-react-sdk#9857)). * Enable sent receipt for poll start events (PSG-962) ([\#9870](matrix-org/matrix-react-sdk#9870)). * Change clear notifications to have more readable copy ([\#9867](matrix-org/matrix-react-sdk#9867)). * Combine search results when the query is present in multiple successive messages ([\#9855](matrix-org/matrix-react-sdk#9855)). Fixes element-hq/element-web#3977. Contributed by @grimhilt. * Disable bubbles for broadcasts ([\#9860](matrix-org/matrix-react-sdk#9860)). Fixes element-hq/element-web#24140. * Enable reactions and replies for broadcasts ([\#9856](matrix-org/matrix-react-sdk#9856)). Fixes element-hq/element-web#24042. * Improve switching between rich and plain editing modes ([\#9776](matrix-org/matrix-react-sdk#9776)). * Redesign the picture-in-picture window ([\#9800](matrix-org/matrix-react-sdk#9800)). Fixes element-hq/element-web#23980. * User on-boarding tasks now appear in a static order. ([\#9799](matrix-org/matrix-react-sdk#9799)). Contributed by @GoodGuyMarco. * Device manager - contextual menus ([\#9832](matrix-org/matrix-react-sdk#9832)). * If listening a non-live broadcast and changing the room, the broadcast will be paused ([\#9825](matrix-org/matrix-react-sdk#9825)). Fixes element-hq/element-web#24078. * Consider own broadcasts from other device as a playback ([\#9821](matrix-org/matrix-react-sdk#9821)). Fixes element-hq/element-web#24068. * Add link creation to rich text editor ([\#9775](matrix-org/matrix-react-sdk#9775)). * Add mark as read option in room setting ([\#9798](matrix-org/matrix-react-sdk#9798)). Fixes element-hq/element-web#24053. * Device manager - current device design and copy tweaks ([\#9801](matrix-org/matrix-react-sdk#9801)). * Unify notifications panel event design ([\#9754](matrix-org/matrix-react-sdk#9754)). * Add actions for integration manager to send and read certain events ([\#9740](matrix-org/matrix-react-sdk#9740)). * Device manager - design tweaks ([\#9768](matrix-org/matrix-react-sdk#9768)). * Change room list sorting to activity and unread first by default ([\#9773](matrix-org/matrix-react-sdk#9773)). Fixes element-hq/element-web#24014. * Add a config flag to enable the rust crypto-sdk ([\#9759](matrix-org/matrix-react-sdk#9759)). * Improve decryption error UI by consolidating error messages and providing instructions when possible ([\#9544](matrix-org/matrix-react-sdk#9544)). Contributed by @duxovni. * Honor font settings in Element Call ([\#9751](matrix-org/matrix-react-sdk#9751)). Fixes element-hq/element-web#23661. * Device manager - use deleteAccountData to prune device manager client information events ([\#9734](matrix-org/matrix-react-sdk#9734)). * Display rooms & threads as unread (bold) if threads have unread messages. ([\#9763](matrix-org/matrix-react-sdk#9763)). Fixes element-hq/element-web#23907. * Don't prefer STIXGeneral over the default font ([\#9711](matrix-org/matrix-react-sdk#9711)). Fixes element-hq/element-web#23899. * Use the same avatar colour when creating 1:1 DM rooms ([\#9850](matrix-org/matrix-react-sdk#9850)). Fixes element-hq/element-web#23476. * Fix space lock icon size ([\#9854](matrix-org/matrix-react-sdk#9854)). Fixes element-hq/element-web#24128. * Make calls automatically disconnect if the widget disappears ([\#9862](matrix-org/matrix-react-sdk#9862)). Fixes element-hq/element-web#23664. * Fix emoji in RTE editing ([\#9827](matrix-org/matrix-react-sdk#9827)). * Fix export with attachments on formats txt and json ([\#9851](matrix-org/matrix-react-sdk#9851)). Fixes element-hq/element-web#24130. Contributed by @grimhilt. * Fixed empty `Content-Type` for encrypted uploads ([\#9848](matrix-org/matrix-react-sdk#9848)). Contributed by @K3das. * Fix sign-in instead link on password reset page ([\#9820](matrix-org/matrix-react-sdk#9820)). Fixes element-hq/element-web#24087. * The seekbar now initially shows the current position ([\#9796](matrix-org/matrix-react-sdk#9796)). Fixes element-hq/element-web#24051. * Fix: Editing a poll will silently change it to a closed poll ([\#9809](matrix-org/matrix-react-sdk#9809)). Fixes element-hq/element-web#23176. * Make call tiles look less broken in the right panel ([\#9808](matrix-org/matrix-react-sdk#9808)). Fixes element-hq/element-web#23716. * Prevent unnecessary m.direct updates ([\#9805](matrix-org/matrix-react-sdk#9805)). Fixes element-hq/element-web#24059. * Fix checkForPreJoinUISI for thread roots ([\#9803](matrix-org/matrix-react-sdk#9803)). Fixes element-hq/element-web#24054. * Snap in PiP widget when content changed ([\#9797](matrix-org/matrix-react-sdk#9797)). Fixes element-hq/element-web#24050. * Load RTE components only when RTE labs is enabled ([\#9804](matrix-org/matrix-react-sdk#9804)). * Ensure that events are correctly updated when they are edited. ([\#9789](matrix-org/matrix-react-sdk#9789)). * When stopping a broadcast also stop the playback ([\#9795](matrix-org/matrix-react-sdk#9795)). Fixes element-hq/element-web#24052. * Prevent to start two broadcasts at the same time ([\#9744](matrix-org/matrix-react-sdk#9744)). Fixes element-hq/element-web#23973. * Correctly handle limited sync responses by resetting the thread timeline ([\#3056](matrix-org/matrix-js-sdk#3056)). Fixes element-hq/element-web#23952. * Fix failure to start in firefox private browser ([\#3058](matrix-org/matrix-js-sdk#3058)). Fixes element-hq/element-web#24216.
Changes in [1.11.20](https://github.com/vector-im/element-web/releases/tag/v1.11.20) (2023-01-20) ================================================================================================= ## 🐛 Bug Fixes * (Part 2) of prevent crash on older browsers (replace .at() with array.length-1) Changes in [1.11.19](https://github.com/vector-im/element-web/releases/tag/v1.11.19) (2023-01-18) ================================================================================================= ## 🐛 Bug Fixes * fix crash on browsers that don't support `Array.at` ([\#9935](matrix-org/matrix-react-sdk#9935)). Contributed by @andybalaam. Changes in [1.11.18](https://github.com/vector-im/element-web/releases/tag/v1.11.18) (2023-01-18) ================================================================================================= ## ✨ Features * Switch threads on for everyone ([\#9879](matrix-org/matrix-react-sdk#9879)). * Make threads use new Unable to Decrypt UI ([\#9876](matrix-org/matrix-react-sdk#9876)). Fixes #24060. * Add edit and remove actions to link in RTE [Labs] ([\#9864](matrix-org/matrix-react-sdk#9864)). * Remove extensible events v1 experimental rendering ([\#9881](matrix-org/matrix-react-sdk#9881)). * Make create poll dialog scale better (PSG-929) ([\#9873](matrix-org/matrix-react-sdk#9873)). Fixes #21855. * Change RTE mode icons ([\#9861](matrix-org/matrix-react-sdk#9861)). * Device manager - prune client information events after remote sign out ([\#9874](matrix-org/matrix-react-sdk#9874)). * Check connection before starting broadcast ([\#9857](matrix-org/matrix-react-sdk#9857)). * Enable sent receipt for poll start events (PSG-962) ([\#9870](matrix-org/matrix-react-sdk#9870)). * Change clear notifications to have more readable copy ([\#9867](matrix-org/matrix-react-sdk#9867)). * combine search results when the query is present in multiple successive messages ([\#9855](matrix-org/matrix-react-sdk#9855)). Fixes #3977. Contributed by @grimhilt. * Disable bubbles for broadcasts ([\#9860](matrix-org/matrix-react-sdk#9860)). Fixes #24140. * Enable reactions and replies for broadcasts ([\#9856](matrix-org/matrix-react-sdk#9856)). Fixes #24042. * Improve switching between rich and plain editing modes ([\#9776](matrix-org/matrix-react-sdk#9776)). * Redesign the picture-in-picture window ([\#9800](matrix-org/matrix-react-sdk#9800)). Fixes #23980. * User on-boarding tasks now appear in a static order. ([\#9799](matrix-org/matrix-react-sdk#9799)). Contributed by @GoodGuyMarco. * Device manager - contextual menus ([\#9832](matrix-org/matrix-react-sdk#9832)). * If listening a non-live broadcast and changing the room, the broadcast will be paused ([\#9825](matrix-org/matrix-react-sdk#9825)). Fixes #24078. * Consider own broadcasts from other device as a playback ([\#9821](matrix-org/matrix-react-sdk#9821)). Fixes #24068. * Add link creation to rich text editor ([\#9775](matrix-org/matrix-react-sdk#9775)). * Add mark as read option in room setting ([\#9798](matrix-org/matrix-react-sdk#9798)). Fixes #24053. * Device manager - current device design and copy tweaks ([\#9801](matrix-org/matrix-react-sdk#9801)). * Unify notifications panel event design ([\#9754](matrix-org/matrix-react-sdk#9754)). * Add actions for integration manager to send and read certain events ([\#9740](matrix-org/matrix-react-sdk#9740)). * Device manager - design tweaks ([\#9768](matrix-org/matrix-react-sdk#9768)). * Change room list sorting to activity and unread first by default ([\#9773](matrix-org/matrix-react-sdk#9773)). Fixes #24014. * Add a config flag to enable the rust crypto-sdk ([\#9759](matrix-org/matrix-react-sdk#9759)). * Improve decryption error UI by consolidating error messages and providing instructions when possible ([\#9544](matrix-org/matrix-react-sdk#9544)). Contributed by @duxovni. * Honor font settings in Element Call ([\#9751](matrix-org/matrix-react-sdk#9751)). Fixes #23661. * Device manager - use deleteAccountData to prune device manager client information events ([\#9734](matrix-org/matrix-react-sdk#9734)). ## 🐛 Bug Fixes * Display rooms & threads as unread (bold) if threads have unread messages. ([\#9763](matrix-org/matrix-react-sdk#9763)). Fixes #23907. * Don't prefer STIXGeneral over the default font ([\#9711](matrix-org/matrix-react-sdk#9711)). Fixes #23899. * Use the same avatar colour when creating 1:1 DM rooms ([\#9850](matrix-org/matrix-react-sdk#9850)). Fixes #23476. * Fix space lock icon size ([\#9854](matrix-org/matrix-react-sdk#9854)). Fixes #24128. * Make calls automatically disconnect if the widget disappears ([\#9862](matrix-org/matrix-react-sdk#9862)). Fixes #23664. * Fix emoji in RTE editing ([\#9827](matrix-org/matrix-react-sdk#9827)). * Fix export with attachments on formats txt and json ([\#9851](matrix-org/matrix-react-sdk#9851)). Fixes #24130. Contributed by @grimhilt. * Fixed empty `Content-Type` for encrypted uploads ([\#9848](matrix-org/matrix-react-sdk#9848)). Contributed by @K3das. * Fix sign-in instead link on password reset page ([\#9820](matrix-org/matrix-react-sdk#9820)). Fixes #24087. * The seekbar now initially shows the current position ([\#9796](matrix-org/matrix-react-sdk#9796)). Fixes #24051. * Fix: Editing a poll will silently change it to a closed poll ([\#9809](matrix-org/matrix-react-sdk#9809)). Fixes #23176. * Make call tiles look less broken in the right panel ([\#9808](matrix-org/matrix-react-sdk#9808)). Fixes #23716. * Prevent unnecessary m.direct updates ([\#9805](matrix-org/matrix-react-sdk#9805)). Fixes #24059. * Fix checkForPreJoinUISI for thread roots ([\#9803](matrix-org/matrix-react-sdk#9803)). Fixes #24054. * Snap in PiP widget when content changed ([\#9797](matrix-org/matrix-react-sdk#9797)). Fixes #24050. * Load RTE components only when RTE labs is enabled ([\#9804](matrix-org/matrix-react-sdk#9804)). * Ensure that events are correctly updated when they are edited. ([\#9789](matrix-org/matrix-react-sdk#9789)). * When stopping a broadcast also stop the playback ([\#9795](matrix-org/matrix-react-sdk#9795)). Fixes #24052. * Prevent to start two broadcasts at the same time ([\#9744](matrix-org/matrix-react-sdk#9744)). Fixes #23973. * Correctly handle limited sync responses by resetting the thread timeline ([\#3056](matrix-org/matrix-js-sdk#3056)). Fixes element-hq/element-web#23952. * Fix failure to start in firefox private browser ([\#3058](matrix-org/matrix-js-sdk#3058)). Fixes element-hq/element-web#24216.
Reworked version of #8272, since that ended up on the back burner for several months.
Checklist
Screenshots
Display a spinner for a few seconds while we wait for keys to arrive
If this device isn't verified, and there are other devices or backups to verify against, tell the user to verify first
If this device isn't verified and there's nothing to verify with, tell the user to reset keys
If this device is verified and there are other verified devices, advise opening one of those
If this is the only verified device, there's not much to do
Bubble layout
Dark mode
Here's what your changelog entry will look like:
✨ Features