Commit graph

1435 commits

Author SHA1 Message Date
lilia
d89c3e8e86 Remove devices with no keys
// FREEBIE
2016-06-06 17:59:44 -07:00
lilia
7caecc564d Process all incoming conflicts before outgoing ones
Fixes a session management problem where, after resolving a conflict
with some contact, that contact would get bad mac as a result of us
sending them a new prekey message before processing a pending conflicted
prekey message received from them earlier.

Fixes #806

// FREEBIE
2016-05-26 18:11:17 -07:00
lilia
3cd80d3f1e Remove tool tip from unregistered user errors
// FREEBIE
2016-05-26 10:59:43 -07:00
lilia
58c3fe047e Make error messages clickable
// FREEBIE
2016-05-25 20:39:43 -07:00
lilia
b2f07984df i18n unregistered user errors
// FREEBIE
2016-05-25 20:33:14 -07:00
lilia
b6f785737c Restyle error icons, move them outside the bubble 2016-05-25 20:32:00 -07:00
lilia
89d3b772d5 Define UnregisteredUserError class
// FREEBIE
2016-05-25 20:20:10 -07:00
lilia
81dfdd959f Don't allow retry on unregistered user errors
// FREEBIE
2016-05-24 11:36:04 -07:00
lilia
292260d973 Remove timestamp logging
// FREEBIE
2016-05-23 18:25:03 -07:00
lilia
331ca46d75 Fix websocket event name
Fixes #798

// FREEBIE
2016-05-23 16:04:06 -07:00
lilia
15e964de81 Update libsignal-protocol v0.13.0
* libsignal.Curve is now a synchronous interface.
* libsignal.Curve.async is now the asynchronous interface.
* Fixes bugs in session management.

// FREEBIE
2016-05-18 14:29:30 -07:00
lilia
f216262298 Update libsignal-protocol v0.12.0
Moves version byte check to protocol lib.

// FREEBIE
2016-05-18 13:15:58 -07:00
lilia
055c0c323e Remove unneeded property from device object
// FREEBIE
2016-05-18 13:15:57 -07:00
lilia
f8e176fd40 Dedupe methods
Define textsecure.crypto in terms of libsignal.crypto.

// FREEBIE
2016-05-18 13:15:57 -07:00
lilia
58452066aa Move device storage methods to outgoing message
This is the only place they are called.

// FREEBIE
2016-05-18 13:15:56 -07:00
lilia
daae664965 Remove unused function
// FREEBIE
2016-05-18 13:15:56 -07:00
lilia
d32a352d8a Use deviceIds/addresses instead of encodedNumbers
The getDeviceObjectsForNumber method returns device objects that contain
nothing but the encodedNumber property. Instead, just deal in deviceIds
until a SignalProtocolAddress is constructed to manage both the number
and deviceId.

// FREEBIE
2016-05-18 13:15:55 -07:00
lilia
95935f70ee Remove relay check from sendmessage
We don't currently store any relay information about devices,
and

// FREEBIE
2016-05-18 13:15:55 -07:00
lilia
f16803018c Update libsignal-protocol v0.11.0
* Changes return type from decryption functions
* Update components

// FREEBIE
2016-05-18 13:15:44 -07:00
lilia
148bd32671 Update libsignal-protocol v0.10.0
* Changes policy for old session deletion
* Renames putIdentityKey to saveIdentity
* Remove device messages

// FREEBIE
2016-05-18 11:11:11 -07:00
lilia
ffa702c934 Update libsignal-protocol v0.9.0
* Exposes crypto APIs.
* Move worker methods to libsigna.worker.
* Move ProvisioningCipher to libtextsecure.
2016-05-17 12:03:37 -07:00
lilia
cd2218ada7 Move hard-coded worker url out of libtextsecure
// FREEBIE
2016-05-15 17:04:13 -07:00
lilia
d5f4665fa4 MessageReceiver uses SessionCipher to retry conflicts
// FREEBIE
2016-05-15 17:02:45 -07:00
lilia
9ecfe6acb0 Use SignalProtocolAddress in MessageReceiver constructor
// FREEBIE
2016-05-15 17:02:45 -07:00
lilia
213b44935d Update libsignal-protocol v0.8.0
Reorder identity key check
2016-05-15 17:02:21 -07:00
lilia
eee93987f8 Update libsignal-protocol v0.7.0
Remove unused methods.

