Signal-Desktop/js/views
Lilia ae190fed44
Profiles (#1453)
* Add AES-GCM encryption for profiles

With tests.

* Add profileKey to DataMessage protobuf

// FREEBIE

* Decrypt and save profile names

// FREEBIE

* Save incoming profile keys

* Move pad/unpad to crypto module

// FREEBIE

* Support fetching avatars from the cdn

// FREEBIE

* Translate failed authentication errors

When AES-GCM authentication fails, webcrypto returns a very generic error. The
same error is thrown for invalid length inputs, but our earlier checks in
decryptProfile should rule out those failure modes and leave us safe to assume
that we either had bad ciphertext or the wrong key.

// FREEBIE

* Handle profile avatars (wip) and log decrypt errors

// FREEBIE

* Display profile avatars

Synced contact avatars will still override profile avatars.

* Display profile names in convo list

Only if we don't have a synced contact name.

// FREEBIE

* Make cdn url an environment config

Use different ones for staging and production

// FREEBIE

* Display profile name in conversation header

* Display profile name in group messages

* Update conversation header if profile avatar changes

// FREEBIE

* Style profile names small with ~

* Save profileKeys from contact sync messages

// FREEBIE

* Save profile keys from provisioning messages

For standalone accounts, generate a random profile key.

// FREEBIE

* Special case for one-time sync of our profile key

Android will use a contact sync message to sync a profile key from Android
clients who have just upgraded and generated their profile key. Normally we
should receive this data in a provisioning message.

// FREEBIE

* Infer profile sharing from synced data messages

* Populate profile keys on outgoing messages

Requires that `profileSharing` be set on the conversation.

// FREEBIE

* Support for the profile key update flag

When receiving a message with this flag, don't init a message record, just
process the profile key and move on.

// FREEBIE

* Display profile names in group member list

* Refresh contact's profile on profile key changes

// FREEBIE

* Catch errors on profile save

// FREEBIE

* Save our own synced contact info

Don't return early if we get a contact sync for our own number

// FREEBIE
2017-09-14 17:04:00 -07:00
..
app_view.js AppView: Store initialLoadComplete value for late openInbox 2017-09-14 17:03:17 -07:00
attachment_preview_view.js Normalize views' template fetching pattern 2015-12-09 18:58:52 -08:00
attachment_view.js Fix saving attachments 2017-09-14 16:53:39 -07:00
banner_view.js Confirmaton on send, banner when 'unverified' 2017-08-04 12:03:25 -07:00
confirmation_dialog_view.js ConfirmationDialogView: Make showCancel an explicit option 2017-08-04 12:03:25 -07:00
contact_list_view.js Profiles (#1453) 2017-09-14 17:04:00 -07:00
conversation_list_item_view.js Profiles (#1453) 2017-09-14 17:04:00 -07:00
conversation_list_view.js Remove log message 2016-10-05 19:09:21 +09:00
conversation_search_view.js Fetch conversations once, clean up ConversationController API (#1420) 2017-09-01 09:10:41 -07:00
conversation_view.js Profiles (#1453) 2017-09-14 17:04:00 -07:00
debug_log_view.js Add link to github on debug log 2016-04-09 20:55:21 -07:00
error_view.js Remove all concept of 'key conflict' from the app 2017-08-04 12:03:25 -07:00
file_input_view.js Fix relative paths 2017-09-14 16:53:46 -07:00
group_member_list_view.js Show call to action on group member list when verifying 2017-08-04 12:03:25 -07:00
group_update_view.js Remove erroneous license file and headers 2015-09-07 14:58:42 -07:00
hint_view.js Add hint for users with no groups or contacts 2015-11-27 22:26:56 -08:00
identicon_svg_view.js Fix svg icon colors 2016-08-30 18:31:02 -07:00
identity_key_send_error_view.js Improve experience when discovering identity key error on send 2017-08-04 12:03:25 -07:00
import_view.js Import: Wait until db writes resolve before saying we're done (#1401) 2017-09-14 17:03:17 -07:00
inbox_view.js Remove migration-related functionality, leaving export stuff 2017-09-14 17:03:14 -07:00
install_choice_view.js Import: choice on first startup, workflow, ported to Node.js fs API 2017-09-14 17:02:43 -07:00
install_view.js Fix exception in install view 2017-09-14 17:03:17 -07:00
key_verification_view.js Key verification error popup: Remove cancel, empty resolve() 2017-08-07 16:14:49 -07:00
last_seen_indicator_view.js Preserve lastSeenIndicator location when not focused 2017-06-01 16:09:27 -07:00
list_view.js Object.assign -> _.extend(), for to make Chrome 45 and below work 2017-08-04 12:03:25 -07:00
message_detail_view.js Restore 'cancel' button on delete message confirmation dialog 2017-08-07 16:14:49 -07:00
message_list_view.js Scroll to bottom when adding a new message (#1450) 2017-09-14 17:03:18 -07:00
message_view.js Profiles (#1453) 2017-09-14 17:04:00 -07:00
network_status_view.js More refactoring to reduce global event dependencies 2017-09-14 16:53:41 -07:00
new_group_update_view.js Remove comments after NewGroupUpdateView investigation 2017-08-04 12:03:25 -07:00
phone-input-view.js Get standalone registration working in development 2017-09-14 16:53:39 -07:00
recipients_input_view.js Simplify event arguments 2015-09-21 10:32:35 -07:00
recorder_view.js Use error.stack instead of error for console log 2017-06-20 16:57:11 -07:00
scroll_down_button_view.js Scroll down button: when scrolled up, or new non-visible message 2017-05-23 11:08:23 -07:00
settings_view.js Remove 'safety number approval' option from settings dialog 2017-08-04 12:03:25 -07:00
standalone_registration_view.js Import: choice on first startup, workflow, ported to Node.js fs API 2017-09-14 17:02:43 -07:00
timestamp_view.js Fixed bubble timestamp update timer breakdown 2016-10-28 14:26:51 +09:00
toast_view.js Generalize toast view template 2016-09-07 13:04:45 -07:00
whisper_view.js Full export, migration banner, and full migration workflow - behind flag (#1342) 2017-08-28 13:06:10 -07:00