Scott Nonnenberg
65283d2794
Unload conversations and old messages every half-hour
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4ea457a01c
Fix second fetchConversation call if unread > 0
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
73a77c7b97
Consistent returns, no more eventTarget, comments for tricky bits
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
8c231d9830
MessageReceiver: Flow promises back properly in decrypt error case
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
31d7e652fe
Dismiss the app loading screen if we failed to connect to socket
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
af2ce56c8d
Reset MessageReciever queue whenever possible
...
(like we do with the conversation queue already)
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
305bd6b3b8
App loading screen: show messages processed so far
...
Also, show the same loading screen on index.js before we've bootstrapped
the app.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
e36aa524c9
background.js: Flow promises properly in error case
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
39795170c1
Handle the 'extension loaded, reopen window' scenario
...
Not sure exactly how to think about Chrome app lifetimes, so we're
being conservative. We only show the full-application loading screen
once, on first display of the inbox.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
53f2bfbb57
Animated loading screens on startup and first conversation load
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
3e8b34f3d0
findOrCreateById instead of private-specific method
...
Anyway, findOrCreateById with no type didn't succeed, because the
conversation didn't validate.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
ef3431af1b
isUntrusted: Return false if firstUse is true
...
Because users will see this upon first trying to communicate with a new
contact if they're quick about it.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
f38d715250
Read receipts: Log sender and timestamp when related msg not found
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
c6bc167975
Increase log length to 5000, since we're logging so much now
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
82c0b4aaa6
Add return to onContractReceived for consistency
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
9dc406dc8d
Apply reliable trigger to Backbone.Collection as well
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
3e0fa995dd
When finding all groups involving a number, load from DB not memory
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
0adc398a6f
Fetch conversation before saving in all sync handlers
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
9db0a58260
Whenever adding something to a queue, include a timeout
...
No more wedged queues!
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
cc2c3edaa6
Override Backbone's trigger with one that catches exceptions
...
Model operations are vulnerable to exceptions thrown by event handlers.
Because this can interrupt really important data operations, it's better
to let the operation continue and log the error. In all likelihood it's
a view-related problem, and that shouldn't cause any data operation to
fail.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
700272cf85
Add a pure copy from backbone into reliable_trigger.js for diff
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
7b55fde92d
Gruntfile: Remove firefox target in sauce labs task
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
b985228160
Last seen indicator/scroll down button - defensive removal
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4f90cefd4f
More bullet-proofing - reject surrounding promise if save() fails
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
1eb450ca35
Conversation: Start w/DEFAULT verified state, avoid null timestamp
...
Fix too-aggressive verification notifications on startup by starting a
conversation with the right initial verified state, and then making sure
to fetch() before setting a new verified state.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
bd0050b6c6
Cache messages on receipt, remove from cache when processed
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
e6859a3684
Ensure that promises always resolve, or that rejections are okay
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4da1722ee8
Bullet-proof _setVerified and handleDataMessage against rejections
...
And the weird behavior we get from $.Deferred.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
5da324103a
Throttle calls to getProfile when opening conversation
...
We don't want to throttle other calls to getProfile, so we localize this
to the fetch we do when we first open a conversation.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
aa80cdd74d
ConfirmationDialogView: Make showCancel an explicit option
...
Also, don't call resolve/reject callbacks if they weren't provided.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
14765599f3
Delete individual message
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
782b8c7640
someRecipientsFailed string: Add period for consistency
...
... with messageNotSent.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
80a2a01e37
Remove jitter on verifying/unverifying safety number
...
On every click, even when sub-panes were open, we were calling
markRead(), which would save the conversation model with the new
unreadCount. The KeyVerificationPanelView was wired up to the change
event on conversation, so it would render with the results of that
update, then finally the user's intended update.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
12b2674bde
Show size of files even if size not precomputed for attachment
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
9ba5aaa54d
Verification sync logging: include whether it was from contact sync
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
4124d5cb9b
Show 'Message not sent' only if 'Some recipients failed' not showing
...
Also switch up the visual style for 'Some recipients failed' text to
match the more-visible 'Message not sent' text and the 'Resend' link.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
25243ad9de
Send warning: Show single problematic group member, not group name
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
08ecb5f3d2
Improve wording on the 'SN changed' popup after verification
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
697079cf9b
Add else handlers with logging in toggleVerified catch handler
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
8112cd220a
Show warning when we discover key change on verify
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
91f50c028f
Unify processVerifiedMessage with Java implementation
...
This removes our support for the New Key/DEFAULT case, which iOS will
sync to us. Why? Because it ensures that in out of date scenarios, we
don't lose the higher-security state we were in previously.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
5bba6d3f17
setTrusted() -> setApproved() to dismiss the five-second warning
...
This change makes sense, since there was already a reference in the code
to the then-nonexistent setApproved()!
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
86b1aafe0c
"Clear verification" -> "Mark as not verified"
...
We lose consistency with iOS, but it is more consisent with the other
phrasing used throughout the app.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
d1a9b62077
test/index.html: Restore previous location of code coverage stuff
...
I changed the location when trying to get code coverage to work properly
and it turned out not to be necessary for the fix.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
23a806a6b1
removeAllSessions: properly reject in failure cases
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
7ab20f09cc
Fix focus issues with identity key send view
...
Tabbing right after entering the view would cause everythign to go crazy
as focus went back to the pane you were just on. This change both sets
the proper focus on load of that view (on the cancel button) and hides
other panes when they aren't active, only making them visible again when
they are once again the 'top' pane.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
ff4fde651c
Make it clear in conversation just some recipients failed
...
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
c10e1b4ad0
Code coverage test run: Fix broken test
...
This test failed only under code coverage runs - because start up of the
page too took long!
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
5c990d2a35
Code coverage: Collect test coverage for the protocol layer
...
Because we were only doing a partial instrumentation run prior to this
change, un-instrumented code had references to un-instrumented code
(because Blanket's instrumentation re-runs the code once it is
instrumented, updating the window.NAME reference).
A big part of this was that libtextsecure was not instrumented. And for
good reason; it takes a long time to load and run, especially when
instrumented. But without covering it, we'll have an incomplete view
of our code coverage. So, all coverage collection remains off by
default.
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
10f4f3fea5
Fix crash in keychange listener test
...
FREEBIE
2017-08-04 12:03:25 -07:00