Commit graph

1705 commits

Author SHA1 Message Date
Michael Kirk 2c44cbccfd avoid assertion when deliberately testing for failure 2018-11-11 11:28:59 -06:00
Michael Kirk 24668fa790 update to reflect id assignment on build 2018-11-11 11:28:59 -06:00
Michael Kirk 4b0fc51933 update test to reflect correct behavior 2018-11-11 11:28:59 -06:00
Michael Kirk e2ad9d81bb attachment factory
flesh out other factory builders
2018-11-11 11:28:59 -06:00
Michael Kirk 4d860bb9c7 fixup job queue test 2018-11-11 11:28:59 -06:00
Michael Kirk 24f57cedda add missing method to FakeContactsManager, convert to Swift to avoid missing
protocol methods in the future.
2018-11-11 11:28:59 -06:00
Michael Kirk ca58bb00f7 fixup tests from throws_ audit 2018-11-11 11:16:37 -06:00
Michael Kirk d492816664 Fixup certificate parsing tests
Skip failure when running tests when we're explicitly testing failure cases.

Be more specific about failure conditions via NSError param
2018-11-11 11:16:37 -06:00
Michael Kirk f45908c89d fixup spk deletion test 2018-11-11 11:13:05 -06:00
Michael Kirk 06b763dfc4 Remove unused methods/tests 2018-11-11 11:13:05 -06:00
Michael Kirk 8472801c4b fix link error when launching SSK tests 2018-11-11 11:13:05 -06:00
Michael Kirk c710b7f8f2 Fixup certificate parsing tests
Skip failure when running tests when we're explicitly testing failure cases.

