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