* Force verification even for refreshed cients
Set a flag on login to remember that the device needs to be verified
so that we don't forget if the user refreshes the page, but still allow
user with an existing unverified session to stay logged in.
* Hopefully make matrixchat tests pass?
Much, much tweaking to make the matrixchat tests pass again. Should
hopefully make them a bit more solid in general with judicious use of
waitFor rather than flushPromises(). Also lots of fun to stop the state
bleeding between tests.
* Manual yarn.lock manipulation
to hopefully resolve infinite package sadness
* Make final test pass(?)
Mock out the createClient method to return the same client, because
we've mocked the peg to always return that client, so if we let the
code make another one having still overridden the peg, everything becomes
cursed.
Also mock out the autodiscovery stuff rather than relying on fetch-mock.
* another waitFor
* death to flushPromises
* Put the logged in dispatch back
Actually it breaks all sorts of other things too, having fixed all the
MatrixChat tests (although this is useful anyway).
* Try displaying the screen in onClientStarted instead
* Put post login screen back in logged in
but move ready transition to avoid flash of main UI
* Rejig more in the hope it does the right thing
* Make hook work before push rules are fetched
* Add test for unskippable verification
* Add test for use case selection
* Fix test
* Add playwright test for unskippable verification
* Remove console log
* Add log message to log line
* Add tsdoc
* Use useTypedEventEmitter
* Remove commented code
* Use catch instead of empty then on unawaited promises
or in one case just await it because the caller was async anyway
* Add new mock
* Use Compound close icon in favour of mishmash of x/close icons
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove stale CSS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
https://github.com/element-hq/matrix-react-sdk/pull/92 changed the default mode
for encryption to throw an error when sending a message and the room contains either:
- a verified user with an unverified device
- a verifeid user who has changed their identity.
We're not really ready for this (we lack the UI to deal with it), so roll that
back.
* Remove right panel toggling behaviour on room header buttons
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove stale test
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>
Since Element Call has now reached production on Element X, Element Web needs to be able to at least participate in group calls. Starting a group call or creating a video room will still require the labs flags, for now.
Note that Jitsi-based video rooms are also affected by this change. This is not because we intend to delabs them (rather, we intend to get rid of them in favor of Element Call video rooms), but because it's easiest to handle both video room variants consistently.
* Add labs option to exclude unverified devices
Add a labs option which will, when set, switch into the "invisible crypto"
mode of refusing to send keys to, or decrypt messages from, devices that have
not been signed by their owner.
* DecryptionFailureBody: better error messages
Improve the error messages shown for messages from insecure devices.
* playwright: factor out `createSecondBotDevice` utility
* Playwright test for messages from insecure devices
* fixup! DecryptionFailureBody: better error messages
Use compound colour tokens, and add a background colour.
* fixup! DecryptionFailureBody: better error messages
Use compound spacing tokens
Add a labs option which will, when set, switch into the "invisible crypto"
mode of refusing to send keys to, or decrypt messages from, devices that have
not been signed by their owner.
* Improve contrast for timestamps and room list search trigger
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update screenshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Change timeline separator colour to primary for improved contrast
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update screenshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Open room settings on room header avatar click
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix nested interactive elements aria fail
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update things for a11y and update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* CryptographyPanel: fix display of device key
* CryptographPanel: Fix HTML nesting
you're not supposed to put <tr> directly inside <table>; doing so causes
warnings.
* Update tests
* Grant Element Call widget caps for "raise hand"
This allows the widget to send and receive event types used by the
"raise hand" feature (element-hq/element-call#2542) without prompting
the user to grant the capabilities to do so.
* Lint
I have no idea why this is flaking. There are warnings about
things not being wrapped in act() which may be relevant... this makes
the warnings happy, although apparently should not be necessary.
https://github.com/testing-library/user-event/discussions/906 and
https://github.com/testing-library/user-event/issues/497 are
depressing reading (making the versions the same didn't help). I think
my conclusion might be to do this until we're able to upgrade to the
latest testing-library, then re-evaluate.
It still may or may not fix the flake.
* Mobile registration optimizations
- don't autocaptialize or autocorrect on username field
- show each password field in their own row
- improve position of tooltip on mobile so that it's visible
* Use optional prop rather than default prop.
* Redirect to welcome screen if mobile_registration is requested but not enabled in the config.
* autocorrect value should be "off"
* Add unit tests for mobile registration
* Fix test typo
* Fix typo
* Replace `MatrixClient.keyBackupKeyFromRecoveryKey` by `decodeRecoveryKey`
* Replace `MatrixClient.isValidRecoveryKey` by local check with `decodeRecoveryKey`
* Replace old `decodeRecoveryKey` import
* Remove `matrix-js-sdk/src/crypto/recoverykey` import of eslint exception
* Add tests for `RestoreKeyBackupDialog`