Commit Graph

4000 Commits

Author SHA1 Message Date
Bruno Windels
2136b051a0 cleanup 2022-11-25 16:13:31 +01:00
Bruno Windels
c4e239a401 add timeformatter, shared between all view models 2022-11-25 16:13:22 +01:00
Bruno Windels
9c2c5af291 small UI refinements for date header 2022-11-25 16:12:35 +01:00
Bruno Windels
9b235f7c80 also test next next tile, change this back after testing before 2022-11-25 14:42:54 +01:00
Bruno Windels
b5d5adaa36 add tests
Co-authored-by: R Midhun Suresh <MidhunSureshR@users.noreply.github.com>
2022-11-25 14:42:24 +01:00
Bruno Windels
7c6d651b32 remove date headers when removing pending tiles 2022-11-25 12:09:28 +01:00
Bruno Windels
cb0ab589de remove lower bound check as we don't go negative anymore 2022-11-25 11:51:38 +01:00
Bruno Windels
31f53d27c1 emit update from datetile when date might have changed 2022-11-25 11:51:22 +01:00
Bruno Windels
4abf18a5f1 don't look at tiles before the inserted tile, there is no need
also clarify with comments how the current algorithm works
2022-11-25 11:26:53 +01:00
Bruno Windels
d889c7deeb bound checks in date header loop and cleanup
Co-authored-by: R Midhun Suresh <MidhunSureshR@users.noreply.github.com>
2022-11-25 10:49:26 +01:00
RMidhunSuresh
7bfadf37b4
Decode all segment values that aren't undefined 2022-11-25 11:33:02 +05:30
RMidhunSuresh
80080074fa
Don't encode unknown segment values 2022-11-25 11:20:47 +05:30
RMidhunSuresh
e9053372d6
Encode ids as URI component 2022-11-25 11:13:47 +05:30
Bruno Windels
3f7c1577e0 WIP 2022-11-18 23:26:59 +01:00
Eric Eastwood
1aba18ca1d Add <dialog>, <details>, and <optgroup> HTML elements to templating 2022-11-10 21:14:57 -06:00
Eric Eastwood
4125165760 Add full MXID tooltip to message sender display name
Follow-up to https://github.com/vector-im/hydrogen-web/pull/917
2022-11-10 20:59:27 -06:00
Bruno Windels
e4049c962a
Merge pull request #920 from vector-im/bwindels/fetch-sender-keys-without-tracking-room
Fix keys not being fetched to verify senders when the room isn't tracked yet.
2022-11-10 17:27:55 +00:00
Bruno Windels
bc96d5add1
Merge pull request #917 from vector-im/madlittlemods/full-mxid-tooltip
Add full MXID to message avatar/name
2022-11-10 17:27:41 +00:00
Bruno Windels
430464c829
Merge pull request #916 from vector-im/bwindels/fix-logout-button-on-load-error
Fix logout not working when there is a session load error
2022-11-10 17:26:53 +00:00
Bruno Windels
59533a3ba0
Merge pull request #918 from vector-im/madlittlemods/677-rename-urlrouter-usage-to-urlrouter
Rename `urlRouter` usage to `urlRouter` instead of `urlCreator`
2022-11-10 17:26:40 +00:00
Bruno Windels
155f4beba8 add devicesForUser to fetch devices for untracked room
and use it when fetching senders to verify.
2022-11-10 17:53:11 +01:00
Bruno Windels
3d5a733267 split up _devicesForUserIds to reuse with different outdated criteria 2022-11-10 17:51:40 +01:00
Bruno Windels
c78bed846e create unknown userIdentity when processing /keys/query response
this can happen when the room isn't tracked yet, which is a use case
we add support for in the next commit to verify senders that we don't
know about yet (e.g. when the room isn't tracked).
2022-11-10 17:28:18 +01:00
Bruno Windels
31579b4945 when tracking room, check roomId isn't on user we shouldn't share with 2022-11-10 17:26:50 +01:00
Bruno Windels
860f435855 log session afterSyncCompleted with normal log level 2022-11-10 17:26:21 +01:00
Bruno Windels
47d557b38d expand comment how to handle race here 2022-11-10 17:20:59 +01:00
Bruno Windels
32835e26b9 adjust query for finding all state events of a type
we were looking for state events with state key between \0 and \u10FFFF
but an empty state key is also valid and would come before \0,
so allow empty state keys at the beginning of the range and include them
in the result by opening the lower bound.
2022-11-10 14:12:22 +01:00
Eric Eastwood
a9fac140ac Rename urlRouter usage to urlRouter 2022-11-08 23:44:22 -06:00
Eric Eastwood
308a215349 Add full MXID to message avatar/sender 2022-11-08 22:15:17 -06:00
Bruno Windels
ec4413550b apply method rename (and catch errors) 2022-11-08 07:59:26 +01:00
Bruno Windels
f18aac017a
Merge pull request #819 from Kaki-In/recalculate_dm
Deleting leaving Heroes
2022-11-04 09:29:00 +00:00
Bruno Windels
cc70d44752
Merge pull request #913 from vector-im/bwindels/verify-unfetched-roomkey-senders
Verify unfetched roomkey senders
2022-11-04 09:04:41 +00:00
Bruno Windels
6c73c31735 take any decryption result, as it might now have a device to verify with 2022-11-03 17:32:01 +01:00
Bruno Windels
fa21ac021c use binding to update marking a message as (un)verified 2022-11-03 16:38:08 +01:00
Bruno Windels
dd7bbe89ac put detached logs in correct log item 2022-11-03 16:37:53 +01:00
Bruno Windels
dfede83c0b log verifying senders in own item 2022-11-03 16:37:38 +01:00
Bruno Windels
2582600249 await operation, otherwise it keeps running during next sync 2022-11-03 16:37:20 +01:00
Bruno Windels
25c8f1cf04 always return a promise from this method, even if nothing to verify 2022-11-03 16:36:31 +01:00
Bruno Windels
cd5343414a fix lint 2022-10-28 17:16:32 +02:00
Bruno Windels
6123d794da also fetch unknown sender keys after decrypting entries outside of sync 2022-10-28 16:55:36 +02:00
Bruno Windels
dc25f96e73 update observed events as well 2022-10-28 16:55:20 +02:00
Bruno Windels
218d25d973 fix typo 2022-10-28 16:50:01 +02:00
Bruno Windels
d0122d17c0 don't assume timeline is open as have an await since last check 2022-10-28 16:49:33 +02:00
Bruno Windels
6dbcd46d80 cleanup of ctor 2022-10-28 16:31:00 +02:00
Bruno Windels
fcb1546fba fetch keys as part of afterSyncCompleted step
remove needsAfterSyncCompleted step as well, performance difference
should be neglible
2022-10-28 16:25:31 +02:00
Bruno Windels
9c13b2b4a4 add method to fetch missing sender keys 2022-10-28 16:09:03 +02:00
Bruno Windels
c544819b42 rename and refactor method to verify locally known senders a bit
to differentiate with method to come for verifying senders that need to
be fetched still, and also allow reuse of verification logic by said new
method.

Also get rid of roomTracked flag in DecryptionResult as once we fetch
unknown senders (in commit to come), we should now always have a device,
unless the device isn't known on the server,
in which case we should shout.
2022-10-28 15:35:31 +02:00
Paulo Pinto
ad02c1625f Encode SSO redirect URL as it may contain multiple query parameters
If the returnURL contains multiple query parameters (e.g. http://localhost:3000?foo=bar&bar=baz), the homeserver would fail to correctly parse the URL, and only the first query parameter would be kept.

This is not an issue with the homeserver since the URL cannot be parsed in an unambiguous way, as the resulting URL would be:

https://example.com/_matrix/client/r0/login/sso/redirect?redirectUrl=http://localhost:3000?foo=bar&bar=baz

It's not possible to know whether the bar parameter is part of the "parent" URL, or part of the redirectUrl parameter.

----

To fix this, we now encode the redirectUrl parameter, which results in:

https://example.com/_matrix/client/r0/login/sso/redirect?redirectUrl=http%3A%2F%2Flocalhost%3A3000%2Fparent.html%3Ffoo%3Dbar%26bar%3Dbaz

This URL is correctly parsed by synapse.
2022-10-27 15:42:24 +01:00
Robert Long
c0306b45a6 Fix typechecking 2022-10-18 13:43:19 -07:00
Robert Long
e9b8cfbd9e Member should be expired if there's no expires at key 2022-10-18 13:42:01 -07:00
Eric Eastwood
9ad5dd752c
Make no content PL fallback to 0 (#863)
Make no `content` PL fallback to `0`. A valid PL event will have `content` but when you're just stubbing a PL event with an empty object `{}`, it doesn't need to exist and we can just as easily fallback to `0` PL level.

Split off from https://github.com/vector-im/hydrogen-web/pull/653

Changes necessary for https://github.com/matrix-org/matrix-public-archive/pull/57
2022-10-17 15:59:24 -05:00
Eric Eastwood
b4f4636555
Clarify that we no-op because if it's already aborted, that's what we wanted to do anyway (#861)
Split off from https://github.com/vector-im/hydrogen-web/pull/653
2022-10-17 15:56:34 -05:00
Bruno Windels
2416893718
Merge pull request #867 from ibeckermayer/ibeckermayer/ts-conversion-linkify
typescriptifying `linkify` and `regex`
2022-10-17 15:42:15 +00:00
Bruno Windels
2d526bc088 fix sdk build failing on tsc error 2022-10-14 20:13:23 +02:00
Bruno Windels
d37965ef91 return promise from _createSessionAfterAuth 2022-10-14 20:08:26 +02:00
Bruno Windels
4d5f202d94
Merge pull request #889 from vector-im/login_with_access_token
Add abiity to setup session immediately after registration without using /login
2022-10-14 08:54:52 +00:00
Bruno Windels
1f8a591cf6 dont need extra log depth 2022-10-14 10:28:42 +02:00
Bruno Windels
f46d2c1bf5 make startWithFinishedRegistration more broadly useful 2022-10-14 10:17:32 +02:00
Bruno Windels
89d031990f
Merge pull request #885 from vector-im/fix-866
Fix sync error
2022-10-14 07:53:56 +00:00
Bruno Windels
d9a4a362d9
Merge pull request #862 from vector-im/madlittlemods/remove-unused-button-styles-that-conflict
Remove unused conflicting generic styles
2022-10-11 16:36:13 +00:00
RMidhunSuresh
dcba6d1500
Split method 2022-10-11 18:05:54 +05:30
RMidhunSuresh
a448c0218d
Fix missing semicolon 2022-10-11 18:01:54 +05:30
RMidhunSuresh
1f764664c9
Expose homeserver from Registration object 2022-10-11 17:58:33 +05:30
RMidhunSuresh
85a9a019c8
Don't inhibit login 2022-10-11 17:58:07 +05:30
R Midhun Suresh
07823c2cd7
Merge pull request #873 from vector-im/madlittlemods/log-errors-to-console
Log errors when mounting views to the console for easier reference
2022-10-11 11:40:35 +05:30
R Midhun Suresh
dc13d1b283
Merge pull request #875 from vector-im/madlittlemods/event-data-attribute-on-announcement-view
Add `data-event-id` to `AnnouncementView` so it appears for state events in the timeline
2022-10-11 11:40:21 +05:30
Bruno Windels
5bf6a75546
Merge pull request #874 from vector-im/madlittlemods/add-more-html-tags
Add `<header>`, `<footer>`, `<style>` HTML tags to template with
2022-10-10 14:26:03 +00:00
R Midhun Suresh
8ef163353a
Merge pull request #793 from ibeckermayer/ibeckermayer/ts-conversion-observable-map
Typescript conversion for `src/observable/map`
2022-10-10 11:31:25 +05:30
Bruno Windels
7d10bec4ac remove comment not relevant anymore 2022-10-07 10:59:13 +02:00
Bruno Windels
4350537004 cleanup 2022-10-07 10:58:12 +02:00
Bruno Windels
7936863934 remove options on dispose in Member
to ensure callback can't be called anymore, as we don't check
that the member argument is the one currently in GroupCall._members.
2022-10-07 10:07:46 +02:00
Bruno Windels
400df6a4ff ensure removing expired members from call is always logged
also return the log item from logger.log so we can ref it
2022-10-07 10:07:10 +02:00
Bruno Windels
a07be730f9 bring member validity period back to 1h 2022-10-06 16:10:50 +02:00
Bruno Windels
a8ac504efd explain when joinedData is set 2022-10-06 16:10:36 +02:00
Bruno Windels
7ae9c3af0d renew at least 10s before own membership expires 2022-10-06 16:00:38 +02:00
Bruno Windels
c87fd4dfed cleanup 2022-10-06 15:59:45 +02:00
Bruno Windels
2ecfb8f139 unify dispose logic in Member 2022-10-06 15:22:15 +02:00
Bruno Windels
7eb8015ace ensure member.dispose is called when removing member
so expiration timer is always stopped
2022-10-06 15:20:05 +02:00
RMidhunSuresh
92ae3a3236
vm may not have created when this is called 2022-10-06 11:41:31 +05:30
Bruno Windels
56ecd39f26 don't assume joinedData is set here
although not entirely sure why it wouldn't be
2022-09-30 17:46:57 +02:00
Bruno Windels
1dddabc038 make removing own membership a bit clearer in the logs 2022-09-30 11:21:26 +02:00
Bruno Windels
b694d13348 can be readonly 2022-09-30 11:20:33 +02:00
Bruno Windels
f2564ed5cc also emit updates for expired, connected members that we didn't kick 2022-09-30 11:20:00 +02:00
Bruno Windels
b5f686b10e also allow clean up while still in Joining state, otherwise we get stuck
in joined state but without joinedData
2022-09-30 11:17:54 +02:00
Bruno Windels
282cba0ff1 call points for PeerCall.delay rely on AbortError actually being thrown
+ fix this in one call point where it wasn't the case
2022-09-30 11:17:07 +02:00
Bruno Windels
167a19a85b untracking from a disposed Disposables is actually not alarming
it happens under normal conditions when an abortable action is aborted
and you untrack afterwards.
2022-09-30 11:16:09 +02:00
Bruno Windels
8f8a964b3b allow to actually process the invite in the new peer call 2022-09-30 11:15:48 +02:00
Bruno Windels
05bb360c00 allow to dequeue signalling messages with repeated seq (from other call)
they will just be ignored by peerCall.getMessageAction() but we don't
want to block dequeuing on these
2022-09-30 11:12:04 +02:00
Bruno Windels
6f0e781b49 WIP 2022-09-26 19:15:13 +02:00
Bruno Windels
bf71a88799
Merge pull request #880 from vector-im/matthew/turn
Implement TURN
2022-09-26 14:19:00 +00:00
Bruno Windels
c660d82d6a make internal method private 2022-09-26 16:00:25 +02:00
Bruno Windels
eccbab1491 cleanup polling and also hangup on all ongoing calls on dispose session 2022-09-26 15:57:20 +02:00
Bruno Windels
24ebf6c559 cleanup 2022-09-26 15:47:48 +02:00
Bruno Windels
ac319bdafd we can assume setConfiguration is available 2022-09-26 15:45:41 +02:00
Bruno Windels
d36b9be24f fix screwing up whitespace 2022-09-26 15:41:30 +02:00
Bruno Windels
05c2da95c4 fix typo 2022-09-26 15:38:04 +02:00
Bruno Windels
e6bf49a6cc remove previous hardcoded turnServers setting 2022-09-26 15:27:41 +02:00
Bruno Windels
f74c4e6425 remove previous approach 2022-09-26 15:26:16 +02:00
Bruno Windels
917ad52302 use observable for turnserver in peercall
and subscribe if changing config is supported
2022-09-26 15:25:53 +02:00
Bruno Windels
3a4c38086c fetch turn server settings when joining a call, and pass down 2022-09-26 15:25:24 +02:00
Bruno Windels
035ead0d5b implement polling of voip turnServer settings from HS in separate class 2022-09-26 15:24:41 +02:00
Bruno Windels
f4e633beb4 support onfirstsubscribe callback in ROV
will use it to start polling for turnServer updates
2022-09-26 15:24:14 +02:00
Matthew Hodgson
6570ec46f4
setTurnServers doesn't need to be async 2022-09-26 09:02:22 +01:00
Matthew Hodgson
3d7852a469 set array of turnservers 2022-09-26 01:07:24 +01:00
Matthew Hodgson
eab87e5157 fix plurals 2022-09-26 00:52:41 +01:00
Matthew Hodgson
af2098327b first cut at implementing TURN 2022-09-26 00:47:12 +01:00
Matthew Hodgson
31e67142bd typo 2022-09-25 22:11:35 +01:00
Matthew Hodgson
8aa62b2573 don't ignore end-of-ICE candidates 2022-09-25 21:39:38 +01:00
Bruno Windels
7ce5cdfc4a prevent concurrent calls of OlmEncryption.encrypt to OOM olm wasm heap
This is being triggered by connecting to many call members at once,
while encrypting the signaling messages. This keeps many olm.Session
objects into memory at the same time, which makes olm run out of
wasm heap memory.
2022-09-22 13:19:56 +02:00
Isaiah Becker-Mayer
c8e6ca9a83 typescriptifying linkify and regex 2022-09-21 21:42:21 -04:00
Bruno Windels
bb2e63b05b don't queue messages for different callIds so last seq doesn't corrupt
this includes handling invite glares differently
2022-09-20 17:27:39 +02:00
Bruno Windels
2e9470027b
Update src/platform/web/ui/session/JoinRoomView.ts 2022-09-20 08:50:37 +00:00
Eric Eastwood
90ac16854b Add data-event-id to AnnouncementView so it appears for state events in the timeline
Follow-up to https://github.com/vector-im/hydrogen-web/pull/690

Split off from https://github.com/vector-im/hydrogen-web/pull/653
2022-09-16 13:59:50 -05:00
Eric Eastwood
b096ac18ca Add header, footer, style HTML tags to template with
Split off from https://github.com/vector-im/hydrogen-web/pull/653
2022-09-16 13:57:21 -05:00
Eric Eastwood
8f414f4cf4 Log errors when mounting views to the console for easier reference
From the console, I can click the source references in the stack trace
to jump to the spot in the code where things are going wrong.

It also helps with the problem of the error not having enough
space to be read in some components.

Split off from https://github.com/vector-im/hydrogen-web/pull/653
2022-09-16 13:50:29 -05:00
RMidhunSuresh
67dfbc5e28
Add return type 2022-09-12 23:48:01 +05:30
RMidhunSuresh
1898c4892e
Specify return type 2022-09-12 23:44:51 +05:30
RMidhunSuresh
88091622db
Rename variable 2022-09-12 23:21:55 +05:30
RMidhunSuresh
44eddd0d6b
Call method from menu 2022-09-12 17:24:58 +05:30
RMidhunSuresh
3426240ef4
Style JoinRoom View 2022-09-12 17:23:44 +05:30
RMidhunSuresh
d6ba218c08
Return view from SessionView 2022-09-12 17:22:53 +05:30
RMidhunSuresh
2d4b6b0341
Exctract into function 2022-09-12 17:22:10 +05:30
RMidhunSuresh
f1b86e3532
Add method to show join room view 2022-09-12 17:20:30 +05:30
RMidhunSuresh
84920622e3
Add join vm to session vm 2022-09-12 17:18:57 +05:30
RMidhunSuresh
c27dd97c5e
Add vm/view 2022-09-12 17:08:09 +05:30
RMidhunSuresh
413ba3279f
add "join-room" segment 2022-09-12 14:49:05 +05:30
RMidhunSuresh
cfbd0672c5 Refactor left panel to use menu 2022-09-06 15:42:41 +05:30
Eric Eastwood
23912b2c5a Remove unused conflicting generic styles
Split off from https://github.com/vector-im/hydrogen-web/pull/653

These styles were conflicting with some in the Matrix public archive
and instead of adjusting in that project, they seem unused here anyway
so we can simplify and remove here.
Conflict with the `.room-header-change-dates-button` styles in
https://github.com/matrix-org/matrix-public-archive/pull/53
2022-08-30 16:49:23 -05:00
R Midhun Suresh
ca4f6d83f9
Merge pull request #850 from vector-im/fix-798
Perform forced logout when access token is invalidated
2022-08-26 16:31:06 +05:30
RMidhunSuresh
bba2d9f0a9 Use t.map 2022-08-26 14:55:01 +05:30
RMidhunSuresh
b440bdcff0 Redirect to login screen 2022-08-26 14:46:15 +05:30
RMidhunSuresh
1f139f17e9 Add explaining comments 2022-08-26 14:43:41 +05:30
Isaiah Becker-Mayer
d025c1111e fixes [Symbol.iterator] typing 2022-08-25 22:56:40 -04:00
R Midhun Suresh
4966b57e12
Merge pull request #834 from vector-im/fix-627
Gap fill from HS should halt on network disconnection
2022-08-24 19:43:28 +05:30
R Midhun Suresh
db62427342
Merge pull request #836 from vector-im/fix-779
Clear keys from local storage when logging out
2022-08-24 19:43:02 +05:30
R Midhun Suresh
cb761a1cf1
Merge pull request #839 from vector-im/fix-833
Improve error handling in the UI and logs
2022-08-24 19:42:42 +05:30
RMidhunSuresh
f718034f2b Track the subscription 2022-08-24 19:40:11 +05:30
RMidhunSuresh
205ecdc52e Show error, progress in view 2022-08-24 19:31:38 +05:30
RMidhunSuresh
7b173fe8eb error prop may not always exist 2022-08-24 16:03:21 +05:30
RMidhunSuresh
5521862498 Use forced segment inside logout 2022-08-24 16:03:00 +05:30
RMidhunSuresh
0f2b7a1ce9 Navigate to UI when sync fails 2022-08-23 21:58:35 +05:30
RMidhunSuresh
216c5da386 Implement forced logout 2022-08-22 21:59:33 +05:30
Isaiah Becker-Mayer
1e6d5ca42f exports types instead of objects 2022-08-21 07:42:06 -04:00
Isaiah Becker-Mayer
ebd8c0751a fixes AsyncMappedList 2022-08-20 17:04:13 -04:00
Isaiah Becker-Mayer
77f21f7a91 fixes import order according to https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de 2022-08-20 16:39:39 -04:00
Isaiah Becker-Mayer
92ed503700 Fixes MappedMap type system 2022-08-19 19:02:06 -04:00
RMidhunSuresh
86fec8bf0e Make code more readable 2022-08-19 18:22:37 +05:30
RMidhunSuresh
d6cea6fc5c Extract method to function outside class 2022-08-19 16:36:21 +05:30
RMidhunSuresh
34dd7e4fa5 Remove code 2022-08-19 16:31:48 +05:30
RMidhunSuresh
fdd6eb8fdc Set boolean to true so that gapfill proceeds 2022-08-19 11:55:44 +05:30