Commit graph

1085 commits

Author SHA1 Message Date
Scott Nonnenberg
523843f30e Proper styling for View Once messages which are deleted for everyone 2020-10-12 18:10:08 -04:00
Chris Svenningsen
492bb283ee A few Delete For Everyone fixes
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:08 -04:00
Scott Nonnenberg
0122cfd22a Resilience to quick reconnects: always reprocess from cache first 2020-10-12 18:10:08 -04:00
Evan Hahn
0d83076799 Use more exact type for addCallHistory 2020-10-12 18:10:08 -04:00
Chris Svenningsen
d7f3b39fec Provide fallback if pinnedConversationIds not already set 2020-10-12 18:10:08 -04:00
Josh Perez
59a181bd30 Calling: Lobby 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
Josh Perez
c7308b485b Tidy up the storage service logs 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
9002b21a6b Minimize downstream effects of storage sync 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
b914b59969 Disable obsolete feature flags 2020-10-12 18:10:08 -04:00
Evan Hahn
4206f1c463 Remove type cast from ConversationModel#isMe 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
33ca9c48af SafetyNumberViewer: Disable for contacts with missing data 2020-10-12 18:10:08 -04:00
Josh Perez
b879c73b86 Storage service write improvements 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
d51a0b5ece GroupsV2: Better group invite behavior 2020-10-12 18:10:08 -04:00
Evan Hahn
b9ff4f07d3 Remove unnecessary non-null assertion from Message#send 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
ada70c4895 handleDataMessage: Don't drop messages for empty GroupV1 groups 2020-10-12 18:10:08 -04:00
Chris Svenningsen
cf9764c85a Consolidate checks for v2 Groups 2020-10-12 18:10:08 -04:00
Sidney Keese
c3ddedfde1 Reactions: skin tone support 2020-10-12 18:10:08 -04:00
Chris Svenningsen
6a7d45b6fc Pinned Chats 2020-10-12 18:10:08 -04:00
Evan Hahn
6e1a83ae4e Reject HTTP URLs when loading link previews 2020-10-12 18:10:08 -04:00
Evan Hahn
c57f7f1cdb Call requests: caller 2020-10-12 18:10:08 -04:00
Evan Hahn
2637d90df0 Minor: remove two anys from <CallScreen> 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
a581f6ea81 Calling: Picture-in-picture 2020-10-12 18:10:08 -04:00
Chris Svenningsen
7b15bddfc9 Bring back conversation.leaveGroup for GV1 scenarios 2020-10-12 18:10:08 -04:00
Josh Perez
04eb7bc995 Delete @mentions on DOE 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
Chris Svenningsen
63b2644cb4 Read Pinned Chats
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:08 -04:00
Evan Hahn
3ca547f3dd Only fuzzy linkify TLDs in place in 2010 2020-10-12 18:10:08 -04:00
Josh Perez
ea7ea5e8f6 Storybook fix 2020-10-12 18:10:08 -04:00
Evan Hahn
313faab774 Outbound link previews 2020-10-12 18:10:08 -04:00
Evan Hahn
bb3ab816dd Remove unnecessary non-null assertion 2020-10-12 18:10:08 -04:00
Evan Hahn
bf647b36d4 Fix a UUID variable holding an E164 2020-10-12 18:10:07 -04:00
Evan Hahn
333dc17c0a Proper call requests for callee 2020-10-12 18:10:07 -04:00
Evan Hahn
bdd71e4898 Support APNGs in Sticker Creator 2020-10-12 18:10:07 -04:00
Scott Nonnenberg
6b3d5c19b3 GroupV2: Show better strings for 'added but previously invited' cases 2020-10-12 18:10:07 -04:00
Scott Nonnenberg
b91107efbc Conversation.addSingleMessage: Use queue to maintain incoming order 2020-10-12 18:10:07 -04:00
Scott Nonnenberg
d39ede068a Two small bugfixes 2020-10-12 18:10:07 -04:00
Sidney Keese
dabab60f56 Remove TSLint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:07 -04:00
Sidney Keese
7b6d8f55d6 Migrate textsecure to eslint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
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
iomintz
6e7930f7a9
WebAPI.initialize: add missing validity check for proxyUrl (#4565) 2020-10-12 18:08:43 -04:00
Jim Gustafson
80fe9b97d0
Add more logging for high level calling operations 2020-09-25 17:05:25 -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
4e223def29
Improved support for images with extreme ratios 2020-09-23 12:07:27 -04: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
9f9ce91a9c Allow for very tall portrait images in lightbox 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
Chris Svenningsen
42db239001 ConversationController: Remove static keyword 2020-09-21 15:42:51 -04:00
Scott Nonnenberg
ec8ac1db58 Outgoing: Ensure that sends still succeed without CDS 2020-09-21 15:42:51 -04:00
Josh Perez
64ba7b63d3 Fix lint 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
Chris Svenningsen
5364de90a4 migrate components stickers to eslint 2020-09-21 15:42:51 -04:00
Sidney Keese
2ade4acd52 Migrate util, types, state, sticker-creator to ESLint 2020-09-21 15:42:51 -04:00
Chris Svenningsen
372aa44e49 Migrate conversations to ESLint 2020-09-21 15:42:51 -04:00
Evan Hahn
b4f0f3c685 Upgrade node-fetch to v2.6.1 2020-09-21 15:42:51 -04:00
Peter Thatcher
3c9c581854 RingRTC: Update to v2.6.0 2020-09-21 15:42:50 -04:00
Chris Svenningsen
b13dbcfa77 Migrate components to eslint 2020-09-21 15:42:50 -04:00
Evan Hahn
de66486e41 Add sound effect for notifications in Linux 2020-09-21 15:42:50 -04:00
Evan Hahn
6d2e994f9f Windows: mark downloads as "from the internet" 2020-09-21 15:42:50 -04:00
Chris Svenningsen
50378ed9bc Migrate base ts to eslint 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
Scott Nonnenberg
c2275b6aed Increase requiredProtocolVersion if quote includes @mention 2020-09-21 15:42:37 -04:00
Josh Perez
9657c38987 @mentions receive support 2020-09-21 15:42:37 -04:00
Evan Hahn
401cdfdb63 Speed up lint-deps 2020-09-21 15:42:36 -04:00
Scott Nonnenberg
7ee6584d8b Fix linter: global state left on the regex causes problems 2020-09-21 15:42:36 -04:00
Grace Shaw
8b7db94882
Defer to default keybindings for alt + enter 2020-09-14 17:27:16 -05: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
deb3dd5d4e
A couple of small bugfixes 2020-09-10 15:06:26 -05:00
Scott Nonnenberg
4c98b4a96f
Introduce new remote flag for storage service write behavior 2020-09-10 13:59:59 -04: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
91cf075697 ProfileChangeNotification: Ensure emoji are rendered properly 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
Ken Powers
8290881bd8 Support for Contact Discovery Service 2020-09-09 17:34:57 -07:00
Evan Hahn
f6dcf91dbf Fix inbound link preview images 2020-09-04 14:41:07 -05:00
Josh Perez
aeff7540c8 Calling type improvements 2020-09-04 14:41:07 -05:00
Evan Hahn
2bedd41e57
Upgrade node-sass to v4.14.1 2020-09-04 11:35:42 -04:00
Scott Nonnenberg
003015f628 Sort exceptions.json 2020-09-04 09:39:17 -04:00
Sidney Keese
48df8ab3b1 ESLint Migration 2020-09-04 09:39:17 -04: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
Josh Perez
bb7d9cec7e Message Requests: Swap Unblock/Delete buttons to match mobile apps 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
Josh Perez
c2aa8eb82b Calling: Prevent video flicker when switching audio devices 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
Scott Nonnenberg
035f704b07 Storybook: A little bit of organization 2020-08-28 15:42:25 -04:00
Scott Nonnenberg
f5a3fdb174 getOlderMessagesByConversation: Allow falsey messageId for resiliency 2020-08-28 15:42:25 -04:00
Josh Perez
036ce0a6d9 Calling device selection: Localize 'default' 2020-08-28 15:42:25 -04:00
Josh Perez
84e52c948b Mute conversations 2020-08-28 15:42:25 -04:00
Evan Hahn
de7a69dee9 Improve parsing of sgnl:// hrefs 2020-08-28 15:42:25 -04:00
Jim Gustafson
90bf0f4eea Update to RingRTC v2.5.1
Co-authored-by: Vladimir Skuratovich <vlad@signal.org>
2020-08-28 15:42:25 -04:00
Chris Svenningsen
e9cf5ba67c Remove react-styleguidist
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
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
Chris Svenningsen
bcd4f6407f Migrate MessageDetail to Storybook 2020-08-28 15:42:25 -04:00
Evan Hahn
f8fc23a7a3 Improve nested path detection across app 2020-08-28 15:42:25 -04:00
Chris Svenningsen
a7de10f628 Delete unused Quote.md 2020-08-28 15:42:25 -04:00
Chris Svenningsen
cb367bfdb4 Migrate Quote to Storybook 2020-08-28 15:42:25 -04:00
Chris Svenningsen
b9c5e7bf1d Migrate Message to Storybook 2020-08-28 15:42:25 -04:00
Chris Svenningsen
0051253125 Migrate MessageBody to Storybook 2020-08-28 15:42:25 -04:00
Josh Perez
8ab1013f70 Calling: Device Selection 2020-08-28 15:42:25 -04:00
Scott Nonnenberg
8b34294c97 Fix merge conflict in Mime.ts 2020-08-28 15:42:25 -04:00
Evan Hahn
aaed0db2e5 Verify sticker data in getDataFromLink 2020-08-28 15:42:25 -04:00
Evan Hahn
333feaa81e A few logging improvements 2020-08-28 15:42:24 -04:00
Sidney Keese
b3a54870b8 Migrate ScrollDownButton to Storybook
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-08-28 15:42:24 -04:00
Sidney Keese
15c7e9bf72 Migrate Timestamp to Storybook
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-08-28 15:42:24 -04:00
Sidney Keese
ac0ddf34ea Migrate StagedXXX components to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
1894ff0dc1 Migrate Timeline, TimelineLoadingRow to storybook 2020-08-28 15:42:24 -04:00
Josh Perez
25dabd56fd Outgoing call: Show safety number dialog if change detected 2020-08-28 15:42:24 -04:00
Sidney Keese
45b9bbc837 Migrate Typing/Unsupported/Verification components to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
58844f92ab Migrate ImageGrid to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
5aac427017 Migrate StickerButton, StickerManager, StickerPicker to storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
7098c8b393 Migrate Image to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
db7aa6223f Migrate ConversationListItem to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
de72a2f6c6 Migrate SafetyNumberNotification to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
7b75f8bb2e Migrate ReactionViewer to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
fba8f7bf1e Migrate TimerNotification to storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
252c101e06 Migrate AttachmentSection to Storybook 2020-08-28 15:42:24 -04:00
Evan Hahn
098bab2d5e Update to Lodash v4.17.20 2020-08-28 15:42:24 -04:00
Evan Hahn
b0b4c04c52 Minor: remove anys from createTaskWithTimeout 2020-08-28 15:42:24 -04:00
Chris Svenningsen
812b1c5b21 Migrate ResetSessionNotification to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
58db34c5e8 Migrate LastSeenIndicator to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
15e817c3e2 Migrate Linkify to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
d27a15a3eb Migrate MessageSearchResult to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
0e79f83a42 Migrate EmbeddedContact to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
84fee07a72 Migrate LightboxGallery to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
4b0c206128 Migrate Lightbox to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
3591fa005e Migrate Spinner to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
b8cc7e8107 Migrate MainHeader to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
db1f4d107f Migrate Emojify to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
88dce16b32 Migrate MediaGridItem to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
ac28f9f13c Migrate ExpireTimer to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
6494818f76 Migrate ContactDetail to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
702913b21a Migrate LeftPane to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
b112666239 Migrate MediaGallery to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
2de4a3177a Migrate MessageBodyHighlight to storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
f1d04f4751 Migrate Intl to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
6aeaabf505 Migrate countdown to storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
1ca3ec47f8 Migrate StartNewConversation to storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
309332d943 Migrate Emoji to storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
67d2dd07c3 Migrate AttachmentList to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
3416818e01 Migrate DocumentListItem to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
8975b3473c Migrate EmptyState to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
2cd187abaf Migrate AddNewLines to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
25ab4df9cc Migrate ShortcutGuide to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
d1d1436fde Migrate composition input to storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
cebe72ece7 Migrate AvatarPopup to Storybook 2020-08-28 15:42:24 -04:00
Chris Svenningsen
c8e8291da4 Migrate Caption Editor to Storybook 2020-08-28 15:42:24 -04:00
Sidney Keese
24dfaa4da4 Migrate composition area to storybook 2020-08-28 15:42:24 -04:00
Evan Hahn
f4c11b2e67 Minor: fix double import in textsecure.d.ts 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
Evan Hahn
aa43f322b3
Remove scrollbar from author title in quotes 2020-08-13 15:21:05 -07:00
Scott Nonnenberg
3615096497
Fix contact name rendering on call screen 2020-08-13 18:02:28 -04:00
Chris Svenningsen
d3d3c41f94
Convert <Avatar /> component to Storybook
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
Co-authored-by: Sidney Keese <me@sidke.com>
2020-08-13 13:53:45 -07:00
Scott Nonnenberg
eb44e2fc6a
Calling: Show call event summaries in left pane 2020-08-12 19:52:34 -04:00
Evan Hahn
a8090d8c66
A few CSS fixes for message bubbles 2020-08-12 15:47:20 -07:00
Scott Nonnenberg
c369363e10
Storage Service: Don't create groups from incoming v1 records 2020-08-11 21:07:55 -04:00
Scott Nonnenberg
67058e27bb
Safely generate cached conversation props on startup 2020-08-11 19:15:06 -04:00
Evan Hahn
b32445cd20
Upgrade node-fetch to latest version, v2.6.0 2020-08-11 14:23:37 -07:00
Evan Hahn
4df52c5349
Add 9 dangerous extensions and ignore trailing dot 2020-08-10 13:13:06 -07:00
Scott Nonnenberg
0fee1f9935
WebAPI.getProfileURL: Use profileKeyVersion by itself if we have it 2020-08-10 15:39: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
d75eee015f Show notifications when a user's profile name changes 2020-07-30 13:27:44 -07:00
Jim Gustafson
2f015863ca Upgrade to RingRTC v2.4.0 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
7ef5dc6401 AvatarPopup: Show profile name if we have it 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
Jim Gustafson
632cd0e87e Drop incoming calls if conversation is not 'accepted' 2020-07-30 13:18:36 -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
Peter Thatcher
c6d5607b8c Fix incoming call ringtone by awaiting the playout 2020-07-30 13:10:05 -07:00
Josh Perez
126b828f46 Storage Service: Update local manifest version when it changes 2020-07-30 13:10:05 -07:00
Josh Perez
8502d23576 Social Graph: read-only state sync with primary device 2020-07-30 13:10:05 -07:00
Jim Gustafson
12745a2c79 Update to RingRTC v2.3.1 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
Jim Gustafson
e87a0103cc Use message age to expire old incoming calls 2020-07-30 13:10:05 -07:00
Jim Gustafson
870a0d2b65 Support RingRTC message sending queue 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
5119193093 Prevent multiple concurrent update installers
* Exit early if we are already installing on Windows

* Setup a single handler for updating

* Guard against undefined updateFilePath
2020-07-27 14:39:19 -07:00
Scott Nonnenberg
36a0d1efcf Increase maximum frame size for incoming websocket messages 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
fcf5ebe9da searchConversations: Search on e164 field, not id 2020-07-13 16:06:24 -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
2e01c9fb87 Lint fixes 2020-07-01 11:05:41 -07:00
Jan Janik
1503053496
Close/cancel draft "reply to" on Escape (#4387) 2020-06-30 18:59:38 -07:00
Jan Janik
fd6358ac9d
GroupNotification: Fix 'joined group' pluralization (#4380) 2020-06-25 15:36:24 -07:00
Scott Nonnenberg
6aedb30905 getPropsForSearchResult: Harden to missing conversation 2020-06-23 17:31:21 -07:00
Scott Nonnenberg
f04812eb5d rotateSignedPreKey: Protect against too-frequent rotation 2020-06-23 17:30:45 -07:00
Scott Nonnenberg
205ee6c6ac
GroupNotification: Use singular string when we have just one contact 2020-06-11 13:32:21 -04:00
Nat Talbot
7b5fe0cdbf
Harmonized filenames with Android version (#4324)
The Android app saves files with the filename format
'signal-YYYY-MM-DD-hhmmss.extension' but the desktop version
saves them with format 'signal-attachment-YYYY-MM-DD-hhmmss.extension'.
The attachment changes the suggested filename in Attachment.ts
to have the prefix 'signal' rather than 'signal-attachment'.
Tests were changed as necessary.

Resolves #4321
2020-06-10 14:48:41 -07:00
Nat Talbot
66aa6f142a
Avatar color on ReactionViewer is now Contact Color, not Grey (#4325)
Fixes #4167. A user's avatar, if they do not have a profile picure,
now shows up with their assigned color rather than as grey in the
reactionviewer.

Changed the ReactionViewer from field to make the
color a ColorType rather than a string, and passed that to the color prop
of the Avatar rendered in the viewer.
2020-06-10 14:48:26 -07:00
Scott Nonnenberg
56470d8374 View All Media -> View Recent Media 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
Scott Nonnenberg
acf95f4745 resetSession: Take both UUID and e164, use each correctly 2020-06-10 14:39:45 -07:00
Ken Powers
480e1808ba Enable React with any Emoji 2020-06-10 14:39:45 -07:00
Josh Perez
4678f076eb
Custom zip script for macOS update package 2020-05-13 11:44:24 -07:00
Ken Powers
5c6a474ec9
Disable skin tones for reaction emoji 2020-05-11 16:14:02 -07:00
Ken Powers
d6d2d242d4
Always use sender certificates including UUID 2020-05-07 13:51:37 -07:00
Ken Powers
7a55c68c6c
Remove emojification on message send 2020-05-07 12:58:28 -07:00
Ken Powers
0865a5481c Pre-alpha: React with any emoji, behind flag 2020-05-05 14:18:46 -07:00
Scott Nonnenberg
d13c3d3350 Link flow: Show 'you must upgrade' on 409 server response 2020-05-05 14:18:46 -07:00
Scott Nonnenberg
97b657da6d MessageReceiver: Drop sync messages with GroupContextV2 2020-05-05 14:18:46 -07:00
Ken Powers
7bb7c0d1e1 Debug Log: Copy URL instead of open in browser 2020-05-05 14:18:46 -07:00
Scott Nonnenberg
721401bbeb Introduce snyk, update dependencies 2020-05-05 14:18:46 -07:00
Ken Powers
ba5e2ff6e5 Receive support for DOE messages 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
464c814a95 Remove all IndexedDB migration code 2020-04-29 17:42:41 -07:00
Josh Perez
752cd75c54 Make RelinkDialog supersede the NetworkDialog 2020-04-29 17:42:41 -07:00
Ken Powers
1b5c36a9a8 Add more safeguards to isTrustedIdentity 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
896dfcb43f Fix sticker creator after CDN and typescript changes 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
5cfcedb549 Update dependencies 2020-04-29 17:42:41 -07:00
Ken Powers
980862768b Linkify URLs containing @ 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
f8f0f805b4 Ensure that search box is resilient to invalid country codes 2020-04-29 17:42:41 -07:00
Josh Perez
d5925ac9d5 LeftPane: Measure content above list to calculate list size 2020-04-29 17:42:41 -07:00
Scott Nonnenberg
ebb3864f58 New keyboard shortcuts: Ctrl+1..9, Ctrl+Tab/Ctrl+Shift+Tab
* New keyboard shortcuts: Ctrl+1..9, Ctrl+Tab/Ctrl+Shift+Tab

* Add new shortcuts to the shortcut guide
2020-04-29 17:42:41 -07:00
Ehren Kret
a0e9791623 Add support for receiving attachments from CDN 2 2020-04-29 17:42:41 -07:00
Josh Perez
4dc7631851
Decouple RelinkDialog from NetworkStatusDialog 2020-04-16 12:20:52 -07:00
Ken Powers
0970c73310
Do not recognize aiff files as audio 2020-04-16 12:19:37 -07:00
Scott Nonnenberg
ba8aad3755 Reset Session: Include timestamp in DataMessage proto 2020-04-15 17:36:31 -07:00
Scott Nonnenberg
c1dfe3e5b4
Adds support for versioned profiles
* Add zkgroup library

* tsconfig.json: Prettier wants to mess it up. :0(

* Initial take on versioned profile fetches

* Fix up the logging in getProfiles() - warn instead of error

* Introduce new VERSIONED_PROFILE_FETCH flag

* Update zkgroup dependency to v0.5.0

* Fix lint-deps - new zkgroup library brought in new debug dep

* ts/zkgroup: Introduce some commonly-used helper functions

* Update to latest serverPublicParams

* Don't derive profileKeyVersion unless flag is set
2020-04-15 16:12:28 -07:00
Scott Nonnenberg
97a6e01d24 MessageReceiver: Drop messages with GroupContextV2 2020-04-15 14:45:11 -07:00
Scott Nonnenberg
b7d56def82 Moves libtextsecure to Typescript
* Starting to work through lint errors

* libsignal-protocol: Update changes for primary repo compatibility

* Step 1: task_with_timeout rename

* Step 2: Apply the changes to TaskWithTimeout.ts

* Step 1: All to-be-converted libtextsecure/*.js files moved

* Step 2: No Typescript errors!

* Get libtextsecure tests passing again

* TSLint errors down to 1

* Compilation succeeds, no lint errors or test failures

* WebSocketResources - update import for case-sensitive filesystems

* Fixes for lint-deps

* Remove unnecessary @ts-ignore

* Fix inability to message your own contact after link

* Add log message for the end of migration 20

* lint fix
2020-04-15 14:45:11 -07:00
Ken Powers
2f2d027161 Port StickerPreviewModal to storybook 2020-04-15 14:45:11 -07:00
Scott Nonnenberg
6b094e1514 Refactor: Move data-access code to Typescript w/ shared interface 2020-04-15 14:45:11 -07:00
Scott Nonnenberg
9ab54b9b83 Move web_api.js and js/modules/crypto.js to TypeScript 2020-04-15 14:44:51 -07:00
Scott Nonnenberg
71436d18e2 Include sender in group update notifications 2020-04-15 14:44:46 -07:00
Josh Perez
d88c21e5b6
Support ultramarine convo colors from Android linked devices 2020-04-15 14:39:48 -07:00
Josh Perez
a12ac2aa37
Upgrade small logo icons 2020-04-15 10:25:20 -07:00
Scott Nonnenberg
fb11ac50d2
Explicitly stop process when notarization returns error 2020-04-08 15:01:53 -04:00
Josh Perez
e716652b94
Adjust LeftPane height when NetworkDialog pops out of view 2020-04-08 12:00:14 -07:00
Josh Perez
9a3ed5ac8d Ensure UpdateDialog closes when restart signal is tapped 2020-04-06 17:12:16 -07:00
Ken Powers
750e50812c Introduce dialog for long database migrations 2020-03-25 16:47:42 -07:00
Scott Nonnenberg
30e5051239 Eliminate clipped error icon for wide messages with errors 2020-03-25 16:47:42 -07:00
Ken Powers
c780c12df7
Use multiple spellCheckDirty messages 2020-03-25 08:16:10 -07:00
Ken Powers
a20c7c3357 Check targetTimestamp when looking for out-of-order reactions 2020-03-24 17:03:22 -07:00
Ken Powers
cbc670e855 Setup: Only display one QR code at a time 2020-03-24 17:03:22 -07:00
Ken Powers
17f212ffcf CompositionInput: Fix high CPU usage 2020-03-24 17:03:22 -07:00
Ken Powers
a1270867ff Debug Logs: gzip before upload 2020-03-24 17:03:22 -07:00
Ken Powers
4a8f5db0a4 Use Electron Spellchecker 2020-03-24 17:03:22 -07:00
Ken Powers
37ad95af27 Passive UUID fixes 2020-03-24 17:03:22 -07:00
Scott Nonnenberg
6bd5587d50 Retry websocket connect if error returned is 502
* Retry websocket connect if error returned is 502

* Introduce connect button on 'Disconnected' left-pane dialog

* NetworkStatus: If user clicks connect, show connecting for 5s
2020-03-24 17:03:22 -07:00
Josh Perez
4830213a12 Sort by inbox position to match phone after link 2020-03-24 17:02:01 -07:00
Ken Powers
31f219690a Show "you" instead of "me" in the group members list 2020-03-24 17:02:01 -07:00
Ken Powers
a90246cbe5 Passive UUID support
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-03-24 16:59:35 -07:00
Scott Nonnenberg
a840e2e5b1 Remove legacy import flow 2020-03-04 17:12:56 -08:00
Ken Powers
faa2b13026
Reactions: Go directly to all tab, show 'You' for current user 2020-03-03 14:33:54 -08:00
Scott Nonnenberg
6e4dc2a117 Update electron, electron-builder and add more preload logging
* electron to 8.0.2, electron-builder to 22.3.5

* preload.js: add last-ditch logging on startup error
2020-03-02 17:13:45 -08:00
Ken Powers
4d4c522c7f
Emojify group title updates 2020-02-28 11:11:15 -08:00
blckfalcon
e3e25e1144
Fix focus on CompositionInput (#3973) 2020-02-26 18:09:19 -08:00
Scott Nonnenberg
1726e1b77a
Fix windows fast-glob usage in lint-deps test task
* Introduce normalize-path wherever we use fastGlob

* CI: Update yarn version; install yarn via npm on windows

* Add more logging to Grunt file spectron usage

* Lock core.js to what it was resolving to before: 2.4.1

* test/index.html: Remove nonexistent test file

* test/index.html: Remove missing registration.js

* preload.js: Introduce client-side logging for load failures

* Gruntfile: Introduce better debuggability if prod test fails

* Reintroduce glob for searches inside asar
2020-02-26 17:53:39 -08:00
Josh Perez
c347a2761a
Ensure fallback 'update available' dialog cannot stack 2020-02-21 15:41:05 -08:00
Ken Powers
8d9ccd3c0a
Ensure proper file permissions on startup
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-02-21 15:40:04 -08:00
Josh Perez
6b56dd4ce0
Move registration from redux selectors to util 2020-02-21 15:08:21 -08:00
Josh Perez
018dc34e47 Fix for fallback update dialog 2020-02-20 16:24:40 -08:00
Scott Nonnenberg
f379c72aba Lint fixes 2020-02-20 16:24:40 -08:00
Josh Perez
2138395bcb Improve UI around Voice Message limits 2020-02-20 16:24:40 -08:00
Ken Powers
2f9bebe567 Upgrade to Electron 8
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-02-19 15:22:37 -08:00
Josh Perez
32c0a8fbf6
Lint fixes 2020-02-19 09:55:35 -08:00
Josh Perez
be819f9fdd
Fix : blocking emoji insertion from emoji picker 2020-02-18 11:58:23 -05:00
Josh Perez
afddc852cc
Add interpolation for fallback dialog messages 2020-02-13 10:14:08 -08:00
Josh Perez
18fd44f504
Move all status/alert dialogs into the Left Pane 2020-02-12 13:30:58 -08:00
Ken Powers
101070bf42
Prevent replies/reactions on messages with errors 2020-02-07 15:13:46 -08:00
Ken Powers
8d4125f0a8
Lint fixes 2020-02-07 12:07:43 -08:00
Scott Nonnenberg
3938eb9801
A set of fixes and upgrades
* writeToDownloads: Add missing await
* Remove window.isFocused() - not used anywhere!
* Update typescript, p-queue, make necessary changes to fix build
* Slow down sender certificate retries with no existing cert
* Slow down signed prekey refreshes when unlinked - 5s -> 5m
* Update protobufjs to 4.1.2
2020-02-07 14:37:04 -05:00
Ken Powers
38c7fa3da6
Storybook: Basic messages and messages with reactions 2020-02-07 11:07:22 -08:00
Scott Nonnenberg
43b5a9b5a4 Fix lint 2020-02-06 12:04:17 -08:00
Ken Powers
c9292544aa
Show clicked-on reaction in ReactionViewer 2020-02-06 11:57:46 -08:00
Scott Nonnenberg
c147e6ce25
Restore contact/conversation differentiation in search results 2020-02-06 14:52:05 -05:00
Ken Powers
0fc178d887
StoryBook: Fully support themes in pop-up components 2020-02-06 11:28:01 -08:00
Ken Powers
6a9d8b86d8
Add "all" tab to ReactionViewer 2020-02-05 15:14:25 -08:00
Ken Powers
c6a23ff4f6
Remove "you" qualifier from ReactionViewer and ContactName 2020-02-05 14:28:54 -08:00
Scott Nonnenberg
22a53153f8 ContactName: Fix case in import 2020-02-03 12:53:59 -08:00
Ken Powers
539c02cb92 Remove reaction send flag 2020-02-03 12:05:21 -08:00
Ken Powers
01d4aa0772
Update to new message bubble reactions design 2020-02-03 12:02:49 -08:00
Scott Nonnenberg
682ac656c6
Handle duplicate receivedAt timestamps for MESSAGE_RESET event 2020-02-03 14:32:03 -05:00
Scott Nonnenberg
4f16cf595c
Ensure that oldest/newest are correct given duplicate timestamps 2020-01-31 07:39:30 -08:00
Ken Powers
7461250caf
Indicate when reaction is from the current user 2020-01-29 13:58:50 -08:00
Ken Powers
04d0a3c523 ReactionViewer: Handle an entirely removed category 2020-01-24 14:54:57 -08:00
Ken Powers
153503efc5 Send Reactions 2020-01-23 15:57:37 -08:00
Herohtar
3b050116fc Use later button as cancel behavior (#3896) 2020-01-23 14:52:47 -08:00
josh-signal
de7bc8b1b1 Upgrade emoji support to Unicode v12 2020-01-23 16:17:06 -05:00
Ken Powers
1b975bec65 Stop propagation in ReactionViewer 2020-01-23 11:59:29 -08:00
Scott Nonnenberg
bfa76b05d2 No propagate, fix 'attachment save' cancel
* Quote: Ensure that clicks don't propagate to parent
* Attachment Save: Check for null; returned if user cancels out
2020-01-22 14:34:36 -05:00
Ken Powers
6cc0f2abce Render incoming Reactions 2020-01-17 14:23:19 -08:00
Scott Nonnenberg
a271fe0eee Add version number to user-agent header on outgoing requests 2020-01-16 21:36:14 -08:00
Scott Nonnenberg
4af7a9ae2c ducks/conversations: Ensure metrics agree with in-memory messages
* ducks/conversations: Ensure metrics agree with in-memory messages
* Clean up logic cleaning up metrics
2020-01-16 11:45:06 -05:00
Scott Nonnenberg
55eff02872 Reintroduce file chooser dialog for every attachment save 2020-01-15 17:23:02 -05:00
Ken Powers
1c906e76f9 Handle non-square stickers via 'contain' 2020-01-15 11:19:56 -08:00
Scott Nonnenberg
11266cb775 Handle both given and family name in decrypted profile name
* Decrypt given and family names from profile name string
* Handle both given and family name from decrypted profile name
* Ensure we properly handle profiles with no family name
2020-01-13 17:28:28 -05:00
Scott Nonnenberg
4f50c0b093 Use 1x icon in View-once bubbles, explanatory expired toasts 2020-01-10 11:29:51 -05:00
Scott Nonnenberg
1bf9ca7233 Save attachments with macOS quarantine attribute
* Attachments: Always save file to downloads directory, show toast
* Add new build:dev command for casual builds
2020-01-09 14:57:43 -05:00
Scott Nonnenberg
744d1b5295 Message bubble: Larger stickers; handle non-square aspect ratios
* Sticker picker: Handle non-square stickers
* Message bubble: Larger stickers; handle non-square aspect ratios
2020-01-09 14:27:49 -05:00
Scott Nonnenberg
0f9bc57ccb Only show pack installed tooltip for non-blessed, local installs 2020-01-09 09:35:33 -05:00
Ken Powers
0d3b390129 Upgrade Prettier 2020-01-08 09:44:54 -08:00
Ken Powers
681222c0c0 Fix styleguide: upgrade deps, lock core-js to version babel needs 2020-01-06 17:49:00 -08:00
Scott Nonnenberg
e5d2952c90 Lint fixes after recent merges 2020-01-06 17:47:40 -08:00
sha-265
5ca53baeae Add RTL support in conversation list message text (#3539)
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-01-06 16:56:50 -08:00
Scott Nonnenberg
5d1f8cada9 Stickers: Disable 'installed pack' tooltip 2019-12-19 15:51:50 -08:00
Scott Nonnenberg
2bf9cf6716 Auto-dismiss 'pack installed' tooltip after 10 seconds (not 1m) 2019-12-18 14:28:34 -05:00
Scott Nonnenberg
1c5ea63410 Shortcuts screen: Show sticker picker cmd when stickers installed 2019-12-18 14:13:56 -05:00
Ken Powers
11d47a8eb9 Sticker Creator 2019-12-17 12:28:46 -08:00
Scott Nonnenberg
2df1ba6e61 Introduce two built-in sticker packs: Zozo and Bandit 2019-12-17 12:28:46 -08:00
Scott Nonnenberg
2c7baad68d macOS shortcuts: Only listen for command key, not control key 2019-12-17 13:52:36 -05:00
Ken Powers
d86e8ef7ec Add sticker introduction tooltip image 2019-12-17 10:30:03 -08:00
Scott Nonnenberg
991d7f9336 Flow installedPack property down from CompositionArea 2019-12-16 15:00:24 -08:00
Ken Powers
3b604bb13d Composition Input: If string is : alone, do not recurse 2019-12-16 15:00:24 -08:00
Scott Nonnenberg
5f58be1a29 Set focus properly in confirmation dialogs when in mouse mode 2019-12-16 15:00:24 -08:00
Scott Nonnenberg
3aff3ed181 MainHeader: Ensure unmount doesn't double-remove on popperRoot 2019-12-04 17:30:36 -05:00
Scott Nonnenberg
e9f08c3da9 Bugfixes for v1.29
* If focus was set to document.body during archive, focus left pane
* Shortcut Guide: Add space between text and shortcut highlight
* Ensure that draft attachment can be closed with click on X button
* Move to keyDown event for user idle checking
* Additional resiliency around avatars; check for them on on-disk
* Increase timeouts to preserve websocket connection
* On startup, be resilient to malformed JSON in log files
* Don't crash if shell.openExternal returns an error
* Whenever we request a contact/group sync, also request block list
* Avatar popup: Ensure styling is mouse- and keyboard-appropriate
* MainHeader: Create popperRoot on demand, not on mount
* CompositionInput: Disable default Ctrl-/ shortcut
* Update libphonenumber
2019-12-03 15:02:50 -05:00
jjkaufman
ee9e86ab7a Show message sent time (not received time) in search results (#3769) 2019-12-02 13:40:38 -08:00
Scott Nonnenberg
2a0a73cfc1 Keyboard/mouse mode and keyboard support bugfixes 2019-11-21 14:16:06 -05:00
Scott Nonnenberg
ed55006f20 Update to Electron 6.1.4 2019-11-21 10:17:55 -08:00
Scott Nonnenberg
0876bf7ae7 Visual bug fixes for v1.29 2019-11-21 10:17:55 -08:00
Scott Nonnenberg
e23d7a75b0 Open conversation menu: Ctrl-Shift-I -> Ctrl-Shift-L 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
0512d08d61 Disable emoji and sticker pickers if conversation has open panels 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
01bf53776b CompositionInput: Prevent ctrl+shift+m from adding a newline 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
5750412fda Hover/focus styles for embedded contacts, default action 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
79b9408f1f Message: Only focus if focus is not inside container already 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
6b60ca6bd7 Handle Ctrl+/ in the application instead of via Electron
To prevent 'select all' on Linux.
2019-11-15 14:34:24 -08:00
Scott Nonnenberg
3c6e23cc5e Shortcuts: Check for both capital and lowercase characters 2019-11-14 12:37:28 -08:00
Scott Nonnenberg
20a892247f Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
Scott Nonnenberg
8590a047c7 Change domain for sharing sticker packs 2019-11-13 19:12:36 -05:00
Ken Powers
430b6377b0 Trim text coming out of CompositionInput 2019-11-13 15:35:44 -08:00
Ken Powers
7064691696 Revert custom caret navigation logic 2019-11-12 15:44:41 -08:00