Bruno Windels
0cbf6008a2
log event id when sending and when receiving remote echo on sync
2021-02-23 19:58:01 +01:00
Bruno Windels
7b7907add0
some doc comments for logging api
2021-02-23 19:23:12 +01:00
Bruno Windels
dd38fc13d7
log sending messages
2021-02-23 19:22:59 +01:00
Bruno Windels
57bb75e864
log login & loading a session
2021-02-23 19:22:25 +01:00
Bruno Windels
ef1e867dee
no need for keys in the iteration
2021-02-23 19:20:58 +01:00
Bruno Windels
67ddcaa468
fix lint errors in Sync
2021-02-23 19:20:36 +01:00
Bruno Windels
c6c96a611a
fix iteration bug when disposing pending events at shutdown
...
discovered by logging
2021-02-23 19:04:25 +01:00
Bruno Windels
a8df30016b
mark force-finished log items when app closes
2021-02-23 15:36:36 +01:00
Bruno Windels
17451b7bd6
fix typo
2021-02-23 15:36:17 +01:00
Bruno Windels
ed1b37d251
support referencing other log items that are detached (fire & forget)
...
for async tasks that are not awaited
2021-02-23 15:27:55 +01:00
Bruno Windels
b2621b3001
Merge pull request #234 from vector-im/bwindels/sync-logging
...
Better sync logging
2021-02-22 13:31:34 +00:00
Bruno Windels
0a4d72b011
remove extra newline
2021-02-22 11:23:24 +01:00
Bruno Windels
94cc8b99b0
don't need to check this actually, sync response should be there
2021-02-22 11:21:56 +01:00
Bruno Windels
f0d9d13f4e
don't assume device lists are set in sync response
2021-02-22 11:20:51 +01:00
Bruno Windels
3a8badb3e7
also add log method to null logger
2021-02-22 10:48:46 +01:00
Bruno Windels
364295c7a9
don't throw when container is already disposed, just dispose immediately
2021-02-22 10:48:06 +01:00
Bruno Windels
417e920ea0
make log id autoinc
2021-02-22 10:46:40 +01:00
Bruno Windels
656637e5e2
typo
2021-02-19 11:57:50 +01:00
Bruno Windels
f4a3b64da0
log in sync writer (at detail level) and log room ids at info level
2021-02-19 11:57:17 +01:00
Bruno Windels
08622699f6
more logging for device messages
2021-02-18 19:56:47 +01:00
Bruno Windels
c5c0a181ff
move check for devicelists up in Session.writeSync, and more logging
2021-02-18 19:56:10 +01:00
Bruno Windels
ad0c813833
don't take network time into account in sync log filter
2021-02-18 19:48:19 +01:00
Bruno Windels
f2f9162b85
log pagehide event
2021-02-18 19:47:16 +01:00
Bruno Windels
bd85dc2393
children is undefined here actually, so filter wasn't working properly
2021-02-18 15:38:32 +01:00
Bruno Windels
cd68bb7b3f
log when devices get marked as outdated
2021-02-18 14:00:06 +01:00
Bruno Windels
8539b0c893
also log session in after sync completed as detail level
2021-02-18 13:07:52 +01:00
Bruno Windels
dea11845f5
log encrypted event count in session sync write
2021-02-18 13:07:32 +01:00
Bruno Windels
e590b573fb
log remaining specific room entries as detailed
2021-02-18 12:44:19 +01:00
Bruno Windels
9f9de0988e
don't log here yet as the logger isn't passed from createIdentity yet
2021-02-18 12:44:19 +01:00
Bruno Windels
7524a912c3
use (t)ype rather than kind
2021-02-18 12:44:19 +01:00
Bruno Windels
f321968ac3
add more sync logging
2021-02-18 12:44:19 +01:00
Bruno Windels
e14929bd4f
inherit log level from parent rather than defaulting to info if not set
2021-02-18 12:44:19 +01:00
Bruno Windels
cc916b80de
add app version to logs
2021-02-18 12:44:19 +01:00
Bruno Windels
d201d2c9de
don't use depth based log filtering, also add Detail log level
...
it's hard to make it work with an override where you don't want
to filter by depth if a given loglevel is present in the children.
2021-02-18 12:44:19 +01:00
Bruno Windels
d39c3812b2
Merge pull request #231 from vector-im/bwindels/logs
...
Structured logging
2021-02-17 10:19:46 +00:00
Bruno Windels
5bec4d5a72
comment
2021-02-16 20:05:33 +01:00
Bruno Windels
630ac40f05
this is broken now, but we're not using it anyway, so remove
2021-02-16 20:00:08 +01:00
Bruno Windels
0ccf735148
console log when failing to restore queued items
2021-02-16 19:57:45 +01:00
Bruno Windels
b28eefb2db
do emergency serialization without log filter
2021-02-16 19:53:37 +01:00
Bruno Windels
c3637def2e
ensure any breakage does not disrupt logging
2021-02-16 18:36:41 +01:00
Bruno Windels
2dd8803efc
better error handling if something goes wrong serializing log items
2021-02-16 18:30:23 +01:00
Bruno Windels
338f628627
remove option to anonymize
2021-02-16 18:30:06 +01:00
Bruno Windels
90cfcad5f1
add privacy notice in settings
2021-02-16 18:25:52 +01:00
Bruno Windels
59928432df
better logs filename
2021-02-16 17:46:07 +01:00
Bruno Windels
1f91fa9a94
final flush interval
2021-02-16 17:45:47 +01:00
Bruno Windels
e629a93edd
delete extra log items when over limit,to not have to delete every flush
2021-02-16 17:45:19 +01:00
Bruno Windels
ee4a382578
revert this back
2021-02-16 15:38:43 +01:00
Bruno Windels
5d67db0c5e
Fix NullLogger
2021-02-16 15:35:30 +01:00
Bruno Windels
7dc3707871
add button to export logs
2021-02-16 15:27:24 +01:00
Bruno Windels
48569c28bc
serialize logs as json
2021-02-16 15:08:08 +01:00
Bruno Windels
4defbe1322
simplify log filtering, while also adding depth based filtering
2021-02-16 15:07:17 +01:00
Bruno Windels
78805f0a65
implement dynamic log filtering
...
the logger does not have a base level any more, because there is
no sensible place to configure this.
instead, we allow to dynamically determine what should be logged
after an operation finished by setting the threshold and default
log level inspecting the finished log item.
2021-02-16 11:37:48 +01:00
Bruno Windels
510d5ab2cd
add bool settings type
2021-02-12 19:08:13 +01:00
Bruno Windels
704708bd6c
add some logging to sync
2021-02-12 18:56:26 +01:00
Bruno Windels
07f8500d29
don't read from settings for now, as it is async
2021-02-12 18:55:37 +01:00
Bruno Windels
1183305d71
wrapLog => run is a better name
2021-02-12 18:36:21 +01:00
Bruno Windels
42780df94f
actually track log items, and correctly remove them
2021-02-12 18:36:04 +01:00
Bruno Windels
a53c25d2ae
support logging in hsApi
2021-02-12 18:35:33 +01:00
Bruno Windels
e6c108c6e0
no need to copy it over in viewmodel
2021-02-12 18:06:14 +01:00
Bruno Windels
f65db338cf
make it work
2021-02-12 18:05:39 +01:00
Bruno Windels
89139bba30
expose some meta data on a log export to show before submitting
2021-02-12 16:08:28 +01:00
Bruno Windels
c0a03858eb
add option to anonymize logged values
2021-02-12 16:08:07 +01:00
Bruno Windels
bbab1e9ecc
move base64/58 encoding into platform
...
fixes https://github.com/vector-im/hydrogen-web/issues/99
2021-02-12 16:01:54 +01:00
Bruno Windels
2bb7b3b598
add null logger
2021-02-12 14:06:09 +01:00
Bruno Windels
0763410aa1
filter output when serializing by loglevel
2021-02-12 14:05:51 +01:00
Bruno Windels
4c2abcf9c7
add logger to platform
2021-02-12 13:04:18 +01:00
Bruno Windels
91bd5f638c
finish logging api
2021-02-12 13:04:05 +01:00
Bruno Windels
e515548037
add some comments while debugging a problem
2021-02-11 21:08:06 +01:00
Bruno Windels
89599e9f87
WIP
2021-02-11 21:07:18 +01:00
Bruno Windels
e49639fda2
move textencoder/decoder into platform
2021-02-11 17:29:48 +01:00
Bruno Windels
ac1bbb3937
ensure thumbnail dimensions are integer, fixes #203
2021-02-11 11:15:20 +01:00
Bruno Windels
a9a27133b9
fix #204
2020-11-26 09:49:25 +01:00
Bruno Windels
1c4818cf1d
prevent a new iframe being created for every download
2020-11-23 10:28:20 +01:00
Bruno Windels
2f0f168c6e
show 'sending' while waiting for remote echo for filetile instead of unknown status
2020-11-20 16:38:16 +01:00
Bruno Windels
b7aca076ba
better wording
2020-11-20 16:32:33 +01:00
Bruno Windels
7bf02f42b7
don't use grid to put lightbox on top, as it broke again in IE11
2020-11-20 16:32:13 +01:00
Bruno Windels
83d54351b1
put spacer behind rather than before link to open lightbox
2020-11-20 16:14:32 +01:00
Bruno Windels
45dd539179
also update preference onchange for IE
2020-11-20 16:06:16 +01:00
Bruno Windels
3eec897630
better wording
2020-11-20 16:06:05 +01:00
Bruno Windels
9ab81eea02
add setting for image compression level
2020-11-20 15:51:16 +01:00
Bruno Windels
764cddcdec
can be cached
2020-11-20 11:45:38 +01:00
Bruno Windels
f7a07a9e79
adjust fileview/tile to pendingevent changes
2020-11-20 11:45:14 +01:00
Bruno Windels
628a3b65c6
cancel > remove
2020-11-19 15:02:59 +01:00
Bruno Windels
8b8d06cf3e
show error for attachments still need upload but missing after refresh
2020-11-19 14:42:29 +01:00
Bruno Windels
18407e17a8
toggle popup menu
2020-11-18 20:18:09 +01:00
Bruno Windels
59a92bdf97
vm changes for improved image view
2020-11-18 20:10:05 +01:00
Bruno Windels
0581066350
upload smallest attachments first
...
so you don't get a delay at the end of the upload
when starting a new request
2020-11-18 20:09:27 +01:00
Bruno Windels
a23075a326
make safe to call when no attachments present
2020-11-18 20:09:07 +01:00
Bruno Windels
fba5877b3b
dispose attachment blobs when pending event is removed/closing session
2020-11-18 20:08:42 +01:00
Bruno Windels
f6dbb23f79
better error handling for file and picture upload
2020-11-18 20:07:31 +01:00
Bruno Windels
47147f2d46
progress bar for upload, add cancel button, no lightbox while uploading
2020-11-18 20:06:34 +01:00
Bruno Windels
6f94ca1a4a
make toBlob work on IE11
2020-11-18 16:28:48 +01:00
Bruno Windels
a930dec8db
adjust ImageTile to state machine changes
2020-11-18 13:05:10 +01:00
Bruno Windels
fd81111bfb
merge state machine from AttachmentUpload into PendingEvent
...
to have less state machines, and we are mostly interested in the
aggregate status of all attachments of an event
this will also drive updates through the pending events collection
that already exists rather than an extra observablevalue, so less
housekeeping to update the UI.
2020-11-18 13:04:23 +01:00
Bruno Windels
91f7970d66
Merge branch 'master' into bwindels/upload-images
2020-11-16 19:31:04 +01:00
Bruno Windels
ca7c07a23c
fix #200
2020-11-16 19:29:51 +01:00
Bruno Windels
d1a95c664d
require space after /me
2020-11-16 19:29:29 +01:00
Bruno Windels
671e23a123
basic reporting of image upload progress in %
2020-11-16 15:10:44 +01:00
Bruno Windels
6bd777e7be
make sure cors errors on setting headers don't fail sending the request
2020-11-16 15:10:25 +01:00
Bruno Windels
83cbe78cd6
report attachment upload progress
2020-11-16 10:45:46 +01:00
Bruno Windels
1dd46b875b
this is fine actually, as it will get encrypted.
...
just don't pass it to the upload
2020-11-13 19:22:06 +01:00
Bruno Windels
41738ad660
local echo for image tiles
2020-11-13 19:15:21 +01:00
Bruno Windels
8b82c991e7
wire up image uploads
2020-11-13 19:15:03 +01:00
Bruno Windels
41fb3e742e
fix file upload attachment api changes
2020-11-13 19:13:35 +01:00
Bruno Windels
0292725076
better formatting
2020-11-13 19:10:18 +01:00
Bruno Windels
262cc8936e
don't leak mimetype for encrypted attachments
2020-11-13 19:10:04 +01:00
Bruno Windels
96e46d154c
copyright header for legacy platform
2020-11-13 19:05:09 +01:00
Bruno Windels
791b3ae04f
don't center align link buttons (while at it)
2020-11-13 19:04:46 +01:00
Bruno Windels
d2a4242e5b
support multiple attachments per event
2020-11-13 17:19:19 +01:00
Bruno Windels
14b3c4b701
no need for a dedicated class just to hide it
2020-11-13 16:00:32 +01:00
Bruno Windels
9bb521986b
first draft of generic popup and menu views
2020-11-13 15:58:40 +01:00
Bruno Windels
6fd10b63e5
add device pixel ratio scaling while at it
2020-11-12 13:50:32 +01:00
Bruno Windels
1ad8af34d1
add thumbnailing code
2020-11-12 13:50:06 +01:00
Bruno Windels
f23312b0d3
fix decrypt/encrypt wording in error message
2020-11-11 13:17:05 +01:00
Bruno Windels
8b16d8bc99
handle upload failures better
2020-11-11 13:06:03 +01:00
Bruno Windels
d477be2b41
put paperclip in send file button
2020-11-11 12:57:43 +01:00
Bruno Windels
6384702863
fix file selector for IE11
2020-11-11 12:47:26 +01:00
Bruno Windels
8db7499f5a
support AES-CTR 256 JWK keys in legacy crypto for IE11
2020-11-11 12:44:59 +01:00
Bruno Windels
fd9eccec4d
support local echo in FileTile while uploading
2020-11-11 11:52:06 +01:00
Bruno Windels
af4f3f902f
wait for attachment to be uploaded in send queue
...
also expose attachment from PendingEvent(Entry)
2020-11-11 11:51:39 +01:00
Bruno Windels
48cd4ac95d
track upload error
2020-11-11 11:51:11 +01:00
Bruno Windels
91f15074be
/upload is on /media/r0, not /client/r0
2020-11-11 11:50:40 +01:00
Bruno Windels
366f3c0bba
iv and digest are sent in unpadded base64
2020-11-11 11:50:20 +01:00
Bruno Windels
e9324ad678
support jwk keys to encrypt
2020-11-11 11:47:39 +01:00
Bruno Windels
e2dd9b9f77
fix typos/refactor errors
2020-11-11 11:47:13 +01:00
Bruno Windels
65d02072c8
hook up UI
2020-11-11 11:47:05 +01:00
Bruno Windels
7088b2cdc8
support attachment upload and sending from room api
2020-11-11 10:47:55 +01:00
Bruno Windels
0c70a67ebb
pass platform to room
...
as we'll need it to access crypto and creating blobs
2020-11-11 10:47:19 +01:00
Bruno Windels
c289bcd097
return blob from encryptAttachment
2020-11-11 10:46:37 +01:00
Bruno Windels
32b7b1f064
draft of AttachmentUpload class
2020-11-11 10:46:20 +01:00
Bruno Windels
2890a6aff7
implement attachment uploading in hs api rather than media repo
...
as we need the access token
2020-11-11 10:45:44 +01:00
Bruno Windels
9f2c7c1e32
support uploading blobs in hs api
2020-11-11 10:45:23 +01:00
Bruno Windels
c278b0f4a3
rename blob.blob to blob.nativeBlob
...
also to make the name a bit more unique where we want to do duck typing
2020-11-11 10:44:44 +01:00
Bruno Windels
2cfffa015d
WIP
2020-11-10 22:36:26 +01:00
Bruno Windels
a37d8c0223
implement AES encryption
2020-11-10 19:48:36 +01:00
Bruno Windels
c65e8bea11
clean up properly
2020-11-10 19:05:50 +01:00
Bruno Windels
d14f485292
Merge branch 'master' into bwindels/file-downloads
2020-11-10 18:55:27 +01:00
Bruno Windels
2ad34c2dd2
c/p error for passing arguments to create_outbound
2020-11-10 18:31:33 +01:00
Bruno Windels
f5480b7708
provide random value for IE11
2020-11-10 18:31:18 +01:00
Bruno Windels
ba323c65d6
fix typo in name
2020-11-10 18:30:48 +01:00
Bruno Windels
6fa9471292
remove trailing whitespace
2020-11-10 17:51:39 +01:00
Bruno Windels
2d8000d11d
file tile view
2020-11-10 17:50:53 +01:00
Bruno Windels
a3ca0feda9
file tile view model
2020-11-10 17:50:38 +01:00
Bruno Windels
21a7ec0dff
byte size formatting
2020-11-10 17:50:20 +01:00
Bruno Windels
373a42c7a8
allow downloading plaintext attachments also, with or without cache
2020-11-10 17:49:48 +01:00
Bruno Windels
4477073d6d
add platform method to offer saving a buffer handle
2020-11-10 17:24:30 +01:00
Bruno Windels
de143fdafc
update timestamp when creating a new megolm session
2020-11-10 16:17:56 +01:00
Bruno Windels
a4f610ad3f
support emotes
2020-11-10 15:13:31 +01:00
Bruno Windels
1c978f060e
Merge pull request #182 from Newbytee/submit-for-login
...
Use submit event for login instead of click
2020-11-10 14:09:56 +00:00
Bruno Windels
e4fa4ded6c
hide clear button in composer on IE
2020-11-10 14:02:37 +01:00
Bruno Windels
769feac73c
cleanup
2020-11-10 14:02:27 +01:00
Bruno Windels
fd498b3d24
no need to keep track of promise, fn is internally rate-limited now
2020-11-10 14:02:07 +01:00
Bruno Windels
89c66699d7
some Lock refactoring that I didn't end up needing but still useful
2020-11-10 11:04:53 +01:00
Bruno Windels
f13f1cd593
prevent leaking resources in olm worker
2020-11-10 11:04:39 +01:00
Bruno Windels
5f6ad91ff2
offload creating an olm session to the olm worker
...
so IE11 doesn't lock up when you start typing
2020-11-10 11:04:09 +01:00
Bruno Windels
bd5771e449
remove obsolete comment
2020-11-09 17:22:37 +01:00
Bruno Windels
6572377832
move tracking the room to where we need the devices
2020-11-09 16:50:39 +01:00
Bruno Windels
9cfb3c8e95
only check to pre-share new megolm session every minute
2020-11-09 16:50:05 +01:00
Bruno Windels
44a2febce9
hook it up
2020-11-06 23:43:02 +01:00
Bruno Windels
c6ff4c2517
finish room encryption part
2020-11-06 18:56:32 +01:00
Bruno Windels
d0d1f68a9c
WIP
2020-11-06 16:56:12 +01:00
Bruno Windels
5d12aef6db
support pre-sharing room keys in room encryption
2020-11-06 10:32:37 +01:00
Bruno Windels
85ba1676e5
log non-network errors in service worker to diagnose #187
2020-11-05 22:51:21 +01:00
Bruno Windels
9708e394a0
don't assume the thumbnail was cached already
2020-11-05 22:45:20 +01:00
Bruno Windels
e0c8be3a9a
try to call out when #187 happens
2020-11-05 22:41:33 +01:00
Bruno Windels
c696a75f88
fix #177
2020-11-05 22:37:39 +01:00
Bruno Windels
16542284f3
fix #48
2020-11-05 21:24:14 +01:00
Bruno Windels
b8370d53b6
always throw here so we never get to Ready status when stopped
2020-11-05 21:22:29 +01:00
Bruno Windels
134f018849
always have an error when stopping sync
2020-11-05 21:21:27 +01:00
Bruno Windels
9f453c0984
fix #152
2020-11-05 21:19:34 +01:00
Bruno Windels
b27f6a067f
implement .size for all observable maps
...
as SortedMapList uses it, putting undefined in its list
initially when missing, creating a crash in
the TemplateView that renders it
2020-11-05 12:00:17 +01:00
Newbyte
e112e9c2d2
Use submit event for login trigger
...
Signed-off-by: Newbyte <newbie13xd@gmail.com>
2020-11-05 11:21:04 +01:00
Newbyte
3ab70861cc
Add form to element list
...
Signed-off-by: Newbyte <newbie13xd@gmail.com>
2020-11-05 11:21:04 +01:00
Bruno Windels
0003ddebb5
also fix grid layout
2020-11-03 09:12:11 +01:00
Bruno Windels
9131cf00a3
load images when they becomes partly into view
2020-11-02 14:49:59 +01:00
Bruno Windels
72fdce4a86
fix broken layout after changing to grid
2020-11-02 14:15:24 +01:00
Bruno Windels
a3ec01385b
Merge pull request #178 from vector-im/bwindels/lightbox
...
Lightbox for picture messages
2020-11-02 11:23:10 +00:00
Bruno Windels
f1b557f995
add comment
2020-11-02 11:29:22 +01:00
Bruno Windels
fd28b39e23
fix spacing between spinner and loading text in lightbox
2020-11-02 11:29:09 +01:00
Bruno Windels
7e9e937742
IE11 doesn't calculate padding percentages based on parent width in grid
...
so do progressive fallback. This won't scale the height of the
image tile height, but it will still scale the thumbnail
on narrow viewports, leaving a blank space underneath the image.
2020-11-02 11:16:35 +01:00
Bruno Windels
fbbdaf7dfa
expose IE11 flag in JS as well
2020-11-02 11:16:19 +01:00
Bruno Windels
57da68fb1e
padding for lightbox
2020-10-31 00:25:51 +01:00
Bruno Windels
4d08e415bd
fallback for IE11
2020-10-31 00:25:42 +01:00
Bruno Windels
8507a3eb16
prevent jumps when image loads by adding a spacer
2020-10-31 00:25:05 +01:00
Bruno Windels
5aa2c7dc5c
dom changes for timeline image view
2020-10-30 22:52:54 +01:00
Bruno Windels
5a31bc5f2b
basic focus trapping of lightbox
2020-10-30 22:52:32 +01:00
Bruno Windels
708893022a
use justify/align-self rather than auto margins, works better in IE11
2020-10-30 22:52:08 +01:00
Bruno Windels
a21765757d
don't use position: absolute for scaling images in the timeline
...
as it bleeds through the lightbox on IE11, and is a bad idea anyway
2020-10-30 22:51:57 +01:00
Bruno Windels
581dc95c53
allow adding custom event handlers to a template view
...
so you don't have to remove them yourself
2020-10-30 22:48:56 +01:00
Bruno Windels
c847cfb200
WIP: Esc key on lightbox
2020-10-30 19:59:42 +01:00
Bruno Windels
597a57eae3
too much whitespace
2020-10-30 19:59:21 +01:00
Bruno Windels
c9147e6b9a
implement first draft of image lightbox
2020-10-30 15:20:11 +01:00
Bruno Windels
137264edcb
implement subscribing to a single event
2020-10-30 15:19:51 +01:00
Bruno Windels
7d81306a49
return BufferHandles from the media repository
...
BufferHandles are platform specific handles to a buffer. On web,
they have a .blob and .url property.
2020-10-30 15:18:27 +01:00
Bruno Windels
0691f34650
detect abort error by name here too
2020-10-30 09:55:03 +01:00
Bruno Windels
3008367307
detect AbortError properly, name is a string
2020-10-30 09:54:38 +01:00
Bruno Windels
68a0dd30ca
add lightbox navigation and basic view & view model
2020-10-29 11:12:32 +01:00
Bruno Windels
fe6e4464fd
pass all viewmodel options to tile view models
2020-10-29 11:10:34 +01:00
Bruno Windels
d7ccdd3304
switch main layout from flexbox to grid so we can overlay a lightbox
2020-10-29 11:10:34 +01:00
Bruno Windels
862a0ba56b
show image decryption error
2020-10-29 10:29:08 +01:00
Bruno Windels
d1e78a735a
show error in label for now
2020-10-29 10:18:05 +01:00
Bruno Windels
0405af0116
disable click-to-zoom on image
...
so we can release before the lightbox ix ready
2020-10-29 10:17:19 +01:00
Bruno Windels
b69464b87d
improve picture styling
2020-10-27 16:47:22 +01:00
Bruno Windels
d55f38a9e9
don't reimplement removing an item from the list
2020-10-27 16:26:45 +01:00
Bruno Windels
97c3a4b8f3
store error when loading encrypted images
2020-10-27 16:21:08 +01:00
Bruno Windels
e7ff6decbf
remove unneeded quotes
2020-10-27 16:20:41 +01:00
Bruno Windels
c9efee77f2
if shape is update and item should be different view, recreate the tile
2020-10-27 16:20:04 +01:00
Bruno Windels
77dca5dd55
add update parameter when replacing tile
2020-10-27 16:19:36 +01:00
Bruno Windels
932542bea0
some more cleanup
2020-10-27 14:35:47 +01:00
Bruno Windels
fcc4c21ad2
filter mime types for blob urls
2020-10-27 14:35:33 +01:00
Bruno Windels
ade01f6cf7
space
2020-10-27 13:51:40 +01:00
Bruno Windels
2ebce8eb7b
set responseType after calling open
2020-10-27 13:50:09 +01:00
Bruno Windels
a61d7fc68a
jwk key support for aesjs
2020-10-27 13:21:12 +01:00
Bruno Windels
a3aa25449b
make it work with xhr
2020-10-26 17:37:32 +01:00
Bruno Windels
ee1e62207c
apply platform changes to decrypting images
2020-10-26 17:18:17 +01:00
Bruno Windels
3ed5ea8b0b
Merge branch 'master' into bwindels/decrypt-images
2020-10-26 17:08:29 +01:00
Bruno Windels
98be9a8f4d
fix legacy spinner
2020-10-26 16:44:12 +01:00
Bruno Windels
1a518cdd28
more refactor fixes
2020-10-26 16:31:30 +01:00
Bruno Windels
03351d2e1f
extract platform class to put all platform specific code in
2020-10-26 15:44:11 +01:00
Bruno Windels
46fd769dda
(re)move old (compile-time) platform code
2020-10-26 10:34:35 +01:00
Bruno Windels
06e4dea590
move ui and dom under platform/web
2020-10-26 10:28:11 +01:00
Bruno Windels
2e0d1363c7
fix
2020-10-26 10:16:23 +01:00
Bruno Windels
a6224135e3
extract blob url code to platform (WIP)
2020-10-26 10:14:46 +01:00
Bruno Windels
4fd71279cf
don't disable cache for media repository downloads
2020-10-26 09:58:39 +01:00
Bruno Windels
cbd48aa528
only load main image when clicking thumbnail
2020-10-26 09:49:42 +01:00
Bruno Windels
6a468a0883
decrypt attachment code
2020-10-23 17:45:15 +02:00
Bruno Windels
3a6268f0c1
basic PoC of image decryption working
...
needs looooaaads of cleanup still
2020-10-23 17:25:11 +02:00
Bruno Windels
f214c53fa9
add @internal and other comments to Session
2020-10-23 12:59:40 +02:00
Bruno Windels
62c8d6574c
fix index.html not being restored from cache when offline on #hash url
2020-10-23 12:58:45 +02:00
Bruno Windels
df8eed14aa
expose whether we already have a 4s key,to show the 4s setup in settings
...
it's a tri-state of null/false/true with null meaning we need to
go online first to know as only then we try to setup session backup
2020-10-23 12:57:47 +02:00
Bruno Windels
df72e829bf
setup session backup as part of start method, so we know we're online
...
also don't upload OTKs in case of existing account until
catchup sync has happened
2020-10-23 12:22:52 +02:00
Bruno Windels
f1aef6c034
render should return nodes otherwise the mapView binding doesn't work
...
this broke e2ee messages appearing when decrypted
2020-10-21 12:10:42 +02:00
Bruno Windels
7459985e00
show storage usage in settings
2020-10-20 17:50:43 +02:00
Bruno Windels
545a2e481a
prevent cached thumbnails from being opaque responses
...
fixes https://github.com/vector-im/hydrogen-web/issues/169
2020-10-20 17:28:42 +02:00
Bruno Windels
a7a922680d
request persisted storage when logging in/restoring a session
2020-10-20 17:02:34 +02:00
Bruno Windels
2b93d50396
dont crash when value is undefined
2020-10-20 16:51:51 +02:00
Bruno Windels
4dd303e558
remove unused code
2020-10-20 15:29:36 +02:00
Bruno Windels
1e1b254678
adjust prop names
2020-10-20 15:26:22 +02:00
Bruno Windels
601bdbb25d
make session backup banner dismissable
2020-10-20 14:42:17 +02:00
Bruno Windels
446d30469b
improve wording and cleanup
2020-10-20 12:12:07 +02:00
Bruno Windels
98d7ffe87c
add button to set up field
2020-10-20 12:11:58 +02:00
Bruno Windels
16e0f515dc
make text not sprawl across screen on large monitors
2020-10-20 12:10:56 +02:00
Bruno Windels
6f09bd97b6
move setting view models in own dir / file
2020-10-20 12:10:41 +02:00
Bruno Windels
6f82d81f39
better session backup ui
2020-10-19 18:29:13 +02:00
Bruno Windels
d3b7d176b8
extract SettingsView into own file
...
also fix some copyright attributions
2020-10-19 14:55:01 +02:00
Bruno Windels
1fe3f646dc
further style settings page
2020-10-19 14:53:05 +02:00
Bruno Windels
d8f8342a10
make middle panel responsive styling + hide back b. + header css generic
2020-10-19 14:52:18 +02:00
Bruno Windels
1e599be142
Merge branch 'master' into bwindels/settings-screen
2020-10-19 13:45:17 +02:00
Bruno Windels
6bf8e976cb
don't assign timelineVM before loaded, so prop doesn't return it
...
... if the binding happens to be evaluating (which it was during mount)
follow-up from bwindels/fix-crash-switch-rooms-too-fast
2020-10-19 13:39:19 +02:00
Bruno Windels
f07b4a6554
Merge pull request #167 from vector-im/bwindels/fix-redirects
...
Fix back button not working when changing rooms
2020-10-19 11:01:07 +00:00
Bruno Windels
cdcdc07c06
fix a crash when switching rooms before the messages have loaded
...
as we were not disposing the timeline view model
(but still not leaking though)
2020-10-19 12:57:21 +02:00
Bruno Windels
8357260133
fix an applying an url also pushing a copy of the url back on history
...
it should replace instead, as it is a redirect
2020-10-19 12:55:42 +02:00
Bruno Windels
fb273782bf
use handleEvent in History so we don't have to bind
2020-10-19 12:55:10 +02:00
Bruno Windels
3e34ccb7e1
rename, I think, last occurrence of brawl to hydrogen 👋
2020-10-19 12:52:57 +02:00
Bruno Windels
db102e63d2
Merge branch 'master' into bwindels/settings-screen
2020-10-19 10:13:41 +02:00
Bruno Windels
90910dae15
render multiline messages with br's
2020-10-19 10:00:32 +02:00
Bruno Windels
4828e141c9
add br tag to html template
2020-10-19 10:00:18 +02:00
Bruno Windels
efe6956a79
support render method and value in StaticView
2020-10-19 09:59:56 +02:00
Bruno Windels
974f77a71d
WIP
2020-10-16 18:06:20 +02:00
Bruno Windels
90435a8fb7
semicolons, add them
2020-10-16 15:48:49 +02:00
Bruno Windels
e599d8b6fa
also clear
2020-10-16 15:47:13 +02:00
Bruno Windels
74e6d018f4
ensure url creation does not race on the current path of the navigation
2020-10-16 15:46:06 +02:00
Bruno Windels
0ca926d427
claim clients immediately from service worker
2020-10-16 14:52:34 +02:00
Bruno Windels
743cdd0bea
safari is tooo fast and skips it when it shouldn't
...
also, I've never had the registration fail, seems very unlikely
2020-10-16 13:26:19 +02:00
Bruno Windels
c125335ef0
undo debug squibels
2020-10-16 13:03:16 +02:00
Bruno Windels
5a30855227
rename urlRouter option in view models to urlCreator
2020-10-16 13:02:21 +02:00
Bruno Windels
0d622164df
close session db in other tabs when opening
2020-10-16 12:50:37 +02:00
Bruno Windels
fc61729cb3
support closing session in other clients in service worker
2020-10-16 12:50:19 +02:00
Bruno Windels
101c7015f2
move service worker code in bundle, and support closing sessions
2020-10-16 12:49:42 +02:00
Bruno Windels
788bce7904
reduce navigation boilerplate
...
this makes the url router adjust the url when the navigation path is
changed, instead of doing urlRouter.applyUrl() and
urlRouter.history.pushUrl().
This history field and applyUrl method on URLRouter are now private,
as the URLRouter should only be used to generate urls you want to
put in an <a href="..."></a>, anything else should use navigator.push()
2020-10-16 12:46:14 +02:00
Bruno Windels
ddf7d01760
WIP working
2020-10-15 21:35:10 +02:00
Bruno Windels
3aa1992a3f
WIP of messaging to sw
2020-10-15 19:12:16 +02:00
Bruno Windels
6b15e7e3ba
remove extra newline
2020-10-15 15:58:59 +02:00
Bruno Windels
5fcf8022a1
store the url on every change, as PWAs don't trigger beforeunload ...
...
... when (force) closed
2020-10-14 15:30:40 +02:00
Bruno Windels
3d8dfc9635
also show grid layout in mobile layout, just in case of restoring url
2020-10-14 15:29:51 +02:00
Bruno Windels
7c2fc516bb
restore last url if not providing a specific one on startup
2020-10-14 15:10:32 +02:00
Bruno Windels
19e774ce01
don't assume grid button is a button, just in case
2020-10-14 14:54:56 +02:00
Bruno Windels
4f46854362
add close session button
2020-10-14 14:54:46 +02:00
Bruno Windels
d96f8adcc7
fix back button in room header not working
2020-10-14 14:53:52 +02:00
Bruno Windels
cf99f55f3d
fix typo making the room list not shown on the mobile layout
2020-10-14 14:20:53 +02:00
Bruno Windels
fd1df595c8
remove leftover logging
2020-10-14 14:06:11 +02:00
Bruno Windels
8122d76e73
Merge branch 'master' into bwindels/url-routing
2020-10-14 12:45:49 +02:00
Bruno Windels
b00db1af3e
only keep 20 outbound olm sessions in memory at once to prevent OOM
2020-10-14 12:44:27 +02:00
Bruno Windels
07701117cd
reduce megolm sync cache size to 1 session
...
as this is kept around for every e2ee room, and we only have
limited olm memory
2020-10-14 12:43:35 +02:00
Bruno Windels
6ad7be8726
fix leaking left panel view model after closing session
2020-10-14 11:34:34 +02:00
Bruno Windels
de83d7740b
replace custom error view with staticview
2020-10-14 11:26:39 +02:00
Bruno Windels
fa8bec0b56
fix room view model being leaked when closing session
2020-10-14 11:26:10 +02:00
Bruno Windels
b29b776e9f
fix olm session cache being leaked when closing session
2020-10-14 11:25:49 +02:00
Bruno Windels
789a41c671
fix styling for session info entries
2020-10-14 10:34:25 +02:00
Bruno Windels
692fa808e4
make utility buttons also useable for links
2020-10-14 10:34:11 +02:00
Bruno Windels
7e477b3c8d
rename button.styled to .button-action so it can also be used for links
2020-10-14 10:33:48 +02:00
Bruno Windels
5fe479e8a9
fix styling for room list items
2020-10-14 10:20:20 +02:00
Bruno Windels
3d327b0875
also open the initial room in the room list
2020-10-14 10:20:00 +02:00
Bruno Windels
2333a959a2
actually apply the /session/<id> url after login!
2020-10-13 17:10:28 +02:00
Bruno Windels
ab354e9f38
update prop type
2020-10-13 15:19:54 +02:00
Bruno Windels
afbfb0c82c
anticipate non-found rooms
2020-10-13 15:18:13 +02:00
Bruno Windels
081820d8fb
also update view when going to an not-found room
2020-10-13 15:14:07 +02:00
Bruno Windels
a14795e3f8
unused
2020-10-13 15:05:11 +02:00
Bruno Windels
d1d675ed7a
make navigation observables already return new value before they emit
2020-10-13 14:54:57 +02:00
Bruno Windels
7f3e0f237b
also do redirect after initial navigation
2020-10-13 14:43:45 +02:00
Bruno Windels
1780f334ea
more tests
2020-10-13 13:13:47 +02:00
Bruno Windels
d9c8a6339e
support empty strings for rooms segment
2020-10-13 13:13:35 +02:00
Bruno Windels
7b13e45e19
fix creating the rooms segment
2020-10-13 13:13:15 +02:00
Bruno Windels
a360d0a2b9
also unset room vm if moving away from room
2020-10-13 13:12:49 +02:00
Bruno Windels
379d65edf1
also create new vm when coming for grid if transfering vm fails
2020-10-13 13:12:30 +02:00
Bruno Windels
77a58041eb
clean-up room grid initialization with vm transfering
...
also handle duplicate rooms, and add unit tests for grid vm
2020-10-13 13:11:19 +02:00
Bruno Windels
c8dd7b42e7
encountered this very unlikely race while testing, so prevent it
2020-10-13 13:10:35 +02:00
Bruno Windels
db5c98a706
support reassigning to null from untrack
2020-10-13 13:10:27 +02:00
Bruno Windels
4e8e9eae26
first round of fixes
2020-10-12 18:31:55 +02:00
Bruno Windels
14d2dcbc60
remove dead code
2020-10-12 17:49:41 +02:00
Bruno Windels
b2d6b7014b
first draft of url navigation for grid
2020-10-12 17:49:06 +02:00
Bruno Windels
6c2c29a7da
WIP
2020-10-09 19:43:11 +02:00
Bruno Windels
83ac3eccc5
apply url changes to view gallery
2020-10-09 17:04:25 +02:00
Bruno Windels
56e51fc2aa
idea comment
2020-10-09 17:04:17 +02:00
Bruno Windels
927e8134d3
use url navigation in root view model
...
also track all view models as it is
important everything is properly disposed now
2020-10-09 17:03:38 +02:00
Bruno Windels
33627edcb3
use url to go back in login view
2020-10-09 17:03:24 +02:00
Bruno Windels
35e85c55e0
use urls instead of callbacks to navigate in session picker
2020-10-09 17:03:13 +02:00
Bruno Windels
7b86b483ed
confirm before clearing
2020-10-09 17:02:19 +02:00
Bruno Windels
3ab68ef438
throw when something tracked is not disposable, fail early
2020-10-09 17:01:54 +02:00
Bruno Windels
1289f065d6
implement root view as template view
2020-10-09 17:01:39 +02:00
Bruno Windels
0f8f558889
dispose session container from view model
2020-10-09 17:01:22 +02:00
Bruno Windels
d48bbd122a
make applyUrl and history public
...
so we don't need to bother with silent flags in replaceUrl
2020-10-09 17:00:19 +02:00
Bruno Windels
35b83b7976
make SessionLoadViewModel transfer ownership of container with callback
...
also, deleting the session when navigating away is now done by
LoginViewModel
2020-10-09 16:59:34 +02:00
Bruno Windels
4ae622bdd3
make pushUrl silent again
2020-10-09 16:58:53 +02:00
Bruno Windels
41c1c9a6c3
rename Brawl -> Root
...
one of the last occurrences of brawl
2020-10-09 09:59:59 +02:00
Bruno Windels
c9bb18b87e
make loading screen a bit prettier
...
by wrapping it in a view with common pre-session chrome
this renames the existing SessionLoadView to SessionLoadStatusView
so we can call the wrapper the former.
2020-10-09 09:58:00 +02:00
Bruno Windels
696e7856f8
some cleanup
2020-10-09 09:56:01 +02:00
Bruno Windels
da9798979c
Merge branch 'master' into bwindels/url-routing
2020-10-09 09:30:38 +02:00
Bruno Windels
24690f8035
fix placeholder not being hidden in mobile layout
2020-10-09 09:30:06 +02:00
Bruno Windels
0d54f88670
early draft of showing load progress of a session loaded through url
2020-10-08 18:23:53 +02:00
Bruno Windels
00bd4364f0
early draft of loading session via url scheme
2020-10-08 18:23:37 +02:00
Bruno Windels
087aff4ef4
set to true if undefined passed in as well
2020-10-08 18:23:08 +02:00
Bruno Windels
4fe971775c
more url router work, differentiate between path and url
...
rename hashobservable to history
2020-10-08 18:22:36 +02:00
Bruno Windels
547241f577
Merge branch 'master' into bwindels/url-routing
2020-10-08 16:42:14 +02:00
Bruno Windels
ca0f8fd142
leave some space between room list tile and edge
2020-10-08 16:37:24 +02:00
Bruno Windels
5c2425796c
Merge branch 'master' into bwindels/url-routing
2020-10-08 16:33:19 +02:00
Bruno Windels
cb0ef1a1ae
this makes the caret huge on gnome web
2020-10-08 16:29:38 +02:00
Bruno Windels
35832e387a
Swap grid tile description based on focus
...
swap RoomPlaceholderView for generic StaticView
2020-10-08 16:14:59 +02:00
Bruno Windels
93e301e4fa
fix spinner margins
2020-10-08 15:53:12 +02:00
Bruno Windels
4783e03871
fix room header margin issue with hidden back button
2020-10-08 15:21:16 +02:00
Bruno Windels
868b1a1045
style composer
2020-10-08 15:20:52 +02:00
Bruno Windels
59802d1812
style room header
2020-10-08 15:00:20 +02:00
Bruno Windels
2cbe349a4d
don't read private parts
2020-10-08 14:21:34 +02:00
Bruno Windels
5c299c1db9
remove prefixes now we auto prefix
2020-10-08 14:18:48 +02:00
Bruno Windels
47a43869e6
fix grid layout in IE 11
...
this brings back index addressing rather than x y in the grid vm,
as we need to have a css class for every position for IE 11,
as we can't use css variables and autoprefixer can
translate grid-areas
2020-10-08 14:17:43 +02:00
Bruno Windels
c4cfb6f6d1
align left panel to 4px grid better, and simply margins
2020-10-08 10:29:30 +02:00
Bruno Windels
fd4b3d238f
increase click area of clear filter button, add search icon
2020-10-08 10:13:05 +02:00
Bruno Windels
c2eebb9af2
prevent filter field and composer breaking narrow layouts
2020-10-08 10:11:12 +02:00
Bruno Windels
e80f37603b
prevent breaking narrow layouts with inputs
2020-10-08 10:10:39 +02:00
Bruno Windels
26112fe3de
update grid icons
2020-10-08 10:10:03 +02:00
Bruno Windels
dafa995429
placeholder does not count as room shown
2020-10-07 18:00:07 +02:00
Bruno Windels
b79b41adcd
keep focused class
2020-10-07 17:59:58 +02:00
Bruno Windels
c80c369c42
prevent grid item from growing to max content height
2020-10-07 17:59:40 +02:00
Bruno Windels
bd959bc147
style grid button
2020-10-07 17:59:28 +02:00
Bruno Windels
ddda03d82c
style filter field and grid button
2020-10-07 17:59:14 +02:00
Bruno Windels
61b5369f2f
also show status view a bit lower for grid
2020-10-07 14:53:41 +02:00
Bruno Windels
f6d9ffa7bb
friends don't read each others private properties
2020-10-07 14:36:08 +02:00
Bruno Windels
46b24c3f24
fix room not changing when not in grid view
2020-10-07 14:32:57 +02:00
Bruno Windels
537972b97b
clarify comment
2020-10-07 14:25:32 +02:00
Bruno Windels
de14d6b54b
fix filter field taking up too much width
2020-10-07 14:22:14 +02:00
Bruno Windels
152a83f75f
css for the grid view
2020-10-07 14:22:00 +02:00
Bruno Windels
99ff387dec
index the room by x,y instead of index from the view
...
so it is easier to implement a focus-ring as a separate dom node
2020-10-07 14:18:35 +02:00
Bruno Windels
b9d2da736a
when opening room, focus in grid if already open
2020-10-07 13:18:19 +02:00
Bruno Windels
1ff6d36ec3
add grid toggle button to left panel
2020-10-07 12:31:52 +02:00
Bruno Windels
7955462dda
render grid view in session view
2020-10-07 12:31:24 +02:00
Bruno Windels
dc1357bb31
support clearing unread when focusing a room
2020-10-07 12:30:46 +02:00
Bruno Windels
614ec08238
integrate grid vm with session vm, allowing to switch
2020-10-07 12:25:40 +02:00
Bruno Windels
9cc7833d7a
implement room grid view
2020-10-07 12:24:44 +02:00
Bruno Windels
5a1d255d2a
implement room grid view model
2020-10-07 12:23:02 +02:00
Bruno Windels
01ff806b86
WIP
2020-10-07 09:40:51 +02:00
Bruno Windels
404de53c75
basic url router and navigation bootstrapping
2020-10-06 18:06:11 +02:00
Bruno Windels
b373a177ec
create room url in room tile
2020-10-06 18:05:52 +02:00
Bruno Windels
221b94adbf
room tile should be passed child options
2020-10-06 18:05:38 +02:00
Bruno Windels
5ab947e7de
pass urlRouter and navigation as view model options
2020-10-06 18:05:02 +02:00
Bruno Windels
514095da7a
move waitFor and get to BaseObservableValue
2020-10-06 18:04:34 +02:00
Bruno Windels
b8dcb249ff
implement url router
2020-10-06 18:03:12 +02:00
Bruno Windels
ef428809b5
implement navigation stack
2020-10-06 18:01:56 +02:00
Bruno Windels
1de645a990
give filter field a bit more space
2020-10-06 13:32:27 +02:00
Bruno Windels
e878b5786e
fix room view not showing anymore on narrow viewports
2020-10-06 13:31:23 +02:00
Bruno Windels
a7db44eabf
Merge pull request #138 from vector-im/bwindels/filter-room-list
...
Room list filtering
2020-10-06 11:08:39 +00:00
Bruno Windels
b1cb797919
fix refactor error in xhr, breaking it
2020-10-06 13:02:35 +02:00
Bruno Windels
0d6fe32f30
clear filter on esc
2020-10-06 12:43:31 +02:00
Bruno Windels
ddbe3305c8
fix filter field height
2020-10-06 12:34:13 +02:00
Bruno Windels
2fe6f4b769
clean up SessionView by making it a TemplateView
2020-10-06 12:23:17 +02:00
Bruno Windels
cac3daca72
add LeftPanelView(Model) with room filtering
2020-10-06 12:23:11 +02:00
Bruno Windels
c8125595a7
render hidden flag
2020-10-06 12:21:42 +02:00
Bruno Windels
c532cb5aea
add hidden flag to room tile vm
...
also move to leftpanel dir
2020-10-06 12:21:11 +02:00
Bruno Windels
e3fdd3a4fd
ApplyMap, your observable map collection for applying side-effects
2020-10-06 12:20:28 +02:00
Bruno Windels
9a3734e5ba
this is a NOP, but in the future might not be
2020-10-06 12:20:03 +02:00
Bruno Windels
7def542e21
fix test
2020-10-06 12:19:47 +02:00
Bruno Windels
84425fad5c
more work on FilteredMap (not done yet though)
...
I ended up not using this, but at some point we'll need it,
so commit this work
2020-10-06 12:19:08 +02:00
Bruno Windels
943467cf67
actually implemented filtered map
2020-10-05 18:18:44 +02:00
Bruno Windels
5ae1be9a9c
ignore invalid json on error pages
2020-10-05 17:18:05 +02:00
Bruno Windels
c8e4dbc1b3
this should be a map
2020-10-05 17:06:29 +02:00
Bruno Windels
b2e6310775
re-focus composer when clicking send button
2020-10-05 17:03:46 +02:00
Bruno Windels
a04a6a83be
fix composer not being visible on mobile
2020-10-05 17:03:32 +02:00
Bruno Windels
8f5d678698
cache small media repo thumbnails in service worker
2020-10-05 15:58:29 +02:00
Bruno Windels
6a8c0b52e0
indenting
2020-10-05 15:10:06 +02:00
Bruno Windels
8dc2816d6e
keep hashed files in cache as long as they don't change
2020-10-02 19:54:24 +02:00
Bruno Windels
e93b091566
dont use no-cache in fetch, as it doesn't play well with CORS on Safari
2020-10-02 14:02:59 +02:00
Bruno Windels
07eee8fac1
only create fragments when we will really write events to the timeline store
2020-10-01 17:01:33 +02:00
Bruno Windels
bebdaad7d4
log when we can't abort
2020-10-01 16:23:15 +02:00
Bruno Windels
c1df371a14
add some documentation for our idb investigations
2020-10-01 16:14:58 +02:00
Bruno Windels
9a4d47820d
change this back as well
2020-10-01 14:46:30 +02:00
Bruno Windels
cb7da2ba4a
dont need this anymore
2020-10-01 14:45:09 +02:00
Bruno Windels
f402e8c6c4
typo/thinko in docs
2020-10-01 14:39:23 +02:00
Bruno Windels
300529b7c5
write sync token first
...
in case we get a TransactionInactiveError,
we have at least written the sync token
and won't repeat the same sync request
2020-10-01 14:38:54 +02:00
Bruno Windels
1117c77d05
note for future optimisation
2020-10-01 14:36:00 +02:00
Bruno Windels
d5a6a4d350
todo comment
2020-10-01 14:35:46 +02:00
Bruno Windels
3c7125bb88
add (optional) logging for idb requests
2020-10-01 14:35:33 +02:00
Bruno Windels
93a7f9959e
Safari doesn't like the prepare txn still open when opening the sync txn
...
Waiting for it to close magically solves the TransactionInactiveError
we were seeing on some incremental sync request when
reading from roomMembers.
Still unsure what this is about, and if we should wait for all read txns
to close or not.
2020-10-01 14:31:38 +02:00
Bruno Windels
ddb14f48bf
we actually don't need to track write requests
...
as errors will bubble up to the txn
2020-10-01 14:31:08 +02:00
Bruno Windels
d5a52c32d6
these don't return a promise anymore
2020-09-29 11:51:14 +02:00
Bruno Windels
37690cffe3
track storage write requests internally, as we never await their promise
2020-09-29 11:50:37 +02:00
Bruno Windels
482b5f4d22
allow passing message to IDBRequestError
2020-09-29 11:50:10 +02:00
Bruno Windels
43d430fc98
remove unused storage modification functions
2020-09-29 11:47:49 +02:00
Bruno Windels
f993048a2b
Merge branch 'master' into bwindels/idb-promises-txn
2020-09-29 11:33:58 +02:00
Bruno Windels
e5b1cbbcd3
prevent endless loop when restoring messages that were already sent
2020-09-29 11:32:49 +02:00
Bruno Windels
7627a2bda2
add comment
2020-09-29 10:53:02 +02:00
Bruno Windels
163ca12854
ignore abort error
2020-09-29 10:52:52 +02:00
Bruno Windels
919357b474
more broken imports after refactor
2020-09-29 09:57:48 +02:00
Bruno Windels
c529df179b
also import this
2020-09-29 09:56:46 +02:00
Bruno Windels
c1ecaffbae
fix refactor typo
2020-09-29 09:54:51 +02:00
Bruno Windels
07fcf7e75b
also do this in try catch
2020-09-29 09:43:25 +02:00
Bruno Windels
4d23529b68
set promise polyfill before others
...
just in case
2020-09-29 09:42:43 +02:00
Bruno Windels
b1f9cfd972
cleanup storage errors a bit
2020-09-29 09:17:03 +02:00
Bruno Windels
ee4c132fb4
add todo
2020-09-28 16:06:41 +02:00
Bruno Windels
76381fbca1
open storage transactions synchronously
...
this (almost) makes it work in some browsers that otherwise
have throw a TransactionInactiveError on the first operation
you try to do on a store.
2020-09-28 16:06:41 +02:00
Bruno Windels
d759e1429f
set error before changing state to stopped
2020-09-28 16:06:19 +02:00
Bruno Windels
3440823981
Merge pull request #117 from vector-im/bwindels/idb-promises
...
Prevent transaction from closing on IE11/Win7
2020-09-28 13:37:34 +00:00
Bruno Windels
47dbc87e95
load promise first
2020-09-28 15:34:10 +02:00
Bruno Windels
bb58fa9b6c
dont need this anymore
2020-09-28 15:32:40 +02:00
Bruno Windels
18cc34c082
remove extra newlines
2020-09-28 15:31:04 +02:00
Bruno Windels
dd30f51ffe
add copyright
2020-09-28 15:28:51 +02:00
Bruno Windels
9cf24d910a
properly install polyfill and remove logging
2020-09-28 15:28:38 +02:00
Bruno Windels
6d003f9565
don't include corejs promise polyfill anymore
2020-09-28 15:28:22 +02:00
Bruno Windels
e3581c8260
use our fork of es6-promise with flush exposed as the promise polyfill
2020-09-28 15:27:38 +02:00
Bruno Windels
8366b44d8c
dont assume global is window
2020-09-28 14:52:12 +02:00
Bruno Windels
98a6d82820
detect when sync promise hack is needed
2020-09-28 14:51:41 +02:00
Bruno Windels
706ec97296
change method name
2020-09-28 13:25:44 +02:00
Bruno Windels
64290d5ae6
flush promises manually in idb event handler
2020-09-25 16:53:19 +02:00
Bruno Windels
becdf656a4
nicer error messages when decrypting with a worker
2020-09-25 16:52:26 +02:00
Bruno Windels
27a8ef4604
add comment how timeouts interact with the reconnector
2020-09-25 10:45:41 +02:00
Bruno Windels
e175e9ac8b
cleanup
2020-09-25 10:45:34 +02:00
Bruno Windels
134b04c782
make flushing room key shares reentrant
...
as it can be called from Room.start while still running.
2020-09-25 10:45:00 +02:00
Bruno Windels
bcca23bac9
retry sync on timeout, even for incremental sync
2020-09-25 10:44:36 +02:00
Bruno Windels
7f0d36cf79
remove double negation
2020-09-25 10:44:19 +02:00
Bruno Windels
86df4993e1
prevent room summary from being updated every time it is in /sync resp
2020-09-24 16:45:28 +02:00
Bruno Windels
46abafdccc
ensure cloned is always set to false for this._data
...
by making all assignments of this._data go through applyChanges
2020-09-24 16:40:51 +02:00
Bruno Windels
4a0173e90f
only run decryptPending if needed
2020-09-24 10:53:51 +02:00
Bruno Windels
4d616ce281
add todo for future optimisation
2020-09-24 10:35:09 +02:00
Bruno Windels
ece4840653
don't mark rooms as unread after retrying decryption for now
...
this will not mark e2ee rooms as unread if their room key is delayed
though. We should really only do this for back-filled events but that
is hard to do right now, as we don't know the original source here.
2020-09-23 19:11:11 +02:00
Bruno Windels
eb4237f6f4
tell caller if an update was done from summery.writeAndApplyData
...
so room actually emits an update
2020-09-23 19:10:25 +02:00
Bruno Windels
17f84ab314
fix "this" still being used in readRawTimelineEntries ...
2020-09-23 19:09:44 +02:00
Bruno Windels
086bdafe9a
no need for async
2020-09-23 18:28:21 +02:00
Bruno Windels
7cad3b2bdb
some tabs in here
2020-09-23 18:22:51 +02:00
Bruno Windels
64f657e5a2
fix test
2020-09-23 18:20:29 +02:00
Bruno Windels
6e77ebb160
undo obsolete changes
2020-09-23 18:06:16 +02:00
Bruno Windels
d53b5eefb3
fill in the blanks
2020-09-23 17:59:42 +02:00
Bruno Windels
9d41e122a0
draft of falling back to reading entries since last decrypted event key
...
this change notifyRoomKey(s) to only take one room key at a time
to simplify things
2020-09-23 17:34:25 +02:00
Bruno Windels
a8392dc684
also decrypt messages in the sync response that enabled encryption
...
like initial sync
2020-09-23 14:26:14 +02:00
Bruno Windels
241176d6fb
WIP
2020-09-22 18:22:37 +02:00
Bruno Windels
137f55b44d
manage request scheduler in session container
...
so we can start it before sync does its first request,
which otherwise gets aborted because the scheduler hasn't started yet
2020-09-22 16:39:41 +02:00
Bruno Windels
150f06b9bf
also move to Stopped for aborts
2020-09-22 16:39:04 +02:00
Bruno Windels
85b451ffa1
can't rename named params like this
2020-09-22 15:49:43 +02:00
Bruno Windels
5660e0f4f0
rename send scheduler to request scheduler
2020-09-22 15:49:35 +02:00
Bruno Windels
0a00d4c865
use hsApi wrapper that handles rate-limiting instead of send scheduler
2020-09-22 13:43:18 +02:00
Bruno Windels
d7c25e3106
move MediaRepository out of HomeServerApi
...
so HomeServerApi becomes easier to wrap, only having methods
that return a RequestResult.
2020-09-22 13:40:38 +02:00
Bruno Windels
6cd227b82d
only prompt after waiting 10s for sync UTD
2020-09-22 09:30:25 +02:00
Bruno Windels
0a83bf1176
more notes for legacy css marker
2020-09-22 09:30:13 +02:00
Bruno Windels
3359d49161
off both passphrase and security key options
2020-09-21 19:19:55 +02:00
Bruno Windels
e6a46874c4
wrap olm error for creating session in DecryptionError
...
so we can relate it back to the event that caused it
2020-09-21 17:58:13 +02:00
Bruno Windels
c9ee5a5db2
stay in catchup mode as long as there are device messages
...
this implements https://github.com/vector-im/element-web/issues/2782
it also implements 0 timeout for catchup, getting rid of the
catching up with your convo banner for 30s upon reconnection.
2020-09-21 17:57:01 +02:00
Bruno Windels
015c6b1c70
interpret unreported signed_curve25519 as 0 OTKs
2020-09-21 17:56:23 +02:00
Bruno Windels
4dfbd3f3cd
don't run afterSyncCompleted and next sync request in parallel
...
as the otk count the next sync request reports will be outdated
if afterSyncCompleted uploaded OTKs, and the next afterSyncCompleted
, having the wrong server OTK count, will again upload OTKs.
This will overwrite existing OTK keys which will
throw BAD_MESSAGE_KEY_ID when creating new sessions with those OTKs
2020-09-21 17:53:29 +02:00
Bruno Windels
c7370d7b01
Use continue in for loop rather than return
...
this was running in a Promise.all(array.map)) closure before
2020-09-21 14:11:28 +02:00
Bruno Windels
2c6a3a7ce7
fix afterSyncCompleted not being run after a sync error occurs
...
the error was not cleared when calling start again.
Also we should better look at the sync status to decide whether to run
afterSyncCompleted.
This prevented the room keys from being applied once you
had a connection error or other error at some point
since you started the app.
2020-09-21 13:55:35 +02:00
Bruno Windels
8cf29e344b
don't send access token on /versions
...
as it's not a good idea, and some CORS configs might not be happy with
an Authorization header on that path
2020-09-18 18:13:20 +02:00
Bruno Windels
1d33ab20a5
fix decrypted tiles not corresponding to a tile
2020-09-18 13:36:16 +02:00
Bruno Windels
4d604f7357
log all sync errors
2020-09-18 13:11:18 +02:00
Bruno Windels
3704de1a26
more dispose
2020-09-18 13:11:10 +02:00
Bruno Windels
da780d0aa2
delay backup 10s if missing session event came from sync
2020-09-18 13:11:02 +02:00
Bruno Windels
3aead4eae2
createEnum does not take an array
2020-09-18 13:08:35 +02:00
Bruno Windels
ed913ca24b
add dispose to room encryption
2020-09-18 13:08:18 +02:00
Bruno Windels
6c46cc98de
be more specific in error message
2020-09-18 12:12:52 +02:00
Bruno Windels
2de406afa0
log secret storage error as well
2020-09-18 12:12:19 +02:00
Bruno Windels
cb32f4201e
note for future cleanup
2020-09-18 12:12:12 +02:00
Bruno Windels
9fd39ab57f
aes-js doesn't work with ArrayBuffers
2020-09-18 12:04:48 +02:00
Bruno Windels
36b56132b0
add TextEncoder/Decoder polyfill to legacy bundle
2020-09-18 12:04:22 +02:00
Bruno Windels
6375574a56
show error
2020-09-17 18:59:40 +02:00
Bruno Windels
f58a3ee975
use olm from param
2020-09-17 18:56:02 +02:00
Bruno Windels
7d6fcfafa8
pass olm, better naming, don't reuse var
2020-09-17 18:55:39 +02:00
Bruno Windels
5b45c00322
switch to security key
2020-09-17 18:55:28 +02:00
Bruno Windels
ceac6008bc
fix import
2020-09-17 18:55:09 +02:00
Bruno Windels
fe5b732c97
cleanup, better copy text
2020-09-17 18:54:55 +02:00
Bruno Windels
494c5cbcf0
notify UI when we need session backup
2020-09-17 18:00:00 +02:00
Bruno Windels
06ccd74680
this should be read-write, oops
2020-09-17 17:59:35 +02:00
Bruno Windels
1b8e481559
keys from backup need to be imported with import_session, not create
2020-09-17 17:59:02 +02:00
Bruno Windels
915925d6ee
don't throw when trying to restore session from backup, check sender key
2020-09-17 17:57:52 +02:00
Bruno Windels
a205ae8841
fixes
2020-09-17 17:57:12 +02:00
Bruno Windels
5752cca69c
go back to bs58 and use other base64 decoder
...
as base-x isn't meant for base64
2020-09-17 17:56:05 +02:00
Bruno Windels
9d622434fb
integrate session backup with session class
2020-09-17 15:58:46 +02:00
Bruno Windels
3cebd17cbe
adjust paths
2020-09-17 15:17:46 +02:00
Bruno Windels
c9d8d40242
move ssss out of e2ee dir as not really e2ee related
2020-09-17 15:17:00 +02:00
Bruno Windels
33aa475e18
add function to create key from either passphrase or recovery key
2020-09-17 15:16:01 +02:00
Bruno Windels
7f97c540fb
obsolete comment, this is already the case
2020-09-17 14:20:42 +02:00
Bruno Windels
092547bfc8
renaming
2020-09-17 14:20:36 +02:00
Bruno Windels
17fc249fa8
integrate session backup with room encryption and megolm decryption
2020-09-17 14:20:15 +02:00
Bruno Windels
3941af93d2
more impl of SessionBackup
2020-09-17 14:19:57 +02:00
Bruno Windels
fff8308259
first draft of SessionBackup
2020-09-17 12:34:39 +02:00
Bruno Windels
1a105d391b
cleanup: rename session name to hydrogen as well
...
as we'll need people to resync because of account data as well
2020-09-17 12:34:10 +02:00
Bruno Windels
b7401a148c
some ssss cleanup
2020-09-17 12:33:57 +02:00
Bruno Windels
8204e942d9
first draft of reading a ssss secret
2020-09-17 11:39:40 +02:00
Bruno Windels
c44ab3e55e
derive ssss key from recovery key
2020-09-17 11:39:25 +02:00
Bruno Windels
7c4c266fe0
derive ssss key from passphrase
2020-09-17 11:39:07 +02:00
Bruno Windels
45c62eb0e5
common types and storage for ssss
2020-09-17 11:38:53 +02:00
Bruno Windels
7412b3aae8
forgot to commit account data store
2020-09-17 11:38:44 +02:00
Bruno Windels
4ec0e67384
use base-x to support both base64 and base58
2020-09-17 11:36:54 +02:00
Bruno Windels
abfde76e24
store account data in storage
...
needs a resync, need to think how to handle this
2020-09-17 10:39:51 +02:00
Bruno Windels
00eade1c16
add crypto driver with primitives needed for 4S & session backup
2020-09-17 10:19:09 +02:00
Bruno Windels
ab01c903a6
turns out that rollup-plugin-cleanup doesn't like line 259 in aes-js
...
so don't remove comments for now in the legacy build
2020-09-17 09:36:37 +02:00
Bruno Windels
77a21c08eb
add legacy extras, so deps only needed for legacy are not in main bundle
2020-09-16 18:31:17 +02:00
Bruno Windels
b63aaa6dcb
add typed array polyfills to worker bundle
2020-09-16 14:42:13 +02:00
Bruno Windels
12262f2824
actually use correct method to get all device ids for a user
2020-09-14 18:31:54 +02:00
Bruno Windels
75bff228ec
fix data not being passed on, caused crash on initial sync
2020-09-14 17:45:13 +02:00
Bruno Windels
a11b612640
await this
2020-09-14 17:45:02 +02:00
Bruno Windels
b2e6e8687e
dispose tiles
...
also add more defence against emitting event when disposed
2020-09-14 17:44:37 +02:00
Bruno Windels
9ea961ae53
don't crash when we don't have a subscription anymore
2020-09-14 17:43:06 +02:00
Bruno Windels
49f330279b
also pass timeline entries to summary after initial decryption failed
2020-09-14 16:34:07 +02:00
Bruno Windels
f3f07a0672
centralize update emitting in room
2020-09-14 16:33:43 +02:00
Bruno Windels
bce46daa9c
this is shorter
2020-09-14 16:33:30 +02:00
Bruno Windels
3325f12092
remove devices not present in /keys/query response
2020-09-14 15:47:00 +02:00
Bruno Windels
504371eaf3
this is outdated (and not really needed)
2020-09-14 15:47:00 +02:00
Bruno Windels
8555fd5f18
a little extra caution
2020-09-14 15:47:00 +02:00
Bruno Windels
aa5d55bbf2
show when e2ee is enabled in timeline
2020-09-14 15:47:00 +02:00
Bruno Windels
8c4d68def9
show decryption errors in timeline
2020-09-14 15:47:00 +02:00
Bruno Windels
a2f8731a23
Keep room key with earliest index
2020-09-14 15:47:00 +02:00
Bruno Windels
9fad5b3b29
only load olm once
2020-09-14 15:47:00 +02:00
Bruno Windels
0c3ea90ab4
also update room list when encrypted events come in
2020-09-14 15:46:58 +02:00
Bruno Windels
fb69688d47
also update room list when encrypted events come in
2020-09-14 14:01:47 +02:00
Bruno Windels
4875095ea3
fix event tiles not updating when event is decrypted when room keys come
2020-09-11 17:47:35 +02:00
Bruno Windels
2855166239
migrate encryption flag so old sessions dont send unencrypted events
2020-09-11 16:48:04 +02:00
Bruno Windels
e763771cc2
cleanup
2020-09-11 14:45:38 +02:00
Bruno Windels
96119b4e58
load all pending operations when starting the session, pass to room
2020-09-11 14:41:40 +02:00
Bruno Windels
ab1fe711ad
implement room key sharing with operations store
2020-09-11 14:41:12 +02:00
Bruno Windels
b00865510f
add operation store
2020-09-11 14:40:05 +02:00
Bruno Windels
9f6822f362
remove needsRoomKey flag on member
2020-09-11 14:38:36 +02:00
Bruno Windels
bba53b3477
dont store duplicated key values for replay detection
2020-09-11 12:08:06 +02:00
Bruno Windels
0dece5b04f
make continuation logic work well with pending events
...
- don't use display name to compare but user id
(pending doesn't have display name yet)
- use current time as timestamp
2020-09-11 11:43:40 +02:00
Bruno Windels
2c186554a1
this works better in ie11 for some reason
2020-09-11 11:36:08 +02:00