Commit Graph

262 Commits

Author SHA1 Message Date
Max Radermacher
93a4a6ec3a Prepare the connection earlier in the launch flow 2025-06-26 12:53:10 -05:00
Max Radermacher
c957cf3c01 Show “Sending…” while waiting for socket to open 2025-06-26 12:53:10 -05:00
Max Radermacher
8eff4b74d2 Add DispatchQueue-backed Monitor functions 2025-06-26 12:53:10 -05:00
Max Radermacher
851776fdaf
Check shouldSocketBeOpen when taking over from NSE 2025-06-24 16:38:14 -05:00
Max Radermacher
f2c5d99ee5
Adjust socket reconnect delays 2025-06-20 11:08:48 -05:00
Max Radermacher
bb2d89e55a
Update to LibSignal v0.75.0 2025-06-17 14:02:29 -05:00
Max Radermacher
34bd529af5
Add Monitor primitive helper methods 2025-06-13 20:09:23 -05:00
Max Radermacher
fcfadc6d10
Add cancellation support for web socket requests 2025-06-13 15:25:20 -05:00
Max Radermacher
6019ef543d
Use web sockets in the notification service 2025-06-05 15:00:41 -05:00
Max Radermacher
a2a49ebd5d
Allow both fetch mechanisms in a single process 2025-06-05 14:59:53 -05:00
Max Radermacher
9fb39dfa8f
Don’t reconnect if elsewhere’d in the background 2025-06-05 14:58:52 -05:00
Sasha Weiss
93d2a9274d
Add optional network/5xx retries to NetworkManager 2025-06-04 14:21:42 -07:00
Max Radermacher
16f0ed8159
Add MonotonicDuration 2025-06-03 18:35:58 -05:00
Max Radermacher
8fddcee17b
Stop processing when the socket closes 2025-06-03 16:50:22 -05:00
Max Radermacher
1be1234460
Wait for disconnect before suspending 2025-06-03 13:48:27 -05:00
Max Radermacher
0b2fe0b8dc
Invert web socket state management paradigm 2025-06-03 00:50:57 -05:00
Max Radermacher
e52b87f3c7
Schedule reconnect if we fail to connect 2025-06-03 00:32:49 -05:00
Max Radermacher
46bbcc4f05
Update connection state after re-warming caches 2025-06-02 15:25:16 -05:00
Max Radermacher
b0c183f9f4
De-protocolize/clean up AppExpiry 2025-06-02 15:24:04 -05:00
Max Radermacher
9952d0c64e
Asyncify AppExpiry (née remove TestScheduler use) 2025-05-30 14:33:15 -05:00
Max Radermacher
9e3f141b31 Rename method to be consistent 2025-05-30 02:34:36 -05:00
Max Radermacher
0a75ea88d5
Asyncify more OWSChatConnection logic 2025-05-30 02:29:16 -05:00
Max Radermacher
4a7c2265c3
Adjust connection keep-alives/reconnects/tokens 2025-05-30 02:25:51 -05:00
Max Radermacher
5c64d1fa0a
Remove OWSChatConnectionUsingSSKWebSocket 2025-05-30 02:13:48 -05:00
Max Radermacher
a0317778d9
Include apnToken when linking a new device 2025-05-22 15:33:48 -05:00
Sasha Weiss
7d6edb6412
Bulk rename MessageBackup types 2025-05-13 11:35:52 -07:00
Sasha Weiss
32a2c55945
Add BackupIdManager 2025-05-05 10:51:42 -07:00
Max Radermacher
4dc6c9ff33
Update default value for maxAverageBackoff 2025-04-30 11:58:50 -05:00
Max Radermacher
a1e479be13
Un-SDS-ify IncomingGroupsV2MessageJob 2025-04-23 17:51:32 -05:00
Max Radermacher
91ea7e2286
Rebuild GroupMessageProcessor types 2025-04-23 17:44:21 -05:00
Max Radermacher
9ff792ab21
Rip out ACKing optimization that may cause stalls 2025-04-22 18:23:12 -05:00
Max Radermacher
a819bb4dac
Convert TSRequest to a struct 2025-04-10 12:49:35 -05:00
Max Radermacher
660103274e
Re-warm caches each time the NSE is triggered 2025-04-10 11:42:06 -05:00
Jordan Rose
abe5f8709e OWSChatConnection: Don't race connection setup with sending requests
The connection isn't ready to use until start(listener:) is called,
but that was happening *after* the connecting Task completed. Now the
Task waits to sync with the serial queue before letting any sends
through.
2025-04-09 13:30:27 -07:00
Max Radermacher
f15537472d
Use clampedNanoseconds where it’s useful 2025-04-08 15:30:36 -05:00
Jordan Rose
cd5881a2bf OWSChatConnection: Avoid repeatedly cycling the libsignal socket
Previously, if three requests timed out at once, the libsignal socket
would be cycled three times. Now that'll only happen once.
2025-04-08 09:42:56 -07:00
Jordan Rose
a03b77a98b OWSChatConnection: De-promisify libsignal requests
There *is* a functionality change here: handling of responses and
request errors no longer jumps to the OWSChatConnection serial queue.
None of the processing done in either the success or failure case
cares what queue it's on, and because of the use of async there were
already no guarantees about the order of enqueues.

Groundwork for the next commit.
2025-04-08 09:42:56 -07:00
Max Radermacher
6b57c58989
Don’t throw assertions when the app is expired 2025-04-07 22:59:55 -05:00
Sasha Weiss
969b0db854
Add SubscriptionFetcher, decoupled from donations 2025-04-07 12:52:44 -07:00
Chris Eager
e3bd4f1a53
improve regional networking options 2025-04-04 13:01:07 -05:00
Max Radermacher
c543747959
Don’t set httpBody for TSRequests 2025-04-03 20:46:15 -05:00
Max Radermacher
6e7c3bb597
Update to LibSignal v0.69.0 2025-04-03 12:46:35 -05:00
Sasha Weiss
8d8c1ef921
Periodic cleanup of FeatureFlags 2025-04-02 17:26:03 -07:00
Pete Walters
3af50ddfd3
Add basic support for QuickRestore 2025-03-31 13:02:44 -05:00
Pete Walters
b82d49478d
Refactor device provisioning 2025-03-31 11:24:51 -05:00
Max Radermacher
9fa8f99629
Fix race condition with “empty queue” notification 2025-03-22 00:02:27 -05:00
sashaweiss-signal
3c79403c27 Put DeviceId uint32Value into request parameters, not the Swift type 2025-03-21 18:10:01 -07:00
Sasha Weiss
1a5cbd9183
Rename postNotificationNameAsync to postOnMainThread 2025-03-21 15:28:35 -07:00
Sasha Weiss
be619eb10b
Make DBWriteTransaction only take sync completions 2025-03-21 15:27:42 -07:00
Max Radermacher
293d981c84
Remove AuthedDevice.DeviceId enum 2025-03-21 17:02:15 -05:00