Be more specific about failure conditions via NSError param
2018-11-11 11:13:05 -06:00
Matthew Chen da4f41defc Fix missing albumMessageId. 2018-11-09 17:49:08 -05:00
Michael Kirk 5da525ce2e Merge remote-tracking branch 'origin/release/2.31.0' 2018-11-09 15:49:53 -06:00
Matthew Chen 1be757788b Prevent long version strings from being scrubbed in the logs. 2018-11-09 15:17:53 -05:00
Matthew Chen 29b4702311 Fix build break. 2018-11-09 14:10:15 -05:00
Michael Kirk 366b228c01 use UUID for TSInteractions.uniqueId 2018-11-09 14:02:23 -05:00
Matthew Chen c9c9d35d19 Discard receipts for unregistered users. 2018-11-09 13:08:56 -05:00
Matthew Chen cd224a1590 Render single media as albums. 2018-11-08 15:44:22 -05:00
Matthew Chen 654325c6dc Add download progress indicators. 2018-11-08 15:35:14 -05:00
Matthew Chen 3daf7d4744 Add OWSAttachmentDownloads. 2018-11-08 15:31:00 -05:00
Michael Kirk 03aba93985 CR: use id for hashvalue, make clearer that we don't expect to use incrementing ID's for uniqueId 2018-11-08 13:11:30 -06:00
Michael Kirk 7cf53293da restore Share/Delete functionality to gallery items in the post multi-attachment world 2018-11-08 12:52:09 -06:00
Michael Kirk 42bf267607 fixup plumbing for incoming messages/synced transcripts 2018-11-08 12:52:09 -06:00
Michael Kirk e096406e56 migrate existing attachments to album-compatible gallery schema 2018-11-08 12:52:09 -06:00
Michael Kirk 57681bd6f3 Gallery supports album messages 2018-11-08 12:52:09 -06:00
Michael Kirk 27cb91e9c8 Plumb through messageAlbumId so an Attachment knows what album (if any) it
belongs to.
2018-11-08 12:52:08 -06:00
Matthew Chen 8b5a993694 Tweak timing of typing indicators. 2018-11-08 13:49:04 -05:00
Matthew Chen 2b5a79f123 Cycle websocket after learning of new linked devices via 409/410. 2018-11-07 16:19:48 -05:00
Matthew Chen f6322cb087 Fix logging in request maker. 2018-11-07 16:18:03 -05:00
Matthew Chen 47022377c2 Respond to CR. 2018-11-07 16:09:52 -05:00
Matthew Chen 954f32b775 Never use UD for sync messages. 2018-11-07 15:24:11 -05:00
Matthew Chen 8ff8f17b21 Never use UD for sync messages. 2018-11-07 14:16:51 -05:00
Matthew Chen 3a46a344ac Never use UD for sync messages. 2018-11-07 14:04:07 -05:00
Matthew Chen 2dfd4b2c0d Rename to media album. 2018-11-07 12:24:53 -05:00
Matthew Chen b7fd48ec40 Respond to CR. 2018-11-07 10:56:40 -05:00
Matthew Chen 9cdf8d06fd Ignore typing indicators from self. 2018-11-07 10:56:19 -05:00
Matthew Chen 57de089118 Add support for album captions to models. 2018-11-07 10:54:17 -05:00
Matthew Chen 3816cb4bf4 Update proto schema to reflect album captions. 2018-11-07 10:54:17 -05:00
Matthew Chen cdfd2779a3 Fix a couple small bugs in the typing indicators. 2018-11-06 17:21:24 -05:00
Matthew Chen 5aa6467d20 Fix issues in media gallery cells. 2018-11-06 15:35:48 -05:00
Matthew Chen 0341f5dc2b Modify ConversationViewItem to support media galleries. 2018-11-06 15:23:09 -05:00
Matthew Chen f2c0985907 Add 'is valid media?' method. 2018-11-06 15:23:09 -05:00
Matthew Chen 1c7add2b8f Respond to CR. 2018-11-05 09:16:17 -05:00
Matthew Chen 39c820b866 Distinguish 'app will/did become ready' events. 2018-11-05 09:04:57 -05:00
Matthew Chen eb2e16872e Distinguish 'app will/did become ready' events. 2018-11-05 09:04:57 -05:00
Matthew Chen 1c21c31c2b Fix failed reloads in SignalRecipient. 2018-11-05 08:43:16 -05:00
Matthew Chen c7d427029b Respond to CR. 2018-11-02 13:17:36 -04:00
Matthew Chen 47fda2e377 Add debug UI for multi-image sends. 2018-11-02 13:04:05 -04:00
Matthew Chen ecba67b511 Add debug UI for multi-image sends. 2018-11-02 13:04:05 -04:00
Matthew Chen f6591fac25 Add debug UI for multi-image sends. 2018-11-02 13:04:05 -04:00
Matthew Chen b90fee08bd Merge remote-tracking branch 'origin/release/2.31.0' 2018-11-01 16:59:54 -04:00
Matthew Chen 650469c6a7 Respond to CR. 2018-11-01 16:44:47 -04:00
Matthew Chen 63d88ef5cb Sketch out TypingIndicatorCell. 2018-11-01 16:44:47 -04:00
Matthew Chen eedc9f9a26 Sketch out "typing indicators" interaction and cell. 2018-11-01 16:44:47 -04:00
Matthew Chen 50381cc94c Add typing indicators in home view. 2018-11-01 16:44:47 -04:00
Matthew Chen b063a49d56 Rework typing indicators API. 2018-11-01 16:44:47 -04:00
Matthew Chen 3eab5b82cc Respond to CR. 2018-11-01 16:06:03 -04:00
Matthew Chen 3011175cef Fix "413 on prekey fetch" errors. 2018-11-01 15:59:11 -04:00
Matthew Chen e89d8b40d7 Fix "413 on prekey fetch" errors. 2018-11-01 15:59:11 -04:00
Matthew Chen 3cc1988f20 Fix "413 on prekey fetch" errors. 2018-11-01 15:59:11 -04:00
Matthew Chen 97e234f785 Fix "413 on prekey fetch" errors. 2018-11-01 15:59:11 -04:00
Matthew Chen 1db5a157ce Respond to CR. 2018-11-01 15:22:53 -04:00
Matthew Chen a5ebe394d1 Include typing indicators in configuration sync messages; emit when that value changes. 2018-11-01 15:22:53 -04:00
Matthew Chen 33f5398ba8 Update proto schema for configuration messages to reflect typing indicators setting. 2018-11-01 15:22:53 -04:00
Matthew Chen ea734ad171 Respond to CR. 2018-11-01 14:34:05 -04:00
Matthew Chen a09cb16e74 Add typing indicators setting. 2018-11-01 14:28:39 -04:00
Michael Kirk 85f85d9c3a fix debug crash 2018-10-31 16:14:27 -06:00
Michael Kirk fe15a260ef Merge branch 'release/2.31.0' 2018-10-31 16:13:54 -06:00
Matthew Chen 3729398507 Request profile fetches on main thread. 2018-10-31 15:01:33 -04:00
Matthew Chen 3d0e7386a4 Respond to CR. 2018-10-31 12:19:07 -04:00
Matthew Chen a98c82645c Start work on typing indicators.
* Update proto schema to reflect typing indicators.
* Sketch out OWSTypingIndicatorMessage.
* Add "online" to the service message params.
* Sketch out logic to send typing indicator messages.
* Sketch out OWSTypingIndicators class.
2018-10-31 12:11:29 -04:00
Matthew Chen 40aa78e001 Merge remote-tracking branch 'origin/release/2.31.0' 2018-10-31 11:42:41 -04:00
Matthew Chen 698e48f2d8 Respond to security review. 2018-10-30 16:18:23 -04:00
Matthew Chen 7d8b20d091 Apply refinements to UD logic. 2018-10-30 16:18:22 -04:00
Matthew Chen 44f6774396 Apply refinements to UD logic. 2018-10-30 16:18:22 -04:00
Matthew Chen c28d131f97 Respond to CR. 2018-10-30 16:18:22 -04:00
Matthew Chen e11d43d1f8 Respond to CR. 2018-10-30 16:18:22 -04:00
Matthew Chen ee87f1b489 Fix test breakage. 2018-10-30 16:18:22 -04:00
Matthew Chen c5f4711595 Apply refinements to UD logic. 2018-10-30 16:18:22 -04:00
Matthew Chen 2541be1619 Apply refinements to UD logic. 2018-10-30 16:18:22 -04:00
Michael Kirk 1dea927a3f Remove some usage of throwswrapped_ in udmanager since we don't need to
propogate the wrapped exception anyway.
2018-10-30 11:35:34 -06:00
Michael Kirk 3d9cd4f4ed CR: comments and code clarity 2018-10-30 11:35:34 -06:00
Michael Kirk 3bef78335d find -E . -type f -regex ".*\.(m|h|swift)" -exec sed -i "" -e "s/trywrapped_/throwswrapped_/g" {} \; 2018-10-30 11:35:34 -06:00
Michael Kirk cb9aa6304c find -E . -type f -regex ".*\.(m|h)" -exec sed -i "" -e "s/try_/throws_/" {} \; 2018-10-30 11:35:34 -06:00
Michael Kirk 8544c86427 Swift Exception wrap HKDFKit 2018-10-30 11:35:34 -06:00
Michael Kirk c4f8975308 Swift Exception wrap Curve25519 2018-10-30 11:35:34 -06:00
Michael Kirk c686e766b1 Exception audit, fail directly where intended 2018-10-30 11:35:34 -06:00
Michael Kirk 9d2731c9b8 exception auditing OWSRaiseException 2018-10-30 11:35:34 -06:00
Michael Kirk 3a6aafc454 Swift Exception wrap NSData+keyVersionByte 2018-10-30 11:35:34 -06:00
Michael Kirk 5f5ec9b82a ExceptionWrap loadPreKey 2018-10-30 11:35:34 -06:00
Michael Kirk b622b3a020 Exception wrap TSDerivedSecrets for Swift 2018-10-30 11:35:34 -06:00
Michael Kirk 8d823193f1 Exception wrap WhisperMessage for Swift 2018-10-30 11:35:34 -06:00
Michael Kirk 1482c600b4 Exception wrap PreKeyWhisperMessage for Swift 2018-10-30 11:35:34 -06:00
Michael Kirk 60769a3d17 Exception wrap SessionCipher for Swift 2018-10-30 11:35:34 -06:00
Matthew Chen a5f715eca1 Fix network manager error wrapping. 2018-10-29 16:42:33 -04:00
Matthew Chen deafc749d1 Fix UD manager tests. 2018-10-29 16:41:02 -04:00
Michael Kirk ccd30e0e1f more logging 2018-10-29 13:39:34 -06:00
Michael Kirk e26db74fcd only check prekeys when decrypting a PKWM 2018-10-29 13:38:59 -06:00
Michael Kirk af3102441d ensure device updates are persisted
Previously we'd skip saves when latest was the same instance as self, which was
*at least* occurring during the 404 handler for prekey fetching while message
sending.

