Commit Graph

387 Commits (1ff836865a8c9c23e16256efa879e35e3a6a3aec)

Author SHA1 Message Date
Maxim Shishmarev a91d925384
Merge pull request #1000 from msgmaxim/onion-requests
Client-side implementation for onion requests
5 years ago
Audric Ackermann 9ddda73ca2
Integration tests (#975)
* add first integration test Session

Checking window title
Checking window count
Can restore from seed

* FIXME torevert once found why this crash on app close

* [test] add join valid open group test

* [test] validate cannot join two times the same open group

* [test] move common things to common.js

* [test] move tests to separate files

* [test] clean

* [test] add send message to open group test

* [test] lint

* [test] rename hooks -> common

* [test] add 15s delay before considering test as slow

* upgrade electron 8.0.3 and spectron 10.0.0

* [test] signin from seed: validate pubkey

* Replace spellchecker in favor of typo-js

* [test] refactor common calls to common.js

* [test] add two different pubkey, mnemonic and displayname

* [test] FIXME unsafe eval needed for now

* [test] add: add friends test

* [test] working multi instance tests

* [test] FIXME disable snodeproxy

* [test] update yarn.lock

* [test] make tests more robust with restart from scratch each test

* [test] add link of two devices test and hard rm of apps before start (rm -r)

* remove unused file

* [test] lint

* [test] add registration from generated pubkey test

* [test] add beginning of network stub

* [test] stub "token" endpoint

* [test] add test of one message on pub group pull

* [test] add starting port randomize. looks to help for some bad start with multi instance

* [test] add stub for one to one chats (sessions)

* [test] clean code

* [test] finish add friend test and stub snode server

* [test] stub calls during link device test

* [test] add a flag to show some logs on stubbed snode

* [test] finish link of two device test. check both pubkey matches

* [test] add and use function to wrap erase+start+login+stub app

* [test] add method to login as friend and closed group test&messages

* Revert "[test] FIXME unsafe eval needed for now"

This reverts commit de5322fdae6cdab8e3b9bd9a52b7d172c9bc2d26.

* [test] apply review

* [test] fix lint

* [test] fix existing test with new spectron version

* [test] fix lint

* [test] refactor page objects

* [test] add delete account test

* [test] add unlink of two device test

* [test] make tiny waitForExists -> isExisting

* [test] add checks of link new device buttons

* upgrade fs-extra@9.0.0

* address pr review

* [test] fix spell_check test

Co-authored-by: Josh Perez <60019601+josh-signal@users.noreply.github.com>
5 years ago
Maxim Shishmarev 0221e7b8c0 fix linter warnings 5 years ago
Maxim Shishmarev 3a746109ea Path building for onion requests 5 years ago
Mikunj 86b427cc4d Lint 5 years ago
Mikunj d10a8f0a6f Added setting to disable checking for auto updates. 5 years ago
Mikunj 78389440c0 Update sqlcipher to 4.2.0. 5 years ago
Ryan Tharp d9bd481366 Make RSS feed names match iOS 5 years ago
Ryan Tharp 2b53146362 make RSS feeds title case match 5 years ago
Vincent de4edf9252 CLosed groups ui initial listprops 5 years ago
Vincent 9dcc851ebd Updated all icon references 5 years ago
Maxim Shishmarev d910633422
Merge pull request #746 from msgmaxim/no-autojoin-loki-chats
Disable auto-joining default loki open groups
5 years ago
Maxim Shishmarev cf10a19b34 Disable auto-joining default loki open groups 5 years ago
Audric Ackermann 3b24714f3e
Sort messages by sent_at (#718)
Sort messages by sent_at
5 years ago
Audric Ackermann 24bf436b0c disable menubar by default and remove old preferences from menubar 5 years ago
Maxim Shishmarev 033492a200 Sort messages by sent_at 5 years ago
Beaudan Brown 685ada5cc5 Merge branch 'clearnet' into prep-merge 6 years ago
sachaaaaa 2c1375e42a Fix recurring memory leak in mentions 6 years ago
Beaudan Brown de0a5c7b78 Unique constraint and prevent some undefined bugs 6 years ago
sachaaaaa 8df692901a Merge branch 'clearnet' into multi-device
* clearnet:
  set active_at to now() for public channels
6 years ago
sachaaaaa 634d274ffc
Merge pull request #531 from sachaaaaa/remove_all_private_conv
[multi-device] Remove private convs only
6 years ago
sachaaaaa 8ce21b13fe Remove only private conversation during secondary registrations steps to keep public chats in db 6 years ago
sachaaaaa 5a8ab00a96 Rename pairing getters to specify secondary or primary. Add getGrantAuthForPrimary. 6 years ago
sachaaaaa 7d7eea9547 set active_at to now() for public channels 6 years ago
sachaaaaa f8e9e1d3bd Remove rejected authorisation from database 6 years ago
sachaaaaa 0426d85e7a Merge branch 'clearnet' into multi-device
* clearnet: (136 commits)
  Fix more check on deletion.
  Only shorten pubkeys if name is present
  Shorten pubkeys in quotations too
  better guard
  pass serverId back to the server
  Bump version.
  Purge cache on failure.
  Fix unnecessary link preview fetches.
  Review changes. Increase mod time to 30 seconds.
  Undo defaultPublicChatServer change,
  Modified colour of dark mod badge
  Linting.
  Updated design
  Show crown icon for moderators
  Fix last hash all being NULL in database
  Poll for moderators, store them on the conversation and use the list to determine our own mod status
  Make sure we are always updating the last deleted id
  Update ts/components/conversation/FriendRequest.md
  Fix #355 Display timestamp for friend requests
  Fix duplicate detection for sent messages in public chat
  ...

# Conflicts:
#	app/sql.js
#	js/background.js
#	js/models/messages.js
#	js/views/app_view.js
#	libloki/crypto.js
#	libtextsecure/message_receiver.js
6 years ago
sachaaaaa d17f86679f
Merge pull request #495 from sachaaaaa/fix_unknown_signedkey
[multi-device] Ensure the latest contact signed prekey is used
6 years ago
sachaaaaa 6de6b762e6 Ensure the latest contact signed prekey is used 6 years ago
sachaaaaa d3c3184405 Search returns primary device when looking up secondary pub key 6 years ago
sachaaaaa b10835ffc7 Share contact upon authorising secondary device 6 years ago
Mikunj a9189979e1 Added JazzIcon 6 years ago
Mikunj 500a88dbab Removed identicon.js
Updated profile image helper.
6 years ago
Beaudan Brown 9beea2cbd3 Enforce curlies completely and lint with new settings 6 years ago
Beaudan Brown 6f995d6a96 Resolve linter issues 6 years ago
Ryan Tharp b4277532d6
Update app/sql.js
Co-Authored-By: Beaudan Campbell-Brown <beau@loki.network>
6 years ago
Ryan Tharp dffcf51f88 add defaultPublicChatServer to config 6 years ago
sachaaaaa 35b6182074 Clean up after account registration failure 6 years ago
Beaudan Brown 6392c77952 Fix database helpers 6 years ago
Beaudan Brown 700ed5d2a8 Some refactoring from reviews, and include the token in the message pipeline instead of getting in message_api 6 years ago
Beaudan Brown 716e142ac4 Reviews 6 years ago
Beaudan Brown 37366198fc Add database tables and helper functions for public server auth 6 years ago
sachaaaaa a4411007b0 Pairing authorisations: refactor proto, change sql table, add getters 6 years ago
Beaudan Brown 895cedc801 Lint 6 years ago
Beaudan Brown 3f4b94ba74 Transition to initialising rss feeds in schema update 6 years ago
sachaaaaa edd800d382 Make linter happy 6 years ago
sachaaaaa 88c1454c18 Use Loki Schema for database versioning 6 years ago
sachaaaaa d208614909 Multi-device part 1: make primary account generate and send authorisation to secondary 6 years ago
Beaudan c9f433fbba Save message id when sending/receiving to/from public server and lint 6 years ago
Beaudan 899bfc3b2b Add channel id to message table and provide helper functions 6 years ago
Beaudan 1fc2173d9b Update header template to display group names properly and update migration to only store name for public chat 6 years ago
Beaudan 014558d939 Squash and clean of old PRs, move towards sending cleartext again 6 years ago
Beaudan 90f788c591 Add the server and channel plus proper displayName 6 years ago
Beaudan 89980e3248 Better sql for selecting version 6 years ago
Beaudan 8225bf5847 Slight sql changes 6 years ago
Beaudan 06832e4978 Lint 6 years ago
Beaudan b4cc9430be Add loki schema versioning and create new public conversation 6 years ago
Beaudan 0a231ea2ae Allow start-prod and start-prod-multi so launch in production (mainnet) mode 6 years ago
Beaudan 5887f8c14c Fix password error 6 years ago
Beaudan 8d4bfc27c9 Have to put the tls setting here for some reason 6 years ago
sachaaaaa 9d6c5bff36 make unverified https queries to the snodes 6 years ago
Mikunj 8808100796 Merge signal-1.24.0
# Conflicts:
#	.github/PULL_REQUEST_TEMPLATE.md
#	background.html
#	config/default.json
#	config/production.json
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_view.js
#	js/views/inbox_view.js
#	js/views/settings_view.js
#	main.js
#	package.json
#	test/index.html
#	ts/components/conversation/ContactName.tsx
#	yarn.lock
6 years ago
Mikunj 12ce0140de Left pane changes.
Merge commit 'b3ac1373fa64117fe2a9ccfddf3712f1826c06d9' into signal-1.23

# Conflicts:
#	_locales/en/messages.json
#	background.html
#	js/background.js
#	js/conversation_controller.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_list_item_view.js
#	js/views/conversation_list_view.js
#	js/views/conversation_search_view.js
#	js/views/inbox_view.js
#	libtextsecure/account_manager.js
#	package.json
#	stylesheets/_global.scss
#	stylesheets/_index.scss
#	stylesheets/_modules.scss
#	test/_test.js
#	test/index.html
#	test/models/conversations_test.js
#	test/views/conversation_search_view_test.js
#	ts/components/ConversationListItem.tsx
#	ts/components/MainHeader.tsx
#	ts/components/conversation/ConversationHeader.tsx
#	ts/components/conversation/ResetSessionNotification.tsx
6 years ago
Mikunj 48c4ed1a29 Partial Merge commit 'bf904ddd129ceba8fa363ccf6d10ecd256c65f63' into signal-1.23
# Conflicts:
#	_locales/en/messages.json
#	app/sql.js
#	js/background.js
#	js/conversation_controller.js
#	js/models/conversations.js
#	js/views/inbox_view.js
#	main.js
6 years ago
Mikunj 57195017f9 Linting 6 years ago
Mikunj e343a04eea Merge commit '18b5b7c046436f2defab2e20407e22da180bf97b' into signal-1.22
# Conflicts:
#	app/sql.js
#	background.html
#	config/default.json
#	js/background.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/modules/data.js
#	js/signal_protocol_store.js
#	js/views/conversation_search_view.js
#	libtextsecure/message_receiver.js
#	libtextsecure/sendmessage.js
#	main.js
#	package.json
#	preload.js
#	test/index.html
#	ts/components/Avatar.tsx
#	ts/components/conversation/ConversationHeader.md
#	ts/components/conversation/ConversationHeader.tsx
6 years ago
Scott Nonnenberg 6cf4f19317 Add a new env variable to the hardening list 6 years ago
Beaudan 3522513590 Use TEXT over STRING 6 years ago
Beaudan faf1b4b66b Lint 6 years ago
Beaudan 796181e00c Add database functions for storing, retrieving and cleaning last hash for snodes 6 years ago
Scott Nonnenberg f92769db8c Windows: Return real path, not lowercase path 6 years ago
Scott Nonnenberg be86169a8a Windows: Do our file filtration with case-insensitive checks 6 years ago
Jonathan Canfield 97b26778b3 Remap zoom to Command+= on macOS (#3296) 6 years ago
Scott Nonnenberg c8ea2e9463 Download and install updates without the help of electron-updater 6 years ago
Mikunj ae8b3899ad Changed registration to be a 2 step process. 6 years ago
Scott Nonnenberg 6ef0eb7284 When closing database, be resilient to null db 6 years ago
Scott Nonnenberg b3ac1373fa Move left pane entirely to React 6 years ago
Scott Nonnenberg ca5132f712 Present 'database error' dialog in more situations 6 years ago
Scott Nonnenberg ae161c6cf6 Update to Electron 4.x 6 years ago
Scott Nonnenberg e4b0901620 If logs are malformed on startup, delete them all and start over 6 years ago
sachaaaaa 01577a7b45
Merge pull request #236 from BeaudanBrown/fix-database-bug
Fix windows database crash
6 years ago
Beaudan d317b020f0 Close the database if the password is incorrect, fixes windows crash 6 years ago
sachaaaaa b39b45e29d Fix #214 Replace help menu links 6 years ago
Scott Nonnenberg 6bcd434585 Prevent crash when tray icon no longer available (due to apt) 6 years ago
Scott Nonnenberg 5165eb3bd4 On database error: show popup, allow user to delete and relaunch 6 years ago
Scott Nonnenberg 3fb6ab295f Debug log optimizations and improvements 6 years ago
Scott Nonnenberg 5b54c9554e Remove groups table, conversation is single source of truth 6 years ago
Scott Nonnenberg 041fe4be05 Remove JSON column and Backbone Model for unprocessed 6 years ago
Scott Nonnenberg 9c540ab977 Add cache support to Signal Protocol Store 6 years ago
Scott Nonnenberg 1d2c3ae23c Download attachments in separate queue from message processing 6 years ago
Scott Nonnenberg 462fa712bc Show members: Pull conversation from group table 6 years ago
sachaaaaa 68fe552156 Merge commit '5c8558e293989094693f918a63b672301f1aeb55' into merge_1_21_1
* commit '5c8558e293989094693f918a63b672301f1aeb55':
  v1.21.1
  v1.21.1-beta.1
  Fix: Navigation to message via quote click didn't always work
  mainWindow.close - be ready for null mainWindow
  Ensure that Curve.async points to worker after startWorker call
  Protect against unhandled promises when calling checkForUpdates
  Reenable send when link preview is missing an image

# Conflicts:
#	package.json
6 years ago
Scott Nonnenberg 0ec0ae9dac Protect against unhandled promises when calling checkForUpdates 6 years ago
sachaaaaa a0f67c22da Merge branch 'textsecure/master' into merge_1_21_0
* textsecure/master: (26 commits)
  v1.21.0
  v1.21.0-beta.4
  Dark Theme: Preserve blue background on app loading screen
  Localization updates
  Fix width of audio player when window is very narrow
  A number of small fixes for Link Previews
  Get rid of the white flash when the app starts up (#3083)
  v1.21.0-beta.3
  Lint fixes
  Introduce new language: NB
  Fail over to all numbers in retry if errors don't have numbers
  Use the proper method for pulling attachments off disk for retry
  Fix rendering bug with verified state in updateVerified()
  Update electron-builder and electron-updater
  Ensure that dialog pops up when permissions denied for voice note
  Lint fixes
  Large update to localization strings
  Link Previews
  Ensure that blocked messages are dropped even after sealed sender
  Don't linkify quoted message contents
  ...

# Conflicts:
#	.github/PULL_REQUEST_TEMPLATE.md
#	_locales/cs/messages.json
#	background.html
#	config/default.json
#	index.html
#	js/models/conversations.js
#	js/modules/web_api.js
#	js/settings_start.js
#	js/views/conversation_view.js
#	js/views/settings_view.js
#	package.json
#	protos/SignalService.proto
#	stylesheets/_index.scss
#	stylesheets/_settings.scss
6 years ago
Beaudan 80fa4f866e Stale comment from review 6 years ago
Beaudan 38ff70e2ec Fixed some little redundant stuff in the message and snode api 6 years ago
Beaudan 07076c27ae Moved friend status to window, added start of p2p api stuff 6 years ago
Beaudan b417edfc9b Added new protos for online broadcast messages, added db hits for getting friends, local server now instantiated on the window, now sending online broadcast messages when the local server starts 6 years ago
sachaaaaa 7e583499f4
Merge pull request #155 from Mikunj/password-clear-database
Allow resetting database from password view.
6 years ago
Scott Nonnenberg 813924685e Link Previews 6 years ago
sachaaaaa 9f35b50301 Changed development folder to 'Loki-Messenger-Development` instead of 'Signal-Development' 6 years ago
Mikunj ac59e1249f Added db resetting.
Use built in signal warning view.
6 years ago
Mikunj 1a15ec9c15 Merge commit signal/master into signal-1.20 6 years ago
Mikunj e08a63d078 Merge development into lint 6 years ago
Beaudan bdbdf15469 Added timeouts for requests so they don't for ages. Changed swarmNodes to be a set to work property with merge, now removing contact swarmNodes if they timeout 6 years ago
Beaudan 24553e29e7 Made swarm requests ACTUALLY not wait for them all to finish and stop saving swarmNodes as DB column 6 years ago
Beaudan 37ba762312 First stuff for contacting specific nodes for each contact. Hard coded to hit the same bootstrap node for now plus doesn't handle unreachable nodes/errors well yet 6 years ago
Mikunj 6bd2d3962e Linted files 6 years ago
Scott Nonnenberg 92c2a0f996 Data infrastructure work 6 years ago
Scott Nonnenberg e4babdaef0 Updates to backup infrastructure 6 years ago
Scott Nonnenberg 775e31c854 Lint fixes after recent PRs 6 years ago
Herohtar 22ca4f9cc7 Change tray icon click to always show/focus window (#2984)
* Added function to always show the window on tray icon click and reassigned click event

* Refactored the code to force the window on top into its own function
6 years ago
Mikunj 654b0dac84 Merge signal-master. 7 years ago
Beaudan 415d0858e8 Allow spaces in password 7 years ago
sachaaaaa a1255dd31e
Merge pull request #77 from Mikunj/password-protection
Password protection
7 years ago
Mikunj e1aba93aea Merge signal 1.18.1 changes. 7 years ago
Beaudan Campbell-Brown 1303603db9
Apply suggestions from code review
Co-Authored-By: Mikunj <Mikunj@users.noreply.github.com>
7 years ago
Mikunj 9e995bde6c Review fixes.
Updated tests.
7 years ago
Mikunj 0b87f13699 Added password dialog view. 7 years ago
Mikunj f53bec38a5 Added password inputs on registration screen.
Fix case where db is deleted but password hash still remains which causes user to never register.
Allow password to have symbols and other characters.
Added more tests.

Moved passHash from config into the sqlite db.
We can do this because we assume if sql failed to initialise then the key provided was wrong and thus we can show the user the password page.
7 years ago
Mikunj 7a96b8446a Rename launcherView to passwordView. 7 years ago
Mikunj 6620244d03 Show main window on correct password; 7 years ago
Mikunj 6b9764e6c6 Added launcher view. 7 years ago
Mikunj 08f9101fec Hide new contact view unless we have no matches. 7 years ago
Beaudan 051e4dd22c XAnother big refactor to tie conversation UI logic to the friendRequestStatus variable 7 years ago
Mikunj 75bbf374f5 Default icon background to transparent. 7 years ago
Mikunj d60f147659 replaced jdenticon with identicon.js.
Cleanup any unused images.
7 years ago
Mikunj d75dee4fef Fix up new line. 7 years ago
Mikunj 961eb53915 Auto-generate profile images on conversations. 7 years ago
sachaaaaa 248c9fb4e9 Ensure the contact prekey returned is always the latest available 7 years ago
Scott Nonnenberg 68af1ae1ea Show dialog if application fails to start up properly 7 years ago
Scott Nonnenberg 11fdf22881 Change sessions.id to a TEXT field to prevent type coercion 7 years ago
Scott Nonnenberg bde1462159 Change sessions.id to a TEXT field to prevent type coercion 7 years ago
Beaudan b65d6a6d2c Refactor friend request status to use a state enum variable 7 years ago
Mikunj 9fd822a7e3 Remove preKeys on friend request decline. 7 years ago
Beaudan ff3cc7a315 Review changes 7 years ago
Beaudan 489ec8fc65 Heap of linting, eslint warning/error removal, and fixed a couple small bugs found along the way
Created new table to store the received message hashes. Checking this table when receiving messages to look for duplicates. Should be cleared of expired messages on app start and every hour after

Removed id which was not needed for seen messages. Refactored filter logic into function and found function name error

create unique index for contact prekeys (to allow using REPLACE)

Fixed lint stuff that merge brought back
7 years ago
Mikunj 34f43088ff Fix incoming messages being deleted on startup. 7 years ago
Mikunj 4148628e70 Remove any unsent messages when app is started. 7 years ago
Mikunj 33ee45b819 Cleaned up SQL for getMessagesByConversation. 7 years ago
Mikunj 1150f0f915 Allow fetching conversation messages by a specific type. 7 years ago
Mikunj d5154bef73 Move version 7 schema to version 6. 7 years ago
Mikunj e678d84d7e Oops forgot semi colons 7 years ago
Mikunj abe7170b4e Added sql deletion of contact pre keys and contact signed pre keys 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 f589fdac5c Merge signal changes into branch. 7 years ago
Scott Nonnenberg fb670ad6b9 Remove IndexedDB files after removing IndexedDB database 7 years ago
Scott Nonnenberg 9f647f00d8 A couple fixes for the data layer, legacy message upgrade/migrate 7 years ago
Scott Nonnenberg f11dd18536 Be resilient to malformed ephemeral.json 7 years ago
Scott Nonnenberg 1755e0adfd Move all remaining stores to SQLCipher 7 years ago
Scott Nonnenberg a7d78c0e9b Sealed Sender support
https://signal.org/blog/sealed-sender/
7 years ago
Scott Nonnenberg 2cfbfe477a Better handle large numbers of messages in cache on startup 7 years ago
Scott Nonnenberg cd60bdd08a Move conversations to SQLCipher 7 years ago
Scott Nonnenberg 48d937b66a Follow symlinks on target file path as well as user/config paths 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
Scott Nonnenberg 496ebf2a47 Store SQLCipher decryption key in separate file
First, we write the key a whole lot less. We write it on creation, then
never again.

Second, it's in a file we control very closely. Instead of blindly
regenerating the key if the target file generates an error on read,
we block startup unless the error is 'ENOENT' - the file isn't there
at all.

This still allows for the key.txt file to be deleted or corrupted
somehow, but it should be a lot less common than the high-traffic
config.json used for window location and media permissions.
7 years ago
Scott Nonnenberg 9f920aa35b Re-enable orphaned attachment cleanup 7 years ago
Scott Nonnenberg a247ffe5cf When iOS device has been linked, use iOS color scheme 7 years ago
Scott Nonnenberg fba8e8d479 Add logging to help diagnose protocol handler false positives 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 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 c56ea55e36 Fix duplicate message detection 7 years ago
Scott Nonnenberg 4d5894bf04 Ensure that all multi-statement sql functionss are serialized 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 5933a34a18 Use window.log in browser context, turn on console eslint rule 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 3a2582a087 Permissions: 'return callback(true)' instead of 'return true' 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 4415293100 Make all OS menus localizable
Turns out that Electron is not localizing the 'role' elements like we
expected would happen.
7 years ago
Scott Nonnenberg 7c3325f55e File protocol filter: log when non-absolute path is rejected 7 years ago
Scott Nonnenberg beb65b14c0 Deny all permissions we don't actually need 7 years ago
Scott Nonnenberg eec61f5289 Fine-tune file protocol filter 7 years ago
Scott Nonnenberg 06b0544bbe Hardening: normalize on-disk attachment paths before save/load 7 years ago
Scott Nonnenberg 53a471b2b1 Expand set of blocked URI schemes 7 years ago
Scott Nonnenberg e2d044e02b Filter file scheme; disable http, https and ftp entirely 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
Daniel Gasienica f56dc09d01 Add `getAbsoluteAttachmentPath` 7 years ago
Daniel Gasienica 394d2f0bff Fix type signature 7 years ago
Daniel Gasienica 24f4ad53bc Use single quotes for identifiers 7 years ago
Daniel Gasienica 5a6668e677 Add `Attachments.createWriteForExisting`
This function lets us choose where to write attachment to instead of picking
random name.
7 years ago
Daniel Gasienica efd673083d Rename `writeAttachmentData` to `writeNewAttachmentData` 7 years ago
Daniel Gasienica 36771a2dab Prefer double quotes over backticks for identifiers 7 years ago
Daniel Gasienica 8474f3cf7f Use `create*` prefix to clarify curried functions 7 years ago
Daniel Gasienica d9be6a0f94 Destructure Lodash `require`s 7 years ago
Daniel Gasienica add5d4ab0b Prevent macOS Spotlight indexing of attachments folder
See: https://apple.stackexchange.com/a/92785
7 years ago
Daniel Gasienica 10afcf1bb0 Add `Attachments.deleteData` 7 years ago
Daniel Gasienica 1c8123ff1a Move `writeAttachmentData` into `Attachments`
Encapsulates all attachment operations that require Node.js / Electron APIs,
e.g. file system access.
7 years ago
Daniel Gasienica 6355c54114 Return relative path from `writeAttachmentData`
This will make our app more robust to changes in location on the file system.
7 years ago
Daniel Gasienica 1262d1d696 Shorten prefix to 2 characters
Using 2 hex characters [0-9a-f] will give us 16 * 16 = 256 root folders which
seems more manageable than 4096 (16^3). Assuming a user has 10,000 attachments,
they should roughly distribute at ~40 per folder with prefix length 2 rather
than ~2.5 per folder with a prefix of 3.
7 years ago
Daniel Gasienica e0428355be Wire up `writeAttachment` 7 years ago
Daniel Gasienica 8a94ca5c42 🎨 Use `Buffer.from` 7 years ago
Daniel Gasienica 1283c77518 Switch from hashed to random attachment file names
Using hashes, we get the benefit of deduplication but if a user receives two
messages with the same attachment, deleting one would delete it for both since
they are only stored once. To avoid the complexity of tracking number of
references, we simply generate random file names similar to iMessage on MacOS
(?) and Signal Android.
7 years ago
Daniel Gasienica d9de6dacba Add `writeAttachmentData` module 7 years ago
Scott Nonnenberg 2373840df8
Use proper logging if error pops when deleting all logs 7 years ago
Scott Nonnenberg 928906e0f3
Enable deletion of all logs on disk via IPC 7 years ago
Daniel Gasienica 1e2cd3ae1f Rename ‘File a Bug’ to ‘Report an Issue’
This makes it more consistent with ‘Report an issue’ under View > Debug Log.

Not using ellipsis as menu item doesn’t require user confirmation:
https://stackoverflow.com/a/637708
7 years ago
Daniel Gasienica 40ee88ead3
Remove ‘Ctrl+,’ keyboard shortcut on Windows & Linux (#2099) 7 years ago
Daniel Gasienica 3df22026ab UX Improvements: Global Menu & Copy Changes (#2078)
- [x] Removed ‘Restart Signal’ global menu item
- [x] Change _Click to create contact…_ to _Start conversation…_
- [x] Move global menu (top-left kebab) into OS menu bar,
      i.e. **Settings** > **Preferences…**
- [x] Add tests for OS menu bar templates
- [x] Fix bug with **Window** menu on macOS when showing setup options
- [x] Use _Title Case_ for all OS menu bar menu items for consistency

commit dedf7c9af0de90980388559659df0d92a77b864c
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:53:42 2018 -0500

    Use ‘Title Case’ to be consistent with OS menus

    References:
    - Apple:
        - https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/#menu-and-menu-item-titles
        - https://developer.apple.com/library/content/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html#//apple_ref/doc/uid/TP40013782-CH6-SW1
    - https://titlecaseconverter.com/

commit 3286da29b334bd4526c587b17707c2f230cec8f5
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:36:50 2018 -0500

    Fix bug for macOS ‘Window’ menu with setup options

commit 236a23d1eafe2a16073394a27b9013298b682a25
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:27:46 2018 -0500

    Test menus with included setup options

commit c5d5f5abb8d7f52d6a4aa182a86c92f7ddceade0
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:10:27 2018 -0500

    Move settings (‘Preferences’) into OS-level menu

    This reduces our reliance on custom UI until we have more design resources.

commit 027803f8f4983cffa443f0beff1854dcf541689b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:02:56 2018 -0500

    Prepare tests for menu with/without included setup

commit 9e2f006924b85eb249a8a1261c1c4dd1a706afa6
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 15:55:46 2018 -0500

    Destructure `includeSetup`

commit 6b2a1eccdf724fd722e58415d2700da73942d9e8
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 15:55:14 2018 -0500

    🔤 `createTemplate` `options`

commit c2fecba34b153fed106f414ed3347d46299f6fe5
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:49:55 2018 -0500

    Test menu for Windows and Linux

commit 60281b1af9ad1f022cdbc40711ebd0b688a7355d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:40:39 2018 -0500

    Add `yarn run test-app` command

commit 1a0489919c0a97b03fe88196260fef894fb3d9e4
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:40:29 2018 -0500

    Add test for `SignalMenu.createTemplate` on macOS

commit 9638b86c0f00f231e44562a5aa01626f0e5fdd8b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:34:46 2018 -0500

    Make `createTemplate` pure

    Extracting `options.platform` makes it easier to test without having to
    stub `process.platform`.

commit 9c26404892d7c9a7bd0199a9e8367a165a3b365c
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:47:39 2018 -0500

    Extract `locale.load` `appLocale` & `logger` for testability

    This allows us to run this code in a non-Electron environment, e.g. Node.js
    Mocha test suite.

commit 710b22438df25c8d5e8431845a035c55ec8fc0b7
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:46:13 2018 -0500

    🔤 npm scripts

commit 9ae22937fbce078f91443023b560b3c0468c1380
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:45:30 2018 -0500

    Use 2-space indendation for `app` module tests

commit 22c26baf6159bd2e1f5a787c10e2260f09395329
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:22:55 2018 -0500

    Prefer named exports

commit 9c9526195266ac77ac2ca04135a1e675f617dfd2
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:22:46 2018 -0500

    🔤 Organize `require`s

commit 2f144d24d9e9a9ef72fe418996e3c911b304b00a
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:13:50 2018 -0500

    Remove existing global hamburger menu

    This will be replaced by a OS-level ‘Preferences’ menu.

commit f5adb374cb742e5f319ececda8ab6d8adee88d7e
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 18:40:54 2018 -0500

    Remove ‘Restart Signal’ menu from settings

    Apparently, this is a remnant from the Chrome web application.

commit d7a206bc8e67ef44022085e804ca040ed1b219f7
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 17:16:49 2018 -0500

    Clarify label for starting a new conversation

    When user a enters a number that is not a contact, we prompt them to start a new
    conversation.

commit 715a4064367fb61d85c1a4f9d48261b2ce002435
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 16:46:26 2018 -0500

    Use ‘Enter name or number’ as prompt’

    This follows implementation of Android and recommendation from Alissa.
7 years ago