Commit Graph

1693 Commits (b9404938c4d5708196a867085b80e5a7743ffb0e)

Author SHA1 Message Date
Matthew Chen 1db5a157ce Respond to CR. 7 years ago
Matthew Chen a5ebe394d1 Include typing indicators in configuration sync messages; emit when that value changes. 7 years ago
Matthew Chen 33f5398ba8 Update proto schema for configuration messages to reflect typing indicators setting. 7 years ago
Matthew Chen ea734ad171 Respond to CR. 7 years ago
Matthew Chen a09cb16e74 Add typing indicators setting. 7 years ago
Michael Kirk 85f85d9c3a fix debug crash 7 years ago
Michael Kirk fe15a260ef Merge branch 'release/2.31.0' 7 years ago
Matthew Chen 3729398507 Request profile fetches on main thread. 7 years ago
Matthew Chen 3d0e7386a4 Respond to CR. 7 years ago
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.
7 years ago
Matthew Chen 40aa78e001 Merge remote-tracking branch 'origin/release/2.31.0' 7 years ago
Matthew Chen 698e48f2d8 Respond to security review. 7 years ago
Matthew Chen 7d8b20d091 Apply refinements to UD logic. 7 years ago
Matthew Chen 44f6774396 Apply refinements to UD logic. 7 years ago
Matthew Chen c28d131f97 Respond to CR. 7 years ago
Matthew Chen e11d43d1f8 Respond to CR. 7 years ago
Matthew Chen ee87f1b489 Fix test breakage. 7 years ago
Matthew Chen c5f4711595 Apply refinements to UD logic. 7 years ago
Matthew Chen 2541be1619 Apply refinements to UD logic. 7 years ago
Michael Kirk 1dea927a3f Remove some usage of throwswrapped_ in udmanager since we don't need to
propogate the wrapped exception anyway.
7 years ago
Michael Kirk 3d9cd4f4ed CR: comments and code clarity 7 years ago
Michael Kirk 3bef78335d find -E . -type f -regex ".*\.(m|h|swift)" -exec sed -i "" -e "s/trywrapped_/throwswrapped_/g" {} \; 7 years ago
Michael Kirk cb9aa6304c find -E . -type f -regex ".*\.(m|h)" -exec sed -i "" -e "s/try_/throws_/" {} \; 7 years ago
Michael Kirk 8544c86427 Swift Exception wrap HKDFKit 7 years ago
Michael Kirk c4f8975308 Swift Exception wrap Curve25519 7 years ago
Michael Kirk c686e766b1 Exception audit, fail directly where intended 7 years ago
Michael Kirk 9d2731c9b8 exception auditing OWSRaiseException 7 years ago
Michael Kirk 3a6aafc454 Swift Exception wrap NSData+keyVersionByte 7 years ago
Michael Kirk 5f5ec9b82a ExceptionWrap loadPreKey 7 years ago
Michael Kirk b622b3a020 Exception wrap TSDerivedSecrets for Swift 7 years ago
Michael Kirk 8d823193f1 Exception wrap WhisperMessage for Swift 7 years ago
Michael Kirk 1482c600b4 Exception wrap PreKeyWhisperMessage for Swift 7 years ago
Michael Kirk 60769a3d17 Exception wrap SessionCipher for Swift 7 years ago
Matthew Chen a5f715eca1 Fix network manager error wrapping. 7 years ago
Matthew Chen deafc749d1 Fix UD manager tests. 7 years ago
Michael Kirk ccd30e0e1f more logging 7 years ago
Michael Kirk e26db74fcd only check prekeys when decrypting a PKWM 7 years ago
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.
7 years ago
Matthew Chen 33f0a32e59 Improve UD logging. 7 years ago
Matthew Chen 302da66017 Fix UD access logic. 7 years ago
Matthew Chen 737f64b761 Improve UD logging. 7 years ago
Matthew Chen ad59b2f6d2 Move "ud access for sends" logic into UD manager. 7 years ago
Matthew Chen 7de289f6be Remove SSKUnidentifiedAccess. 7 years ago
Matthew Chen dbe635f721 Try random UD access keys in profile gets. 7 years ago
Matthew Chen 70f274598c Avoid deadlocks in contact manager. 7 years ago
Matthew Chen f26241ebd0 Avoid deadlocks in contact manager. 7 years ago
Michael Kirk c4677c9d4f CR: add some reachability asserts 7 years ago
Michael Kirk 0c2bb439f9 kick-queue upon reachability 7 years ago
Michael Kirk 54c63c7a2e Reachability Singleton 7 years ago
Michael Kirk b8e4bfff86 shuffle isReady->isSetup, centralize starting workStep 7 years ago
Michael Kirk 751b6e5688 documentation for MessageSenderJobQueue 7 years ago
Michael Kirk 037bdebfab clarify backoff delay examples 7 years ago
Michael Kirk d35b735d76 Log message type in message sender 7 years ago
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
7 years ago
Michael Kirk 25af0f4c1e more factories 7 years ago
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.
7 years ago
Matthew Chen 278c61fd16 Remove assert around group avatar updates. 7 years ago
Matthew Chen 9df94b8477 Rework sync transcript sending. 7 years ago
Matthew Chen 21cf467bb4 Don't use websocket after 409/410. 7 years ago
Matthew Chen 1a53005e08 Respond to CR. 7 years ago
Matthew Chen a9aabf763a Use temporary user defaults in tests. 7 years ago
Matthew Chen b003049d9c Improve UD logging. 7 years ago
Matthew Chen 8c8b3a95b8 Respond to CR. 7 years ago
Matthew Chen 00d79900e4 Fix edge cases around UD v. linked devices. 7 years ago
Matthew Chen b83299888f Fix edge cases around UD v. linked devices. 7 years ago
Matthew Chen d656ae1017 Fix edge cases around UD v. linked devices. 7 years ago
Matthew Chen 64aa43edb1 Only enable UD if UD is supported by all linked devices. 7 years ago
Matthew Chen 86e22edcb1 Send "sent message transcript" sync messages at the _end_ of a send, not after the first recipient is sent. 7 years ago
Matthew Chen 9c161e913d Respond to CR; handle device changes in SignalRecipient as well. 7 years ago
Matthew Chen 55369a1ca3 Only send 'sent message transcript' sync messages using UD. 7 years ago
Matthew Chen 94c7b72361 Only send "sent message transcript" sync messages using UD. 7 years ago
Matthew Chen 553d1ac3bc Respond to CR. 7 years ago
Matthew Chen 2894db0d6e Add request maker. 7 years ago
Matthew Chen ab6c4a4c36 Try prekey fetches via websocket. 7 years ago
Matthew Chen b7920fef84 Remove obsolete TODO. 7 years ago
Matthew Chen 99d0495ec7 Respond to CR. 7 years ago
Matthew Chen bbcbbafaab Sync local profile key after rotating it. 7 years ago
Matthew Chen 693b3e13a9 Revert "Sync local profile key after rotating it."
This reverts commit ddbd20e706.
7 years ago
Matthew Chen ddbd20e706 Sync local profile key after rotating it. 7 years ago
Matthew Chen 7115d45d08 Changes for UD in production. 7 years ago
Matthew Chen d44e414b54 Clean up message sender. 7 years ago
Matthew Chen 6d075747c0 Update local profile after registration and profile key rotation. 7 years ago
Matthew Chen 9322442881 Don't assume all linked devices support UD. 7 years ago
Matthew Chen 353f91db64 Respond to CR. 7 years ago
Matthew Chen 9519e7961a Rework recipient device updates. 7 years ago
Matthew Chen a00ebdf4a2 Fix UD auth edge cases. 7 years ago
Matthew Chen 2f4094e801 Fix UD auth edge cases. 7 years ago
Matthew Chen 4d89670f19 Fix UD auth edge cases. 7 years ago
Matthew Chen de8b5b55c0 Update production trust root. 7 years ago
Matthew Chen 6d3f62453e Add asserts around group id length. 7 years ago
Matthew Chen 275414cbda Respond to CR. 7 years ago
Matthew Chen 7c1f1882d8 Sync "show UD indicators" setting. 7 years ago
Matthew Chen 43960aadd6 Update proto schema. 7 years ago
Michael Kirk aff35329bd make factory Swift 4.1 compatible 7 years ago
Matthew Chen cccd246122 Revert "Revert Factories."
This reverts commit 7aabb821bd.
7 years ago
Matthew Chen c6ef7f18e7 Improve test logging. 7 years ago
Matthew Chen 79ed05133c Move db connections to environments. 7 years ago
Matthew Chen f1646b6cbc Move db connections to environments. 7 years ago
Matthew Chen 829851bd7b Hang PushManager on AppEnvironment. 7 years ago
Matthew Chen 9d7c3afdaf Show (threadless) error notifications for UD decrypt failures. 7 years ago
Matthew Chen 7aabb821bd Revert Factories. 7 years ago
Michael Kirk d6cbdddc42 Fix test build, rename src/Test/ ->src/TestUtils/ to avoid confusion with the
existing test/ directory
7 years ago
Michael Kirk ac7f9f62d4 factories for tests 7 years ago
Matthew Chen bc4ac8cd15 Respond to CR. 7 years ago
Matthew Chen 53466386fd Get tests running. 7 years ago
Matthew Chen 32cf68bece Get all tests building. 7 years ago
Michael Kirk d6a6024f37 Update PromiseKit 7 years ago
Matthew Chen c9922cda3e Respond to CR. 7 years ago
Matthew Chen eb7abdfc64 Account attributes updates. 7 years ago
Matthew Chen f1d93d4472 Merge remote-tracking branch 'origin/release/2.30.2' 7 years ago
Matthew Chen 5e0bc1bc1e Respond to CR. 7 years ago
Michael Kirk 3e85c8c023 clang-format branch changes 7 years ago
Matthew Chen b53cb9e616 Clean up ahead of PR. 7 years ago
Matthew Chen 5cf8909a28 Modify OWSOutgoingReceiptManager to handle read receipts. 7 years ago
Matthew Chen 010ce1f6c2 Rename to OWSOutgoingReceiptManager. 7 years ago
Matthew Chen 2b45a8348e Clean up ahead of PR. 7 years ago
Matthew Chen f5591ef7b7 Clean up ahead of PR. 7 years ago
Matthew Chen 62d1fd2025 Clean up ahead of PR. 7 years ago
Matthew Chen 45d6250aee Send delivery receipts. 7 years ago
Matthew Chen de7bffa593 Send delivery receipts. 7 years ago
Matthew Chen 13373db3bc Send delivery receipts. 7 years ago
Matthew Chen 9ef0f35d26 Remove obsolete CDS constant. 7 years ago
Matthew Chen c5f52cc0b9 Respond to CR. 7 years ago
Matthew Chen fd9ee4c9f3 Fix small bug. 7 years ago
Matthew Chen 7e7fcc1698 Apply UD status from transcripts. 7 years ago
Matthew Chen 0c6c506a36 Send UD status in sync messages. 7 years ago
Matthew Chen 994e95a644 Update protos. 7 years ago
Michael Kirk 5edf2e426e Only report attestation failure if we *received* the attestion.
per Jeff
7 years ago
Michael Kirk c4550ebc90 don't submit feedback for connectivity errors 7 years ago
Michael Kirk e22ad8ba66 include underlying error in wrapped TSNetworkErrors 7 years ago
Michael Kirk e7170dc6e8 conventional error structure for connectivity error 7 years ago
Matthew Chen f00f608833 Respond to CR. 7 years ago
Matthew Chen f7827cda7b Respond to CR. 7 years ago
Matthew Chen c907721a18 Rotate profile key if blocklist intersects profile whitelist. 7 years ago
Matthew Chen 1f37980a0d Suppress UD against production service to avoid de-registration. 7 years ago
Matthew Chen f2a1df4e99 Update device message auditing to reflect UD behavior. 7 years ago
Matthew Chen 960b4f537d Suppress UD against production service to avoid de-registration. 7 years ago
Matthew Chen 9323e411fc Revert AppReadiness singleton. 7 years ago
Matthew Chen 27700ef78f Revert AppVersion singleton. 7 years ago
Matthew Chen f24ccb3ce6 Hang more singletons on SSKEnv. 7 years ago
Matthew Chen 8bd97aaaa0 Respond to CR. 7 years ago
Matthew Chen 03f23b5f79 Fix breakage in UD manager; add UD manager test, hang TSAccountManager on SSKEnv, fix bugs in tests. 7 years ago
Matthew Chen 1f2bfe8df4 Fix breakage in UD manager. 7 years ago
Matthew Chen bda6fdf44f Respond to CR. 7 years ago
Matthew Chen a6eed30127 Add 'is ud' property to outgoing messages. 7 years ago
Matthew Chen cba8c67983 Add 'is ud' property to incoming messages. 7 years ago
Matthew Chen 0d588346f1 Fix rebase breakage. 7 years ago
Matthew Chen a4cdc5272c Handle UD auth errors in websocket sends. 7 years ago
Michael Kirk a5db222c7a move ud auth to request factory 7 years ago
Michael Kirk fb2abdcd1a UD auth for profile fetching
Converging with Android, use UnidentifiedAccess getter
7 years ago
Michael Kirk 0be1f8cca2 Move UD auth into request initializers 7 years ago
Michael Kirk 39ba413439 Track UD mode enum instead of two booleans 7 years ago
Matthew Chen fab79e2673 Respond to CR. 7 years ago
Matthew Chen 75e59bbc6f Discard self-sent messages during the decryption process. 7 years ago
Matthew Chen e47b69e0aa Send sync messages to self via UD (only); discard self-sent sync messages. 7 years ago
Matthew Chen 7ef39bf258 Clean up proto utils. 7 years ago
Matthew Chen 5e253f1c26 Always include "local user" in contacts sync messages. 7 years ago
Matthew Chen 7cb0158331 Apply UD access verifier. 7 years ago
Matthew Chen 21b383f4e2 Remove server GUID from TSIncomingMessage. 7 years ago
Matthew Chen 7441c565bb Fix missing server timestamps. 7 years ago
Matthew Chen ad56be27c9 Fix missing server timestamps. 7 years ago
Matthew Chen 01ca416f42 Fix rebase breakage. 7 years ago
Matthew Chen 2f2b6b071b UD sends over web sockets; update web socket auth for UD. 7 years ago
Matthew Chen 3b06434d4f Split out second web socket. 7 years ago
Matthew Chen c137e95ae5 Move socket manager to hang on SSKEnvironment. 7 years ago
Matthew Chen fbfda5b9db Respond to CR. 7 years ago
Matthew Chen 1a23186ec4 Fix 'info message for group events'. 7 years ago
Matthew Chen 61a99c3f87 Further sender cleanup. 7 years ago
Matthew Chen f2a9c10c20 Respond to CR. 7 years ago
Matthew Chen a697072271 Respond to CR. 7 years ago
Matthew Chen f9e90215b3 Respond to CR. 7 years ago
Michael Kirk 2b805e4eae Constantize ConversationColorName, map previous incorrect values 7 years ago
Michael Kirk d59e21e7f0 Nothing outside of TSThread should know about legacy colors 7 years ago
Michael Kirk 405cc31a38 Apply new colors to new conversation 7 years ago
Matthew Chen ccb67f49a3 Fix issues in UD send & receive. 7 years ago
Matthew Chen 0b41e5e240 Rework profile fetch to reflect UD changes. 7 years ago
Matthew Chen 1e10a86635 UD send via REST. 7 years ago
Matthew Chen 24b0eed1f6 UD send via REST. 7 years ago
Matthew Chen d08479980d UD send via REST. 7 years ago
Matthew Chen c856859fbd Fix build breakage. 7 years ago
Matthew Chen 1b25a18e57 Respond to CR. 7 years ago
Michael Kirk f243914fe5 NSTemporaryDirectory -> OWSTemporaryDirectory/AccessibleAfterFirstAuth
Remove redundant move - AFNetworking alread moves the CFNetwork tmp file for
us.
7 years ago
Matthew Chen f0b16186cd Respond to CR. 7 years ago
Matthew Chen b8c5e14758 Apply UD trust root value for staging. 7 years ago
Matthew Chen 0c0d2a702e Decrypt incoming UD messages. 7 years ago
Matthew Chen cec8df422e Respond to CR. 7 years ago
Matthew Chen 3eb84ed0e0 Move message processing singletons to SSKEnvironment. 7 years ago
Matthew Chen 580d0486b6 Respond to CR. 7 years ago
Matthew Chen 9f2a15925a Add new envelope properties for UD. 7 years ago
Matthew Chen 4ab281346a Respond to CR. 7 years ago
Matthew Chen 39f1be65f3 Respond to CR. 7 years ago
Matthew Chen 1b1312c455 Clean up ahead of CR. 7 years ago
Matthew Chen 1d40cbfb41 Rework account attributes; persist manual message fetch; add "unrestricted UD" setting. 7 years ago
Michael Kirk 6560358375 Fix failed attachment downloads in beta 7 years ago
Matthew Chen b808c2b33b Respond to CR. 7 years ago
Matthew Chen dca46e019f Respond to CR. 7 years ago
Matthew Chen e98c572158 Sketch out sender certificate validation. 7 years ago
Matthew Chen 45233ec862 Revert UD server certificate parsing. 7 years ago
Matthew Chen f7379deb69 Add setup method to UD manager. Try to verify server certificate expiration. 7 years ago
Matthew Chen 7fd15d2fd9 Add server certificate methods to UD manager. 7 years ago