In practice this was cached, so it would be one wasted request per recipient
per launch.
2018-10-29 13:38:25 -06:00
Matthew Chen 33f0a32e59 Improve UD logging. 2018-10-26 17:21:49 -04:00
Matthew Chen 302da66017 Fix UD access logic. 2018-10-26 17:21:23 -04:00
Matthew Chen 737f64b761 Improve UD logging. 2018-10-26 16:09:20 -04:00
Matthew Chen ad59b2f6d2 Move "ud access for sends" logic into UD manager. 2018-10-26 16:09:20 -04:00
Matthew Chen 7de289f6be Remove SSKUnidentifiedAccess. 2018-10-26 16:09:20 -04:00
Matthew Chen dbe635f721 Try random UD access keys in profile gets. 2018-10-26 16:09:20 -04:00
Matthew Chen 70f274598c Avoid deadlocks in contact manager. 2018-10-26 14:19:04 -04:00
Matthew Chen f26241ebd0 Avoid deadlocks in contact manager. 2018-10-26 14:10:58 -04:00
Michael Kirk c4677c9d4f CR: add some reachability asserts 2018-10-25 12:17:58 -06:00
Michael Kirk 0c2bb439f9 kick-queue upon reachability 2018-10-25 11:56:39 -06:00
Michael Kirk 54c63c7a2e Reachability Singleton 2018-10-25 11:56:39 -06:00
Michael Kirk b8e4bfff86 shuffle isReady->isSetup, centralize starting workStep 2018-10-25 11:56:39 -06:00
Michael Kirk 751b6e5688 documentation for MessageSenderJobQueue 2018-10-25 11:54:59 -06:00
Michael Kirk 037bdebfab clarify backoff delay examples 2018-10-25 11:54:59 -06:00
Michael Kirk d35b735d76 Log message type in message sender 2018-10-25 11:54:59 -06:00
Michael Kirk 3560f3be5c Durable send operation
TODO
-[x] respect order of queue
-[x] replacements
  -[x] those w/o completion handler
  -[x] basic send+log operation persists
  -[x] send+ui completion
  -[x] share extension
  -[x] update state jobs
