Commit Graph

11179 Commits

Author SHA1 Message Date
Daniel Gasienica db2941cbb0 Measure duration of migration 2018-03-19 19:27:59 -04:00
Daniel Gasienica a619d48fac Update schema version history 2018-03-19 19:27:59 -04:00
Daniel Gasienica 0e20e8e2ea Use Errors.toLogFormat 2018-03-19 19:27:59 -04:00
Daniel Gasienica cd3aee962d Upgrade message schema before sending 2018-03-19 19:27:59 -04:00
Daniel Gasienica a5edbf8328 Initialize schema as first step in upgradeSchema 2018-03-19 19:27:59 -04:00
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:
https://github.com/signalapp/Signal-Desktop/commit/ef041b29d0b1b1dc5e9ed3ede76d7ef48bdb71cb
2018-03-19 18:10:07 -04:00
Scott Nonnenberg bbbd527985 v1.7.0-beta.1
New option in settings: delete all application data
(https://github.com/signalapp/Signal-Desktop/commit/383e02edc4a7a055ac826a7d909e1099ebf5b959)

Remove all configuration in database when we discover we are unlinked
(https://github.com/signalapp/Signal-Desktop/commit/9acb189650ccd1494323a284cefc149ac35db880)

Delete everything in database when we link with a different phone number
from previous link (https://github.com/signalapp/Signal-Desktop/commit/9acb189650ccd1494323a284cefc149ac35db880)

Windows: Delete all data on uninstall
(https://github.com/signalapp/Signal-Desktop/commit/c8555974e411981c0317ce091d1accf225238e69)

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
    (https://github.com/signalapp/Signal-Desktop/commit/fd056e1b4cc1f08168ce7e831e4b635dd621f73e)
  - Add eslint-plugin-mocha to disallow exclusive tests using *.only
    (#2110)
v1.7.0-beta.1
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