lilia
611bbaef35
Don't hardcode the attachment server url
...
There may come a day when we may need to change this url from the server
side. On that day, clients should continue to operate normally. The
service should be able to change attachment server locations without
requiring a client update.
// FREEBIE
2017-03-10 15:24:19 -08:00
lilia
43de0cc2ec
Add attachment digests
...
// FREEBIE
2017-03-10 14:40:45 -08:00
lilia
f1a1a819ba
Stop parsing attachment ids from attachment urls
...
See 2111294
Attachment ids are now available in string form from the server
response to `putAttachment`.
// FREEBIE
2017-03-10 10:44:26 -08:00
lilia
4c945acb76
Remove unused object store reference
...
// FREEBIE
2017-03-04 17:57:32 -08:00
lilia
58d2f71e09
Add migration to clean up old expiring messages
...
Expiring messages received before 0.31.0 may not have an expires_at time
populated. Loading these messages once will update their expires_at if
it wasn't already set. To avoid loading too many messages into memory,
add them individually, and remove them from the collection as soon as
they are added, allowing them to be garbage collected immediately.
// FREEBIE
2017-03-01 18:05:36 -08:00
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
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
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
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
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
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
Asa Ayers
bda0430805
Add an option to play audio notifications
2017-02-02 09:00:14 -06:00
Bernhard Steindl
e2cb45c1da
Push picture max edge to 2048 and max size to 4 MB
...
Closes #1032 and catches up with Android
2017-01-25 20:40:25 -08:00
Thomas Guillet
400313f749
Prevent expiration timer update on group update
...
It occurs when a message with a different expiration time is received.
The issue report highlights the scenario of a member leaving a group
(group update [quit] sent with expiration time = 0).
Fix https://github.com/WhisperSystems/Signal-Android/issues/5996
Fix https://github.com/WhisperSystems/Signal-iOS/issues/1566
2017-01-25 20:40:25 -08:00
lilia
9ef61d43f4
Update conversation lastMessage from database
...
Don't set lastMessage, let it update itself as needed, such as when
first rendering a conversation list item, and when its messages are
sent, received, or destroyed.
2017-01-25 20:40:25 -08:00