-[x] App Lifecyle
  -[x] settable
  -[x] Mark as ready on startup
  -[x] Fail appropriate jobs on startup

NICE TO HAVE
-[x] concurrent per senders
-[ ] longer retry (e.g. 24hrs)
-[ ] App Lifecyle
  -[x] retry failed jobs on startup?
  -[ ] reachability

DONE
-[x] basic passing test
-[x] datamodel
-[x] queue/classes
2018-10-25 11:54:59 -06:00
Michael Kirk 25af0f4c1e more factories 2018-10-25 11:54:58 -06:00
Michael Kirk 456b2c0830 Avoid crash during test runs
In tests that have writes occuring async WRT the test loop, we sometimes crash
when the transaction ends and we end the background task, because
CurrentAppContext() is momentarily nil between test runs.
2018-10-25 11:54:58 -06:00
Matthew Chen 278c61fd16 Remove assert around group avatar updates. 2018-10-24 17:11:48 -04:00
Matthew Chen 9df94b8477 Rework sync transcript sending. 2018-10-24 10:53:23 -04:00
Matthew Chen 21cf467bb4 Don't use websocket after 409/410. 2018-10-23 15:09:22 -04:00
Matthew Chen 1a53005e08 Respond to CR. 2018-10-22 14:43:07 -04:00
Matthew Chen a9aabf763a Use temporary user defaults in tests. 2018-10-22 14:31:36 -04:00
Matthew Chen b003049d9c Improve UD logging. 2018-10-22 14:29:08 -04:00
Matthew Chen 8c8b3a95b8 Respond to CR. 2018-10-22 14:04:30 -04:00
Matthew Chen 00d79900e4 Fix edge cases around UD v. linked devices. 2018-10-22 12:52:10 -04:00
Matthew Chen b83299888f Fix edge cases around UD v. linked devices. 2018-10-22 12:44:34 -04:00
Matthew Chen d656ae1017 Fix edge cases around UD v. linked devices. 2018-10-22 12:31:28 -04:00
Matthew Chen 64aa43edb1 Only enable UD if UD is supported by all linked devices. 2018-10-20 10:27:15 -04:00
Matthew Chen 86e22edcb1 Send "sent message transcript" sync messages at the _end_ of a send, not after the first recipient is sent. 2018-10-19 17:22:28 -04:00
Matthew Chen 9c161e913d Respond to CR; handle device changes in SignalRecipient as well. 2018-10-19 17:21:42 -04:00
Matthew Chen 55369a1ca3 Only send 'sent message transcript' sync messages using UD. 2018-10-19 16:45:50 -04:00
Matthew Chen 94c7b72361 Only send "sent message transcript" sync messages using UD. 2018-10-19 16:45:50 -04:00
Matthew Chen 553d1ac3bc Respond to CR. 2018-10-19 16:43:14 -04:00
Matthew Chen 2894db0d6e Add request maker. 2018-10-19 16:35:19 -04:00
Matthew Chen ab6c4a4c36 Try prekey fetches via websocket. 2018-10-19 09:03:47 -04:00
Matthew Chen b7920fef84 Remove obsolete TODO. 2018-10-19 08:55:52 -04:00
Matthew Chen 99d0495ec7 Respond to CR. 2018-10-18 16:58:02 -04:00
Matthew Chen bbcbbafaab Sync local profile key after rotating it. 2018-10-18 16:47:18 -04:00
Matthew Chen 693b3e13a9 Revert "Sync local profile key after rotating it."
This reverts commit ddbd20e706.
2018-10-18 16:00:48 -04:00
Matthew Chen ddbd20e706 Sync local profile key after rotating it. 2018-10-18 15:59:43 -04:00
Matthew Chen 7115d45d08 Changes for UD in production. 2018-10-18 15:27:25 -04:00
Matthew Chen d44e414b54 Clean up message sender. 2018-10-18 13:50:48 -04:00
Matthew Chen 6d075747c0 Update local profile after registration and profile key rotation. 2018-10-18 12:26:13 -04:00
Matthew Chen 9322442881 Don't assume all linked devices support UD. 2018-10-18 12:26:13 -04:00
Matthew Chen 353f91db64 Respond to CR. 2018-10-18 12:12:13 -04:00
Matthew Chen 9519e7961a Rework recipient device updates. 2018-10-18 11:21:16 -04:00
Matthew Chen a00ebdf4a2 Fix UD auth edge cases. 2018-10-18 11:21:16 -04:00
Matthew Chen 2f4094e801 Fix UD auth edge cases. 2018-10-18 11:21:16 -04:00
Matthew Chen 4d89670f19 Fix UD auth edge cases. 2018-10-18 11:21:16 -04:00