Commit graph

1084 commits

Author SHA1 Message Date
Bruno Windels b08b7e521a (failed) attempt at a repro case for the safari TransactionInactiveError 2020-10-01 14:41:31 +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 c68bafde54 prototype using await to see if it makes any difference
...to the es5 one in gnome web. Alas, it does not, and I can't recreate the failure mode I see in the app when awaiting opening txns.
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 c6cb345e16 release v0.1.2 2020-09-28 15:38:27 +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 9498524369 add flushing manually to prototype 2020-09-25 16:53:56 +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 624d341bc6 prototypes for idb and promises in older browsers 2020-09-25 11:19:59 +02:00
Bruno Windels 255559460e
Merge pull request #114 from vector-im/bwindels/handle-sync-timeout
Handle sync timeout
2020-09-25 08:48:26 +00: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 a7ceabad37 release v0.1.1 2020-09-24 16:47:44 +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