lilia
08e8c00329
Restore setting lastMessage in handleDataMessage
8 years ago
lilia
0e31644c28
Remove spurious update to conversation on delivery receipts
...
Previously this would trigger the conversation to refresh it's last
message.
// FREEBIE
8 years ago
lilia
b7fac17ec8
Avoid querying groups on delivery receipts if possible
8 years ago
lilia
ace59147ab
Reduce unnecessary updates on conversations at startup
8 years ago
lilia
280f7a74b1
Fix key change errors while retrying key change errors
8 years ago
lilia
e1662f8537
Drop unneeded binds
...
There are no references to `this` in these functions.
// FREEBIE
8 years ago
lilia
7cbaac5590
Provisioning socket events don't block AccountManager tasks
...
// FREEBIE
8 years ago
lilia
38a830c561
Fixup account manager task queue
...
Such that it still pumps tasks if one of them throws/rejects.
// FREEBIE
8 years ago
lilia
51131df23b
Update libsignal-protocol-javascript 1.1.9
...
// FREEBIE
8 years ago
lilia
6509646bdb
Set expireTimer to null to unset
...
// FREEBIE
8 years ago
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
8 years ago
lilia
da9b6c5245
Add logging for install and update events
...
// FREEBIE
8 years ago
lilia
54b856139a
Fix fetchExpiring
8 years ago
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
8 years ago
lilia
dfe9ee9679
Remove dead code
8 years ago
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
8 years ago
lilia
b92dd45a22
Add signed key rotation and deletion routines
...
// FREEBIE
8 years ago
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
8 years ago
lilia
e0fd188d42
Add loadSignedPreKeys to SignalProtocolStore
8 years ago
lilia
37ad742ccf
Support for server endpoint to set signed key
8 years ago
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
8 years ago
lilia
829d147d19
Add creation timestamps to signed keys
8 years ago
lilia
dfc292ac70
Serialize prekey refreshes & other account mgmt
...
Fixes #1060
// FREEBIE
8 years ago
lilia
f0f6bbb8c0
Update libsignal-protocol 1.1.8
...
// FREEBIE
8 years ago
lilia
819ba8ee74
Support for undefined preKey
8 years ago
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
8 years ago
haffenloher
d2ddfc72e4
Throw UnregisteredUserErrors in getKeysForNumber()
8 years ago
haffenloher
e8de2f0c52
Increase image constraints to 6 MB / 4096 px
...
Matches WhisperSystems/Signal-Android@d2be49af
Closes #1055
// FREEBIE
8 years ago
lilia
053bf20185
Group updates never have body or attachments
...
Why would they? And group.added isn't used anywhere else.
// FREEBIE
8 years ago
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
8 years ago
beejaygee
76c165a10a
Add copy and paste for images
...
Switch comparison operator to ===
Move to stricter parsing of clipboard items
8 years ago
Blake Griffith
1e498294e0
Add attachment_views_test.js tests
8 years ago
lilia
aa55b6a538
Confirm device name with enter key
...
Use form and submit elements for their built in mouse and keyboard event
handlers.
// FREEBIE
8 years ago
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
8 years ago
lilia
7e06e014c4
Add debug logging for #1030
...
// FREEBIE
8 years ago
karissa
eb5c95e287
Add a few missing translatable strings to conversation search view
8 years ago
Asa Ayers
bda0430805
Add an option to play audio notifications
8 years ago
Bernhard Steindl
e2cb45c1da
Push picture max edge to 2048 and max size to 4 MB
...
Closes #1032 and catches up with Android
8 years ago
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
8 years ago
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.
8 years ago
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.
8 years ago
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.
8 years ago
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
8 years ago
lilia
5be5f985fc
Lint
8 years ago
lilia
41216f1378
Add timestamps to attachment filenames
8 years ago
lilia
d2c1e6df27
Fix wrong variable name
...
Fix potentially setting expiration timeouts more than once.
8 years ago
lilia
d7f241ddee
Use correct type on timer updates
8 years ago
lilia
05ed7c3822
Merge timer update functions
8 years ago
lilia
f2bdafc7e9
Validate/reformat phone numbers in contact syncs
...
Turns out there's no garauntee that Android will send us contact info
with phone numbers in e164 format. When that happens, we fail to update
the correct contact. Fix by performing validation on the incoming number
before attempting to merge changes to the name, avatar, or color.
Fixes #903
8 years ago
Ikarulus
53cd3af78b
Added a dark theme
...
I added a dark theme in order to solve #328 .
This may fix #328 at least partially.
9 years ago
lilia
a8468dae28
Reduce load from delivery receipt processing
...
Add a special type of collection just for retrieving group ids, which
doesn't incur the overhead of initializing a conversation model along
with all its group members.
9 years ago
lilia
0854b19371
Revert "Don't load group contacts unnecessarily"
...
This reverts commit 6699571910
.
Not quite ready for primetime.
9 years ago
lilia
6699571910
Don't load group contacts unnecessarily
...
There are some cases when we want to initialize a group object without
loading its contacts, such as while processing delivery receipts. We
really only need to load the contacts for a group/convo when we are
rendering it, so let the front end handle those cases (which most of
them do already).
9 years ago
lilia
65072d8e03
Update libphonenumber
9 years ago
lilia
35270dbbb4
Use timeout-based animation for hourglasses
...
CSS animations are convenient but costly if you have hundreds of them.
Fixes #945
9 years ago
Benedikt Constantin Radtke
520be3d5db
Fixed bubble timestamp update timer breakdown
...
TimestampView's getRelativeTimeSpanString called moment() twice while
calculating the timeout. If there was a minute/hour/day wrap between
these 2 calls, the calculated delay was 0 and thus no timer was
scheduled, since if (this.delay) evaluated to false.
Fixes : #857 , #460
// FREEBIE
9 years ago
Benedikt Constantin Radtke
add159dde9
Localized the message detail view's timestamps
...
Momentjs will now format the timestamps depending on the locale.
Fixes : #954
// FREEBIE
9 years ago
lilia
e86142d07c
Hide verification QR code
...
The scannable fingerprint format has changed, leaving our qr codes out
of date and thus unscannable.
9 years ago
lilia
03c5d12edd
Fix necrobumping convos on key change
...
When inserting key change advisories, use the current conversation
timestamp to avoid pushing lots of old groups to the top of the
conversation list.
9 years ago
lilia
b5f5c4604c
Fix missing hourglass on some expiring messages
...
Resolves a race condition between marking messages read and
loading/rendering those messages in the frontend.
Fixes #942
9 years ago
lilia
657fa2725f
Adjust hourglass vertical alignment
9 years ago
lilia
15a9423a17
Change Identity to Safety Numbers in conversation menu
...
Fixes #935
9 years ago
2-4601
669338c717
i18n 'Theme'
...
// FREEBIE
9 years ago
paolo.ingls@gmail.com
d4f7b9984b
Fixed bug920
...
//FREEBIE
9 years ago
lilia
51e902c26f
Remove dead code
9 years ago
lilia
674eeb8313
Remove refs to appWindow
...
We only need the regular window, not the AppWindow interface, which is
specific to chrome apps.
9 years ago
lilia
9da4cdefd7
Style fix
9 years ago
Paolo Inglese
7cd45714a5
Font size should be adjustable
...
//FREEBIE
9 years ago
lilia
fcffcd35af
DRY
9 years ago
2-4601
81e1b84129
Fix 2nd person conjugation in exp. timer messages
...
// FREEBIE
9 years ago
lilia
f8a3ae158c
Remove log message
9 years ago
lilia
34888160bb
Fix re-appearing disappearing message ui
...
Fix a bug where entering the message detail view and then going back
would cause the timer menu to appear.
9 years ago
lilia
94c1ac6f09
Fix message insertion for the first element inserted
9 years ago
lilia
d3a2f5c838
Ignore expireTimer on session reset messages
9 years ago
lilia
4ee2652367
Fix wrong contact in some timer updates
...
Mistakenly showed 'You' for timer updates inferred from incoming
messages.
9 years ago
lilia
73e69fe5eb
Update libsignal-protocol 1.1.7
9 years ago
lilia
7c81e4ed2e
Delete extra space
9 years ago
lilia
790407d42e
Add qr codes
9 years ago
lilia
f05d693994
Switch from fingerprints to safety numbers
9 years ago
lilia
7fe708d195
Insert keychange advisories
...
On click, these open a verification panel for the relevant contact,
within this conversation.
// FREEBIE
9 years ago
lilia
1f0a93bf70
Ensure new installs default to non-blocking
...
// FREEBIE
9 years ago
lilia
1fe90ecdcb
Add frontend for safety numbers approval setting
...
Adds the checkbox under settings.
// FREEBIE
9 years ago
lilia
aa42139477
Implement non blocking option
...
// FREEBIE
9 years ago
lilia
ce315f3f8e
Add Events to SignalProtocolStore
...
Allows triggering and listening for events.
// FREEBIE
9 years ago
lilia
5899654ea5
Remove log message
9 years ago
lilia
de744a6c55
Fix messages being inserted in the wrong place
...
Usually new elements are inserted in a predictable order relative to the
sort order of the models/collection, but it's not garaunteed. This fixes
up message element insertion to handle the general case where elements
can be added in any order and must be displayed in correct order as
determined by the collection's sort function. In the worst case, we'll
have to iterate over the entire list of elements to find the right spot,
but in practice most of the time we can short circuit based on the index
of the model or by looking for the predecessor or successor of the
element in question.
9 years ago
lilia
009098f8dd
Insert inferred timer updates before the corresponding message
9 years ago
lilia
d52050d43f
Fix group timer updates
9 years ago
lilia
0bba096510
Use 'You' instead of your own phone number
9 years ago
lilia
1da44c847b
Fix handling sent messages sans expirationStartTimestamp
9 years ago
lilia
a12569e356
Fix destination on synced timer updates
9 years ago
lilia
86dbbc9f29
Allow null expireTimer in sendmessage
9 years ago
lilia
7eea88a545
Convert expirationStartTimestamp to number
9 years ago
lilia
56aee5e8ef
Update conversation snippets automatically
...
Fixes stale snippets after the message has expired
9 years ago
lilia
8d16bfb65e
Populate conversation snippet for timer updates
9 years ago
lilia
e488c19889
Do not trigger notifications for timer updates
9 years ago
lilia
7a26cf79ee
Insert timer update messages when inferring timer changes
9 years ago
lilia
ad2174e279
Sync expirationStartTimestamp on outgoing messages
...
Linked devices need to know when to start the clock.
9 years ago
lilia
6074a29046
Send timer update messages when changing the timer
9 years ago
lilia
824b7417e9
Apply expireTimer to outgoing messages
9 years ago
lilia
2b2c6ab040
Frontend for timer updates and timer indicator
9 years ago
lilia
448835e4d5
Bail early when processing timer updates
...
Also let expireTimer default to 0.
9 years ago
lilia
4cd2c03687
Add clock svg style
9 years ago
lilia
7331d967d2
Add support for expiration timer updates messages
9 years ago
lilia
e809a0cf8b
Breakout timer rendering into its own view
...
Make width and height constant.
9 years ago
lilia
bd713352e3
Hourglass can start at any percentage
...
This breaks the css-purity of our mixin but is necessary in order to
apply the initial offset of the hourglass animation dynamically, since
jquery can't manipulate arbitrary css on psuedo elements.
9 years ago
lilia
5f92ccd524
Render animated hourglass when messages are expiring
9 years ago
lilia
1383dc141f
Ensure that expired messages are removed from the frontend
9 years ago
lilia
02ea4f2475
Use read receipt envelope to infer startExpirationTime
...
Avoids display of phantom messages that are only received and marked
read locally long after they have expired on another linked device.
9 years ago
lilia
96fd017890
Support for incoming expiring messages
...
When initialized, or when expiration-related attributes change, expiring
messages will set timers to self-destruct. On self-destruct they trigger
'expired' events so that frontend listeners can clean up any collections
and views referencing them.
At startup, load all messages pending expiration so they can start their
timers even if they haven't been loaded in the frontend yet.
Todo: Remove expired conversation snippets from the left pane.
9 years ago
lilia
b888e01044
Add an index on message.expireTimer
...
This allows us to query all expiring messages on startup.
9 years ago
lilia
b3e932dce8
Add protocol support for disappearing messages
9 years ago
lilia
5b5a430114
Support i18n with multiple links
...
We can now pass a variable number of hrefs into i18n_with_links rather
than just one.
9 years ago
lilia
9b645f90c8
Remove Android requirement from install flow
...
// FREEBIE
9 years ago
lilia
b0c59233f3
Add test fixtures
...
Test page loads fixtures and renders the inbox view. This may be useful
for smoke testing style changes or generating screenshots with
pseudo-realistic data.
Includes a couple small changes to get rendering working outside the
app.
9 years ago
lilia
c16e80c5e4
Let key verification view lazy-load keys
...
// FREEBIE
9 years ago
lilia
fe209a2f41
Upgrade libsignal-protocol v1.1.6
9 years ago
lilia
7b3b01bdf6
Refactor registration event
...
Make AccountManager into an event target for better separation between
app and service-library handling of registration events.
9 years ago
lilia
6dcff46e26
Move chrome-specific calls to chromium.js
...
// FREEBIE
9 years ago
lilia
b1afb79a14
Set theme based on master device userAgent
...
// FREEBIE
9 years ago
lilia
2b210b3fcd
Fix undefined websocket port
...
Fixes #889
// FREEBIE
9 years ago
lilia
edd6f58539
Update display when contact colors change
...
// FREEBIE
9 years ago
lilia
9db13310b4
Add port 80
...
// FREEBIE
9 years ago
lilia
384598fbcc
Log websocket urls
...
// FREEBIE
9 years ago
lilia
0487fa3cd1
Add server fallback port 8443
...
// FREEBIE
9 years ago
lilia
487f75dd27
Fix lint
...
// FREEBIE
9 years ago
lilia
f610233ef6
Add support for syncing blocked numbers
...
// FREEBIE
9 years ago
lilia
53f20640af
Add support for syncing colors
...
// FREEBIE
9 years ago
lilia
141cdef2a4
Generalize toast view template
...
// FREEBIE
9 years ago
lilia
ff490994ab
Render emoji in group name in group updates
...
// FREEBIE
9 years ago
lilia
baff77c509
Revert "Remove Android requirement from install flow"
...
This reverts commit 4b9f7d518e
.
Put this back when iOS desktop support is ready for general release.
9 years ago
lilia
1d5471c318
Fix search tests
...
// FREEBIE
9 years ago
lilia
7e0df07e88
Fix tests
...
// FREEBIE
9 years ago
lilia
9deaa95e8c
Strip unicode null from deviceNames
...
Not sure how or why but sometimes deviceNames arrive on the server
containing a null char.
// FREEBIE
9 years ago
lilia
43ca465eb9
Remove unused code
...
// FREEBIE
9 years ago
lilia
1c89142752
Customize emoji conversion
...
Use image tags with :emoji: in a title attribute for an optimal
copy/paste ux.
// FREEBIE
9 years ago
lilia
f042378a37
Upgrade emoji support and switch to apple emoji
...
Use emojijs for replacing unicode with image tags for display. We were
already using it to replace colons with unicode. Additionally it has
a companion data repo that is kept up to date with images from all
the common image sets.
// FREEBIE
9 years ago
lilia
4b9f7d518e
Remove Android requirement from install flow
...
// FREEBIE
9 years ago
lilia
b5191e78c3
More themeing
...
Restyle message input and welcome screen
Cleanup search, headers
// FREEBIE
9 years ago
lilia
5333f89d9d
Fix svg icon colors
...
// FREEBIE
9 years ago
lilia
6c05a71424
Tune up ios bubble style
...
// FREEBIE
9 years ago
lilia
8fbb0d05f5
Add settings ui for theme
...
// FREEBIE
9 years ago
lilia
7b9894d688
Refactor css to support theming
...
Move away from inline style attributes for setting contact colors.
Apply colors by name via css classes instead. Also lays groundwork
for syncing contact colors.
// FREEBIE
9 years ago
lilia
3531667207
Fix closing recorder when clicking away
...
// FREEBIE
9 years ago
lilia
87f4029210
Fix lint
...
// FREEBIE
9 years ago
lilia
3aa72d2244
Address large font size edge cases
...
Fix some visual bugs occuring at large font size:
* Contact names break onto the next line after their avatars in
message detail screen
* Settings menu font-size failed to scale
* Handle Content overflow in modals.
// FREEBIE
9 years ago
lilia
b330b80484
Change font size on ctrl+scroll
...
Fixes #864
// FREEBIE
9 years ago
lilia
9fa7e7f462
Remove unused view
...
// FREEBIE
9 years ago
lilia
645e05c2b9
Add support for new fingerprint format
...
This will be ready to roll whenever Android/iOS is.
// FREEBIE
9 years ago
lilia
254b6621c2
Update libsignal-protocol v1.1.5
...
// FREEBIE
9 years ago