// FREEBIE
2016-05-14 23:39:59 -07:00
lilia
6266050a67 Remove unused jobqueue
// FREEBIE
2016-05-14 23:26:34 -07:00
lilia
050ea87aaf Get device ids instead of objects
// FREEBIE
2016-05-14 23:26:33 -07:00
lilia
7939b6ae98 Remove hasOpenSession from protocol_wrapper
// FREEBIE
2016-05-14 23:26:33 -07:00
lilia
0483fa2f97 Remove closeOpenSessionForDevice from protocol_wrapper
// FREEBIE
2016-05-14 23:26:33 -07:00
lilia
0d5ec60a7a Remove handlePreKeyWhisperMessage from protocol_wrapper
// FREEBIE
2016-05-14 23:26:32 -07:00
lilia
8010a09045 Remove decryptWhisperMessage from protocol_wrapper
// FREEBIE
2016-05-14 23:26:32 -07:00
lilia
891ddacd35 Remove processPreKey from protocol_wrapper
Use SessionBuilder directly instead of protocol_wrapper

// FREEBIE
2016-05-14 23:26:32 -07:00
lilia
843036f0ce Remove getRegistrationId and encryptMessageFor from protocol_wrapper
We can now use protocol classes like SessionCipher directly because it
supports per-device read/write serialization internally.

// FREEBIE
2016-05-14 23:26:31 -07:00
lilia
284cf5be3a Update libsignal-protocol v0.6.0
Adds session accessors on SessionCipher and an internal session lock to
replace the same implemented in protocol_wrapper.js

// FREEBIE
2016-05-14 23:24:34 -07:00
lilia
92293f9da9 Update libsignal-protocol v0.5.0
Renames libsignal.util to libsignal.KeyHelper.

// FREEBIE
2016-05-13 19:47:39 -07:00
lilia
e68031019b Integrate libsignal.SessionCipher
Bypass the old protocolInstance wrapper methods and use the shiny new
SessionCipher class directly.

// FREEBIE
2016-05-12 13:13:15 -07:00
lilia
9e6ad27fc5 Update libsignal-protocol v0.4.0
// FREEBIE
2016-05-11 15:30:30 -07:00
lilia
56238136ca Remove trivial wrapper method
// FREEBIE
2016-05-10 19:38:44 -07:00
lilia
78cdc0cb52 Remove tempKeys
Now that we simply establish and save a session via SessionBuilder
rather than saving the keys to pass in during encrypt, we can stop
caching them in memory in between the identity key check and the
encryption step.

// FREEBIE
2016-05-10 19:38:42 -07:00
lilia
519d3ec31b Update libsignal-protocol
// FREEBIE
2016-05-10 19:24:33 -07:00
2-4601
d861797d66 i18n 'Permanently delete this conversation?'
// FREEBIE
2016-05-05 12:54:15 -07:00
2-4601
b9ecdbf402 i18n 'Error handling incoming message'
// FREEBIE
2016-05-05 12:54:15 -07:00
2-4601
60fe1e2cea i18n 'Received message with unknown identity key'
// FREEBIE
2016-05-05 12:54:14 -07:00
2-4601
52992a8f12 i18n 'Secure session ended'
// FREEBIE
2016-05-05 12:54:14 -07:00
lilia
9f871db48a Update libsignal-protocol / Update prekey format
Integrates change in prekey object formatting, which now matches more
conveniently with the representation rendered by the server.

// FREEBIE
2016-05-04 00:33:05 -07:00
lilia
b385b6e48e Update libsignal-protocol
SessionBuilder / SessionRecord refactor.

// FREEBIE
2016-05-04 00:05:37 -07:00
lilia
e659104cbf Add isTrustedIdentity to SignalProtocolStore
Adds a new required storage method for the protocol library.

