Scott Nonnenberg
9db42bc4c6
sql_channel: Ensure we save reference to MultipleQueue to start
2019-09-24 13:43:08 -07:00
Scott Nonnenberg
2a7cfd9776
Startup: integrity_check in addition to cipher_integrity_check
2019-09-24 13:43:08 -07:00
Scott Nonnenberg
e39c6e5321
Don't search conversations if searching within conversation
2019-09-05 08:59:21 -07:00
Scott Nonnenberg
85e01ad037
SQL channel: Only serialize data access functions which need it
2019-09-03 16:10:32 -04:00
Scott Nonnenberg
edf66f7552
Migrate from schema_version to user_version
2019-08-21 14:55:12 -07:00
Scott Nonnenberg
d3d2b0ec52
Use curve functions from native module
2019-08-21 14:55:12 -07:00
Scott Nonnenberg
e29eee4583
Update Electron to 6.0.1, SQLCipher to 4.2.0
2019-08-21 14:55:12 -07:00
Scott Nonnenberg
b6da081d05
Only log to console if we're on a TTY stdout interface
2019-08-21 14:55:12 -07:00
Scott Nonnenberg
c39d5a811a
Full-text search within conversation
2019-08-21 14:52:30 -07:00
Scott Nonnenberg
6292019d30
Virtualize search results - only render what's visible
2019-08-21 14:52:30 -07:00
Scott Nonnenberg
9d4f2afa5a
Persist drafts
2019-08-21 14:52:30 -07:00
Scott Nonnenberg
5ebd8bc690
Virtualize Messages List - only render what's visible
2019-08-21 14:52:30 -07:00
Scott Nonnenberg
d42eb2126e
Changes to View Once
2019-08-05 16:23:47 -07:00
Scott Nonnenberg
cb9ba0fe7f
Re-register support for sealed sender when a device is re-linked
2019-08-05 16:23:47 -07:00
Scott Nonnenberg
e62a1a7812
Receive support for View Once photos
2019-07-17 11:29:51 -07:00
Scott Nonnenberg
48691a2558
Clean up transaction handling in sql.js
2019-06-24 14:43:45 -04:00
Scott Nonnenberg
ca1e6c3ccd
To prevent crashes, catch thrown error from tray.setIcon
2019-06-10 17:41:05 -04:00
Scott Nonnenberg
67c4b0885d
Move emojis.shortName from STRING to TEXT to avoid coercion
2019-05-30 12:43:18 -07:00
Ken Powers
be5d0837f8
Support additional sticker states
...
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-29 11:01:32 -07:00
Ken Powers
0e9d549cf3
Fuzzy-Searchable Emoji Picker
2019-05-24 17:03:13 -07:00
Ken Powers
29de50c12a
Stickers
...
Co-authored-by: scott@signal.org
Co-authored-by: ken@signal.org
2019-05-16 16:10:37 -07:00
Botond Horvath
ffb0b5a27b
Hide from Dock on macOS when the tray icon is enabled and the window is closed
2019-05-06 12:46:26 -04:00
Scott Nonnenberg
6cf4f19317
Add a new env variable to the hardening list
2019-04-16 14:35:16 -07:00
Scott Nonnenberg
f92769db8c
Windows: Return real path, not lowercase path
2019-04-10 13:57:27 -07:00
Scott Nonnenberg
be86169a8a
Windows: Do our file filtration with case-insensitive checks
2019-04-10 12:37:41 -07:00
Jonathan Canfield
97b26778b3
Remap zoom to Command+= on macOS ( #3296 )
2019-04-08 10:17:35 -07:00
Scott Nonnenberg
c8ea2e9463
Download and install updates without the help of electron-updater
2019-04-05 17:18:37 -07:00
Scott Nonnenberg
6ef0eb7284
When closing database, be resilient to null db
2019-03-28 17:23:09 -07:00
Scott Nonnenberg
b3ac1373fa
Move left pane entirely to React
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
ca5132f712
Present 'database error' dialog in more situations
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
ae161c6cf6
Update to Electron 4.x
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
e4b0901620
If logs are malformed on startup, delete them all and start over
2019-03-12 17:44:14 -07:00
Scott Nonnenberg
6bcd434585
Prevent crash when tray icon no longer available (due to apt)
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
5165eb3bd4
On database error: show popup, allow user to delete and relaunch
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
3fb6ab295f
Debug log optimizations and improvements
2019-02-20 16:51:30 -08:00
Scott Nonnenberg
5b54c9554e
Remove groups table, conversation is single source of truth
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
041fe4be05
Remove JSON column and Backbone Model for unprocessed
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
9c540ab977
Add cache support to Signal Protocol Store
2019-02-13 16:04:58 -08:00
Scott Nonnenberg
1d2c3ae23c
Download attachments in separate queue from message processing
2019-02-12 16:34:21 -08:00
Scott Nonnenberg
462fa712bc
Show members: Pull conversation from group table
2019-02-11 18:32:05 -08:00
Scott Nonnenberg
0ec0ae9dac
Protect against unhandled promises when calling checkForUpdates
2019-02-08 11:54:22 -08:00
Scott Nonnenberg
813924685e
Link Previews
2019-01-29 13:53:14 -08:00
Scott Nonnenberg
92c2a0f996
Data infrastructure work
2019-01-14 17:40:31 -08:00
Scott Nonnenberg
e4babdaef0
Updates to backup infrastructure
2019-01-04 12:21:26 -08:00
Scott Nonnenberg
775e31c854
Lint fixes after recent PRs
2019-01-03 13:44:42 -08:00
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
2019-01-02 14:42:31 -08:00
Scott Nonnenberg
68af1ae1ea
Show dialog if application fails to start up properly
2018-11-26 15:26:22 -08:00
Scott Nonnenberg
11fdf22881
Change sessions.id to a TEXT field to prevent type coercion
2018-11-26 15:22:55 -08:00
Scott Nonnenberg
fb670ad6b9
Remove IndexedDB files after removing IndexedDB database
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
9f647f00d8
A couple fixes for the data layer, legacy message upgrade/migrate
2018-11-01 17:00:24 -07:00
Scott Nonnenberg
f11dd18536
Be resilient to malformed ephemeral.json
2018-11-01 09:34:24 -07:00
Scott Nonnenberg
1755e0adfd
Move all remaining stores to SQLCipher
2018-10-31 17:36:51 -07:00
Scott Nonnenberg
a7d78c0e9b
Sealed Sender support
...
https://signal.org/blog/sealed-sender/
2018-10-29 14:49:18 -07:00
Scott Nonnenberg
2cfbfe477a
Better handle large numbers of messages in cache on startup
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
cd60bdd08a
Move conversations to SQLCipher
2018-10-01 18:18:37 -07:00
Scott Nonnenberg
48d937b66a
Follow symlinks on target file path as well as user/config paths
2018-09-20 15:30:26 -07:00
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.
2018-08-29 10:40:16 -07:00
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.
2018-08-16 17:01:32 -07:00
Scott Nonnenberg
9f920aa35b
Re-enable orphaned attachment cleanup
2018-08-15 17:45:24 -07:00
Scott Nonnenberg
a247ffe5cf
When iOS device has been linked, use iOS color scheme
2018-08-15 11:22:45 -07:00
Scott Nonnenberg
fba8e8d479
Add logging to help diagnose protocol handler false positives
2018-08-14 13:06:59 -07:00
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
2018-08-09 10:11:12 -07:00
Scott Nonnenberg
727925a266
Clean up old messages, better handle errors from sending
2018-08-07 18:29:33 -07:00
Scott Nonnenberg
6e193456f9
Eliminate orphaned external message files on startup
...
Attachments, visual attachment thumbnails, video attachment screenshots
Quote thumbnails
Contact avatars
2018-08-06 18:08:10 -07:00
Scott Nonnenberg
c56ea55e36
Fix duplicate message detection
2018-08-02 17:32:51 -07:00
Scott Nonnenberg
4d5894bf04
Ensure that all multi-statement sql functionss are serialized
2018-07-31 19:29:51 -07:00
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
2018-07-31 17:08:45 -07:00
Scott Nonnenberg
5933a34a18
Use window.log in browser context, turn on console eslint rule
2018-07-21 14:52:43 -07:00
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
2018-07-17 15:58:07 -07:00
Scott Nonnenberg
3a2582a087
Permissions: 'return callback(true)' instead of 'return true'
2018-07-12 14:52:34 -07:00
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
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
4415293100
Make all OS menus localizable
...
Turns out that Electron is not localizing the 'role' elements like we
expected would happen.
2018-07-03 16:04:21 -07:00
Scott Nonnenberg
7c3325f55e
File protocol filter: log when non-absolute path is rejected
2018-05-31 13:25:45 -07:00
Scott Nonnenberg
beb65b14c0
Deny all permissions we don't actually need
2018-05-31 13:25:45 -07:00
Scott Nonnenberg
eec61f5289
Fine-tune file protocol filter
2018-05-31 13:25:45 -07:00
Scott Nonnenberg
06b0544bbe
Hardening: normalize on-disk attachment paths before save/load
2018-05-31 13:25:45 -07:00
Scott Nonnenberg
53a471b2b1
Expand set of blocked URI schemes
2018-05-23 16:26:48 -07:00
Scott Nonnenberg
e2d044e02b
Filter file scheme; disable http, https and ftp entirely
2018-05-23 16:26:40 -07:00
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.
2018-05-02 13:40:57 -07:00
Daniel Gasienica
f56dc09d01
Add getAbsoluteAttachmentPath
2018-04-27 16:31:43 -04:00
Daniel Gasienica
394d2f0bff
Fix type signature
2018-04-27 16:31:43 -04:00
Daniel Gasienica
24f4ad53bc
Use single quotes for identifiers
2018-04-11 15:54:32 -04:00
Daniel Gasienica
5a6668e677
Add Attachments.createWriteForExisting
...
This function lets us choose where to write attachment to instead of picking
random name.
2018-04-04 18:41:50 -04:00
Daniel Gasienica
efd673083d
Rename writeAttachmentData
to writeNewAttachmentData
2018-04-04 18:41:50 -04:00
Daniel Gasienica
36771a2dab
Prefer double quotes over backticks for identifiers
2018-04-04 18:41:50 -04:00
Daniel Gasienica
8474f3cf7f
Use create*
prefix to clarify curried functions
2018-04-03 15:25:24 -04:00
Daniel Gasienica
d9be6a0f94
Destructure Lodash require
s
2018-04-02 15:12:04 -04:00
Daniel Gasienica
add5d4ab0b
Prevent macOS Spotlight indexing of attachments folder
...
See: https://apple.stackexchange.com/a/92785
2018-03-26 16:38:34 -04:00
Daniel Gasienica
10afcf1bb0
Add Attachments.deleteData
2018-03-26 16:38:34 -04:00
Daniel Gasienica
1c8123ff1a
Move writeAttachmentData
into Attachments
...
Encapsulates all attachment operations that require Node.js / Electron APIs,
e.g. file system access.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
6355c54114
Return relative path from writeAttachmentData
...
This will make our app more robust to changes in location on the file system.
2018-03-26 16:38:34 -04:00
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.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
e0428355be
Wire up writeAttachment
2018-03-26 16:38:34 -04:00
Daniel Gasienica
8a94ca5c42
🎨 Use Buffer.from
2018-03-26 16:38:34 -04:00
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.
2018-03-26 16:38:34 -04:00
Daniel Gasienica
d9de6dacba
Add writeAttachmentData
module
2018-03-26 16:38:34 -04:00
Scott Nonnenberg
2373840df8
Use proper logging if error pops when deleting all logs
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
928906e0f3
Enable deletion of all logs on disk via IPC
2018-03-14 14:42:13 -07:00
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
2018-03-08 16:21:27 -05:00
Daniel Gasienica
40ee88ead3
Remove ‘Ctrl+,’ keyboard shortcut on Windows & Linux ( #2099 )
2018-03-02 16:46:04 -05:00