Commit Graph

285 Commits (ad06b947086d45dd612ca12677c9da5255abd705)

Author SHA1 Message Date
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. 6 years ago
Beaudan 415d0858e8 Allow spaces in password 6 years ago
sachaaaaa a1255dd31e
Merge pull request #77 from Mikunj/password-protection
Password protection
6 years ago
Mikunj e1aba93aea Merge signal 1.18.1 changes. 6 years ago
Beaudan Campbell-Brown 1303603db9
Apply suggestions from code review
Co-Authored-By: Mikunj <Mikunj@users.noreply.github.com>
6 years ago
Mikunj 9e995bde6c Review fixes.
Updated tests.
6 years ago
Mikunj 0b87f13699 Added password dialog view. 6 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.
6 years ago
Mikunj 7a96b8446a Rename launcherView to passwordView. 6 years ago
Mikunj 6620244d03 Show main window on correct password; 6 years ago
Mikunj 6b9764e6c6 Added launcher view. 6 years ago
Mikunj 08f9101fec Hide new contact view unless we have no matches. 6 years ago
Beaudan 051e4dd22c XAnother big refactor to tie conversation UI logic to the friendRequestStatus variable 6 years ago
Mikunj 75bbf374f5 Default icon background to transparent. 6 years ago
Mikunj d60f147659 replaced jdenticon with identicon.js.
Cleanup any unused images.
6 years ago
Mikunj d75dee4fef Fix up new line. 6 years ago
Mikunj 961eb53915 Auto-generate profile images on conversations. 6 years ago
sachaaaaa 248c9fb4e9 Ensure the contact prekey returned is always the latest available 6 years ago
Scott Nonnenberg 68af1ae1ea Show dialog if application fails to start up properly 6 years ago
Scott Nonnenberg 11fdf22881 Change sessions.id to a TEXT field to prevent type coercion 6 years ago
Scott Nonnenberg bde1462159 Change sessions.id to a TEXT field to prevent type coercion 6 years ago
Beaudan b65d6a6d2c Refactor friend request status to use a state enum variable 6 years ago
Mikunj 9fd822a7e3 Remove preKeys on friend request decline. 6 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
Daniel Gasienica 3c15e01630
Auto-fixes: UX Improvements (#2077)
* Whitelist `conversation_search_view` for ESLint

* Autofix `conversation_search_view`

* Remove Vim modeline

* Whitelist globals for ESLint

* Ignore unnamed module IIFE

* Whitelist legacy `then` expressions

* Extract `isSearchable`

Fixes line length violations.

* Remove unused constant

* Remove unnecessary escaping for parens

Suggested by ESLint `no-useless-escape` rule.

* 🎨 Organize file list

* Whitelist `inbox_view` for ESLint

* Autofix `inbox_view`

* Remove Vim modeline

* Add function names

* Whitelist globals for ESLint

* Fix lint errors

* 🔤 `options` properties

* 🎨 Improve `then` chain formatting

* Consider `js/*.js` files as scripts not modules

Forces use of 'use strict' directive per ESLint.

* Ignore unnamed module IIFE

* Fix function argument line breaks
7 years ago
Scott Nonnenberg c87a035f1a
Show View -> Debug on OSX, ensure Debug Log is visible (#2089)
* Ensure debug log is visible during registration/import

* Restore the proper View menu on MacOSX
7 years ago