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
Daniel Gasienica
49e0850fb2
Extract Privacy
module
...
Centralizes how we redact sensitive information.
2018-03-08 16:23:51 -05:00
Daniel Gasienica
0c317c5498
Redact all private information from logs
2018-03-08 16:23:04 -05:00
Daniel Gasienica
0e2f8a8a06
Extract Errors.redactSensitivePaths
2018-03-08 16:22:38 -05:00
Daniel Gasienica
33bbb12626
Use Errors.toLogFormat
in backgrounds.js
2018-03-08 16:22:38 -05:00
Daniel Gasienica
289063b24b
Expose Signal.Types.Errors
2018-03-08 16:22:38 -05:00
Daniel Gasienica
3dffdc3f0b
Rename Errors
to GlobalErrors
for clarity
2018-03-08 16:22:38 -05:00
Daniel Gasienica
2575196617
Extract Errors.addGlobalHandler
procedure
2018-03-08 16:22:38 -05:00
Daniel Gasienica
be3e4d86c2
Add Errors.toLogFormat
...
Allows errors to be formatted and sanitized for logging. Removes sensitive paths
such as the app root directory.
Ideally, this module would be called singular `Error` but that is already a
global name. Using `Errors` plural is similar to Java convention for utilities
such as `Arrays`, `Collections`, `Files`, etc. See:
https://stackoverflow.com/a/11673838
2018-03-08 16:22:38 -05:00