Commit Graph

3558 Commits (fe0306e6be136f90ca12e647611fba12ab5de483)
 

Author SHA1 Message Date
Daniel Gasienica 417511ffd2 Add `database.getVersion` 7 years ago
Daniel Gasienica c5c94bc3ab Extract `getMigrationVersions` 7 years ago
Daniel Gasienica 6aea36240d Rename `closeDatabase` to `closeDatabaseConnection` 7 years ago
Daniel Gasienica 016432826b Extract `database` and `settings` modules 7 years ago
Daniel Gasienica 5bea894abd Close database connection via Backbone IDB adapter 7 years ago
Daniel Gasienica f50e9ae364 Log closing connection of database 7 years ago
Daniel Gasienica 4ff8bc3357 Use `camelCase` for non-constructors 7 years ago
Daniel Gasienica 3720c3f3bb Improve log message 7 years ago
Daniel Gasienica ce5b450fdb Log `targetSchemaVersion` 7 years ago
Daniel Gasienica f7f24b5822 Log total number of processed messages 7 years ago
Daniel Gasienica eca930770c Remove hard-coded database connection settings 7 years ago
Daniel Gasienica 1df6dc8378 Abort processing if there are no more messages 7 years ago
Daniel Gasienica 85490fbc98 Disable JSHint for `background.js`
It doesn’t recognize `async` and I couldn’t figure out how to ignore a top-level
`async` without cascading errors.
7 years ago
Daniel Gasienica d5d0eabdfd Remove usage of `storage` module 7 years ago
Daniel Gasienica 8966e80284 Improve identifier names 7 years ago
Daniel Gasienica 3e2d575506 Document `MessageDataMigrator` module design 7 years ago
Daniel Gasienica 3c57dbfb56 Extract `NUM_MESSAGES_PER_BATCH` 7 years ago
Daniel Gasienica 85788d3c4a Match `items` storage format to Backbone adapter 7 years ago
Daniel Gasienica 7de7fcf561 Avoid `no-param-reassign` violation 7 years ago
Daniel Gasienica 070235b59b Implement `MessageDataMigrator.processAll`
Upgrades schema of all messags upon startup.
7 years ago
Daniel Gasienica b8a0bc3423 Run attachment to disk migration on startup 7 years ago
Daniel Gasienica 178a3cc262 Reduce work for verifying transaction completion 7 years ago
Daniel Gasienica b6e978f74c Implement `MessagesDataMigrator.processAll` 7 years ago
Daniel Gasienica 457bf7ab9d Add `createCollection` function 7 years ago
Daniel Gasienica 8ea257ad4d Use double quotes for identifiers in error messages 7 years ago
Daniel Gasienica 172616ca4f Add log message for dummy migration 18 7 years ago
Daniel Gasienica 579b01283e Replace `wrapDeferred` with `deferredToPromise` 7 years ago
Daniel Gasienica 40c40c800a Prefer `exports` 7 years ago
Daniel Gasienica da144edc56 Manually close database connection after migration 7 years ago
Daniel Gasienica 106ce21c49 Remove redundant log message 7 years ago
Daniel Gasienica fcd30cd919 Close database after migration
This is not 100% reliable as database connections are closed in a separate
thread according to the documentation:
- https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/close
- https://stackoverflow.com/a/18639298
- 80c7a06d5c/backbone-indexeddb.js (L558-L565)
7 years ago
Daniel Gasienica c765422fa1 Extract `deferredToPromise` 7 years ago
Daniel Gasienica e2f1339ab9 Explicitly run post-attachment migrations 7 years ago
Daniel Gasienica d7c8d33edb Extract `runMigrations` 7 years ago
Daniel Gasienica d16178638e Split database migrations into pre- and post-attachment migration
- Run light-weight migrations before attachment migration.
- Run regular migrations after attachments have been moved to disk.
7 years ago
Daniel Gasienica 3841154295
Relax Node.js version requirements (#2203) 7 years ago
AJ Jordan 81ac6a9031
Don't lock the Node version so strictly
This is particularly problematic because Yarn apparently
errors (not warns) if the engine doesn't match.
7 years ago
Daniel Gasienica f6d0c1f171
Fix contact overwrite in search view (#2191)
When typing in an existing phone number into the search, clicking on it even
though there exists an existing contact will reinitialize that contact’s
database entry. This reinitialization clears that contact’s conversation’s name,
unread count, etc.

This change ensures we always reuse existing conversations using
`ConversationController.getOrCreateAndWait` when starting new conversations in
the search view.
7 years ago
Daniel Gasienica b24dad23ea Fix search view conversation reset bug
When searching for an existing conversation using a phone number, it’s possible
to click on ‘Start conversation…’ and have that new dummy entry overwrite the
existing conversation.

This change ensures we are always showing a dummy conversation model that is not
part of the conversation collection. Adding it is always idempotent as it goes
through `getOrCreateAndWait`.
7 years ago
Daniel Gasienica d6ea158e46 Avoid `dangerouslyCreateAndAdd` in `MessageView` test 7 years ago
Daniel Gasienica 08f6886f3e Strengthen precondition of `ConversationController.getOrCreate` 7 years ago
Daniel Gasienica 83c979fb84 Rename `createTemporary` to `dangerouslyCreateAndAdd`
Class: `ConversationController`.

This function should not be used in application code as it creates potentially
invalid `Conversation` instances in our global conversation collection. We keep
making it available for testing purposes.
7 years ago
Scott Nonnenberg 4e6d1e128f
Update to electron 1.8.4 (#2186) 7 years ago
Daniel Gasienica a3d43a56a7
Show Optimization Message During Database Migration (#2165) 7 years ago
Daniel Gasienica 90de9d85a3 Remove type annotation 7 years ago
Daniel Gasienica 4c10fcfa17 Reduce threshold until optimization appears to 1s 7 years ago
Daniel Gasienica dede0f1e25 Improve user messaging during initialization
- We first show a localized loading message.
- If initialization takes longer than a certain threshold, we show a different
  ‘optimization’ message.
- If initialization is below the threshold the message change is canceled right
  before the regular loading screen.
7 years ago
Daniel Gasienica add19aa732 Add initialization view 7 years ago
Daniel Gasienica 1c4b7eb01c Make namespace generation clearer
Let’s make it clear that this is where we initialize our namespaces to avoid
proliferation of various initialization points now that we support CommonJS.
7 years ago
Daniel Gasienica fb4445cbd6 Run background script after DOM is parsed
This allows us to leverage the existing loading screen for messaging without
having to explicitly wait for DOM load event.
7 years ago