Commit graph

2427 commits

Author SHA1 Message Date
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
lilia
b1a37da68b Add audio to prod build
// FREEBIE
2017-02-03 18:21:53 -08:00
lilia
34eb2fef17 Add bithub badge to readme 2017-02-03 14:05:22 -08:00
Asa Ayers
bda0430805 Add an option to play audio notifications 2017-02-02 09:00:14 -06:00
lilia
b9c8b4afbb Bump version 2017-01-26 20:07:04 -08:00
lilia
c1835f573f Update translations 2017-01-26 14:13:29 -08: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
lilia
6253269d19 Tweak key change advisory insertion
Let received_at be the current time for keychanges. This avoids them
being inserted in the wrong place in the thread.

Use the newmessage event to trigger frontend listeners to add them to
the conversation view if it is open.
2017-01-25 20:40:25 -08:00
lilia
a623f909f2 Move key change advisory content to the model
Return this content from a helper method so it can be used to populate
the last message on conversations.
2017-01-25 20:40:25 -08:00
lilia
260f50c104 Add id attr to key change advisory elements
The id attribute is needed to ensure that message elements are inserted
in the correct place in the DOM
2017-01-25 20:40:25 -08:00