// FREEBIE
2016-05-03 23:58:57 -07:00
lilia
7dcaf721ca Add keepalive logging
// FREEBIE
2016-04-28 11:27:15 -07:00
lilia
70fe14e91b Fix reference errors in isStringable
// FREEBIE
2016-04-26 15:15:28 -07:00
lilia
9a1a3bdf64 Rename axolotl to libsignal
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
1d60dc38fb Rename axolotl storage
// FREEBIE
2016-04-22 13:43:30 -07:00
lilia
ee3bc11e3c Rename axolotlInstance
// FREEBIE
2016-04-22 13:32:19 -07:00
lilia
0fe3497d0e Update libsignal-protocol
Remove remaining refs to axolotl from lsp.

// FREEBIE
2016-04-22 13:29:31 -07:00
lilia
4169336776 Update libsignal protobuf package name
// FREEBIE
2016-04-21 19:30:34 -07:00
lilia
c1e1dd97ba Change libsignal-protocol filenames
// FREEBIE
2016-04-21 18:42:43 -07:00
lilia
b1d370755a Rename AxolotlStore
// FREEBIE
2016-04-21 18:36:17 -07:00
lilia
1fe5d63015 Update protocol libs
Rename storage functions

// FREEBIE
2016-04-21 18:36:16 -07:00
lilia
d5dfffd9da Darken the scrollbar on hover
// FREEBIE
2016-04-21 12:06:40 -07:00
lilia
7b29a567b5 More consistent timestamps
* Apply the same rounding to in message bubbles and conversation list.
  Also make them consistent with Android's relative times. Fixes #682
* Show full timestamps when hovering on relative time
* Compute timestamp update delays more precisely:
  Set timestamps to self-update as soon as they are able to change
  rather than a fixed time since the last update.
* Refactor for customizable/localizable relative times
* Update timestamp tests
* Log timestamp update intervals to help debug #460
2016-04-21 12:06:39 -07:00
lilia
dd7d72a77d i18n 'Media message'
Fixes #736

// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
21bfb61b7a Maintain scroll position when textarea resizes
Fixes #770

// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
3ac7552d2f Fix errant change event handler from firing
A change in the text field was firing the previewImages handler.

// FREEBIE
2016-04-18 19:15:36 -07:00
lilia
172d843368 Always update lastMessage on incoming messages
Fixes #742

// FREEBIE
2016-04-18 19:15:35 -07:00
lilia
6a928e3377 Fix reference error in MessageReceiver from fe82e4
Fix a reference error when resolving a key conflict on an incoming end
session message. See Signal-Android/5438.

// FREEBIE
2016-04-18 16:01:46 -07:00
lilia
47320fbbc5 Fix file input bug introduced in 28c602a
Fix bug where clicking the attachment button to select a file would
immediately send any text already entered into the message input.

// FREEBIE
2016-04-15 14:40:40 -07:00
lilia
72dd93aa02 Clear window attention if all messages are marked read
Fixes #758

// FREEBIE
2016-04-14 11:57:56 -07:00
lilia
0cd7f84a05 Refactor read state tracking
Adds support for handling early arriving read receipts.

// FREEBIE
2016-04-14 11:57:52 -07:00
lilia
d1e9534542 Refactor delivery receipt tracking
Move code for matching receipts to messages (and vice versa) to its own
file.

// FREEBIE
2016-04-13 13:57:56 -07:00
lilia
18012688ea Log unread message timestamps
// FREEBIE
2016-04-13 13:57:55 -07:00
lilia
bb2868f1ec Debounce updates to notifications and other events
Wait for one second of silence before displaying new notifications,
updating the unread count and conversation list previews.

Fixes #470
2016-04-11 14:55:38 -07:00
lilia
1f4587795e Add link to github on debug log
// FREEBIE
2016-04-09 20:55:21 -07:00
lilia
f3de290f7c Make debug log link focusable/selectable
Add button to open in a new tab. Stye as input group.

// FREEBIE
2016-04-09 20:53:39 -07:00
2-4601
e874b61839 Fix typo of quality argument in image compression
The quality value should be a float in the range 0.0 to 1.0.
Other values (e.g. 50) are discarded silently and a default is used.

Fixes #713

