Commit graph

3173 commits

Author SHA1 Message Date
Fedor Indutny
bcd79cf17d
Fix uncaught exception during shutdown on update 2021-05-06 16:32:23 -05:00
Evan Hahn
a5fde38c98 Mark links with a password as "sneaky" 2021-04-29 14:27:38 -07:00
Fedor Indutny
caf1d4c4da GIF attachments 2021-04-29 14:27:37 -07:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Josh Perez
d203f125c6
Adds message forwarding 2021-04-27 18:35:35 -04:00
Josh Perez
e75bba1c52
Replaces ConfirmationModal with ConfirmationDialog 2021-04-27 15:29:59 -04:00
Josh Perez
5e2d48cc2f
Do not populate left pane on initial link 2021-04-20 19:16:49 -04:00
Fedor Indutny
25458be515
upgrade electron-builder to 22.10.5 2021-04-13 18:27:43 -07:00
Scott Nonnenberg
e0415de893 Don't always show an error on manual contact sync 2021-04-09 00:06:46 -04:00
Evan Hahn
99928ee831 Move refresh_sender_certificate.js to TypeScript 2021-04-05 18:08:50 -04:00
Evan Hahn
63ece2e9b4 Don't set or read reaction target phone number 2021-04-05 18:08:50 -04:00
Fedor Indutny
990e501850
First pass on CI support 2021-03-25 19:02:53 -07:00
Evan Hahn
77c306843d
Fix error on message details screen with audio messages 2021-03-24 15:06:12 -07:00
Josh Perez
62e04a1bbd Fix for unread syncs and ooo reactions 2021-03-19 16:57:35 -04:00
Josh Perez
0bd3c78187 Do not batch single saveMessage calls after start-up 2021-03-19 16:57:35 -04:00
Josh Perez
468d491d34 Optimizations to the performance improvement changes 2021-03-19 16:57:35 -04:00
Josh Perez
d82ce07942 Improve cold start performance 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
c9ffb7c014 Move SecretSessionCipher to TypeScript 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
7e629edd21 Move SignalProtocolStore to TypeScript 2021-03-19 16:53:52 -04:00
Fedor Indutny
18fb2b806e Remove notification on reaction remove/change 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
d0e3a2ce29 background.ts/conversation_view.ts modules, Whisper.View/ToastView in TS 2021-03-19 16:53:51 -04:00
Evan Hahn
06fb4fd0bc Add "new conversation" composer for direct messages 2021-03-19 16:53:51 -04:00
Evan Hahn
c4551ca7ca Revoke object URLs in two error cases 2021-03-19 16:53:51 -04:00
Evan Hahn
4519aa4abf Allow PSD uploads over 6MB
You can't currently upload PSD files over 6MB. This is because its
mimetype is `image/vnd.adobe.photoshop`. We think this is an image, and
non-GIF images have a limit of 6MB.

To fix this, we could do one of two things:

1. Add a special case for PSD files
2. Increase the size limit for unsupported image types such as this

I went with the second option.

Tested this by:

- adding automated tests
- uploading a ~9 MB PSD file
- uploading a ~1 MB PNG
- uploading a ~27 MB PNG (which worked because it's converted to a smaller JPEG)
- uploading a ~50 MB text file
- trying to upload a ~500 MB text file (which failed, as expected)

Addresses [DESKTOP-1168][].

[DESKTOP-1168]: https://signalmessenger.atlassian.net/browse/DESKTOP-1168
2021-02-10 14:47:55 -08:00
Scott Nonnenberg
9858ae0642 Honor messageKeysLimit, remove batching for session saves 2021-02-10 14:47:55 -08:00
Scott Nonnenberg
e10ae03bb7
Create group link previews; don't open Signal links in browser first; allow ephemeral download of previously-error'd pack 2021-02-10 16:39:26 -06:00
Evan Hahn
bc37b5c907
Add an assertion when updating conversations; update cleanData 2021-02-04 11:54:03 -08:00
Scott Nonnenberg
089e2864b3
Reduce unnecessary or overly verbose logging 2021-02-04 11:39:07 -08:00
Scott Nonnenberg
a48b3e381e
Support for joining New Groups via invite links 2021-01-29 14:16:48 -08:00
Josh Perez
c0510b08a5
Introduce conversation details screen for New Groups
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
Co-authored-by: Sidney Keese <me@sidke.com>
2021-01-29 13:19:24 -08:00
Evan Hahn
a8787e7c9e
Convert logging infrastructure to TypeScript 2021-01-27 13:13:33 -08:00
Evan Hahn
7884f4033e Patch over slow debug log rendering 2021-01-25 18:29:00 -08:00
Evan Hahn
8ccf402497 Use consistent User-Agent when uploading debug logs 2021-01-25 18:28:59 -08:00
Josh Perez
2529e208c1 Move confirmation_dialog_view to ts and React
* Moves confirmation_dialog_view to ts and React

* showConfirmationDialog API
2021-01-25 18:28:58 -08:00
Evan Hahn
8ace4b6321 Improve window activity detection, improving notification delivery 2021-01-25 18:28:57 -08:00
Evan Hahn
cf6f4a9174 Bump logging batch size from 20 to 500 2021-01-19 17:35:11 -08:00
Scott Nonnenberg
9f81b4157b Also use sent_at whenever we query database with received_at 2021-01-19 17:35:11 -08:00
Scott Nonnenberg
4eb49ff304 Fix a few issues with linking a new Desktop instance 2021-01-19 17:35:07 -08:00
Evan Hahn
6320e1f3a7 Fix logging batcher max size 2021-01-11 14:23:09 -08:00
Scott Nonnenberg
3f58a9b762
Clean up UUID-handling to prepare for future 2020-12-09 17:26:37 -05:00
Scott Nonnenberg
5369950c1d
Don't promote archived sessions, more logging on error 2020-12-09 14:05:11 -08:00
Josh Perez
318013e83d
Handles safety number changes while in a call 2020-12-08 14:37:04 -05:00
Evan Hahn
0c039bf431
Add group calling events to the message timeline 2020-12-07 14:43:19 -06:00
Evan Hahn
688938b5a1
Don't send messages to blocked group members 2020-12-01 12:04:14 -05:00
Scott Nonnenberg
2b8ae412e0
New feature flag with ability to migrate GV1 groups 2020-12-01 10:42:35 -06:00
Scott Nonnenberg
2c69f2c367 Support for GV1 -> GV2 migration 2020-11-23 14:48:12 -05:00
Scott Nonnenberg
26884432a2 Update TypeScript, Prettier and typescript-eslint for new TypeScript 3.8 syntax 2020-11-23 14:45:44 -05:00
Chris Svenningsen
d593f74241
New contact popup when clicking on group member or avatar 2020-11-11 09:36:05 -08:00
Evan Hahn
8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Evan Hahn
decc93532b Hide call buttons when on call 2020-11-04 13:03:13 -06:00
Chris Svenningsen
c408072576 Mark conversation as unread
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-11-04 13:03:10 -06:00
Evan Hahn
184f7e1bf3 Remove ESLint no-continue rule 2020-11-04 13:00:41 -06:00
Evan Hahn
b7cd0b1bf7 Tidy up link previews types 2020-11-04 13:00:40 -06:00
Scott Nonnenberg
29eaa7b9a2
Cleanup: Reactions, Delete for Everyone 2020-11-02 14:49:07 -08:00
Scott Nonnenberg
e8759fc81b
Fix out-of-order applications of reaction and delete-for-everyone 2020-11-01 09:06:41 -06:00
Scott Nonnenberg
04b7a29229 Modern profile sharing in 1:1 and GroupV1 groups 2020-10-26 15:48:44 -07:00
Evan Hahn
60f2422e2a Consolidate sleep usages into a tested utility function 2020-10-26 15:48:44 -07:00
Evan Hahn
f21dad1519 Mark long hrefs or those with invalid characters as sneaky 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
358ee4ab72 storage: Don't throw if we store undefined 2020-10-12 18:10:08 -04:00
Evan Hahn
776b500142 Ensure that clicking a link does not close the conversation 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
b914b59969 Disable obsolete feature flags 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
d51a0b5ece GroupsV2: Better group invite behavior 2020-10-12 18:10:08 -04:00
Josh Perez
9510fd1eec Cleans up mute state after mute expires 2020-10-12 18:10:08 -04:00
Josh Perez
27759233e4 Storage Service Write: Improved conflict handling 2020-10-12 18:10:08 -04:00
Sidney Keese
866217a724 Delete For Everyone Send
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:08 -04:00
Evan Hahn
693deaebe8 Remove IP addresses from "sneaky" link detection 2020-10-12 18:10:08 -04:00
Evan Hahn
313faab774 Outbound link previews 2020-10-12 18:10:08 -04:00
Evan Hahn
bdd71e4898 Support APNGs in Sticker Creator 2020-10-12 18:10:07 -04:00
Chris Svenningsen
b5df9b4067 Migrate messages, conversations, conversation_view, background to TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:07 -04:00
Evan Hahn
bee51d74f5
Add debug logging to conversation view when starting outbound call 2020-09-25 17:14:18 -04:00
Scott Nonnenberg
58af7adeaa
Update to the new gv2 capability string 2020-09-25 15:19:03 -05:00
Scott Nonnenberg
9f73b40d7a
MessageReceiver: Use UUID if we have it 2020-09-25 09:20:36 -05:00
Scott Nonnenberg
04d3769bd4
Update to the new gv2 capability string 2020-09-22 20:30:25 -04:00
Josh Perez
2d5292b2f3 Render quoted mentions as text 2020-09-21 15:42:51 -04:00
Scott Nonnenberg
bc3b61db1d Add p-queue timeouts; fix search crash; improve promise rejection logging 2020-09-21 15:42:51 -04:00
Scott Nonnenberg
67cb10fcae Ensure that ConversationController.load is resilient to errors 2020-09-21 15:42:51 -04:00
Chris Svenningsen
b4e9c278d3 Migrate to eslint 2020-09-21 15:42:51 -04:00
Josh Perez
0fe7e30398 Storage Service: More logging 2020-09-21 15:42:51 -04:00
Evan Hahn
eba1bf3100 Add software acknowledgments, link to them from About window 2020-09-21 15:42:51 -04:00
Josh Perez
22ba54ce5c Don't count muted convos in badge count by default 2020-09-21 15:42:51 -04:00
Evan Hahn
de66486e41 Add sound effect for notifications in Linux 2020-09-21 15:42:50 -04:00
Evan Hahn
ad555ec8a9 Cleanup and remove unused chunks of libsignal-protocol 2020-09-21 15:42:50 -04:00
Josh Perez
9657c38987 @mentions receive support 2020-09-21 15:42:37 -04:00
Josh Perez
c25759ca3a
Storage Service Write: Tighten up validation 2020-09-10 15:37:20 -07:00
Scott Nonnenberg
9fae795e8f
GroupsV2: Register GV2 capabilities properly 2020-09-10 15:03:17 -07:00
Scott Nonnenberg
cad9803d38
GroupsV2: Use both sent_at and received_at when processing changes 2020-09-10 17:04:45 -04:00
Scott Nonnenberg
4c98b4a96f
Introduce new remote flag for storage service write behavior 2020-09-10 13:59:59 -04:00
Scott Nonnenberg
5f6a9a661f Fix typing indicator in groups: now goes away when we get the message 2020-09-09 17:34:57 -07:00
Josh Perez
d1d7e0aa99 Storage logging improvements and repeat limits for stop sync 2020-09-09 17:34:57 -07:00
Josh Perez
d87335f5a6 Support server-determined build expiration 2020-09-09 17:34:57 -07:00
Scott Nonnenberg
7a02cc815d Support for new GroupV2 groups 2020-09-09 17:34:57 -07:00
Josh Perez
1ce0959fa1 Storage Service: Write 2020-09-09 17:34:57 -07:00
Chris Svenningsen
8a2c17f65f Apply new ESLint rules to legacy code 2020-09-09 17:34:57 -07:00
Scott Nonnenberg
9d64b6e8d7 Fix left pane preview text for timer changes 2020-09-09 17:34:57 -07:00
Evan Hahn
91a591c6ca Show group names in notifications, and only show the latest 2020-09-09 17:34:57 -07:00
Evan Hahn
496a90efbb More descriptive notification/left pane text 2020-09-09 17:34:57 -07:00
Ken Powers
8290881bd8 Support for Contact Discovery Service 2020-09-09 17:34:57 -07:00
Evan Hahn
bd32a55c15 Fix issue with dates on inbound link previews 2020-09-02 14:49:47 -04:00
Josh Perez
9eeb68a9a7 Blocking/Unblocking improvements for message requests 2020-09-01 17:11:16 -04:00
Scott Nonnenberg
91ea69133b Ensure conversation details flow down to Message Requests UI 2020-09-01 17:11:16 -04:00
Chris Svenningsen
5b1536cc02 Initial move towards new ESLint config supporting TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-09-01 17:11:16 -04:00
Evan Hahn
fd06ac9d57 Sticker improvements 2020-09-01 17:11:16 -04:00
Evan Hahn
2e1e6e847a Widen the set of link previews which can be received 2020-09-01 17:10:18 -04:00
Josh Perez
84e52c948b Mute conversations 2020-08-28 15:42:25 -04:00
Scott Nonnenberg
8d5e832ed6 Left pane preview/timestamp: Further refine logic 2020-08-28 15:42:25 -04:00
Evan Hahn
aaed0db2e5 Verify sticker data in getDataFromLink 2020-08-28 15:42:25 -04:00
Josh Perez
25dabd56fd Outgoing call: Show safety number dialog if change detected 2020-08-28 15:42:24 -04:00
Evan Hahn
45d829e439 Improved link verification logic. 2020-08-28 15:42:24 -04:00
Danny Lin
c8261814fd
Add setting to toggle notification attention drawing (#4457)
In many GNU/Linux setups, drawing attention when a notification arrives
causes the Signal window to steal focus immediately and interrupt the
user from what they were doing before the notification arrived. GNOME
Shell is the most prominent example of this behavior, but there are
likely other cases as well. Suddenly stealing focus on external events
like this can even pose a security problem in some cases, e.g. if the
user is in the middle of a typing a sudo password on one monitor while a
notification arrives and focuses Signal on another monitor. See #4452
for more information.

Disabling attention drawing entirely for Linux is also problematic
because some users rely on it as the sole indication of a new message,
as seen in #3582 and #3611.

Commit f790694559 improved the situation
by adding a hidden "--disable-flash-frame" command-line argument, but
this argument is undocumented and manually adding command-line arguments
to the application's .desktop file is not user-friendly.

This commit adds a settings option for whether to draw attention when a
new notification arrives to make it easy for all Linux users to obtain
the appropriate behavior without relying on an undocumented
command-line argument.

Fixes #4452.
2020-08-24 14:45:31 -07:00
Scott Nonnenberg
2db1569fbd
Fix conversation last activity calculation 2020-08-13 17:47:50 -05:00
Josh Perez
02607edfff
Fix selectedReaction which is now always undefined 2020-08-13 15:19:04 -07:00
Scott Nonnenberg
eb44e2fc6a
Calling: Show call event summaries in left pane 2020-08-12 19:52:34 -04:00
Scott Nonnenberg
67058e27bb
Safely generate cached conversation props on startup 2020-08-11 19:15:06 -04:00
Josh Perez
6a68b37c83
New message state: Partially sent 2020-08-06 18:22:52 -07:00
Scott Nonnenberg
81cb7730a5
Message Requests improvements 2020-08-06 20:50:54 -04:00
Scott Nonnenberg
b63291507a
Sync messages: Additional debugging info, consistent ids 2020-08-06 13:28:56 -04:00
Scott Nonnenberg
57308d3104
Fixes several bugs 2020-08-04 21:13:19 -04:00
Scott Nonnenberg
7eabdffcd0
Update message.isEmpty() and .isNormalBubble() with recent additions 2020-07-30 20:10:54 -04:00
Scott Nonnenberg
d75eee015f Show notifications when a user's profile name changes 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
5a79ed1c60 combineContacts: Don't clear conversations to reset lookups 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
bab59ba2a1 Force social graph to pull down updates after beta.11 install 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
d07b8e82b2 First-class profile name rendering 2020-07-30 13:27:41 -07:00
Josh Perez
0f8a60acc3 Integrate message requests with storage service 2020-07-30 13:18:34 -07:00
Josh Perez
9433a1de99 Don't reset panel on close of recent media pane 2020-07-30 13:17:47 -07:00
Scott Nonnenberg
901179440f Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
Josh Perez
8502d23576 Social Graph: read-only state sync with primary device 2020-07-30 13:10:05 -07:00
Scott Nonnenberg
7f71046f93 Restore ability to get to safety number screen from member list 2020-07-30 13:10:05 -07:00
Josh Perez
5b83485c89 Update safety number change warning dialog 2020-07-30 13:10:05 -07:00
Ken Powers
bf04c9114e Harden UUID-handling code paths 2020-07-30 13:10:03 -07:00
Peter Thatcher
d3a27a6442 Calling support 2020-07-30 13:08:47 -07:00
Ken Powers
83574eb067 Message Requests 2020-07-30 13:08:44 -07:00
Scott Nonnenberg
1518b159d3 Only use membersE164 field in GroupV1 messages 2020-07-27 14:49:37 -07:00
Josh Perez
128859fdb7 Support system theme on all platforms 2020-07-27 14:39:19 -07:00
Scott Nonnenberg
efaa856c35 Don't start rotation mechanisms until queue is empty 2020-07-27 14:39:19 -07:00
Josh Perez
1ad2b175dc Delete right away if we already have the message 2020-07-27 14:39:19 -07:00
Scott Nonnenberg
9214aee3ec Conversation.idForLogging: Show groupId or uuid/e164 instead of id 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
6afa6db5be Conversation.getTitle(): return 'unknown contact' if no data 2020-07-13 16:06:29 -07:00
Josh Perez
ba6cb653bf Drop group messages that don't change group 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
4289c28a38 Improve reliability of out-of-order reactions and DOE 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
e536929e35 Handle messages with the same received_at 2020-07-13 16:06:24 -07:00
Scott Nonnenberg
82bf517a69 onGroupReceived: Only process a group if it has a 16-byte id 2020-07-10 11:08:49 -07:00
Scott Nonnenberg
fd612234bb onContactReceived: Tighten up 'self' check 2020-07-10 11:08:28 -07:00
Scott Nonnenberg
a14936451e deleteStickerPackReference: Return early on empty array as well 2020-07-10 11:07:37 -07:00
Jan Janik
1503053496
Close/cancel draft "reply to" on Escape (#4387) 2020-06-30 18:59:38 -07:00
Scott Nonnenberg
fb0a98ccb7 Enable support for versioned profiles 2020-06-23 17:38:32 -07:00
Scott Nonnenberg
6aedb30905 getPropsForSearchResult: Harden to missing conversation 2020-06-23 17:31:21 -07:00
Ken Powers
9f1304bca8 Prevent duplicate message history disclaimers 2020-06-23 17:31:07 -07:00
Scott Nonnenberg
b290a27173 Message.idForLogging: Ensure that it works for outgoing 2020-06-23 17:30:58 -07:00
Josh Perez
8eed6b62b9 Wrap delivery receipt sends in conversation.queueJob 2020-06-10 14:39:45 -07:00
Scott Nonnenberg
55f4cd591c Improve safety number logic in group conversations 2020-06-10 14:39:45 -07:00