Daniel Gasienica
5d927b73e6
Use while
loop for IDB cursor iteration
...
Previously, I messily combined promises and callbacks because I thought we
were affected by the microtask issue:
https://github.com/gasi/idb#iteratecursor--iteratekeycursor
ESLint’s `more/no-then` encouraged me to revisit this and it works as expected.
2018-03-19 19:27:59 -04:00
Daniel Gasienica
a76a6098c4
Simplify log statement
2018-03-19 19:27:59 -04:00
Daniel Gasienica
dbdf6fd880
Run version 17 migration upon startup
2018-03-19 19:27:59 -04:00
Daniel Gasienica
ac31dcbd75
Expose Signal.Migrations
namespace
2018-03-19 19:27:59 -04:00
Daniel Gasienica
182e6ffe10
Add version 17 migration
2018-03-19 19:27:59 -04:00
Daniel Gasienica
752c8f97e6
🎨 Format ternaries
2018-03-19 19:27:59 -04:00
Daniel Gasienica
8dfaa5619f
Prefix private functions with underscore
2018-03-19 19:27:59 -04:00
Daniel Gasienica
fa209fb98f
Add idb
fork with upgradeDBFromTransaction
support
...
This allows us to use `async` / `await` with IndexedDB.
2018-03-19 19:27:59 -04:00
Daniel Gasienica
ed336d31d7
Move schema versioning from Attachment
to Message
2018-03-19 19:27:59 -04:00
Daniel Gasienica
7e3cc432d6
Whitelist js/database.js
for ESLint
2018-03-19 19:27:59 -04:00
Daniel Gasienica
b9e9f5e19a
🎨 withInheritedSchemaVersion
to inheritSchemaVersion
2018-03-19 19:27:59 -04:00
Daniel Gasienica
df693ade7c
Allow Attachment.fileName
to be null
2018-03-19 19:27:59 -04:00
Daniel Gasienica
c81ce1dc92
Fix log line
2018-03-19 19:27:59 -04:00
Daniel Gasienica
c27746b79e
Add Message.withInheritedSchemaVersion
2018-03-19 19:27:59 -04:00
Daniel Gasienica
e9e46464c2
Add SchemaVersion
type
2018-03-19 19:27:59 -04:00
Daniel Gasienica
add4b11df3
Skip invalid attachments and make function sync
2018-03-19 19:27:59 -04:00
Daniel Gasienica
3dfc823716
Add Attachment.removeSchemaVersion
2018-03-19 19:27:59 -04:00
Daniel Gasienica
37d35db3c3
Merge pull request #2144 from signalapp/ios-theme-conversation-panel-height
...
iOS Theme: Ensure conversation panel fills screen vertically
2018-03-19 19:20:13 -04:00
Daniel Gasienica
685f05a99d
Ensure conversation panel fills screen vertically
...
Required addition to the following change:
ef041b29d0
2018-03-19 18:10:07 -04:00
Scott Nonnenberg
bbbd527985
v1.7.0-beta.1
...
New option in settings: delete all application data
(383e02edc4
)
Remove all configuration in database when we discover we are unlinked
(9acb189650
)
Delete everything in database when we link with a different phone number
from previous link (9acb189650
)
Windows: Delete all data on uninstall
(c8555974e4
)
Dev:
- Switch to a new service for debug logs, since GitHub is retiring
anonymous gists (#2111 )
- Redact file paths in anything that goes to the log on disk (#2110 )
- When top-level process errors happen, don't show dialog with stack
trace (#2110 )
- Add `nsp` to CI runs
(fd056e1b4c
)
- Add eslint-plugin-mocha to disallow exclusive tests using *.only
(#2110 )
2018-03-16 11:32:03 -07:00
Scott Nonnenberg
256b87aa7a
Refactor newly-added ClearDataView in settings_view.js
2018-03-14 14:42:15 -07:00
Scott Nonnenberg
ef041b29d0
Remove scrollbar when placeholder is showning when in iOS theme
2018-03-14 14:42:15 -07:00
Scott Nonnenberg
b01b939d15
Clear conversation list when the conversations collection resets
2018-03-14 14:42:15 -07:00
Scott Nonnenberg
c760fe29ac
Fix broken storeNames.forEach, since it's not an array
2018-03-14 14:42:15 -07:00
Scott Nonnenberg
a728c9efbf
Remove all mention of obsolete safety-number-approval setting
2018-03-14 14:42:15 -07:00
Scott Nonnenberg
26c273618a
Refactor: db tasks to database.js, log delete to modules/logs.js
2018-03-14 14:42:15 -07:00
Scott Nonnenberg
3527740598
Format updates to js/database.js
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
3a151393c5
Move wrapDeferred from background.js to preload.js
...
It's necessary anywhere that will have to deal with Deferreds.
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
a824e2b42d
Start moving towards semantic CSS class names
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
2373840df8
Use proper logging if error pops when deleting all logs
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
12d9d41548
Move to better database deletion call; clears in-memory caches
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
c81d3f5c0b
Allow ConversationController.load() to be called more than once
2018-03-14 14:42:14 -07:00
Scott Nonnenberg
2ffabdcdd9
Delete data screen: Remove scrollbar when no convo selected
...
Turns out that the welcome screen had a min-height which caused weird
things when you take the window down to minimum height. It looked
particularly bad with the new full-screen delete data confirmation
screen.
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
383e02edc4
New section in settings screen, full-screen 'are you sure?'
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
928906e0f3
Enable deletion of all logs on disk via IPC
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
198f356792
Return number (not id) in getNumber, remove unnecessary comment
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
9acb189650
Remove config after unlink, clear db when linked with new number
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
fd056e1b4c
Add nsp to dev dependencies and to travis and CI scripts
2018-03-14 14:42:13 -07:00
Scott Nonnenberg
c8555974e4
Delete data on windows uninstall
2018-03-14 14:37:13 -07:00
Scott Nonnenberg
6e86bf238e
Disable all webviews, since we never intend to create them ( #2114 )
2018-03-14 14:23:24 -07:00
Daniel Gasienica
8bd37b7f8d
Merge #2110 from gasi: Log Uncaught Errors & Unhandled Promise Rejections In Main Process
...
- [x] Add `electron-unhandled` dependency:
- ~~Ensures errors are normalized~~ (disabled to prevent serializing non-errors that are thrown and leaking information)
- Distinguishes between main and renderer processes
- Allows suppression of error dialog
- [x] Log uncaught errors and unhandled promise rejections in main process
- [x] Tested using unguarded `throw new TyperError(…)` and `Promise.reject(…)` in `setTimeout` after `app` `ready` event.
- [x] Extract `Privacy` module that centralizes how we redact sensitive information such as phone numbers, group IDs, and user file paths.
- [x] Add `eslint-plugin-mocha` to disallow exclusive tests using `*.only`.
Fixes #2019 .
2018-03-08 18:05:22 -05:00
Daniel Gasienica
8a1bff0fad
Remove unused require
2018-03-08 17:50:10 -05:00
Daniel Gasienica
c317f34f67
Remove ensure-error
and clean-error
dependency
...
It potentially could leak information from serialized non-errors that are thrown
due to `util.inspect`.
2018-03-08 17:45:55 -05:00
Daniel Gasienica
c7305db8c8
Disallow exclusive tests, i.e. .only
2018-03-08 16:23:51 -05:00
Daniel Gasienica
96442967cc
Add eslint-plugin-mocha
...
Allows us to set various lint rules for our tests.
2018-03-08 16:23:51 -05:00
Daniel Gasienica
ef40dfa841
Use forked electron-unhandled
...
Omits use of `ensure-error` for privacy.
Before:
`Uncaught error or unhandled promise rejection: NonError: { private: true }`
After:
`Uncaught error or unhandled promise rejection: [object Object]`
Tested using:
```
setTimeout(() => {
throw new Error('sync: booooom!');
}, 5000);
setTimeout(() => {
Promise.reject(new Error('async: promise'))
}, 10000);
setTimeout(() => {
Promise.reject({private: true});
}, 15000);
```
2018-03-08 16:23:51 -05:00
Daniel Gasienica
43b47fd349
Avoid ensure-error
for privacy reasons
...
Example:
```
> node
> const nonError = {foo: 'i-am-private'};
undefined
// before
> util.inspect(nonError);
'{ foo: \'i-am-private\' }'
// after
> nonError.toString()
'[object Object]'
>
```
2018-03-08 16:23:51 -05:00
Daniel Gasienica
ea07915e6b
Escape special characters in file path
2018-03-08 16:23:51 -05:00
Daniel Gasienica
44b81f68dd
Remove privacy redaction from Errors.toLogFormat
2018-03-08 16:23:51 -05:00
Daniel Gasienica
e71246a9e3
Add tests for Privacy
module
2018-03-08 16:23:51 -05:00