Commit Graph

41357 Commits

Author SHA1 Message Date
Richard van der Hoff
0a01320fca Element-R: pass pickleKey in as raw key for indexeddb encryption (#12543)
* Element-R: pass pickleKey in as raw key for indexeddb encryption

Currently, we pass the `pickleKey` to the rust library for use as a passphrase
for encrypting its crypto store. The Rust libary then passes that passphrase
through 200000 rounds of PBKDF2 to generate an encryption key, which is
(deliberately) slow.

However, the pickleKey is actually 32 bytes of random data (base64-encoded). By
passing the raw key into the rust library, we can therefore save the PBKDF
operation.

Backwards-compatibility with existing sessions is maintained, because if the
rust library discovers that the store was previously encrypted with a key based
on a PBKDF, it will re-base64 and PBKDF the key we provide, thus reconstructing
the right key.

* Update src/Lifecycle.ts

Co-authored-by: Florian Duros <florianduros@element.io>

* Lifecycle-test: clean up test setup

Rely less on the unit under test for setting up the test preconditions -- not
least because we don't really want to fire up matrix clients and the like
during test setup.

* Factor out "encryptPickleKey" method

For a start it makes it easier to grok what's going on, but also I went to use
this in a test

* Improve tests for `Lifecycle.restoreFromLocalStorage`

---------

Co-authored-by: Florian Duros <florianduros@element.io>
2024-06-05 08:52:28 +00:00
ElementRobot
3912401db5 [create-pull-request] automated change (#12557)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-05-31 06:23:11 +00:00
Florian Duros
679b170bc5 Close the release announcement when a dialog is opened (#12559)
* Fire `ModalManagerEvent.Closed` when a dialog is closed

* Listen to modal events in the RA

* Fix first RA test
2024-05-29 07:22:50 +00:00
Florian Duros
17ab522942 Tooltip: close field tooltip when ESC is pressed (#12553)
* Close field tooltip when ESC is pressed

* Use `Key.ESCAPE`
2024-05-28 12:55:47 +00:00
Michael Telatynski
148a360598 Avoid using deprecated exports, fields, and duplicate code (#12555) 2024-05-28 08:41:20 +01:00
ElementRobot
1973197eb6 [create-pull-request] automated change (#12554)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-05-24 06:24:23 +00:00
Florian Duros
b6132db68f Merge branch 'develop' into florianduros/tooltip/legacy-tooltip 2024-05-22 15:12:34 +02:00
Florian Duros
04741ae6a6 Add tests for ReadReceiptGroup.tsx 2024-05-22 15:07:57 +02:00
Florian Duros
1190de9028 Migrate TooltipTarget usage to compound Tooltip (#12542)
* Use new tooltip in `RoomTopic.tsx`

* Use new tooltip in `MLocationBody.tsx`

* Fix room topic

* Update location snapshot

* Use new tooltip in `AppPermission.tsx`

* Remove `TooltipTarget`

* Add tests for `RoomTopic`
2024-05-22 12:15:07 +00:00
Florian Duros
a6907a033e Use compound tooltip in ReactionRowButton 2024-05-22 11:27:01 +02:00
Florian Duros
67c7514dcd Delete useTooltip.tsx 2024-05-22 09:42:54 +02:00
Florian Duros
25fa1238ec Use tooltip compound in ReadReceiptPerson component 2024-05-22 09:29:54 +02:00
Florian Duros
dbe00e5889 Use tooltip compound in ReadReceiptGroup component 2024-05-21 18:17:31 +02:00
Florian Duros
7d3b3d7f95 Use tooltip compound in MessageComposer.tsx 2024-05-21 17:42:01 +02:00
Florian Duros
a5e4daa0d1 Deprecate Tooltip.tsx 2024-05-21 17:37:04 +02:00
Valere
a29cabe45a Report verification and recovery state to posthog (#12516)
* Report verification and recovery state to posthog

* Fix CryptoApi import

* Fix js-sdk import

* Review: Use DeviceVerificationStatus instead of CrossSigningStatus

* Review: Clean condition to check secrets in 4S

* review: Fix redundent !!
2024-05-21 14:37:00 +00:00
Ed Geraghty
f712b809e2 Remove code smell assertion identified by Sonar (#12547)
* This assertion is unnecessary since the receiver accepts the original type of the expression

* Implement `client.getDomain()` null check

* Update comment since `AutoDiscovery.findClientConfig` may still throw
2024-05-21 13:49:12 +00:00
David Baker
3342aa5ff8 Refactor some logic into common AvatarSetting component (#12544)
* Refactor some logic into common AvatarSetting component

We duplicated some of the logic of setting avatars between profiles &
rooms. This pulls some of that logic into the AvatarSetting component
and hopefully make things a little simpler.

* Unsed import

* Convert JS based hover to CSS

* Remove unnecessary container

* Test avatar-as-file path

* Test file upload

* Unused imports

* Add test for RoomProfileSettings

* Test removing room avatar

* Move upload control CSS too

* Remove commented code

Co-authored-by: Florian Duros <florianduros@element.io>

* Prettier

* Coments & move style to inline as per PR suggestion

* Better test names

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix test

Upload input doesn't have that class anymore

---------

Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-05-21 10:37:02 +00:00
Hubert Chathi
1bb70c5b3b Only report undecryptable events once (#12501)
* persist previously-reported event IDs as a bloom filter

* Pin to older `@types/seedrandom`

... to work around https://github.com/Callidon/bloom-filters/issues/72

* Inline `DecryptionFailureTracker.addDecryptionFailure`

* Remove redundant TRACK_INTERVAL

There really doesn't seem to be much point to this batching up of decryption
failure reports. We still call the analytics callback the same number of times.

* Rename `trackedEvents` to `reportedEvents`

* Fix incorrect documentation on `visibleEvents`

This *does* overlap with `failures`.

* Combine `addFailure` and `reportFailure`

* Calculate client properties before starting reporting

* Clear localstorage after each test

... otherwise they interfere

* Remove redundant comment

* Ensure that reports are cleared on a logout/login cycle

* make private const private and const

---------

Co-authored-by: Richard van der Hoff <richard@matrix.org>
2024-05-20 14:53:50 +00:00
Richard van der Hoff
3e103941d6 Cleanup work on DecryptionFailureTracker (#12546)
* Inline `DecryptionFailureTracker.addDecryptionFailure`

* Remove redundant TRACK_INTERVAL

There really doesn't seem to be much point to this batching up of decryption
failure reports. We still call the analytics callback the same number of times.

* Rename `trackedEvents` to `reportedEvents`

* Fix incorrect documentation on `visibleEvents`

This *does* overlap with `failures`.

* Combine `addFailure` and `reportFailure`

* Calculate client properties before starting reporting
2024-05-17 16:19:31 +00:00
Florian Duros
75562b1d1b Tooltip: migrate remaining tooltips from AccessibleTooltipButton to AccessibleButton (#12522)
* Use `AccessibleButton` in `RovingAccessibleTooltipButton`

* Update snapshots

* Update @vector-im/compound-web

* Update composer

* Update formating buttons

* Update snapshots

* Update `ContextMenuTooltipButton.tsx`

* Fix placement

* Update tests

* Remove placement

* Update space panel snapshot

* Remove default placement

* Update snapshots

* Update snapshots

* Use kbd

* Update ``@vector-im/compound-web`

* Migrate remaining files

* Remove `AccessibleTooltipButton.tsx`

* Add test to `InteractiveAuthEntryComponents`

* Add test to `InteractiveAuthEntryComponents`

* Back to old RoomList-test.tsx

* Improve `InteractiveAuthEntryComponent` tests

* Review changes
2024-05-17 14:11:07 +00:00
Florian Duros
8f3c8b3515 Use RovingAccessibleButton instead of RovingAccessibleTooltipButton (#12539) 2024-05-17 10:29:30 +00:00
Florian Duros
2d0319ec1b Improve tooltip placement for space settings (#12541) 2024-05-17 10:21:51 +00:00
Hubert Chathi
eed8d1538b Add more encryption properties to PostHog (#12415)
* report time to decrypt an event if it's slow

* add more stats

* fix some tests

* keep original timestamp, and report non-visible decryption failures

* add statistic for whether the user trusts their own device

* revert local playwright docker changes

* apply changes from review

* also remove logout event handler on logout

* apply changes from review

* make eventDecrypted callback private
2024-05-16 00:25:58 +00:00
Michael Telatynski
0c04ec1def Shown own sent state indicator even when showReadReceipts is disabled (#12540)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-15 23:34:02 +00:00
Michael Telatynski
24df2e8cb7 Ensure we do not fire the verification mismatch modal multiple times (#12526)
* Ensure we do not fire the verification mismatch modal multiple times

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add rust crypto test for mismatch emoji cancellation

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-15 15:22:53 +00:00
Michael Telatynski
113c365563 Stop using deprecated methods, fields & exports (#12524)
* Remove legacy `threepidCreds` field

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove `user` field legacy UIA fallback

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update imports

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-15 14:58:28 +00:00
Florian Duros
bec8fdb3d3 Tooltip: Improve accessibility for context menus (#12462)
* Update `ContextMenuTooltipButton.tsx`

* Fix placement

* Update tests

* Update space panel snapshot

* Remove default placement

* Update snapshots

* Fix tooltip child rerender

* Remove useless props title
2024-05-15 14:25:30 +00:00
Florian Duros
6b0cb75d82 Use kdb in space panel shortcut (#12525) 2024-05-15 09:44:17 +00:00
Michael Telatynski
667a7548a7 Use * for italics as it doesn't break when used mid-word (#12523)
* Use `*` for italics as it doesn't break when used mid-word

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-15 09:01:45 +00:00
Florian Duros
77a724526e Tooltip: Improve the accessibility of the composer and the rich text editor (#12459)
* Use `AccessibleButton` in `RovingAccessibleTooltipButton`

* Update snapshots

* Update @vector-im/compound-web

* Update composer

* Update formating buttons

* Update snapshots

* Remove placement

* Update snapshots

* Use kbd

* Update ``@vector-im/compound-web`
2024-05-15 08:32:53 +00:00
Travis Ralston
bcd5c838e8 Typescriptify & use service worker for MSC3916 authentication (#27326)
* Typescriptify & use service worker for MSC3916 authentication

* appease the linter

* appease jest

* appease linter

* Get the access token directly

* Add a bit of jitter

* Improve legibility, use factored-out functions for pickling

* Add docs

* Appease the linter

* Document risks of postMessage

* Split service worker post message handling out to function

* Move registration to async function

* Use more early returns

* Thanks(?), WebStorm

* Handle case of no access token for /versions

* Appease linter

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove spurious try/catch

* Factor out fetch config stuff

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Finish applying code review suggestions

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-05-14 13:17:38 -06:00
Michael Telatynski
6e31f69118 Reuse single PlaybackWorker between Playback instances (#12520)
* Terminate playback worker on destroy

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Reuse single PlaybackWorker between all Playbacks

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* ...

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-14 14:56:33 +00:00
Michael Telatynski
f0281886d7 Fix well-known lookup for sliding sync labs check (#12519)
* Fix well-known lookup for sliding sync labs check

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-14 12:40:10 +00:00
Michael Telatynski
d0b30d1631 Allow explicit configuration of OIDC dynamic registration metadata (#12514)
* Fix `element-desktop-ssoid being` included in OIDC Authorization call

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Split out oidc callback url into its own method

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Allow explicit configuration of OIDC dynamic registration metadata

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix test

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix unexpected hash on oidc callback url

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* undefined > []

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-14 09:38:33 +00:00
Florian Duros
357f882ff5 Move to AccessibleTooltipButton in messages (#12487) 2024-05-14 08:22:28 +00:00
Michael Telatynski
706f4c6e20 Merge branch 'develop' of https://github.com/vector-im/element-web into t3chguy/oidc-config 2024-05-13 17:49:02 +01:00
Michael Telatynski
cc6958980b Fix element-desktop-ssoid being included in OIDC Authorization call (#12495)
* Fix `element-desktop-ssoid being` included in OIDC Authorization call

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Split out oidc callback url into its own method

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix unexpected hash on oidc callback url

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update src/BasePlatform.ts

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-05-13 13:31:08 +00:00
Michael Telatynski
64f0bb5460 Inline consts
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-13 13:05:50 +01:00
Michael Telatynski
ed7a21a63c Remove spurious type casts and avoid deprecated symbols (#12513)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-13 10:48:07 +00:00
ElementRobot
113299db43 [create-pull-request] automated change (#12515)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-05-13 08:29:50 +00:00
Hubert Chathi
4ed6da4eba Remove old pre-join UTD logic (#12464)
* remove old pre-join UTD logic

and add a playwright test for new pre-join UTD

* remove variable that isn't used any more

* add missing synapse template

* remove unused variable (again) and run prettier

* add test that we can jump to an event before our latest join membership event

* modify default template instead of creating a new template
2024-05-10 20:20:40 +00:00
David Baker
948435ceb9 Collapse UserSettings tabs to just icons on narrow screens (#12505)
* Collapse UserSettings tabs to just icons on narrow screens

* Add screenshot test

* Better comment formatting.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Comment the media query

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-05-10 16:29:50 +00:00
Michael Telatynski
58e5b3959d Allow explicit configuration of OIDC dynamic registration metadata
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-10 13:13:59 +01:00
Michael Telatynski
9efa04da7a Split out oidc callback url into its own method
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-10 11:58:58 +01:00
Michael Telatynski
eee0b2a9c3 Add room topic to right panel room info (#12503)
* Add room topic to right panel room info

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Tweak styles

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshot

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add snapshot tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-10 10:00:43 +00:00
Hugh Nimmo-Smith
38893928cb Add note about MSC3886, MSC3903 and MSC3906 being closed (#12496) 2024-05-10 09:59:51 +00:00
Michael Telatynski
3109b97fd3 Fix beta notifications reconciliation for intentional mentions push rules (#12510)
* Fix beta notifications reconciliation for `.m.rule.is_room_mention`

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Same fix for `.m.rule.is_user_mention`

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-05-09 14:11:11 +00:00
R Midhun Suresh
706c4b7101 Use h tag for widget title instead of b tag (#12504)
* Change b tag to h3 tag

* Remove margin

* Update snapshots
2024-05-08 13:57:17 +00:00
ElementRobot
51a543643e [create-pull-request] automated change (#12502)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
2024-05-08 07:40:57 +00:00