// FREEBIE
2016-04-09 14:17:47 -07:00
lilia
a5ec2321fd Use helper function
// FREEBIE
2016-04-09 00:16:44 -07:00
lilia
2f90645142 Break up long line
// FREEBIE
2016-04-09 00:16:21 -07:00
lilia
2506b2115d Log when fetching messages
// FREEBIE
2016-04-08 15:41:46 -07:00
lilia
2d6d2a92b9 Update libaxolotl
// FREEBIE
2016-04-06 17:33:06 -07:00
lilia
0f4f00ff4e Fix read sync on duplicate messages
In the case of a double send (same message encrypted and sent twice due
to key conflict bug), we would mark the first instance read twice rather
than marking both instances read. Fix by searching for matching messages
that have not yet been marked read.

// FREEBIE
2016-04-04 16:14:15 -07:00
lilia
9aa429e18a Add frontend support for expiring releases
When a release expires, it gets a persistent banner notification to
upgrade, and an ephemeral toast warning when trying to send a message.

// FREEBIE
2016-04-03 21:11:50 -07:00
lilia
c442a02cb6 Add build support for expiring old releases
Builds expire after 90 days.
2016-04-03 20:55:53 -07:00
lilia
af392c077d Update libaxolotl
// FREEBIE
2016-04-03 14:25:30 -07:00
lilia
7e2c6fd6bc Remove unused argument
// FREEBIE
2016-04-01 18:12:38 -07:00
lilia
d8d34e7afc Icon upgrade
Also remove unused images.

// FREEBIE
2016-04-01 13:59:57 -07:00
lilia
1aa975e199 Differentiate active vs selected conversation states
// FREEBIE
2016-04-01 11:37:25 -07:00
lilia
ddcdc9e2ff Log on prekey messages
// FREEBIE
2016-03-30 17:18:15 -07:00
lilia
960519d296 Add debug logging
// FREEBIE
2016-03-29 12:35:37 -07:00
lilia
8c03d3e088 Fix sorting of the last element
// FREEBIE
2016-03-27 15:29:53 -07:00
lilia
8fe00f79b2 Fix sorting on incoming key conflicts
// FREEBIE
2016-03-25 14:32:58 -07:00
lilia
07a0463b65 Fix conversation list self-resorting
When deleting all messages in a conversation, the entry in the left pane
should be inserted into the alphabetical portion of the list. To keep it
in this collection, do not nullify active_at.

To ensure the list view is keeping itself correctly sorted, make sure
that resorting behavior is triggered any time a relevant attribute is
changed.

This fixes deleted conversations jumping to the top of the list, and
conversation order scrambling when getting a group or contact sync
message from our master device.

Fixes #734

// FREEBIE
2016-03-25 14:32:57 -07:00
lilia
76652c2622 Update style and copy on key changes
// FREEBIE
2016-03-24 13:20:50 -07:00
lilia
512c5bf739 Incoming bubbles have sender's color background
// FREEBIE
2016-03-23 17:41:24 -07:00
lilia
5a9358efc9 Reorder object members
Group click events together, put custom events at the bottom.

// FREEBIE
2016-03-23 15:09:05 -07:00
lilia
198cc70cef Remove unusued event handlers
The conversation view now handles displaying and listening to the back
button.

// FREEBIE
2016-03-23 15:06:23 -07:00
lilia
6fe9c3f964 Nest key verification inside conflict dialogs
// FREEBIE
2016-03-23 15:04:42 -07:00
lilia
c4fcbd8cbe Fix i18n in tests
// FREEBIE
2016-03-23 14:04:42 -07:00
lilia
3901bcb8df Style resend button as an inline link
For messages that failed to send due to network errors, this change
allows retrying them directly from the main conversation view rather
than only from the message detail view.

// FREEBIE
2016-03-22 15:38:22 -07:00
lilia
08da29969c Fix menu behavior
Opening the global menu should close the conversation menu and vice
versa.

// FREEBIE
2016-03-22 11:01:37 -07:00
lilia
d24eaa655a Tweak styles on key verification view
// FREEBIE
2016-03-21 18:42:05 -07:00
lilia
b57f26bac4 Ignore clicks on the placeholder and its contents
// FREEBIE
2016-03-21 17:46:09 -07:00