Commit graph

490 commits

Author SHA1 Message Date
Fedor Indutny
7288b07e0a
Add comments to titlebar-related variables 2022-07-28 09:35:09 -07:00
Scott Nonnenberg
1bb91758e6
Spell check: Restore english region support 2022-07-15 15:37:19 -07:00
Scott Nonnenberg
3cd77b0d53
main.ts: Fix main title bar check 2022-07-15 14:50:24 -07:00
Scott Nonnenberg
4b8a37f519
Fix missing titlebar on Windows 2022-07-14 12:07:45 -07:00
Fedor Indutny
f92be05b15
Titlebar fixes 2022-07-05 09:44:53 -07:00
Fedor Indutny
d8e32d39ff
Don't save window stats after shutdown request 2022-06-30 14:33:58 -07:00
Fedor Indutny
1b6cd3d16b
Handle render-process-gone 2022-06-30 12:00:40 -07:00
Scott Nonnenberg
054e443071
Spellcheck: Use full locale, otherwise all which match base 2022-06-27 13:44:13 -07:00
Fedor Indutny
f9fb09b734
Fix titlebar button height 2022-06-23 17:40:45 -07:00
Fedor Indutny
96b864d6a9
Monkey-patch os.hostname on Windows 7 2022-06-23 12:15:27 -07:00
Fedor Indutny
6ad091bfe3
Shift titlebar on Windows 11 2022-06-23 08:40:36 -07:00
Fedor Indutny
9407654262
Counteract zoom-level changes in custom titlebar 2022-06-20 11:26:31 -07:00
Fedor Indutny
dacbee711f
Polyfill os.hostname() on Windows 7 2022-06-20 10:43:15 -07:00
Fedor Indutny
8b32811440
Add extra pixel to titlebar on Windows 11 2022-06-15 11:21:03 -07:00
Scott Nonnenberg
3b2000a0ba
Force 'password-store' to 'basic' on all platforms 2022-06-15 09:40:01 -07:00
Fedor Indutny
253e050262
CDSI Support 2022-06-14 18:15:33 -07:00
Scott Nonnenberg
2464e0a9c1
Convert signal.js and preload.js to Typescript 2022-06-13 14:39:35 -07:00
Fedor Indutny
5634601554
Use patched frameless-titlebar on Windows 2022-06-08 15:00:32 -07:00
Evan Hahn
f50a6abe36
Remove unused eslint-disables 2022-06-03 14:07:51 -07:00
Fedor Indutny
ecdc583f2a
Add debug log url when submitting it to Support 2022-06-02 16:24:35 -07:00
Scott Nonnenberg
4f2c868b1e
Append 'password-store=basic' switch on startup 2022-05-26 17:38:33 -07:00
Scott Nonnenberg
ce7a2ded14
Make that theme values are in the expected range 2022-05-25 15:19:16 -07:00
Scott Nonnenberg
68f705e6ad
Reset MessageReceiver processed count after reporting it 2022-05-25 11:15:09 -07:00
Fedor Indutny
bdc4f53e91
Disable 2d canvas acceleration 2022-05-12 12:41:37 -07:00
Fedor Indutny
b30c7f9c46
Dark theme loading screen 2022-05-11 15:58:14 -07:00
Scott Nonnenberg
364d690cf3
On database error: Escape copies error and quits, additional logging 2022-05-03 12:06:47 -07:00
Fedor Indutny
99de97a099
Update electron to 18.1.0 2022-04-27 14:15:57 -07:00
Fedor Indutny
5d65e3b36c
Revert update to electron 18.1.0
* Revert "Update electron-builder to 23.0.8"

This reverts commit c8842d94ec.

* Revert "Update to electron@18.1.0"

