Commit Graph

2889 Commits (235dbb2176a63d1a36959ecac53c4978c8046ffc)

Author SHA1 Message Date
Mikunj 5626cfe47d Added FriendRequest message 7 years ago
Scott Nonnenberg 2d48daa7b6 Refine Sealed Sender behaviors 7 years ago
Mikunj 2fabd93fd6 Fix message sending 7 years ago
Mikunj 98185fa6fd Added sql migration. 7 years ago
Mikunj 77602e3dbb Moved contactPreKey and contactSignedPreKey to sql. 7 years ago
Mikunj 525007f944 Added fetching preKey by recipient. 7 years ago
Mikunj 1a4adf2281 Merge branch 'development' into merge/signal 7 years ago
Mikunj f589fdac5c Merge signal changes into branch. 7 years ago
Mikunj 683d4f4106 Merge branch 'development' into feature/public-key-validation 7 years ago
Mikunj 61d15fdd57 Changed == to === 7 years ago
Mikunj 9ea44a5cd2 fix incorrect error return. 7 years ago
Mikunj 4e6df71999 Fix up tests. 7 years ago
Beaudan 1ccf3b6b95 Added function to loki_message_api to do a single request call to storage server. Currently just gets called once when the application starts 7 years ago
Mikunj 9d342e8951 Show a message if user types in an invalid public key in search. 7 years ago
Mikunj 28f6992085 Replaced var with const. 7 years ago
Mikunj 8d9fbdb3df Fix create conversation appearing even if you already have a conversation with the contact. 7 years ago
Beaudan 519d372e63 Tiny url update to work with the storage server 7 years ago
Scott Nonnenberg fb670ad6b9 Remove IndexedDB files after removing IndexedDB database 7 years ago
Scott Nonnenberg 486932048c Add logging to help in debugging sealedSender state 7 years ago
Scott Nonnenberg 0297279084 Eliminate some conversation fields which are no longer used 7 years ago
Scott Nonnenberg e08c5e3307 Add current message counter to the log to help with debugging 7 years ago
Scott Nonnenberg 9f647f00d8 A couple fixes for the data layer, legacy message upgrade/migrate 7 years ago
Scott Nonnenberg 68e3cade17 Don't display 'read' icon if read-recipts-setting is disabled 7 years ago
Scott Nonnenberg e2e0e4c96b Refine sealed sender logic 7 years ago
Scott Nonnenberg 41dd78c073 On fetch of profileAvatar, set it to convo's profileAvatar field 7 years ago
Scott Nonnenberg 6628b73911 Only show database log entries if task takes longer than 10ms 7 years ago
Scott Nonnenberg 1755e0adfd Move all remaining stores to SQLCipher 7 years ago
sachaaaaa 4b9fcb98d4 Linting and other housekeeping stuff 7 years ago
Scott Nonnenberg 7aa9031c7f Import: Be resilient to deletions from importObject 7 years ago
sachaaaaa d91f04930c
Merge pull request #21 from loki-project/bugfix/pow-nonce-calc
Bugfix/pow nonce calc
7 years ago
Beaudan 4598fd222a Cleaned up newNonce stuff. Now doing target calculation with BigIntegers 7 years ago
sachaaaaa 7b1fbe362e Allow choosing language for mnemonic seed 7 years ago
sachaaaaa bbabeb34b8
Merge pull request #18 from sachaaaaa/mnemonic
Allow registering using a mnemonic word list
7 years ago
Scott Nonnenberg a7d78c0e9b Sealed Sender support
https://signal.org/blog/sealed-sender/
7 years ago
Beaudan d4180b3ca6 Some syntax tidying up, plus fixed bug with message data not being a uint8array after IPC message 7 years ago
Scott Nonnenberg 739bd4dbda Request contact sync only on the first connect after upgrade 7 years ago
Scott Nonnenberg 2060118e85 Remove messages/conversations/unprocessed IndexedDB object stores 7 years ago
Scott Nonnenberg e39c999932 Import: Properly handle import with all empty non-convo stores 7 years ago
sachaaaaa e1ffe582c3 Prompt user when an incoming friend request is received 7 years ago
sachaaaaa 143b1e883d
Merge pull request #17 from sachaaaaa/lock_input_friend_request
Lock input after friend request is sent
7 years ago
Scott Nonnenberg 1e562c8293 Properly handle avatar changes in group update messages 7 years ago
sachaaaaa 1ce29d77c3 Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 7 years ago
sachaaaaa 1cf8710127
Merge pull request #16 from sachaaaaa/friend_response
Handle prekeys in incoming friend request
7 years ago
sachaaaaa a418a9d23b allow registering using a mnemonic word list (seed used as privKey for now) 7 years ago
sachaaaaa 9370e2b74a Merge branch 'master' of https://github.com/signalapp/Signal-Desktop into development
* 'master' of https://github.com/signalapp/Signal-Desktop: (38 commits)
  v1.17.0
  v1.17.0-beta.4
  Ensure that blue group avatars are preserved in dark theme
  Android theme: Incoming quotes take color from containing message
  Conversations have blue avatar backgrounds if no image provided
  Fix lint errors
  Add ca language
  inboxView: Ensure Conversation exists for our own number
  Ensure that file is not attached if we've filtered it
  v1.17.0-beta.3
  Localization updates
  v1.16.3
  Lint fixes
  Lint fixes
  Better handle large numbers of messages in cache on startup
  Keep object stores after conversations migrate to SQLCipher
  Longer timeout for orphaned file cleanup
  Tests and increase consistency for isFileDangerous calls
  Longer timeout for orphaned file cleanup
  v1.17.0-beta.2
  ...

