Matthew Chen
98d0149095
Fix broken tests.
2021-03-25 14:28:27 -03:00
Matthew Chen
b116d40a8c
Respond to CR.
2021-03-25 13:31:45 -03:00
Matthew Chen
86b8eb08b8
Remove YapDatabase.
...
Apply asset from design.
Fix rebase breakage.
2021-03-25 11:41:16 -03:00
Matthew Chen
0ff23b8f21
Clean up app readiness.
2021-03-25 10:52:31 -03:00
Matthew Chen
b4aa2aa1c3
Clean up app readiness.
2021-03-25 09:36:16 -03:00
Matthew Chen
5a38487b40
Make dependency accessors final where possible.
2021-03-25 09:24:27 -03:00
Matthew Chen
211b93581b
Rework dependency access.
2021-03-25 09:24:27 -03:00
Matthew Chen
d0cbf8cfd0
Rework dependency access.
2021-03-25 09:24:27 -03:00
Matthew Chen
af1e1d0eb3
Rework dependency access.
2021-03-25 09:24:27 -03:00
Jordan Rose
e4dc5ee9b3
Remove 'SignalClient.' prefixes where no longer needed
2021-03-22 16:19:46 -07:00
Jordan Rose
1a55d29922
Prefix AxolotlKit session model classes with "Legacy"
...
PreKeyRecord, PreKeyBundle, and SignedPreKeyBundle are still used
outside of serialized sessions, so it doesn't make sense to mark them
"Legacy" just yet. Additionally, the keyed archiver overrides have to
be set up before any instances are unarchived, which is trickier for
these remaining model types.
2021-03-22 16:19:31 -07:00
Jordan Rose
57eb94cf60
Strip out unneeded parts of the AxolotlKit model classes
...
- Remove Chain protocol
- Delete most SessionState mutators
- Expose SessionState.receivingChains directly
- Remove ChainAndIndex class
2021-03-22 16:19:05 -07:00
Jordan Rose
6ddd3ce184
SSK: Remove SPKProtocolContext
...
Brought over for convenience in the previous commit, but no longer
needed now that everything's in one framework.
2021-03-22 16:18:29 -07:00
Jordan Rose
68a27a76e2
Move AxolotlKit model classes into SSK and remove the dependency
...
We still need the AxolotlKit model classes to migrate old sessions,
but we don't need any of the actual protocol support. This also
means we can drop HKDFKit.
Additionally, we do still use some utilities from AxolotlKit:
- AxolotlExceptions.h: NSException names, should eventually be
replaced by NSErrors everywhere
- NSData+keyVersionByte.h: prepend/remove public key type byte,
should eventually be replaced by strong types (ECPublicKey)
- SPKProtocolContext.h: defines the SPKProtocol{Read,Write}Context
marker protocols, should be replaced by direct use of
SDSAny{Read,Write}Transaction
2021-03-22 16:17:47 -07:00
Jordan Rose
69d94a7719
SSK: Migrate TestProtocolRunner to SignalClient
...
Previously this manually initialized two sessions through an
AxolotlKit-provided helper. Rather than expose a similar helper for
SignalClient, TestProtocolRunner now sends an empty message in both
directions to initialize the sessions.
2021-03-22 16:10:42 -07:00
Matthew Chen
78c2bc9090
Feature flags for .qa.
2021-03-17 21:47:04 -03:00
Matthew Chen
20b75269b7
Feature flags for .beta.
2021-03-17 21:47:00 -03:00
Matthew Chen
ce291aa84a
Feature flags for .production.
2021-03-17 21:46:50 -03:00
Matthew Chen
f3f7eb3386
Fix issue around profile key updates for groups with stale group state.
2021-03-17 19:18:38 -03:00
Matthew Chen
a322c1f25e
Feature flags for .qa.
2021-03-16 20:01:39 -03:00
Matthew Chen
f589ad3461
Feature flags for .beta.
2021-03-16 20:00:03 -03:00
Matthew Chen
07582ad16d
Feature flags for .qa.
2021-03-15 17:04:45 -03:00
Matthew Chen
14095f84b4
Feature flags for .beta.
2021-03-15 17:04:37 -03:00
Matthew Chen
9be2b05243
Feature flags for .qa.
2021-03-15 08:05:50 -03:00
Matthew Chen
c14cee7e74
Feature flags for .beta.
2021-03-15 08:05:44 -03:00
Nora Trapp
02ed5b3ac6
PR Feedback
2021-03-12 17:07:19 -08:00
Matthew Chen
6f737748e9
Avoid profile key conflicts.
2021-03-12 17:05:02 -08:00
Nora Trapp
4743cf9af3
PR Feedback
2021-03-12 16:59:56 -08:00
Nora Trapp
ab01ec94aa
Fix local profile key changed notification
2021-03-12 16:59:56 -08:00
Nora Trapp
2bb61cd700
Ensure we're never using a profile key that is newer than our latest profile on the service
2021-03-12 16:59:56 -08:00
Matthew Chen
f7aed67538
Fix large sticker downloads.
2021-03-12 08:40:15 -03:00
Matthew Chen
35f259fcbf
Feature flags for .qa.
2021-03-10 21:51:29 -03:00
Matthew Chen
0d459df77c
Feature flags for .beta.
2021-03-10 21:51:21 -03:00
Matthew Chen
d7ac30816f
Feature flags for .qa.
2021-03-10 20:25:57 -03:00
Matthew Chen
f1b78aa081
Feature flags for .beta.
2021-03-10 20:25:48 -03:00
Nora Trapp
49c17f2af8
Add new delete account flow
2021-03-09 12:17:32 -08:00
Matthew Chen
0d3a8fdb4c
Feature flags for .qa.
2021-03-06 10:45:27 -03:00
Matthew Chen
493a8549d8
Feature flags for .beta.
2021-03-06 10:45:22 -03:00
Matthew Chen
b351c4fa9a
Feature flags for .production.
2021-03-06 10:45:15 -03:00
Nora Trapp
a0ff3920a8
Feature flags for .qa.
2021-03-05 23:12:43 -08:00
Nora Trapp
765a4f87c5
Feature flags for .beta.
2021-03-05 23:12:25 -08:00
Matthew Chen
c2caa4c335
Feature flags for .qa.
2021-03-05 13:58:51 -03:00
Matthew Chen
bc1bd934a2
Feature flags for .beta.
2021-03-05 13:58:41 -03:00
Matthew Chen
37c8ca29d6
Feature flags for .qa.
2021-03-05 11:15:27 -03:00
Matthew Chen
9a64146c64
Feature flags for .beta.
2021-03-05 10:58:57 -03:00
Matthew Chen
30bf4d52c3
Feature flags for .qa.
2021-03-05 10:07:44 -03:00
Matthew Chen
b151a9a8d5
Feature flags for .beta.
2021-03-05 10:07:33 -03:00
Nora Trapp
91c8b4a250
Further design feedback
2021-03-04 18:32:24 -08:00
Nora Trapp
450870de44
Design feedback
2021-03-04 18:32:24 -08:00
Jordan Rose
9cf01c3fd2
MediaGallery: fix multi-threading bug caught by previous commit!
2021-03-04 10:48:19 -08:00
Jordan Rose
15a4a1a9cd
MediaGallery: delete old Finder API, including its Yap implementation
2021-03-04 10:30:54 -08:00
Jordan Rose
3b90f1b761
MediaGallery: Filter recently-deleted items from database queries
...
And rewrite and simplify the rest of deletion logic appropriately.
(Thanks to Nora for the strategy.)
There is one tough case here: database updates have happened
/externally/ (say, from a disappearing message expiring), in which
case the database will be updated but the MediaGallery model will not.
In this case we've broken the invariant that we have the correct count
for each month-section, and need to put a hold on database access
until the model has been updated. The only effect of this is in the
page-based media VC, where we'll exit out of the browser rather than
advancing to the next item if the item we were looking at was deleted
/and/ the next item hasn't been loaded yet. (This can happen if you're
at the start of a message with many items and the whole message gets
deleted.)
2021-03-04 10:30:54 -08:00
Jordan Rose
15e92998cb
MediaGallery: use OrderedDictionary as the backing store
...
...rather than a flat list of loaded MediaGalleryItems. This is
similar to the ad hoc approach in MediaTileViewController in the
previous commit, but is consistent across MediaPageViewController as
well.
Still not handled yet: deletions, also avoiding redundant database
access
2021-03-04 10:30:54 -08:00
Jordan Rose
29a2884743
Rewrite the All Media collection view controller
...
- Measure an entire section all at once, so items don't jump around
- Load individual items lazily by section instead of by plain index
- Search for more sections by enumerating timestamps
Does not handle deletes yet. Also I haven't removed all the old APIs.
2021-03-04 10:30:54 -08:00
Jordan Rose
76b716462e
SSK: Make OrderedDictionary a struct and improve it a bit
...
- Now a struct, meaning no need for a clone() method
- Now a RandomAccessCollection indexed by Int
- Removed the subscript setter that EarlyMessageManager was using to
make the reordering behavior more explicit
- Generalized insert(key:value:isAppend:) to insert(key:at:value:)
- Added removeSubrange(_:)
2021-03-04 10:30:54 -08:00
Jordan Rose
26037ff8f4
Database: Remove @escaping from all synchronous transaction callbacks
2021-03-04 10:30:54 -08:00
Jordan Rose
f3b87c1ee7
MediaGalleryFinder: factor out common SQL query builder
2021-03-04 10:30:54 -08:00
Nora Trapp
28a17ec257
Add internal settings view
2021-03-03 20:32:36 -08:00
Matthew Chen
47a4b88467
Feature flags for .qa.
2021-03-04 00:16:38 -03:00
Matthew Chen
0c2205580a
Feature flags for .beta.
2021-03-04 00:16:30 -03:00
Matthew Chen
b08438849d
Feature flags for .qa.
2021-03-04 00:10:36 -03:00
Matthew Chen
0c85efa3ef
Feature flags for .beta.
2021-03-04 00:10:21 -03:00
Michelle Linington
852e8261d8
Lint
2021-03-03 12:51:07 -08:00
Michelle Linington
adabc1a06e
PR Feedback
...
The most significant change here is we defer initial loading of
collision interactions. We shouldn't block the main thread during
conversation presentation.
Instead, we'll perform it at UserInitiatedQoS. Once complete, we'll call
-ensureBannerState. Subsequent banner state updates will use the cached
interactions to find name collisions.
2021-03-03 12:51:07 -08:00
Michelle Linington
a7aa17c7dd
Better write handling
2021-03-03 12:51:07 -08:00
Michelle Linington
15eb64086c
Most of the work for profile spoofing in group membership
...
This separates the logic for finding spoofed profiles from the view
controller responsible for reporting collisions to the user
2021-03-03 12:51:07 -08:00
Matthew Chen
dab3994b3a
Add logging around profile key rotation.
2021-03-03 17:20:02 -03:00
Jon Chambers
07d3ec2c6e
Restore two-enclave configuration.
2021-03-03 17:18:36 -03:00
Matthew Chen
213b0ba702
Respond to CR.
2021-03-03 17:18:36 -03:00
Jon Chambers
ca877d293d
Update KBS constants to match the latest staging deployment.
2021-03-03 17:18:36 -03:00
Jordan Rose
ae0fb0aea4
Remember to free OpenSSL-allocated memory
2021-03-03 09:50:40 -08:00
Matthew Chen
4ce2c3adb8
Feature flags for .qa.
2021-03-01 10:49:05 -03:00
Matthew Chen
f119a87e03
Feature flags for .production.
2021-02-27 09:09:24 -03:00
Matthew Chen
426d52b468
Feature flags for .qa.
2021-02-26 17:56:15 -03:00
Matthew Chen
ef0fb70b02
Feature flags for .beta.
2021-02-26 17:56:02 -03:00
Nora Trapp
de5afa9467
Use server timestamp to validate UD messages
2021-02-26 11:56:47 -08:00
Nora Trapp
2ef8db1d9f
Fix excessive threadless errors
2021-02-26 11:48:29 -08:00
Nora Trapp
eff026a8d5
Don't insert decryption errors for blocked conversation
2021-02-25 13:20:05 -08:00
Matthew Chen
d19a94d328
Feature flags for .qa.
2021-02-24 21:53:11 -03:00
Matthew Chen
51e0719152
Feature flags for .beta.
2021-02-24 21:52:37 -03:00
Matthew Chen
d325b57bff
Respond to CR.
2021-02-24 21:13:25 -03:00
Matthew Chen
b7e9bd906d
Batch processing of synced contacts.
2021-02-24 21:13:25 -03:00
Matthew Chen
39feb7eb43
Respond to CR.
2021-02-24 18:03:10 -03:00
Matthew Chen
93fc3dd3db
Filter as e164.
2021-02-24 18:00:54 -03:00
Nora Trapp
38013fb312
Fix handling of SMK decryption errors
2021-02-24 11:25:08 -08:00
Jordan Rose
f9025cc0d8
Update SignalClient, and stop using cocoapods-binary to build it
...
Includes updates for SignalMetadataKit and SignalServiceKit for the
change requiring SenderCertificates to always have UUIDs.
2021-02-23 14:18:16 -08:00
Matthew Chen
8017d0da50
Allow group migrations to work if a member never had a versioned profile.
2021-02-23 15:57:49 -03:00
Nora Trapp
ec1a1bb9ae
Simplify MessageProcessing promises
2021-02-23 10:45:50 -08:00
Nora Trapp
5f8f048202
Fix tests
2021-02-23 10:45:50 -08:00
Nora Trapp
9ea30bc09a
lint fix
2021-02-23 10:45:50 -08:00
Nora Trapp
3669066e42
Begone OWSBatchMessageProcessor
2021-02-23 10:45:50 -08:00
Nora Trapp
91d2953843
Begone OWSMessageReceiver
2021-02-23 10:45:50 -08:00
Nora Trapp
4b2be0b8fa
Get rid of obsolte SSKMessageDecryptJobQueue
2021-02-23 10:45:50 -08:00
Nora Trapp
3991802fa8
Add appropriate restrictions to when message processing can run.
2021-02-23 10:45:50 -08:00
Nora Trapp
16708b9dd7
Batch message decryption and processing
2021-02-23 10:45:50 -08:00
Nora Trapp
3e687e5c7f
Remove signaling key support
2021-02-23 10:45:50 -08:00
Nora Trapp
ad6583facb
Eliminate usage of decrypt job queue
2021-02-23 10:45:50 -08:00
Matthew Chen
83501fd24b
Feature flags for .qa.
2021-02-19 21:35:01 -03:00
Matthew Chen
ee649a2cc2
Add logging around auto-whitelisting of group conversations.
2021-02-19 10:05:36 -03:00
Matthew Chen
bd1fb3dde6
Feature flags for .production.
2021-02-19 09:40:28 -03:00
Nora Trapp
5c970e95da
Fix sending of delivery receipts
2021-02-19 09:32:53 -03:00
Matthew Chen
c0cccf1a9e
Feature flags for .qa.
2021-02-18 11:37:31 -03:00
Matthew Chen
71fa1b03ce
Feature flags for .beta.
2021-02-18 11:37:26 -03:00
Matthew Chen
a6692967b4
Feature flags for .production.
2021-02-18 11:37:18 -03:00
Matthew Chen
98400a71b4
Improve robustness of sticker handling.
2021-02-18 09:20:03 -03:00
Nora Trapp
7ba48d8484
PR Feedback
2021-02-17 12:00:50 -08:00
Nora Trapp
49cf699733
Process messages in the same transaction they were decrypted in
2021-02-17 12:00:50 -08:00
Nora Trapp
26253a0a27
Set the proto address during initialization
2021-02-16 13:05:13 -08:00
Matthew Chen
21fc366534
Feature flags for .qa.
2021-02-15 14:33:10 -03:00
Matthew Chen
fa5eebb67b
Feature flags for .beta.
2021-02-15 14:19:36 -03:00
Michelle Linington
5341d59ba1
Lint
2021-02-12 14:03:16 -08:00
Michelle Linington
3c7e96fcd4
PR Feedback
2021-02-12 13:14:48 -08:00
Michelle Linington
b4d36dcf31
Design changes for onboarding
2021-02-12 13:14:13 -08:00
Nora Trapp
5a415e004d
Remove OWSMessageServiceParams
2021-02-12 12:02:15 -08:00
Nora Trapp
651cdef9a8
Remove legacy 'silent' flag
2021-02-12 11:59:35 -08:00
Nora Trapp
514b803fdb
Fix 'online' flag for message sending
2021-02-12 11:59:34 -08:00
Matthew Chen
54dcbbe693
Feature flags for .qa.
2021-02-12 15:36:53 -03:00
Matthew Chen
30b960ccea
Feature flags for .beta.
2021-02-12 15:36:46 -03:00
Nora Trapp
54a327e269
Don't require cache evacuation to happen on the main thread to avoid deadlocks
2021-02-11 12:13:45 -08:00
Nora Trapp
ad19838ee2
Fix message processing perf tests
2021-02-10 17:13:21 -08:00
Matthew Chen
178711f3ce
Feature flags for .qa.
2021-02-05 18:50:31 -03:00
Matthew Chen
f7fbe56b79
Feature flags for .beta.
2021-02-05 18:50:02 -03:00
Matthew Chen
75c993549b
Feature flags for .production.
2021-02-05 18:39:56 -03:00
Matthew Chen
c72ab49160
Feature flags for .qa.
2021-02-05 18:35:35 -03:00
Matthew Chen
a87dadd8e1
Feature flags for .beta.
2021-02-05 18:35:30 -03:00
Matthew Chen
1b284b393d
Feature flags for .production.
2021-02-05 18:10:27 -03:00
Matthew Chen
70c8df3824
Feature flags for .qa.
2021-02-05 17:38:19 -03:00
Matthew Chen
55b0e8a136
Feature flags for .beta.
2021-02-05 17:38:15 -03:00
Matthew Chen
8aa24793c1
Feature flags for .production.
2021-02-05 17:38:07 -03:00
Matthew Chen
8434091ead
Respond to CR.
2021-02-05 17:20:52 -03:00
Matthew Chen
d43895bfa3
Respond to CR.
2021-02-05 17:04:04 -03:00
Matthew Chen
3f1dd1c872
Limit profile name component length to 26 glyphs.
2021-02-05 17:02:47 -03:00
Michelle Linington
ebdf67395e
Additional PR Feedback
...
Our stored avatars are still PNG. Fallback to the png content type and
file extension if the underlying data is png.
2021-02-05 11:11:20 -08:00
Michelle Linington
0b8a8bf864
PR Feedback
2021-02-05 11:07:08 -08:00
Michelle Linington
34e0f99cfd
Add additional validation group avatars we receive
...
Strengthens validation requirements for group avatars a user sets. Also,
checks these requirements on avatars we receive.
Introduces a data migration to drop any large group avatars.
This fixes an issue some users were reporting of jetsaming in the share
extension. All group avatars are stored in-memory on TSGroupModel.
Until we have a better strategy for memory management here, we'll want
to keep group avatars small.
2021-02-05 11:07:08 -08:00
Matthew Chen
09147ad10f
Fix application of extra headers.
2021-02-05 15:53:47 -03:00
Matthew Chen
2a4c3ace7b
Refine handling of "request approve" vs. "member added".
2021-02-05 15:03:42 -03:00
Matthew Chen
d99395299e
Rename group change classes.
2021-02-05 09:18:19 -03:00
Matthew Chen
82dd6446d1
Enforce max group name byte length.
2021-02-05 09:18:18 -03:00
Matthew Chen
d20c8f8f4e
Feature flags for .qa.
2021-02-04 11:30:31 -03:00
Matthew Chen
1bbd1ce583
Feature flags for .beta.
2021-02-04 11:30:23 -03:00
Matthew Chen
80c2604b10
Respond to CR.
2021-02-04 11:08:59 -03:00
Matthew Chen
856c5ac058
Use OWSURLSession when generating link previews.
2021-02-04 10:57:48 -03:00
Matthew Chen
e359de0aad
Merge branch 'release/5.3.3'
2021-02-04 10:57:26 -03:00
Matthew Chen
fe1f6d64f4
Enforce max attachment upload sizes more strictly.
2021-02-04 10:45:12 -03:00
Matthew Chen
cb43be6e60
Enforce max attachment upload sizes more strictly.
2021-02-04 10:45:12 -03:00
Matthew Chen
e171488dd8
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
f7c4f10d69
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
cce7a14e0c
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
645bd76bd5
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
d78daae895
Improve handling of missing group change protos.
2021-02-04 09:54:30 -03:00
Matthew Chen
3f3574f3fe
Respond to CR.
2021-02-03 09:47:34 -03:00
Matthew Chen
e85e0993aa
Disable OWSURLSession caches by default.
2021-02-03 09:42:59 -03:00
Matthew Chen
b636d29ead
Add logging around 413 errors.
2021-02-03 09:42:59 -03:00
Matthew Chen
4d9e78c423
Fetch profiles for dropped profiles when opening a thread.
2021-02-03 09:39:58 -03:00
Jordan Rose
f8b1985930
Bump the database schema version
2021-02-02 10:25:56 -08:00
Jordan Rose
dd35454f2c
SSK: In Swift code, always use Logger rather than OWSLogger
...
Logger includes the file/line information; OWSLogger does not.
2021-02-02 10:25:56 -08:00
Jordan Rose
6b334ff7e4
SSK: Begin storing sessions in serialized protobuf form
2021-02-02 10:25:56 -08:00
Jordan Rose
fefe43d91b
SSK: Adopt SignalClient.SessionRecord.hasCurrentState
2021-02-02 10:25:56 -08:00
Jordan Rose
27f9d4f62f
Don't fail trying to send a null message to an untrusted identity
...
In this case we have bigger problems than just a broken session, and
the user needs to manually trust the identity again (even if that's
just by sending a message themself)
2021-02-02 10:25:56 -08:00
Matthew Chen
86c70f6025
Feature flags for .qa.
2021-01-29 17:28:43 -03:00
Matthew Chen
8f85241753
Feature flags for .beta.
2021-01-29 17:28:36 -03:00
Matthew Chen
9c961b98b2
Fix accessibility in chat history items.
2021-01-29 16:43:02 -03:00
Matthew Chen
6c578e816f
Improve internal logging around manual migrations.
2021-01-29 11:18:13 -03:00
Jordan Rose
7fc6b2ef7f
SSK: propagate untrusted identity errors when ensuring sessions
...
Regression introduced in "Use SignalClient for message encryption"
2021-01-28 12:03:50 -08:00
Jordan Rose
e595090046
Rename SSKSessionStore.containsSession() to containsActiveSession()
2021-01-28 12:03:50 -08:00
Jordan Rose
c7b6ba7010
Make OWSAccountIdFinder's methods into class methods
...
OWSAccountIdFinder is no longer used for dependency injection in
SignalMetadataKit, so there's no need to allocate empty NSObjects just
to call the methods.
No functionality change.
2021-01-28 12:03:50 -08:00
Jordan Rose
4a86e60b82
SSKSessionStore: fix containsSession to check for an /active/ session
...
This is how it's being used: not just that you've /ever/ had a session
with a contact/device, but that you /currently/ have a session with
them.
2021-01-28 12:03:50 -08:00
Jordan Rose
f88e8e0838
SSKSessionStore: Only use AxolotlKit types when talking to the db
...
This puts up the facade for the future we'll eventually want: the
database contains serialized protobuf data, not AxolotlKit
SessionRecord objects. This also allows us to transparently handle
fetches when the database can contain *either* SessionRecords or
serialized data---we only need to check which we have.
2021-01-28 12:03:50 -08:00
Jordan Rose
05725078f1
SSK: Migrate SSKSessionStore to Swift
...
This is a no-change migration /except/ that I've dropped entry points
that are unused in the app or tests.
2021-01-28 12:03:50 -08:00
Jordan Rose
77da9dcf16
SSK: Remove -maxSessionSenderChainKeyIndexForAccountId:transaction:
...
This was the last part of SignalServiceKit that poked inside
AxolotlKit's SessionRecord, and SignalClient doesn't currently expose
the same information. However, it was only being used as a heuristic
for merging phone number and UUID contacts when you already had a
session with each, and this just won't happen anymore except in rare
circumstances. (Specifically, all messages will have UUIDs, so a UUID
contact is always more up to date.)
2021-01-28 12:03:50 -08:00
Jordan Rose
e435532474
SSK: Use SignalClient for session archive operations
...
For now, this means some extra translation between AxolotlKit and
SignalClient types, but it helps pave the way for lazily migrating the
database to store protobuf-serialized records instead of
NSCoding-archived ones.
2021-01-28 12:03:50 -08:00
Jordan Rose
d75ac75546
SSK: Account for reset sessions in SignalClient/AxolotlKit migration
2021-01-28 12:03:50 -08:00
Jordan Rose
2a8206b7dd
SSK: Fix session migration for absent pre-key IDs
...
Doing this correctly means going "back" to proto2 for SessionRecords,
because we need to distinguish between "0" and "absent" in the
serialized protobuf data. (Note that we can do this independently of
SignalClient properly making this distinction because the proto3
implementation we're using, prost, will omit scalar proto3 fields
whose values match their defaults.)
2021-01-28 12:03:50 -08:00
Jordan Rose
45e888826a
SSK: Clean up uses of SignalClient now that EC*Key uses SignalClient
2021-01-28 12:03:50 -08:00
Jordan Rose
2b9aeb300e
Transition OWSMessageDecrypter to SignalClient
...
This is the last bit of code that uses AxolotlKit.SessionCipher!
2021-01-28 12:03:50 -08:00
Jordan Rose
645cefcd47
Accomodate differences in UUID formatting checking cert validity
2021-01-28 12:03:50 -08:00
Jordan Rose
ebaf8c2238
Update for SignalClient.StoreContext
2021-01-28 12:03:50 -08:00
Jordan Rose
1ea62f2f50
SSK: Update for 'throws' removal in SignalClient
2021-01-28 12:03:50 -08:00
Jordan Rose
faccd52d93
SSK: Remove workaround from before Curve25519Kit adopted SignalClient
2021-01-28 12:03:50 -08:00
Jordan Rose
aeb78527ea
SSK: Update for removal of SMK{Sender,Server}Certificate
2021-01-28 12:03:50 -08:00
Jordan Rose
4219c597b9
Fix inverted check (== instead of !=)
2021-01-28 12:03:50 -08:00
Jordan Rose
f8c2b764a2
Update for the removal of SMKEnvironment
2021-01-28 12:03:50 -08:00
Jordan Rose
833bff8889
Use SignalClient for message encryption
...
And update for SMKSecretSessionCipher's adoption of SignalClient as
well.
2021-01-28 12:03:50 -08:00
Jordan Rose
07c20a5f6f
Rename the SignalClient test protocol to avoid conflicts
2021-01-28 12:03:50 -08:00
Jordan Rose
77257beacc
Implement AxolotlKit<->SignalClient SessionRecord migration
...
This is accomplished by serializing into and out of the protobuf
format used by SignalClient.
2021-01-28 12:03:50 -08:00
Jordan Rose
1c77cc381c
SSK: Use a named constant for provisioning cipher info data
2021-01-28 12:03:49 -08:00
Jordan Rose
afcfff317f
SSK: Convert OWSProvisioningCipher to Swift for SignalClient HKDF
2021-01-28 12:03:49 -08:00
Jordan Rose
f7198339ab
SSK: Move RemoteAttestation HKDF use to Swift/SignalClient
2021-01-28 12:03:49 -08:00
Jordan Rose
c620707091
SSK: Switch from HKDFKit to SignalClient.hkdf(...) in Swift sources
2021-01-28 12:03:49 -08:00
Jordan Rose
1705f36669
SSK: Add a test for sticker decryption
2021-01-28 12:03:49 -08:00
Matthew Chen
f1b6c93903
Improve "group update info message" copy when joining group via group link.
2021-01-28 11:34:17 -03:00
Matthew Chen
671272d56f
Merge branch 'release/5.3.2'
2021-01-27 16:56:19 -03:00
Matthew Chen
6c5167606e
Feature flags for .qa.
2021-01-27 16:42:43 -03:00
Matthew Chen
caf7ff266c
Feature flags for .production.
2021-01-27 16:42:34 -03:00
Matthew Chen
a727ed9db3
Feature flags for .beta.
2021-01-27 16:42:14 -03:00
Matthew Chen
99034619be
Fix rare crash around downloading quoted thumbnails.
2021-01-27 14:19:21 -03:00
Matthew Chen
90df86ba7a
Protect oversize text messages from auto-download settings.
2021-01-27 11:35:10 -03:00
Matthew Chen
d2e6058ef6
Fix "empty snippet" issue in conversation list view.
2021-01-27 10:08:49 -03:00
Matthew Chen
57b7461848
Fix "empty snippet" issue in conversation list view.
2021-01-27 09:59:04 -03:00
Matthew Chen
5a1d4488ec
Respond to CR.
2021-01-27 09:58:17 -03:00
Matthew Chen
7327002125
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Matthew Chen
1be46d20bd
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Matthew Chen
d82b6f8250
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Matthew Chen
584a638993
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Jordan Rose
65cbcca821
Ignore message transcripts for null messages
...
This can happen when your primary device has used a null message to
reset a session and your secondary device gets it via sync.
2021-01-25 17:05:49 -08:00
Nora Trapp
f1f788c05c
Feature flags for .qa.
2021-01-25 16:34:45 -08:00
Nora Trapp
aacaa09faa
Feature flags for .production.
2021-01-25 16:34:32 -08:00
Matthew Chen
9a17bff403
Use nickname in group short names, part 2.
2021-01-25 15:14:43 -08:00
Matthew Chen
4df4700f63
Use nickname in group short names, part 2.
2021-01-25 15:14:43 -08:00
Matthew Chen
77b2ad834f
Use nickname in group short names, part 1.
2021-01-25 15:14:43 -08:00
Matthew Chen
279b5778af
Fix crash in OWSURLSession.
2021-01-25 15:12:23 -08:00
Matthew Chen
1902e7656c
Fix broken test.
2021-01-25 19:39:40 -03:00
Nora Trapp
05efbd07e5
Feature flags for .qa.
2021-01-23 22:13:58 -08:00
Nora Trapp
5ddfb0468f
Feature flags for .beta.
2021-01-23 22:13:51 -08:00
Nora Trapp
4f2978cb32
Feature flags for .production.
2021-01-23 22:13:43 -08:00
Matthew Chen
34b6da7b2f
Fix build warnings; fix crash around url session errors.
2021-01-23 23:10:54 -03:00
Matthew Chen
b890fdeed8
Fix build warnings.
2021-01-23 22:45:33 -03:00
Nora Trapp
cb8d0afb66
Feature flags for .qa.
2021-01-23 16:00:50 -08:00
Nora Trapp
0682f957d5
Feature flags for .beta.
2021-01-23 15:59:25 -08:00
Nora Trapp
9dbe47b1aa
PR Feedback
2021-01-23 11:13:15 -08:00
Nora Trapp
8dd274cf8e
Consolidate blurring logic
2021-01-23 11:13:15 -08:00
Nora Trapp
40a605b97d
Normalize images before getting pixel size
2021-01-23 11:13:15 -08:00
Michelle Linington
8d884c8ff5
Rename strong reference property to satisfy swift lint
...
Calling it "strongDelegate" tricks swift lint into correcting the
property to be weak. Renamed it "strongReference" to work around this.
2021-01-23 10:38:41 -08:00
Michelle Linington
1ddef2bc3a
Fixes a leak in OWSURLSession
...
NSURLSession maintains a strong reference to its delegate and requires
explicit invalidation to clean up its state, otherwise it leaks memory.
This change introduces an proxy delegate for the underlying
NSURLSession. OWSURLSession retains the NSURLSession, NSURLSession
retains the proxy delegate.
The proxy delegate will retain the OWSURLSession and create a retain
cycle only while there are outstanding URLSessionTasks. Once all tasks
have been resolved, the cycle is broken and everything will be dealloced
(assuming no external references to the OWSURLSession still exist).
2021-01-23 10:38:41 -08:00
Nora Trapp
3cc4f6d67b
Feature flags for .qa.
2021-01-22 19:19:33 -08:00
Nora Trapp
76bd3553b9
Feature flags for .beta.
2021-01-22 19:19:24 -08:00
Matthew Chen
4aca268be1
Profile bio refinements.
2021-01-22 23:28:35 -03:00
Michelle Linington
593cb20482
Remove sticker tooltip
2021-01-22 13:51:50 -08:00
Nora Trapp
cc8a84d7c8
Feature flags for .qa.
2021-01-22 13:21:46 -08:00
Nora Trapp
e5ab34a4ae
Feature flags for .beta.
2021-01-22 13:21:37 -08:00
Nora Trapp
f3ed06f20d
Feature flags for .qa.
2021-01-22 10:26:04 -08:00
Nora Trapp
53decba6d6
Feature flags for .beta.
2021-01-22 10:25:57 -08:00
Matthew Chen
81c5d61f92
Improve upload progress.
2021-01-22 10:24:36 -08:00
Matthew Chen
f10cfc8533
Fix over-zealous assert around de-deduplicating group membership.
2021-01-22 10:24:36 -08:00
Matthew Chen
8c6efe8a1d
Only show sticker tooltip if sticker pack installed on linked device.
2021-01-22 10:24:35 -08:00
Nora Trapp
750a1ef98d
Feature flags for .qa.
2021-01-21 20:30:09 -08:00
Nora Trapp
cbe3c519ee
Feature flags for .beta.
2021-01-21 20:29:21 -08:00
Nora Trapp
980fedc6dd
Show sharing suggestions megaphone on linked devices
2021-01-21 20:00:52 -08:00
Nora Trapp
35db1c05a5
Add privacy setting to disable sharing suggestions
2021-01-21 20:00:52 -08:00
Nora Trapp
7230dabbc8
Add support for sharing suggestions
2021-01-21 20:00:29 -08:00
Nora Trapp
2c0f7d668c
Feature flags for .qa.
2021-01-21 18:42:38 -08:00
Nora Trapp
5d848752af
Feature flags for .beta.
2021-01-21 18:42:31 -08:00
Matthew Chen
143ab9d268
Refine sending of null message after session reset.
2021-01-21 18:31:47 -08:00
Matthew Chen
d2ffe52943
Refine sending of null message after session reset.
2021-01-21 18:31:47 -08:00
Matthew Chen
1546fbe72a
Use dynamic type in contact cell subtitles.
2021-01-21 22:32:42 -03:00
Matthew Chen
2fd7da2265
Fix GRDB schema migration.
2021-01-21 22:31:09 -03:00
Matthew Chen
fe85746aaf
Small fixes.
2021-01-21 22:31:08 -03:00
Matthew Chen
d0985f43fe
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
d3eb77d6d3
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
23857a6a0c
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
01039fbc5c
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
1cdaa74eae
Add builder for error messages.
2021-01-21 22:31:08 -03:00
Nora Trapp
e1ce224928
PR Feedback
2021-01-21 17:00:18 -08:00
Nora Trapp
ba8c43cb9b
wallpaper settings
2021-01-21 17:00:17 -08:00
Michelle Linington
52ffb5492a
Fix tests
2021-01-21 16:21:59 -08:00
Michelle Linington
e06d9d1f6e
PR Feedback
2021-01-21 16:20:40 -08:00
Michelle Linington
8fa45c7df9
Reduce unnecessary table loads in ManageStickersViewController
2021-01-21 16:20:35 -08:00
Michelle Linington
bfe76a3d34
Reduce profile avatar size cap
...
The server was rejecting 4 MB data blobs. Reduced down to something the
server handles. This is such an extreme size for a png that we'll
likely never hit it.
2021-01-21 16:17:25 -08:00
Michelle Linington
40e785cd6a
Lint
2021-01-21 16:17:24 -08:00
Michelle Linington
f996a732d8
Show tapped avatar in conversation settings full screen
2021-01-21 16:17:24 -08:00
Matthew Chen
ecf85462ae
Respond to CR.
2021-01-21 21:07:59 -03:00
Matthew Chen
8aaea5ea2d
Refine file size formatting.
2021-01-21 21:05:41 -03:00
Matthew Chen
7b5785fce8
Reuse media views.
2021-01-21 21:00:36 -03:00
Matthew Chen
ce7f557158
Skip media downloads during calls.
2021-01-21 20:56:10 -03:00
Matthew Chen
0e6b32f4ed
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
a25d29aa6f
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
5b3ee89f7c
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
41cfab7585
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
3e71eb4cd5
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
22156a93fe
Update attachment progress UI appearance. Overhaul OWSURLSession completion handling.
2021-01-21 20:41:06 -03:00
Matthew Chen
29837b4bae
Allow cancellation of attachment downloads.
2021-01-21 20:40:24 -03:00
Matthew Chen
0611ddf549
Allow cancellation of attachment downloads.
2021-01-21 20:40:24 -03:00
Matthew Chen
edf37e47a8
Allow cancellation of attachment downloads.
2021-01-21 20:40:24 -03:00
Matthew Chen
38261e1707
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
b858e495fb
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
4530341036
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
025fc61cd7
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
aeb94d48c1
Improve attachment progress indicators.
2021-01-21 20:40:23 -03:00
Matthew Chen
e77861ddbb
Fix race in model read cache.
2021-01-21 20:36:47 -03:00
Matthew Chen
933693e78a
Add animated sticker pack.
2021-01-21 20:17:02 -03:00
Matthew Chen
6f97a31dae
Remove feature flag for profile changes.
2021-01-21 17:58:21 -03:00
Matthew Chen
e1e93b5b31
Hide profile name length and about/bio behind feature flag.
2021-01-20 17:07:34 -03:00
Matthew Chen
2ba0f06ac5
Hide profile name length and about/bio behind feature flag.
2021-01-20 17:07:33 -03:00
Jordan Rose
7748420b82
SSK: (re-)unify the decision of whether to notify for an interaction
2021-01-19 11:24:14 -08:00
Jordan Rose
f5a3b53e54
SSK: Don't notify / mark unread for people leaving the group
2021-01-19 11:18:10 -08:00
Nora Trapp
aaf512687f
Feature flags for .qa.
2021-01-16 13:25:34 -08:00
Nora Trapp
4e0a2bbecf
Merge branch 'release/5.2.1' into release/5.3.0
2021-01-16 13:15:06 -08:00
Nora Trapp
c0b1d93735
Feature flags for .beta.
2021-01-16 13:05:09 -08:00
Nora Trapp
39043a66a2
Feature flags for .production.
2021-01-16 13:04:44 -08:00
Matthew Chen
f930339a6d
Fix quoted reply of animated stickers.
2021-01-16 13:02:53 -08:00
Nora Trapp
604041e822
Increase sticker size limits to match Android.
2021-01-16 12:38:41 -08:00
Jordan Rose
e269097ed6
SSK: Flush DispatchQueue.main after every test
...
There are a lot of events that get dispatched onto the main queue
(often /from/ the main queue), and processing them during the setup
for the subsequent test can cause problems. In particular, the
notification for setting up a local number in -[OWSMessageManagerTest
test_GroupUpdate] was occasionally being processed in the subsequent
-test_GroupUpdateWithAvatar, depending on how long GRDB took to set up
in the second test.
2021-01-16 12:38:14 -08:00
Nora Trapp
449b596e95
Add kill switch for automatic session reset
2021-01-16 11:57:23 -08:00
Michelle Linington
3b4c656cca
Precommit script
2021-01-14 23:37:18 -08:00
Michelle Linington
df824254a0
Add low bandwidth mode setting for calls
...
- New setting in data settings to enable low bandwidth mode for different
network interfaces
- Call service now informs RingRTC of preferred bandwidth mode on call
connect and reachability changes
2021-01-14 23:37:18 -08:00
Nora Trapp
1939802225
Increase sticker size limits to match Android.
2021-01-14 23:18:10 -08:00
Matthew Chen
d66a9fb4ac
Respond to CR.
2021-01-14 22:32:13 -03:00
Matthew Chen
7c5d769f8b
Design tweaks.
2021-01-14 22:27:01 -03:00
Matthew Chen
cb86af7700
Fix typo from spec.
2021-01-14 22:25:47 -03:00