Commit graph

339 commits

Author SHA1 Message Date
Josh Perez
3b5cc26fec
Adds logic around downloading stories 2022-03-28 18:10:08 -07:00
Jordan Rose
5a107e1bc3
Update for @signalapp/libsignal-client rename 2022-03-24 14:47:21 -07:00
Fedor Indutny
2eaacac151
Use --force-long with pbjs 2022-03-23 13:49:27 -07:00
Fedor Indutny
f536421390
Better merging for changed keys in storage service 2022-03-21 15:06:34 -07:00
Fedor Indutny
0923cc6cb8
Do not reopen the last notification on reconnect 2022-03-16 17:51:19 -07:00
Fedor Indutny
36ce4f27a2
Optimize profile avatar uploads and sync urls 2022-03-15 17:14:20 -07:00
Fedor Indutny
f7b71eecee
Use valid uuid as a fallback in calling 2022-03-14 15:14:14 -07:00
Fedor Indutny
4a00ea46bc
Allow requesting profile without profileKey 2022-03-09 12:23:21 -08:00
Fedor Indutny
a72cf075ef
Optimize initial storage service fetch 2022-03-09 10:22:34 -08:00
Josh Perez
eb91eb6fec
Process incoming story messages 2022-03-04 13:14:52 -08:00
Fedor Indutny
df7cdfacc7
Don't mkdir restore dir in updater 2022-03-04 11:59:47 -08:00
Fedor Indutny
3b4106d9dd
Change order of syncs during linking 2022-03-02 14:53:47 -08:00
Jim Gustafson
637b67d9a5
Update to RingRTC v2.19.0
Co-authored-by: Evan Hahn <evanhahn@signal.org>
2022-03-02 11:28:29 -06:00
Evan Hahn
cfa0711909
Put "is speaking?" threshold in remote config; lower default 2022-03-01 17:39:09 -06:00
Fedor Indutny
1a751c07fc
Remove warn log when no account record is fetched 2022-02-28 18:43:45 -08:00
Evan Hahn
052a8e65e2
Add "clean up timer if necessary" utility 2022-02-25 10:37:15 -08:00
Evan Hahn
41b4cce6ec
Show local speaking indicator for group calls 2022-02-25 09:24:05 -06:00
Fedor Indutny
5d035dff86
Drop GV1 records when GV2 records are present 2022-02-22 14:30:59 -08:00
Scott Nonnenberg
b33b5d2a30
profileKey: Check length of incoming values, clear on failed send/fetch 2022-02-22 14:34:57 -06:00
Scott Nonnenberg
2de45a341b
hangup: Hang up all calls, warn if we can't find intended call 2022-02-18 10:27:15 -06:00
Scott Nonnenberg
30783c887c
Introduce new conversationJobQueue 2022-02-16 10:36:21 -08:00
Fedor Indutny
a0b05f41e3
Dropped storage keys should not cause upload 2022-02-14 11:36:32 -08:00
Fedor Indutny
e0205ffff8
Drop invalid storage service keys 2022-02-11 13:05:24 -08:00
Evan Hahn
5ce26eb91a
Speaking indicator for group calls
Co-authored-by: Peter Thatcher <peter@signal.org>
Co-authored-by: Jim Gustafson <jim@signal.org>
Co-authored-by: Josh Perez <60019601+josh-signal@users.noreply.github.com>
2022-02-08 12:30:33 -06:00
Fedor Indutny
cb5131420f
Update storageService logging 2022-02-08 10:00:18 -08:00
Fedor Indutny
bbe56e0811
Erase storage service state on key change 2022-02-02 16:15:39 -05:00
Fedor Indutny
b6287f4839
Properly propagate 204 to fetchManifest 2022-01-31 11:58:20 -08:00
Jim Gustafson
ab9d33cf1a
Update to RingRTC v2.17.2 2022-01-28 13:55:36 -06:00
Josh Perez
0fa069f260
Trim profile names when setting them 2022-01-26 13:58:00 -08:00
Scott Nonnenberg
68a458ec4a
Honor preferContactAvatars field on AccountRecord 2022-01-25 09:44:45 -08:00
Fedor Indutny
8cd557ff91
Add extra logging for change phone number 2022-01-20 14:44:25 -08:00
Jim Gustafson
d8c071dca6
Update to RingRTC v2.17.0 2022-01-15 20:59:01 -06:00
Scott Nonnenberg
90356d4c0f
Move a number of sync messages to jobs for retry 2022-01-14 13:34:52 -08:00
Evan Hahn
f8bbf5c998
Group calls: mute in the lobby if joining a large call 2022-01-07 12:01:23 -06:00
Scott Nonnenberg
62e9a1570a
Enable notifications for disappearing messages on macOS 12.0.1 and above 2022-01-05 13:52:06 -08:00
Fedor Indutny
14861aff50
Process manifest before persisting its version 2022-01-04 09:22:48 -06:00
Fedor Indutny
2d596ac8b2
Switch SQL to main process on disconnect 2022-01-03 13:44:04 -08:00
Evan Hahn
770c80b9ee
Remove several @ts-ignores 2021-12-16 17:14:21 -08:00
Scott Nonnenberg
a023fc1bb0
Usernames: Fetch own username from /whoami not /profile 2021-12-15 12:02:55 -08:00
Scott Nonnenberg
161b0e5379
Refactor sender key sends to allow distribution lists 2021-12-09 18:15:59 -08:00
Fedor Indutny
bbc13d058e
Update electron to 16.0.4 2021-12-09 09:06:04 +01:00
Scott Nonnenberg
e8a2d1f2c9
Tell Chromium not to change gain during recording 2021-12-07 09:21:55 +01:00
Josh Perez
978f57f076
Add some logging around setting preferred reaction emojis 2021-12-06 11:39:48 -05:00
Jim Gustafson
38cdb9b289
Update to RingRTC v2.16.0 2021-12-03 14:22:58 -06:00
Jordan Rose
ee8d0196b1
Don't show a notification for non-ringing calls in muted groups 2021-12-02 14:49:31 -06:00
Fedor Indutny
348012ef4c
Add PNI endpoints to WebAPI 2021-11-30 20:33:51 +01:00
Evan Hahn
67b17ec317
Hide "become a sustainer" button if you're already a sustainer 2021-11-30 17:29:57 +01:00
Jordan Rose
7edf3763a8
Hang up any active calls when quitting 2021-11-30 09:36:20 -06:00
Evan Hahn
03631481e1 Format code with prettier 2021-11-11 17:13:46 -06:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Fedor Indutny
f204784afe
Prune invalid conversations from storage service 2021-11-11 13:38:02 -08:00
Jordan Rose
983713003d
Update to libsignal-client v0.10.1 with zkgroup included 2021-11-11 16:24:28 +01:00
David Sanders
50dc534164 Simplify permissions popup IPC 2021-11-09 07:35:31 -08:00
Fedor Indutny
519ca05911
Update electron to 15.3.0 2021-11-08 22:43:37 +01:00
Evan Hahn
3bd3207e18
Add feature flag for ADM2 on Windows 2021-11-04 16:50:34 -05:00
Evan Hahn
d6ffb08a63
Disable class-methods-use-this lint rule 2021-11-04 16:04:51 -05:00
Scott Nonnenberg
3190f95fac
Usernames: Create/update/delete in profile editor 2021-11-01 12:13:35 -07:00
David Sanders
79b3b6408e Fix microphone permission checking for audio recording
See [#5580][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5580
2021-10-27 11:16:09 -05:00
Fedor Indutny
63fcdbe787
Use UUIDs in group database schema 2021-10-26 15:59:08 -07:00
Evan Hahn
74fde10ff5
Prefer import type when importing types 2021-10-26 14:15:33 -05:00
Josh Perez
ab1c31b64f
Release microphone immediately when cancelling recording 2021-10-15 14:51:33 -04:00
Evan Hahn
aec3b76117
Add additional logging in notification service 2021-10-12 10:19:07 -05:00
Josh Perez
75dab30367
Use SignalContext instead of SignalWindow 2021-10-07 19:28:47 -04:00
Fedor Indutny
a537204fc0
Remove ts/services/timers.ts 2021-10-06 14:59:34 -07:00
Evan Hahn
3c91dce993
Don't show group call start notifications more than once 2021-10-05 16:11:40 -05:00
Evan Hahn
3eff5b73d2
Enable storage service for everyone 2021-10-05 12:04:28 -05:00
Josh Perez
bfe5a5edae
Do not process records if there are none to process 2021-10-01 20:01:30 -04:00
Josh Perez
31d1f25b18
Adds error dialog when voice recorder cannot start 2021-09-30 13:13:47 -07:00
Fedor Indutny
3e31a7405b Use physical keys+layout for shortcuts 2021-09-29 14:21:15 -07:00
Evan Hahn
fc066e05df
Don't show "group call started" notifications for muted conversations 2021-09-29 15:29:40 -05:00
Josh Perez
603c315c82
Moves AudioCapture into react 2021-09-29 13:23:06 -07:00
Evan Hahn
64fc234490
Use new audio device module in alpha and beta 2021-09-29 13:30:42 -05:00
Evan Hahn
e32503eed4
Import AudioDevice and VideoFrameSource directly from RingRTC 2021-09-28 11:37:03 -05:00
Evan Hahn
ed222fee9a
Poll for devices when joining a group call 2021-09-28 11:35:40 -05:00
Fedor Indutny
8d1ab9fd69
Consistent scheduling of sendToGroup 2021-09-27 11:29:06 -07:00
Scott Nonnenberg
cf4c81b11c
Clear stale sender certificates 2021-09-27 10:31:34 -07:00
Evan Hahn
47634acc3d
Fix inversion of audio notification preference 2021-09-24 15:11:16 -05:00
Evan Hahn
f81f61af4e
Draw attention even if notifications are otherwise disabled 2021-09-24 14:01:29 -05:00
Evan Hahn
7adfd1a4e7
Fix compile error: use bytesToUuid in calling service 2021-09-24 09:32:01 -07:00
Evan Hahn
9aa0de5b6c
When a group call starts, show an OS notification 2021-09-24 09:01:01 -05:00
Fedor Indutny
4ef0bf96cc
Uint8Array migration 2021-09-23 17:49:05 -07:00
Evan Hahn
d2ef82686d
Notification improvements 2021-09-23 13:16:09 -05:00
Evan Hahn
04a4e6e5ff
Upgrade RingRTC to v2.13.1 2021-09-23 08:49:33 -07:00
Fedor Indutny
b9d6497cb1
Better types for WebAPI 2021-09-21 17:58:03 -07:00
Josh Perez
65ddf0a9e8
Import log instead of using it off of window 2021-09-17 14:27:53 -04:00
Josh Perez
0f9b72d1db
Ensure single upload for storage service 2021-09-16 18:25:49 -04:00
Evan Hahn
fda21edd23
Remove unnecessary disables of consistent-return lint rule 2021-09-16 15:25:55 -05:00
Fedor Indutny
f937eba94e
Update socket status more eagerly 2021-09-16 13:18:42 -07:00
Evan Hahn
20be8a11fe
Read and write preferred reactions to storage 2021-09-15 11:59:51 -07:00
Fedor Indutny
c7e7d55af4
UUID-keyed lookups in SignalProtocolStore 2021-09-09 19:38:11 -07:00
Evan Hahn
cc52a94c76
Make sure RingRTC has our UUID 2021-09-07 09:21:17 -07:00
Evan Hahn
3e18a8a337
Don't ring large groups 2021-09-02 15:34:38 -07:00
Josh Perez
c6b4f14f3b
Fixes no group description unless admin 2021-08-26 16:12:07 -05:00
Evan Hahn
f86f753df9
Add durations utility for computing durations 2021-08-26 09:10:58 -05:00
Evan Hahn
0e7f641dc1
Let users ring members when starting a group call
Co-Authored-By: Josh Perez <60019601+josh-signal@users.noreply.github.com>
2021-08-25 16:42:51 -05:00
Josh Perez
4371996362
Reduce the amount of storage service conflicts 2021-08-23 19:17:36 -04:00
Evan Hahn
79c976668b
Receive rings for group calls 2021-08-20 09:06:15 -07:00
Josh Perez
e9308bbafb
New option for control over update downloads 2021-08-19 15:56:29 -07:00
Fedor Indutny
1cc7c5dc2d
Move getAlwaysRelayCalls to window.Events 2021-08-19 11:41:24 -07:00
Josh Perez
91af0dad78
Faster preferences window 2021-08-18 13:08:14 -07:00
Evan Hahn
b0750e5f4e
Show "unplayed" dot on incoming audio messages 2021-08-12 13:15:55 -05:00
Fedor Indutny
cc5da98565
Ignore empty e164 in storage service 2021-08-06 11:20:11 -07:00
Josh Perez
12d2b1bf7c
Avatar defaults and colors 2021-08-05 20:17:05 -04:00
Fedor Indutny
a001882d58
Change Phone Number notifications 2021-08-05 16:34:49 -07:00
Evan Hahn
6b290a0f0c
@mentions notifications 2021-08-05 07:35:33 -05:00
Evan Hahn
d0bf9f929b
Remove unused getExpiresAt function 2021-07-30 14:54:34 -05:00
Fedor Indutny
fdec47d637
Use single WebAPI instance across the app 2021-07-23 10:23:50 -07:00
Josh Perez
d9e90e9ea8
Improvements to shared library components 2021-07-21 13:45:41 -07:00
Josh Perez
cd35a29638
Edit profile 2021-07-19 12:26:06 -07:00
Scott Nonnenberg
a42c41ed01
Message Send Log to enable comprehensive resend 2021-07-15 16:48:09 -07:00
Fedor Indutny
570fb182d4
Fully move to protobufjs 2021-07-13 11:54:53 -07:00
Fedor Indutny
ddbbe3a6b1
More protobufjs migration 2021-07-09 12:36:10 -07:00
Fedor Indutny
299fe2af36
More protobufjs use 2021-07-02 14:21:24 -05:00
Scott Nonnenberg
615ae1ccf7
Refactor SendMessage.ts to named parameters 2021-07-02 13:34:17 -05:00
Fedor Indutny
d11283f0f1
Update RingRTC to v2.10.6 2021-06-29 09:39:53 -05:00
Fedor Indutny
9f0c630574
Move to protobufjs in ts/groups.ts 2021-06-22 09:46:42 -05:00
Scott Nonnenberg
68f1023946
Move message.getPropsForBubble and friends to selectors 2021-06-17 10:15:10 -07:00
Evan Hahn
03a187097f
Disappearing message cleanups 2021-06-16 17:20:17 -05:00
Fedor Indutny
562ab5a5a5
Fix syncing of "Off" setting for default timer 2021-06-15 10:06:53 -07:00
Fedor Indutny
8f5086227a
Enforce stronger types for ArrayBuffers and storage 2021-06-14 17:09:37 -07:00
Fedor Indutny
17e6ec468e
Faster WebSocket reconnects 2021-06-09 15:28:54 -07:00
Scott Nonnenberg
bff3f0c74a
Sender Key: Prepare for production 2021-06-08 14:51:58 -07:00
Josh Perez
d4875fd8f4
Remove isPrivate, isMe, isGroupV1, isGroupV2 from model 2021-06-07 09:39:13 -07:00
Scott Nonnenberg
e0d613f1b6
Use correct timestamps for failed call events 2021-06-03 15:19:14 -05:00
Fedor Indutny
5b18bb8563
Fix storybook for calling sources modal 2021-06-03 12:52:11 -07:00
Fedor Indutny
56f0e1ba46
Make sure screen name is internationalized 2021-06-03 11:42:30 -07:00
Josh Perez
38d4595e3b
Fix camera setting when stopping screenshare 2021-06-02 13:41:28 -05:00
Fedor Indutny
19f8042cd3
Universal Disappearing Messages 2021-06-01 13:45:43 -07:00
Scott Nonnenberg
ee513a1965
Support for message retry requests 2021-05-28 12:11:19 -07:00
Evan Hahn
d4dc9b8e39 Message Requests: Add new "Report spam and block" button 2021-05-27 13:37:58 -07:00
Scott Nonnenberg
e6f1ec2b6b
Send support for Sender Key 2021-05-25 15:40:04 -07:00
Josh Perez
ceffc2380c Add screensharing behind a feature flag 2021-05-20 17:37:19 -07:00
Fedor Indutny
80da8bb47b Display SMS/MMS disclaimer in empty search results 2021-05-20 17:37:17 -07:00
Josh Perez
e0c324e4ba
Send/Receive support for reaction read syncs 2021-05-06 21:15:25 -04:00
Evan Hahn
8ef14e6f39
When incoming message should've been sealed sender, reply with profile key 2021-05-05 09:39:16 -07:00
Evan Hahn
bbd7fd3854
Initial support for job queue 2021-04-29 18:02:27 -05:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Josh Perez
808c7dfb2d
Fixes storage service validation where id already ArrayBuffer 2021-04-28 15:01:29 -04:00
Josh Perez
5e2d48cc2f
Do not populate left pane on initial link 2021-04-20 19:16:49 -04:00
Evan Hahn
ea6562b7ac Merge branch 'hiqua-no_lower_limit_query' into next-beta 2021-04-14 14:14:57 -07:00
Josh Perez
a2a361f0bf
Extra validations for storage service 2021-04-09 16:12:05 -04:00
Josh Perez
6c0acd09df
Sync mute state 2021-04-09 11:19:38 -05:00
Evan Hahn
a82fa86176 Fetch sender certificates on-demand 2021-04-09 00:06:46 -04:00
Josh Perez
9438b7b3fe
Fixes pinned conversations sync 2021-04-08 15:27:20 -04:00
Josh Perez
e4db9358cf
Storage service logging same 2021-04-06 15:54:47 -07:00
Evan Hahn
a7c78b3b23 Storage service: save new AccountRecord fields to disk 2021-04-05 18:08:50 -04:00
AsamK
ea7a5449f1
Fix race condition which often prevented sending group call started message
The group call update message after starting a group call is currently only
sent in the onLocalDeviceStateChanged callback. But often the peekInfo is
not available yet when the connection state changes to Joined, effectively
preventing the group call update message to be sent.

This commit also sends the message in the onPeekChanged callback. It is still
only sent at most once, which is ensured by the updateMessageState check.

See [#5001][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5001
2021-04-02 15:32:04 -05:00
Josh Perez
1264e6da2b Retain protections on gv1 records that match gv2 ids 2021-03-30 20:40:48 -04:00
Evan Hahn
b725ed2ffb Refresh profiles on app start (at most every 12 hours) 2021-03-19 16:57:36 -04:00
Fedor Indutny
11bcbded64 Storage Service fixes to prevent crashes on Android
* Merge report v1 group settings into local v2 group

The invariants of Storage Service mandate that the remote data always
takes precendence over the local data. We have to updated
blocked/whitelisted/... of the v2 group even if the record is for the v2
group. After doing such update - sync the manifest back to the Storage
Service with correct v2 record for the group.

* Repair errored records before uploading manifest

Fetch and re-attempt to merge errored records before uploading the
manifest. This is useful in the cases where we were not aware of the V1
group when the remote manifest was fetched, and became aware of it
before the new manifest is generated. In such scenario, we should fetch
the records for things we have failed on last time and attempt to merge
them with our data. If they are merged - we should not let their
storageIDs hang in the new manifest, which would cause group duplicates
and crashes on other clients.

* Create v1 group for storage service record

If we receive storage service record with v1 group that we didn't sync
yet (or just don't have for any other reason) - create it instead of
pushing it to `storage-service-error-records`.
2021-03-19 16:57:36 -04:00