This reverts commit 5f3a62cbb6.
2022-04-26 18:15:43 -07:00
Fedor Indutny
b7f0ec61b9
Resolve attachments folder before using it 2022-04-26 17:31:01 -07:00
Fedor Indutny
5f3a62cbb6
Update to electron@18.1.0 2022-04-25 13:58:01 -07:00
Josh Perez
b550f64a4b Merge signalapp/Signal-Desktop#5633 2022-04-14 13:04:19 -04:00
Scott Nonnenberg
9e54f55c22
Ensure that waitForAll functions catch and log thrown errors 2022-04-11 10:53:57 -07:00
Scott Nonnenberg
bddd55d574
Challenge: Save conversationIds and start queues 2022-03-21 14:19:37 -07:00
Fedor Indutny
4123c12303
Drop unused downloadsPath 2022-03-11 14:49:16 -08:00
Fedor Indutny
0c8c332805
Use new CDS implementation in staging 2022-03-09 11:28:40 -08:00
Fedor Indutny
4f53a41340
Enable background throttling for beta users 2022-03-07 15:21:41 -08:00
Josh Perez
91119a261a
Ignore hardware media keys 2022-03-02 10:57:23 -06:00
Evan Hahn
052a8e65e2
Add "clean up timer if necessary" utility 2022-02-25 10:37:15 -08:00
Fedor Indutny
6281d52ec6
Storage service tests and benches in ts/test-mock 2022-02-11 14:32:51 -08:00
Fedor Indutny
0174687542
Use esbuild 2022-02-11 13:38:52 -08:00
Evan Hahn
60d348e7cb
Open all Signal links in app 2022-02-02 10:29:01 -08:00
Evan Hahn
1c43e7501c
Simplify spellcheck download URL, disable spellcheck in most windows 2022-01-28 16:27:18 -06:00
Fedor Indutny
0cf28344a6
Enable background throttling for alpha users 2022-01-26 12:17:46 -08:00
Fedor Indutny
3aa488c3d5
Avoid calling tray.destroy() when quitting 2022-01-24 16:18:53 -08:00
Josh Perez
7a502ea776
Remove env vars 2022-01-24 12:37:24 -08:00
Fedor Indutny
1a313b88f8
Fix crash report location on Windows 2022-01-19 17:50:16 -08:00
Fedor Indutny
145d9287d9
Add tentative prefix to crash report uploads 2022-01-14 13:50:45 -08:00
Fedor Indutny
7486312e4e
Start worker threads after second instance check 2022-01-14 10:23:46 -06:00
Fedor Indutny
91f1b62bc7
Detect startup after recent crashes 2022-01-11 12:02:46 -08:00
Evan Hahn
d9b951bfcb
Update base config logging, removal, and tests 2022-01-11 11:12:55 -08:00
Josh Perez
5a3c9c7332
Use app.getLocale to setup spellchecker locale 2022-01-11 11:05:22 -08:00
Evan Hahn
206f461370
Move menu tests to TypeScript 2022-01-11 09:28:04 -08:00
Evan Hahn
09af7eeece
Add workaround for fullscreen debug log causing unresponsive app 2022-01-07 09:30:47 -06:00
Scott Nonnenberg
c72c5a0bdc
Protocol filter: Support home path mapped to UNC share 2022-01-06 09:53:29 -08:00
Fedor Indutny
46ddcc50f9
Update electron to 16.0.6 2022-01-03 17:43:42 -08:00
Fedor Indutny
9f15f26828
Support running test-electron manually 2021-12-17 15:12:42 -08:00
Evan Hahn
3fa911598b
Use Signal's spellcheck dictionary files 2021-12-17 14:24:54 -08:00
Fedor Indutny
fed84be0b6
Fix crashes when playing media on legacy OS 2021-12-10 15:27:42 -08:00
Evan Hahn
0e3d12c457
Prevent display sleep while on a call 2021-12-10 16:53:10 -06:00
Fedor Indutny
bbc13d058e
Update electron to 16.0.4 2021-12-09 09:06:04 +01:00
Josh Perez
69edaeabfb
Do not show window if launched as hidden 2021-12-06 18:19:47 +01:00
Josh Perez
27f4dc6177
Adjusts app min width to account for larger left pane 2021-12-01 12:19:10 -06:00
Fedor Indutny
7c1ce3366d
Move StandaloneRegistration to React 2021-11-30 09:51:53 -08:00
Jordan Rose
7edf3763a8
Hang up any active calls when quitting 2021-11-30 09:36:20 -06:00
Fedor Indutny
599c7afe8b
Initialize locale earlier to avoid races 2021-11-29 10:04:14 -08:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Fedor Indutny
631e36dc0a
Use invoke/handle in settingsChannel 2021-11-09 16:56:56 -08:00
David Sanders
50dc534164 Simplify permissions popup IPC 2021-11-09 07:35:31 -08:00
Fedor Indutny
409bf1fc82
WebSocket API for CDS 2021-11-08 15:32:31 -08:00
Fedor Indutny
519ca05911
Update electron to 15.3.0 2021-11-08 22:43:37 +01:00
Evan Hahn
f647c4e053
Display user badges 2021-11-02 16:01:13 -07:00
Fedor Indutny
76d8b5e375
Get rid of electron.remote 2021-10-27 10:54:16 -07:00
David Sanders
79b3b6408e Fix microphone permission checking for audio recording
See [#5580][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5580
2021-10-27 11:16:09 -05:00
Evan Hahn
74fde10ff5
Prefer import type when importing types 2021-10-26 14:15:33 -05:00
Scott Nonnenberg
be862afd1a
base_config: Don't throw if loaded config file is empty 2021-10-25 14:41:44 -05:00
Scott Nonnenberg
191bfee18c
Show What's New dialog in app via Help -> Go to release notes 2021-10-22 17:41:45 -07:00
Fedor Indutny
2c51c3fe84
Use console logger when regular is not available 2021-10-21 12:49:53 -07:00
Scott Nonnenberg
2e9eaa855a
main/second-instance: If logger isn't ready, skip further checks 2021-10-20 15:40:12 -05:00
Fedor Indutny
50c9b1bf7f
Cache system-tray-setting in ephemeral config 2021-10-20 14:56:49 -05:00
Evan Hahn
0b57bcd36c
DRY out path getters 2021-10-19 16:24:03 -07:00
Josh Perez
d4e2911450
Resize debug log, rename save button 2021-10-15 11:11:59 -07:00
Evan Hahn
fe98f90d70
Only enable background throttling in development 2021-10-14 11:09:30 -07:00
Evan Hahn
940f009987
Bullet-proof tray icon against nonexistent icon file 2021-10-07 13:09:56 -07:00
Josh Perez
fa66ddde0f
Context isolation for the debug log window 2021-10-06 09:16:51 -07:00
Scott Nonnenberg
bd380086a4
Send related emoji along with Sticker, fix SendMessage types 2021-10-05 17:10:08 -05:00
Scott Nonnenberg
9a1430a460
Typescriptify main.js 2021-10-01 13:49:59 -05:00
Fedor Indutny
4ef0bf96cc
Uint8Array migration 2021-09-23 17:49:05 -07:00
Josh Perez
829e42ca6e
Move i18n setup to TypeScript 2021-09-17 20:30:08 -04:00
Josh Perez
91af0dad78
Faster preferences window 2021-08-18 13:08:14 -07:00
Fedor Indutny
61b7eebfcf
Modernize Benchmarks CI 2021-08-11 12:29:07 -07:00
Scott Nonnenberg
7ce89414bf
Support for alpha build channel 2021-08-06 14:21:01 -07:00
Josh Perez
12d2b1bf7c
Avatar defaults and colors 2021-08-05 20:17:05 -04:00
Fedor Indutny
c3bdf3d411
Show lightbox for GIFs 2021-07-14 16:39:52 -07:00
Quentin Hibon
3779147987 Toggle window visibility on tray icon click
Fixes #3045.
2021-07-02 16:12:54 +02:00
Fedor Indutny
759ced3417
Updater debug utility 2021-06-30 14:27:18 -07:00
Evan Hahn
8b30fc17cd
Officially support the system tray on Linux, in beta only 2021-06-29 14:29:40 -05:00
Evan Hahn
af1f2ea449
Officially support the system tray on Windows 2021-06-29 12:18:03 -05:00
Scott Nonnenberg
24960d481e
Move all files under /app to typescript 2021-06-18 10:04:27 -07:00
Jordan Rose
0615e5528f
Improve menu bar on macOS 2021-06-14 12:01:49 -07:00
Fedor Indutny
33595646c1
Add user path to logging exceptions 2021-06-01 11:15:23 -07:00
Fedor Indutny
0e19c17160
Initialize IPC channels early 2021-06-01 11:06:38 -07:00
Josh Perez
ceffc2380c Add screensharing behind a feature flag 2021-05-20 17:37:19 -07:00
Evan Hahn
18abe93022 Remove many instances of deprecated url.parse 2021-05-20 17:37:07 -07:00
Fedor Indutny
37c8c1727f Types, better-sqlite3, and worker_threads for our sqlite 2021-04-08 23:53:18 -04:00
Alex Hirsch
901a54b149
Tray: Use 32x32 icon on Windows
See [#5072][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5072
2021-04-02 15:29:04 -05:00
Fedor Indutny
1934120e46 Disable Dev Tools in production releases
`--enable-dev-tools` will bring it back.
2021-03-19 16:53:51 -04:00
Evan Hahn
3306c82992 Fix "URI malformed" crashes on Windows 2021-02-22 14:01:40 -08:00
Scott Nonnenberg
2f90d6aca9
Manually manage full-text search table 2021-02-04 12:46:55 -08:00
Evan Hahn
bc37b5c907
Add an assertion when updating conversations; update cleanData 2021-02-04 11:54:03 -08:00
Evan Hahn
a8787e7c9e
Convert logging infrastructure to TypeScript 2021-01-27 13:13:33 -08:00
Evan Hahn
f404904a49 Convert dock_icon.js to TypeScript 2021-01-25 18:29:01 -08:00
Evan Hahn
a2f285d243
Put group calling behind a remote feature flag 2020-12-07 14:35:14 -06:00
Brandon Outlaw
2013378136
MacOS – Add shortcut for Window -> Show (#4632) 2020-11-10 16:30:56 -08:00
Evan Hahn
8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Vin Howe
526ab4fe29
Add menu option for copying supported images in lightbox (#4614) 2020-11-02 16:47:46 -08:00
hashes4merkle
b8dbd5970d
Fixing spelling errors (#4615) 2020-11-02 16:46:49 -08:00
jimio-signal
1c057323ba Point to support flow instead of github 2020-10-26 15:48:44 -07:00
Scott Nonnenberg
bc3b61db1d Add p-queue timeouts; fix search crash; improve promise rejection logging 2020-09-21 15:42:51 -04:00
Evan Hahn
6d2e994f9f Windows: mark downloads as "from the internet" 2020-09-21 15:42:50 -04:00
Chris Svenningsen
8a2c17f65f Apply new ESLint rules to legacy code 2020-09-09 17:34:57 -07:00
Chris Svenningsen
5b1536cc02 Initial move towards new ESLint config supporting TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-09-01 17:11:16 -04:00
Evan Hahn
f8fc23a7a3 Improve nested path detection across app 2020-08-28 15:42:25 -04:00
Peter Thatcher
d3a27a6442 Calling support 2020-07-30 13:08:47 -07:00
Scott Nonnenberg
2529c7f9e3 Ensure that 'Join the Beta' menu item shows in production 2020-07-27 14:39:19 -07:00
Ken Powers
b842b69660 Help Menu changes 2020-06-23 17:30:33 -07:00
Scott Nonnenberg
6b094e1514 Refactor: Move data-access code to Typescript w/ shared interface 2020-04-15 14:45:11 -07:00
Ken Powers
14b11041ea
Spellcheck: Fallback to all xx-YY locales when xx isn't available 2020-04-15 13:44:46 -07:00
Ken Powers
90130e3be0 Don't start Signal if DB version is greater than we expect 2020-04-06 17:12:16 -07:00
Ken Powers
750e50812c Introduce dialog for long database migrations 2020-03-25 16:47:42 -07:00
Ken Powers
4a8f5db0a4 Use Electron Spellchecker 2020-03-24 17:03:22 -07:00
Ken Powers
a90246cbe5 Passive UUID support
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-03-24 16:59:35 -07:00
Scott Nonnenberg
a840e2e5b1 Remove legacy import flow 2020-03-04 17:12:56 -08:00
Scott Nonnenberg
1726e1b77a
Fix windows fast-glob usage in lint-deps test task
* Introduce normalize-path wherever we use fastGlob

* CI: Update yarn version; install yarn via npm on windows

* Add more logging to Grunt file spectron usage

* Lock core.js to what it was resolving to before: 2.4.1

* test/index.html: Remove nonexistent test file

* test/index.html: Remove missing registration.js

* preload.js: Introduce client-side logging for load failures

* Gruntfile: Introduce better debuggability if prod test fails

* Reintroduce glob for searches inside asar
2020-02-26 17:53:39 -08:00
Ken Powers
8d9ccd3c0a
Ensure proper file permissions on startup
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2020-02-21 15:40:04 -08:00
Scott Nonnenberg
68ee557dcf
Update SQLCipher to 4.3.0 2020-02-19 16:11:06 -05:00
Josh Perez
afddc852cc
Add interpolation for fallback dialog messages 2020-02-13 10:14:08 -08:00
Scott Nonnenberg
3938eb9801
A set of fixes and upgrades
* writeToDownloads: Add missing await
* Remove window.isFocused() - not used anywhere!
* Update typescript, p-queue, make necessary changes to fix build
* Slow down sender certificate retries with no existing cert
* Slow down signed prekey refreshes when unlinked - 5s -> 5m
* Update protobufjs to 4.1.2
2020-02-07 14:37:04 -05:00
Scott Nonnenberg
55eff02872 Reintroduce file chooser dialog for every attachment save 2020-01-15 17:23:02 -05:00
Scott Nonnenberg
8a51ca9e71 Lint fix 2020-01-14 12:32:49 -08:00
Scott Nonnenberg
11266cb775 Handle both given and family name in decrypted profile name
* Decrypt given and family names from profile name string
* Handle both given and family name from decrypted profile name
* Ensure we properly handle profiles with no family name
2020-01-13 17:28:28 -05:00
Scott Nonnenberg
1bf9ca7233 Save attachments with macOS quarantine attribute
* Attachments: Always save file to downloads directory, show toast
* Add new build:dev command for casual builds
2020-01-09 14:57:43 -05:00
Ken Powers
0d3b390129 Upgrade Prettier 2020-01-08 09:44:54 -08:00
Tim Ruffing
016a0caf17 Improve query performance using explicit INDEXED BY (#3550) 2020-01-06 16:54:58 -08:00
Ken Powers
11d47a8eb9 Sticker Creator 2019-12-17 12:28:46 -08:00
Scott Nonnenberg
e9f08c3da9 Bugfixes for v1.29
* If focus was set to document.body during archive, focus left pane
* Shortcut Guide: Add space between text and shortcut highlight
* Ensure that draft attachment can be closed with click on X button
* Move to keyDown event for user idle checking
* Additional resiliency around avatars; check for them on on-disk
* Increase timeouts to preserve websocket connection
* On startup, be resilient to malformed JSON in log files
* Don't crash if shell.openExternal returns an error
* Whenever we request a contact/group sync, also request block list
* Avatar popup: Ensure styling is mouse- and keyboard-appropriate
* MainHeader: Create popperRoot on demand, not on mount
* CompositionInput: Disable default Ctrl-/ shortcut
* Update libphonenumber
2019-12-03 15:02:50 -05:00
Scott Nonnenberg
0876bf7ae7 Visual bug fixes for v1.29 2019-11-21 10:17:55 -08:00
Scott Nonnenberg
8194b2446b Move to CTRL+= for windows, remove the need for the shift 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
927a0677f1 Zoom In: Remove custom accelerator for windows/linux 2019-11-15 14:34:24 -08:00
Scott Nonnenberg
20a892247f Keyboard shortcuts and accessibility 2019-11-13 16:53:42 -08:00
Scott Nonnenberg
d9b96a415b Eliminate unnecessary param in getTapToViewMessagesNeedingErase 2019-10-11 16:00:40 -07:00
Scott Nonnenberg
c81c25bb85 Update colors, icons, and fonts 2019-10-10 14:56:14 -07:00
Scott Nonnenberg
0c09f9620f Improve message download performance 2019-10-10 14:56:14 -07:00
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 requires 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