Commit Graph

3366 Commits (ed336d31d7bdd8a58daef4390b98898ffa526dfb)
 

Author SHA1 Message Date
Daniel Gasienica ed336d31d7 Move schema versioning from `Attachment` to `Message` 7 years ago
Daniel Gasienica 7e3cc432d6 Whitelist `js/database.js` for ESLint 7 years ago
Daniel Gasienica b9e9f5e19a 🎨 `withInheritedSchemaVersion` to `inheritSchemaVersion` 7 years ago
Daniel Gasienica df693ade7c Allow `Attachment.fileName` to be `null` 7 years ago
Daniel Gasienica c81ce1dc92 Fix log line 7 years ago
Daniel Gasienica c27746b79e Add `Message.withInheritedSchemaVersion` 7 years ago
Daniel Gasienica e9e46464c2 Add `SchemaVersion` type 7 years ago
Daniel Gasienica add4b11df3 Skip invalid attachments and make function sync 7 years ago
Daniel Gasienica 3dfc823716 Add `Attachment.removeSchemaVersion` 7 years ago
Daniel Gasienica 37d35db3c3
Merge pull request #2144 from signalapp/ios-theme-conversation-panel-height
iOS Theme: Ensure conversation panel fills screen vertically
7 years ago
Daniel Gasienica 685f05a99d Ensure conversation panel fills screen vertically
Required addition to the following change:
ef041b29d0
7 years ago
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)
7 years ago
Scott Nonnenberg 256b87aa7a
Refactor newly-added ClearDataView in settings_view.js 7 years ago
Scott Nonnenberg ef041b29d0
Remove scrollbar when placeholder is showning when in iOS theme 7 years ago
Scott Nonnenberg b01b939d15
Clear conversation list when the conversations collection resets 7 years ago
Scott Nonnenberg c760fe29ac
Fix broken storeNames.forEach, since it's not an array 7 years ago
Scott Nonnenberg a728c9efbf
Remove all mention of obsolete safety-number-approval setting 7 years ago
Scott Nonnenberg 26c273618a
Refactor: db tasks to database.js, log delete to modules/logs.js 7 years ago
Scott Nonnenberg 3527740598
Format updates to js/database.js 7 years ago
Scott Nonnenberg 3a151393c5
Move wrapDeferred from background.js to preload.js
It's necessary anywhere that will have to deal with Deferreds.
7 years ago
Scott Nonnenberg a824e2b42d
Start moving towards semantic CSS class names 7 years ago
Scott Nonnenberg 2373840df8
Use proper logging if error pops when deleting all logs 7 years ago
Scott Nonnenberg 12d9d41548
Move to better database deletion call; clears in-memory caches 7 years ago
Scott Nonnenberg c81d3f5c0b
Allow ConversationController.load() to be called more than once 7 years ago
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.
7 years ago
Scott Nonnenberg 383e02edc4
New section in settings screen, full-screen 'are you sure?' 7 years ago
Scott Nonnenberg 928906e0f3
Enable deletion of all logs on disk via IPC 7 years ago
Scott Nonnenberg 198f356792
Return number (not id) in getNumber, remove unnecessary comment 7 years ago
Scott Nonnenberg 9acb189650
Remove config after unlink, clear db when linked with new number 7 years ago
Scott Nonnenberg fd056e1b4c
Add nsp to dev dependencies and to travis and CI scripts 7 years ago
Scott Nonnenberg c8555974e4
Delete data on windows uninstall 7 years ago
Scott Nonnenberg 6e86bf238e Disable all webviews, since we never intend to create them (#2114) 7 years ago
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.
7 years ago
Daniel Gasienica 8a1bff0fad Remove unused `require` 7 years ago
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`.
7 years ago
Daniel Gasienica c7305db8c8 Disallow exclusive tests, i.e. `.only` 7 years ago
Daniel Gasienica 96442967cc Add `eslint-plugin-mocha`
Allows us to set various lint rules for our tests.
7 years ago
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);
```
7 years ago
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]'
>
```
7 years ago
Daniel Gasienica ea07915e6b Escape special characters in file path 7 years ago
Daniel Gasienica 44b81f68dd Remove privacy redaction from `Errors.toLogFormat` 7 years ago
Daniel Gasienica e71246a9e3 Add tests for `Privacy` module 7 years ago
Daniel Gasienica 49e0850fb2 Extract `Privacy` module
Centralizes how we redact sensitive information.
7 years ago
Daniel Gasienica 0c317c5498 Redact all private information from logs 7 years ago
Daniel Gasienica 0e2f8a8a06 Extract `Errors.redactSensitivePaths` 7 years ago
Daniel Gasienica 33bbb12626 Use `Errors.toLogFormat` in `backgrounds.js` 7 years ago
Daniel Gasienica 289063b24b Expose `Signal.Types.Errors` 7 years ago
Daniel Gasienica 3dffdc3f0b Rename `Errors` to `GlobalErrors` for clarity 7 years ago
Daniel Gasienica 2575196617 Extract `Errors.addGlobalHandler` procedure 7 years ago
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
7 years ago