lilia
25ee61d3cb
Fix timers after suspend/resume/pause
...
We use timers to decide when to query and delete expired messages or
when to perform signed key rotations.
Internally, timers are counters that get updated when the CPU ticks, so
if the CPU sleeps, the timer will stop counting, and start again after
it wakes up, ignoring the intervening passage of wall clock time.
To fix this, without having to query the database or other potentially
high overhead operations too often, use an interval to frequently check
the wall clock time. If time jumps forward, trigger a global event so
other listeners can update their possibly-inaccurate timers.
https://stackoverflow.com/questions/6346849/what-happens-to-settimeout-when-the-computer-goes-to-sleep
https://stackoverflow.com/questions/4079115/can-any-desktop-browsers-detect-when-the-computer-resumes-from-sleep
// FREEBIE
2017-03-01 14:36:40 -08:00
lilia
31b9311f62
Bump version
2017-02-28 12:06:21 -08:00
lilia
8f17b98fde
Update translations
2017-02-28 12:06:03 -08:00
lilia
886557a2aa
Drop chrome.runtime.onMessage events
...
We can use Backbone.Events instead.
// FREEBIE
2017-02-28 11:49:56 -08:00
lilia
bba25b22e2
Log session deletions
2017-02-28 11:29:26 -08:00
lilia
527e7878a8
Fix unresolved promise in removeSession
...
Previously if there was no session to remove, the promise returned from
removeSession would never resolve, potentially blocking sending for that
recipient until restart.
// FREEBIE
2017-02-28 11:29:26 -08:00
lilia
e4b9c51f88
Rework expiring messages management
...
// FREEBIE
2017-02-22 16:18:01 -08:00
lilia
08e8c00329
Restore setting lastMessage in handleDataMessage
2017-02-22 16:15:27 -08:00
lilia
0e31644c28
Remove spurious update to conversation on delivery receipts
...
Previously this would trigger the conversation to refresh it's last
message.
// FREEBIE
2017-02-22 15:41:12 -08:00
lilia
b7fac17ec8
Avoid querying groups on delivery receipts if possible
2017-02-22 15:41:12 -08:00
lilia
c8a0fe5a92
Add CallMessage protos
2017-02-22 15:41:12 -08:00
lilia
ace59147ab
Reduce unnecessary updates on conversations at startup
2017-02-22 01:22:44 -08:00
lilia
280f7a74b1
Fix key change errors while retrying key change errors
2017-02-22 01:17:21 -08:00
lilia
e1662f8537
Drop unneeded binds
...
There are no references to `this` in these functions.
// FREEBIE
2017-02-22 01:17:21 -08:00
lilia
7cbaac5590
Provisioning socket events don't block AccountManager tasks
...
// FREEBIE
2017-02-22 01:17:21 -08:00
lilia
38a830c561
Fixup account manager task queue
...
Such that it still pumps tasks if one of them throws/rejects.
// FREEBIE
2017-02-22 01:17:20 -08:00
lilia
51131df23b
Update libsignal-protocol-javascript 1.1.9
...
// FREEBIE
2017-02-22 01:17:20 -08:00
lilia
6509646bdb
Set expireTimer to null to unset
...
// FREEBIE
2017-02-22 01:17:20 -08:00
lilia
0fac2e1d68
Log when we see a 0 registrationId
...
Most likely an indicator that the device we're dealing with is a 3rd
party client.
// FREEBIE
2017-02-20 19:03:08 -08:00
lilia
da9b6c5245
Add logging for install and update events
...
// FREEBIE
2017-02-17 12:50:26 -08:00
lilia
54b856139a
Fix fetchExpiring
2017-02-17 12:10:20 -08:00
lilia
e8925063bc
Bump version
2017-02-16 19:32:23 -08:00
lilia
4e21e783db
Fix tests
2017-02-16 19:32:23 -08:00
lilia
cda22880a0
Update translations
2017-02-16 18:30:26 -08:00
lilia
e648a4b095
Revert "Remove unregistered group members"
...
This reverts commit a768b94471
.
d2ddfc7
was enough to fix #989 . Removing unregistered members from the
group (as opposed to silently ignorning them) creates greater potential
for getting out of sync with the member lists on other devices.
// FREEBIE
2017-02-16 18:06:20 -08:00
lilia
dfe9ee9679
Remove dead code
2017-02-16 18:06:20 -08:00
lilia
536dd7b951
Add signed key rotation scheduler
...
Rotate signed prekey every 48hrs, waiting for online access if
necessary. After a rotation attempt is made, schedule the next run for
48hrs in the future.
We use a timeout to "wake up" and handle the rotation. This timeout gets
set on startup and whenever the next rotation time is changed. For
paranoia's sake, always clear the current timeout before setting the
next one.
Since new registrations necessarily upload new signed keys, we reset the
scheduled time to T+48hrs on `registration_done` events.
// FREEBIE
2017-02-16 18:06:20 -08:00
lilia
b92dd45a22
Add signed key rotation and deletion routines
...
// FREEBIE
2017-02-16 18:06:19 -08:00
lilia
cd0fe7037b
Add replayable error for signed key failure
...
Disable message sending if signed key updates fail too many times, but
allow the user to retry sending.
// FREEBIE
2017-02-16 18:06:19 -08:00
lilia
e0fd188d42
Add loadSignedPreKeys to SignalProtocolStore
2017-02-16 14:59:04 -08:00
lilia
37ad742ccf
Support for server endpoint to set signed key
2017-02-16 14:59:03 -08:00
lilia
54536360ff
Return created_at and keyId with signed prekeys
...
Use `.get()` rather than `attributes.property` access because created_at
may not be present for old keys
// FREEBIE
2017-02-15 13:44:31 -08:00
lilia
829d147d19
Add creation timestamps to signed keys
2017-02-14 15:26:34 -08:00
lilia
dfc292ac70
Serialize prekey refreshes & other account mgmt
...
Fixes #1060
// FREEBIE
2017-02-14 15:24:09 -08:00
lilia
a98857a1d1
Bump version
2017-02-09 15:29:15 -08:00
lilia
04d04962a7
Update translations
2017-02-09 15:27:14 -08:00
lilia
f0f6bbb8c0
Update libsignal-protocol 1.1.8
...
// FREEBIE
2017-02-09 10:58:36 -08:00
lilia
819ba8ee74
Support for undefined preKey
2017-02-09 10:58:36 -08:00
haffenloher
a768b94471
Remove unregistered group members
...
Locally remove unregistered users from group membership lists.
Fixes #989
Related to Whispersystems/Signal-Android#6175
Closes #1052
// FREEBIE
2017-02-08 17:13:36 -08:00
haffenloher
d2ddfc72e4
Throw UnregisteredUserErrors in getKeysForNumber()
2017-02-08 17:13:36 -08:00
haffenloher
e8de2f0c52
Increase image constraints to 6 MB / 4096 px
...
Matches WhisperSystems/Signal-Android@d2be49af
Closes #1055
// FREEBIE
2017-02-08 17:05:33 -08:00
lilia
053bf20185
Group updates never have body or attachments
...
Why would they? And group.added isn't used anywhere else.
// FREEBIE
2017-02-08 16:56:29 -08:00
haffenloher
04f0142b23
Ignore missing members in incoming group updates
...
Previously, updateNumbers would throw an Error, so the whole group
update was discarded.
Signal-Android handles this the same way in
GroupMessageProcessor.handleGroupUpdate().
Closes #1056
2017-02-08 16:46:09 -08:00
beejaygee
76c165a10a
Add copy and paste for images
...
Switch comparison operator to ===
Move to stricter parsing of clipboard items
2017-02-07 19:26:09 +08:00
Blake Griffith
1e498294e0
Add attachment_views_test.js tests
2017-02-06 21:23:35 -08:00
lilia
aa55b6a538
Confirm device name with enter key
...
Use form and submit elements for their built in mouse and keyboard event
handlers.
// FREEBIE
2017-02-06 20:10:40 -08:00
Ikarulus
c9939c8da8
Moving the error badge to the right corner in ios theme
...
// FREEBIE
2017-02-06 18:42:30 -08:00
lilia
4230b11f82
Support future compatibility for new timer options
...
If some future client ever sends us an arbitrary timer value which we do
not currently support, present it as a duration in seconds in timer
update messages and ui, where we would otherwise have rendered nothing,
e.g., "You set the timer to ."
// FREEBIE
2017-02-06 18:22:20 -08:00
lilia
7e06e014c4
Add debug logging for #1030
...
// FREEBIE
2017-02-03 21:28:01 -08:00
karissa
eb5c95e287
Add a few missing translatable strings to conversation search view
2017-02-03 20:48:05 -08:00