# Conflicts:
#	background.html
#	package.json
7 years ago
Scott Nonnenberg f21f83a163 Conversations have blue avatar backgrounds if no image provided 7 years ago
Beaudan dfa8b59bc3 Using let and const properly, updated number to uint function, general cleaning 7 years ago
sachaaaaa 025d13a72b Add keyId index for contact prekeys and allow retrieving prekeys for a specific pubkey and keyid 7 years ago
Beaudan ee57c698d7 Client side proof of work attached to messages
Skeleton calcPoW function that prepares payload for hashingFunction to increment Uint8Array nonce

Util function for converting a number to its Uint8Array representation

Actually perform calculate PoW nonce for every message

Adding bytebuffer as dependency and updated package-lock

Move PoW to new file and execute it in child process

TODO: Move send message logic to callback after child process has finished calculating the PoW

Refactored nonce calculation to function to be awaited

More readable timestamp grab plus converted to seconds

Nonce is now returned as a base64 string and included in request header

Also converted timestamp and ttl to string when including them in the header

Added a couple comments and tidied up some nonce logic
7 years ago
sachaaaaa 5602f4bfff Change placeholder in discussion 7 years ago
sachaaaaa d4d0d05adf Lock text input while waiting for friend request reply 7 years ago
sachaaaaa 886f47b8e7
Prekeys sending: first pass (#12)
* add 'recipient' attribute in prekey database to allow binding a prekey to a recipient pub key

* Attach a PreKeyBundleMessage to the ContentMessage in fallback encryption mode

* Skip generating 100 prekeys upon registration

* Store the signed key signature in database
7 years ago
Scott Nonnenberg b9cc17b81a inboxView: Ensure Conversation exists for our own number 7 years ago
Scott Nonnenberg a24d9f9979 Ensure that file is not attached if we've filtered it 7 years ago
sachaaaaa d5ef0cfb03 Revert changes and rename keysPending to keyExchangeCompleted 7 years ago
Scott Nonnenberg 7532f397ea Keep object stores after conversations migrate to SQLCipher 7 years ago
Scott Nonnenberg 8edfbdcee5 Longer timeout for orphaned file cleanup 7 years ago
sachaaaaa ecd300d68d Change keysPending flag to keyExchangeStatus in conversation model 7 years ago
Scott Nonnenberg 7d9711ba65 Restore iOS-specific theme; colors on left in android theme 7 years ago
Scott Nonnenberg ca61c9cb85 Warnings for dangerous files 7 years ago
Scott Nonnenberg 3b8f934741 On startup, if we've just upgraded to a new version, contact sync 7 years ago
Scott Nonnenberg 59d58aaab5 Allow GIFs larger than 6MB 7 years ago
sachaaaaa 6fe70b9b85 Send outgoing messages as raw bytes (Uint8Array) and moved recipient & ttl to header 7 years ago
Scott Nonnenberg 584e932891 Close recorder on switch away, only send after finish clicked 7 years ago
Scott Nonnenberg f38410976d Delete conversation external files on deletion 7 years ago
Scott Nonnenberg 2cfbfe477a Better handle large numbers of messages in cache on startup 7 years ago
Scott Nonnenberg a8e12d0771 Add user's avatar to the top left of the screen 7 years ago
Scott Nonnenberg 8f3e3b7aaf Update to new design for avatars: individual/group icons/colors
And two initials.
7 years ago
Scott Nonnenberg 10c53bddb0 Move to new colors, switch incoming/outgoing colors 7 years ago
Scott Nonnenberg cd60bdd08a Move conversations to SQLCipher 7 years ago
sachaaaaa d521795cf8 add helper to set the keysPending flag for a discussion 7 years ago
sachaaaaa 22a86b5351 store key bundle status in conversation model 7 years ago
sachaaaaa 33ad509fbf Merge branch 'master' of https://github.com/signalapp/Signal-Desktop into development
# Conflicts:
#	_locales/ar/messages.json
#	_locales/es_419/messages.json
#	_locales/he/messages.json
#	_locales/hi/messages.json
#	_locales/hr/messages.json
#	_locales/kn/messages.json
#	_locales/ko/messages.json
#	_locales/mk/messages.json
#	_locales/sr/messages.json
#	_locales/uk/messages.json
#	_locales/vi/messages.json
#	package.json
7 years ago
Scott Nonnenberg 3464eb65b8 Keep conversation.lastMessage in memory 7 years ago
Scott Nonnenberg 814b9cf26a Only accept 'you left group' messages when group blocked 7 years ago
Scott Nonnenberg 9c399624cc Support for blocking groups on mobile, via group/blocked syncs 7 years ago
Scott Nonnenberg 46dac94ab8 Pop toast on attempted attach if image attachment is too large 7 years ago
Scott Nonnenberg d0c4152d99 backup.js: Remove references to nonexistent i18n strings 7 years ago
Scott Nonnenberg ea8e76d9de MessageView: Only re-render on change of key conversation fields 7 years ago
Scott Nonnenberg 8584a79352 Don't treat sends to a group with unregistered users as an error 7 years ago
Scott Nonnenberg 998c35dcb3 Split configuration into low and high traffic files
Also, we're now handling config ourselves instead of using
electron-config and config dependencies.
7 years ago
sachaaaaa a6b4215b1f changed sendMessage request from PUT to POST 7 years ago
sachaaaaa 8bb7185c7a make loki_message_api::sendMessage use async/await 7 years ago
sachaaaaa bb65115d7d Ensure the unique object id is stored in the object to facilitate deleting it later. 7 years ago
sachaaaaa 2f562ce9e1 Change contact prekeys in db to allow multiple entries for each contact 7 years ago
sachaaaaa 9e0319acb0 fix encrypting message by returning fake localRegistrationID (not sure what it's for) 7 years ago
sachaaaaa 0832806bd9 wip: added helper to create mock contacts, almost got a session working 7 years ago
sachaaaaa 258a89bc21 create contactPreKeys and contactSignedPreKeys in database, with load/store helpers (rerun migrations required) 7 years ago
sachaaaaa e3cbf1caeb rename IndexedDB database to 'loki-messenger' 7 years ago
sachaaaaa b84ff76faf Fix error handling when sending message + clean up in loki_message_api 7 years ago
sachaaaaa 2ae91752d3 skip fetching profiles when clicking on contact 7 years ago
sachaaaaa 8ada6ce8ad serialize message as base64 7 years ago
sachaaaaa 1e14022e2f Add skeleton for Loki Message API. Wrap data in json (for now?) 7 years ago
sachaaaaa 8f33419b52 Change pubkey representation to hex instead of base64 7 years ago
jcktm 09a0c46637 added identity key above the conversation box 7 years ago
sachaaaaa c1d6e6113f ValidateNumber now accepts pubkeys instead of phone numbers. This allows starting a conversation with a pubkey. 7 years ago
sachaaaaa b043a469a2 Change regex that filters potentially valid contacts in search bar to match a pub key 7 years ago
sachaaaaa 1866aed432 Accomodate for upcoming signature in websocket connection header 7 years ago
sachaaaaa 187424f84a Change HTTP header from X-Signal-Agent to X-Loki-Messenger-Agent. 7 years ago
Scott Nonnenberg 57d13dad57 data/removeMessage: no need for additional model instantiation 7 years ago
Scott Nonnenberg 02fbea96c0 Move base64 conversions off of the main thread 7 years ago
Scott Nonnenberg 911bc63c67 Move all arrayBuffer<->base64 functions to be async 7 years ago
sachaaaaa 9638639045 Bypass SMS verification 7 years ago
Scott Nonnenberg 37f3054976 Both UI timer and database timer will remove expired message 7 years ago
Scott Nonnenberg 9f920aa35b Re-enable orphaned attachment cleanup 7 years ago
Scott Nonnenberg fedfbed304 Copy quoted message contents into quote on receipt
Also:
  - visually distinguish any reference we couldn't verify on receipt
  - show toast on quote click if we can't scroll to message
  - toast visuals redesigned to match rest of app
7 years ago
Scott Nonnenberg a247ffe5cf When iOS device has been linked, use iOS color scheme 7 years ago
Scott Nonnenberg 0eb2c958a5 Handle contact: don't exit early if timer is 'invalid' 7 years ago
Scott Nonnenberg 621883a0ce Disable drag and drop if it's not a file attachment 7 years ago
Scott Nonnenberg 516a729a45 Additional logging for sql commands in debug mode 7 years ago
Scott Nonnenberg 7983300f4a Use base64 strings for incoming message cache instead of binary 7 years ago
Scott Nonnenberg 9eefc0c29b SettingsView: Fix logging 7 years ago
Scott Nonnenberg 8c8475076b Data layer: return null if id not in database, not empty model 7 years ago
Scott Nonnenberg c88df69094 New SQL indices and query tweaks to eliminate table scans
Also: New logging on client side to track performance of db queries
7 years ago
Scott Nonnenberg e086d521f1 Increase the timeout for database updates 7 years ago
Scott Nonnenberg ae6876a153 Ensure that error in handleDataMessage is treated as error 7 years ago
Scott Nonnenberg 727925a266 Clean up old messages, better handle errors from sending 7 years ago
Scott Nonnenberg 6e193456f9 Eliminate orphaned external message files on startup
Attachments, visual attachment thumbnails, video attachment screenshots
Quote thumbnails
Contact avatars
7 years ago
Scott Nonnenberg 44dec45995 Ensure that all messages in cache are migrated properly 7 years ago
Scott Nonnenberg 9ff80469a5 In partially-successful group send, don't start expire timer 7 years ago
Scott Nonnenberg 9ed1ee90f8 Move expiring message time earlier if read sync has earlier time 7 years ago
Scott Nonnenberg a01db40e27 Ensure that a SQL command timeout results in an error 7 years ago
Scott Nonnenberg 4b3ddef955 Allow for 'error' status on incoming messages not just outgoing 7 years ago
Scott Nonnenberg 8180417611 Update conversation first on timer change to eliminate flicker 7 years ago
Scott Nonnenberg 22613c8cc4 Set disappearing check timer reliably - on all message saves 7 years ago
Scott Nonnenberg 3961778e53 Fixes for Chrome app import in this new SQLCipher world 7 years ago
Scott Nonnenberg 1d7987108b Show and log progress during the SQLCipher migration 7 years ago
Scott Nonnenberg 1e8f71f035 Make settings and debug log available during initial migrations 7 years ago
Scott Nonnenberg b1c6a5fe19 When updating message schema pre-SQLCipher, use legacy save 7 years ago
Scott Nonnenberg 0d13d437fe Delete before forced bulk insert to fix broken migrations 7 years ago
Scott Nonnenberg 3105b77475 Migrate to SQLCipher for messages/cache
Quite a few other fixes, including:
  - Sending to contact with no avatar yet (not synced from mobile)
  - Left pane doesn't update quickly or at all on new message
  - Left pane doesn't show sent or error status

Also:
 - Contributing.md: Ensure set of linux dev dependencies is complete
7 years ago
Scott Nonnenberg 53b1b73909 Ensure back button appears when safety number screen shows 7 years ago
Scott Nonnenberg aa4339a69f Preserve migration state when deleting config due to failed login 7 years ago
Scott Nonnenberg e9926b3a2a Fix reference to i18n key: Unlinked -> unlinked 7 years ago
Scott Nonnenberg d51b2b48d1 Workaround for not ending up at bottom of conversation 7 years ago
Scott Nonnenberg 8860e4c7fb Update delivered/read message if already in collection 7 years ago
Scott Nonnenberg 02675312c5 Introduce mandatary migration on startup, to minimum version 7 years ago
Scott Nonnenberg 61f7b8360b Conversation: store lastMessage/lastMessageStatus in memory only 7 years ago
Scott Nonnenberg f39a96bc76 Move to centralized message/cache data layer
Also, ensure that conversation.messageCollection has nothing in it
unless it has an associated ConversationView.
7 years ago
Scott Nonnenberg 34231168a7 On message delete, ensure that all external files are deleted 7 years ago
Scott Nonnenberg e80857562a Disappearing messages: show 'disabled' instead of 'set to off' 7 years ago
Scott Nonnenberg 1a01e38d5c Show 'group updated' in left pane when we get info-free update 7 years ago
Scott Nonnenberg 80dd25e995 Preload all icon images to reduce flickering when they are used 7 years ago
Scott Nonnenberg b7d5013558 Add verified notification and sync the verified status as well 7 years ago
Scott Nonnenberg bffa910c64 Remove too-verbose logging on contact sync 7 years ago
Scott Nonnenberg 4b3f9e969a Ensure a theme is selected on initial load 7 years ago
Scott Nonnenberg 573a26021b file_input_view: Use makeVideoThumbnail on attach of video 7 years ago
Scott Nonnenberg 5933a34a18 Use window.log in browser context, turn on console eslint rule 7 years ago
Scott Nonnenberg 643739f65d
Responding to feedback on the updated visuals (#2549)
* Conversation List Item: timestamp bold only when convo has unread

* Preserve the positioning of overlays on re-entry into convo

* ConversationListItem: Handle missing and broken thumbnails

* Shorten timestamp in left pane for better Android consistency

* Update convo last updated if last was expire timer change

But not if it was from a sync instead of from you or from a contact.

* Make links in quotes the same color as the text

* MediaGridItem: Update placeholder icon colors for dark theme

* Ensure turning off timer shows 'Timer set to off' in left pane

* ConversationListItem: Show unread count in blue circle

* Add one pixel margin to blue indicator for text alignment

* Ensure replies to voice message can bet sent successfully
7 years ago
Scott Nonnenberg f2a63c99ed Streamline code to clean logs based on version number 7 years ago
Scott Nonnenberg 12f1932d02
Workaround for linux w/tmp mounted as noexec; spellcheck fails (#2548) 7 years ago
Scott Nonnenberg cea38b7bc4 Log clear error if we fail to retrieve debug log upload key 7 years ago
Scott Nonnenberg 2ef2235317 Show error if debug log upload fails 7 years ago
Scott Nonnenberg 4ca674edb2 Remove User-Agent from form to upload debug log 7 years ago
Scott Nonnenberg b159a8d7c7 Update the user agent for debug log requests 7 years ago
Scott Nonnenberg c517e4193b New option: Disable spell check 7 years ago
Scott Nonnenberg d5d6cdb250 Automatically clean up old debug info, remove unneeded field 7 years ago
Scott Nonnenberg 66bd6c826d Fix MediaGallery handling of videos - show thumbnail and overlay 7 years ago
Scott Nonnenberg c2c8dc5090 Make quote props consistent, white circle dark theme play overlay
Prevents errors in the logs about attempting to load images from their
relative patn instead of the absolute path. No effect on the user.
7 years ago
Scott Nonnenberg 5e64e4ef40 Remove verbose updateLastMessage logging, fix MediaGallery save 7 years ago
Scott Nonnenberg 0ac3517d51 On click of search result, show and focus conversation
Also: remove too-verbose logging on contact sync
7 years ago
Scott Nonnenberg fdc7c85876 A couple small fixes: quotes, ConversationListItem, MessageDetail
- Load quoted message even with local thumbnail
- A bit more space for message in ConversationListItem
- Make the message detail screen scrollable
7 years ago
Scott Nonnenberg 6e4b73ec0c Fix lint errors in conversation_view.js 7 years ago
Scott Nonnenberg db91560990 Fixes for quotes/schema upgrade, optimize media gallery load
Also: Fix for contact detail page; didn't show back button
7 years ago
Scott Nonnenberg 60f61c804b Fix reply to message w/attachment, dark theme quoted attachment 7 years ago
Scott Nonnenberg 675e34fc8d New React component: ConversationListItem, installed in left pane
When collecting a conversation's last message, we grab that message's
status as well (if outgoing) and show it.
7 years ago
Scott Nonnenberg 3c69886320 Finish new Message component, integrate into application
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
  to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
7 years ago
Scott Nonnenberg 43a44793c5 Remove jshint - move everything over to eslint
Also removed all hints of previous linters
7 years ago
Scott Nonnenberg dc11db92f9 New React component: Message
Also: Use react to render contects on the 'show group members' screen
7 years ago
Scott Nonnenberg fc5c52fbdf Remove iOS theme in favor of plain light/dark themes 7 years ago
Scott Nonnenberg 5823ae3951 Ensure disabled timer notification is 'to off' not 'to seconds' 7 years ago
Scott Nonnenberg f5852bb357 Be resilient to null thrown errors so we can surface to user 7 years ago
Scott Nonnenberg c54ba8d1fa Ensure that notifications and auto-hide window settings are saved 7 years ago
Scott Nonnenberg d8e5e5fcf2 Open separate windows with theme, update settings theme on change 7 years ago
Scott Nonnenberg 61d8a694b7 Remove temporary test logging 7 years ago
Scott Nonnenberg 212ec8bb73 Whenever user opens conversation, update its last message 7 years ago
Matthias Beaupère 6a611cbecf Auto-scroll to selected conversation when reordering them (#2498)
When conversations are reordered (last message time has changed), this commit leads to scrolling the shortest distance to the conversation.
7 years ago
Scott Nonnenberg e30b34f424 Add 'newmessage' event handler to Conversation for reliablity 7 years ago
Scott Nonnenberg ad4387803b New media permission, show dialog when not enabled for voice msg
UI now in separate renderer:
  - the permissions popup
  - settings dialog
  - debug log dialog
  - about window

Couple bug fixes:
  - About Window: Fix 'escape' to close window
  - Remove outdated dist/copy tasks from Gruntfile

Eslintified settings_view.js
7 years ago
Scott Nonnenberg 9d9a797bda Handle timer updates along with group updates 7 years ago
Scott Nonnenberg 67464774c3 eslintify expiring_messages.js 7 years ago
Scott Nonnenberg 12b5547e72 Update contents of conversation even when view not hydrated
Also ensure that we update the last message in a conversation after
expire, after the mesage is really deleted from the database.
7 years ago
Scott Nonnenberg a40a39314a Disable notifications on new 'reconnect' event for laptop resume 7 years ago
Scott Nonnenberg 125c3fafa8
Idle detector: Fix bug preventing it from ever turning off (#2487) 7 years ago
Scott Nonnenberg 0abdd5ead1 Add missing await for thumbnail creation in makeQuote() 7 years ago
Scott Nonnenberg b113cd0ad2
Expire timer updates: don't send if updated via remote message (#2473)
A recent change removed the type property to make markRead() behave
properly, but that broke our check 'should we send an update?' logic. So
instead of using `isIncoming()` we now use the thing we previously used
to determine whether a message was incoming: `receivedAt`.
7 years ago
Scott Nonnenberg a4603807e1
Send/reply: Be resilient to errors making attachment thumbnail (#2468)
* Show generic file icon if we fail to make attachment thumbnail

* Be resilient to thumbnail creation errors when creating quote
7 years ago
Scott Nonnenberg 8eeaad8e18 Remove unused export/import functionality 7 years ago
Scott Nonnenberg 1c23c6a9d7 Remove window.config in favor of window.getXXX() accessors 7 years ago
Scott Nonnenberg 5fca44d1b1 Send message: Pull expireTimer, recipients, dest before queueJob 7 years ago
Scott Nonnenberg dfa1f0797c Ensure timer updates show in convo before initiating message 7 years ago
Scott Nonnenberg 71d873ccfe Ensure message expire timer start times are never in the future 7 years ago
Scott Nonnenberg f3bd0cf903 Refactor api.js into web_api, which encapsulates all web access 7 years ago
Scott Nonnenberg 8c85f6e3a6 When marking message read, ensure that peers have same read_at
When we mark a message as read, we go to the database to ensure that
older messages in this conversation are marked read as well. That
optimization was missing the read_at value provided to the starting
message, so now it is piped along to all of them.
7 years ago
Scott Nonnenberg 9400d1a538 eslintify background.js 7 years ago
Scott Nonnenberg 34f423b52c Remove unused code; move signal.js to js/modules for eslint
(noticed as I was doing this that signal.js doesn't get eslint coverage)
7 years ago
Scott Nonnenberg ec3e36824c Remove jscs from the project 7 years ago
Scott Nonnenberg cfe0bd0e79 Move to npm for several dependencies
mustache
jQuery
underscore
backbone
mocha
chai
intl-tel-input
7 years ago
Scott Nonnenberg 01be58acc2 Remove formatting in importError localization string 7 years ago
Scott Nonnenberg 548c8e69cf Emojification now all done with react via a few new components
Three locations were changed:
  1. a group update, which lists a set of contacts
  2. the contact name in the left pane
  3. the conversation title

Three new components were added to window.Signal.Components to support
these scenarios, respectively:
  1. Emojify
  2. ContactName
  3. ConversationTitle

Note that there are a number of other places in the app that should be
emojified, but never have been before. Essentially any place that a
contact name might be shown. A non-exhaustive list:
  - Show group members
  - Show safety number
  - Verified change notification
  - Disappearing timer change notification
  - Contact verification notification
  - Quote contact name
7 years ago
Scott Nonnenberg a5416e42c4 Refactor all emoji utility methods into window.Signal.Emoji 7 years ago
Scott Nonnenberg e2d044e02b Filter file scheme; disable http, https and ftp entirely 7 years ago
Scott Nonnenberg e02887565b
Update to electron v2.0.1 (#2401)
* Remove extra parenthesis causing warnings on latest chromium

* Update to electron 2.0.1

* Move all @types dependencies to devDependencies

* Update electron-builder/electron-updater

* Update to Node.js 8.9.3 to match Electron 2.0.1
7 years ago
Scott Nonnenberg d54aedcefa
A few fixes for the contact detail screen (#2374)
* Only show 'send message' on contact detail when user has account

* Make contact detail headers visible in dark mode

* Fix vertical scrolling for very large contact in detail pane

* Fix a couple comment typos
7 years ago
Scott Nonnenberg 4e5c8965ff Move to react for newlines, emoji, and links in message body 7 years ago
Scott Nonnenberg c00c939148 Update link handling 7 years ago
Scott Nonnenberg b1a54c416f Notifications: All calls are debounced except for shutdown clear 7 years ago
Scott Nonnenberg 18a76ffb49 Debounce notifications so we don't orphan them
Creating/destroying notifications too quickly in testing on macOS would
result in them sticking around forever, requiring manual user dismissal.
We want to dismiss them for the user when we close or our window is
activated. So now we debounce() calls to our notifications code.
7 years ago
Daniel Gasienica 24002149f6 Log read sync reception and remove notification 7 years ago
Daniel Gasienica d434262540 Remove last notification before creating new one 7 years ago
Scott Nonnenberg 80b069e9b6 Move phone number format/parse into ts/types/PhoneNumber 7 years ago
Scott Nonnenberg 93d3abbf8d Use contact name when updating last message for a conversation 7 years ago
Scott Nonnenberg aa13a2c6f7 Parse phone numbers into e164 as part of schema upgrade 7 years ago
Scott Nonnenberg d2293d9592 parseAndWriteAvatar: Do shallow copy before omit() call
Otherwise, we get all prototype props/functions, which we can't save in IndexedDB
7 years ago
Daniel Gasienica 3bf8a8966a Notification improvements
- Remove on read, on focus, and on exit.
- Show multi-message notifications like '5 new messages'.
7 years ago
Daniel Gasienica e723484498 Simplify closing emoji panel on escape key down 7 years ago
tommypacker 48708d5738 Close emoji panel on escape press 7 years ago
Daniel Gasienica 16bc1d34c6 Message schema 6: Change classification of media and documents
For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
7 years ago
Daniel Gasienica 101041f106 Derive `Message.CURRENT_SCHEMA_VERSION` 7 years ago
Scott Nonnenberg 26be658892 Remove 'Contact' from 'Contact.*' properties, clean->parse 7 years ago
Scott Nonnenberg cda326ca45 Use protobuf enum values to eliminate magic numbers 7 years ago
Scott Nonnenberg adbe989949 validateContact: Return error instead of logging 7 years ago
Scott Nonnenberg bb01218e83 MessageView: Get rid of 'let' for hasSignalAccount 7 years ago
Scott Nonnenberg d0efccd121 A couple renames in contact.js 7 years ago
Scott Nonnenberg 420f81ebcd Move contact migrate code from message.js to contact.js 7 years ago
Scott Nonnenberg 8beeef4d10 Show contact name when you reply to message with a contact 7 years ago
Scott Nonnenberg 9d1847a7e5 Pull all setup in preload.js into signal.js. goal: webpackable 7 years ago
Scott Nonnenberg 37821e5a1b Wire up all contact behaviors, refactor Contact type/selector 7 years ago
Scott Nonnenberg 41be7f126b Visuals for embedded contacts as well as contact detail screen 7 years ago
Scott Nonnenberg 3ea3e4e256 Contact sharing: protos and data pipeline
As of this commit: 82b76ccf37
7 years ago
Scott Nonnenberg b6a585a646
MessageView: Add id from database to DOM for outgoing messages (#2350) 7 years ago
Daniel Gasienica 38f3ad6518 Use `SignalService` vs `textsecure` for protobuf 7 years ago
Daniel Gasienica a0ddab669b Organize `global`s 7 years ago
Daniel Gasienica a86056630f Use `Attachment.isVoiceMessage` 7 years ago
Daniel Gasienica 0121dc7a5a Log notification grouping support 7 years ago
Daniel Gasienica c2407c8906 Disable notification grouping on Windows 7 7 years ago
Daniel Gasienica 13f1ec2e51 Use structured logs
Easier to search for static prefix and fields are named.
7 years ago
Daniel Gasienica 0ce56eed87 Use structured log 7 years ago
Daniel Gasienica 5c8f734e67 Remove newlines from group IDs 7 years ago
Daniel Gasienica ae7d6aa900 Log `Conversation::updateLastMessage` 7 years ago
Daniel Gasienica a102016ed8 Port `Settings` and `OS` to TypeScript 7 years ago
Daniel Gasienica c591c3ca55 Use native notifications on all platforms 7 years ago
Daniel Gasienica 4e6a03a91c Log whether OS supports native notifications 7 years ago
Daniel Gasienica 1f2a2e1d52 Use `Notifications.getStatus` 7 years ago
Daniel Gasienica 5fe5320760 Rename `SETTINGS` to `SettingNames` 7 years ago
Daniel Gasienica 0701768fd7 Declare globals for `drawAttention` and `isFocused` 7 years ago
Daniel Gasienica 06e3f09732 ESLint: Add `js/notifications` 7 years ago
Daniel Gasienica b510916ef5 Split `global`s into third-party and own 7 years ago
Daniel Gasienica c40bd7e235 Remove unused `retryDescription` localized string 7 years ago
Scott Nonnenberg 754d65ae2e Let's make it all pretty, shall we?
We missed a couple directories with previous attempts to turn this on
globally: app/ and libtextsecure/

Not to mention files in places we didn't expect: ts files that weren't
in the ts directory!

This turns prettier on for every file we care about (js, ts, tsx, md)
everywhere in the project but for a few key parts.
7 years ago