Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Merge pull request #5767 from matrix-org/travis/no-persist-logs
Browse files Browse the repository at this point in the history
Add possibility to delay rageshake persistence in app startup
  • Loading branch information
turt2live authored Mar 18, 2021
2 parents 17399c6 + c285b79 commit b69d9e8
Showing 1 changed file with 27 additions and 5 deletions.
32 changes: 27 additions & 5 deletions src/rageshake/rageshake.js
Original file line number Diff line number Diff line change
Expand Up @@ -434,15 +434,37 @@ function selectQuery(store, keyRange, resultMapper) {
/**
* Configure rage shaking support for sending bug reports.
* Modifies globals.
* @param {boolean} setUpPersistence When true (default), the persistence will
* be set up immediately for the logs.
* @return {Promise} Resolves when set up.
*/
export function init() {
export function init(setUpPersistence = true) {
if (global.mx_rage_initPromise) {
return global.mx_rage_initPromise;
}
global.mx_rage_logger = new ConsoleLogger();
global.mx_rage_logger.monkeyPatch(window.console);

if (setUpPersistence) {
return tryInitStorage();
}

global.mx_rage_initPromise = Promise.resolve();
return global.mx_rage_initPromise;
}

/**
* Try to start up the rageshake storage for logs. If not possible (client unsupported)
* then this no-ops.
* @return {Promise} Resolves when complete.
*/
export function tryInitStorage() {
if (global.mx_rage_initStoragePromise) {
return global.mx_rage_initStoragePromise;
}

console.log("Configuring rageshake persistence...");

// just *accessing* indexedDB throws an exception in firefox with
// indexeddb disabled.
let indexedDB;
Expand All @@ -452,11 +474,11 @@ export function init() {

if (indexedDB) {
global.mx_rage_store = new IndexedDBLogStore(indexedDB, global.mx_rage_logger);
global.mx_rage_initPromise = global.mx_rage_store.connect();
return global.mx_rage_initPromise;
global.mx_rage_initStoragePromise = global.mx_rage_store.connect();
return global.mx_rage_initStoragePromise;
}
global.mx_rage_initPromise = Promise.resolve();
return global.mx_rage_initPromise;
global.mx_rage_initStoragePromise = Promise.resolve();
return global.mx_rage_initStoragePromise;
}

export function flush() {
Expand Down

0 comments on commit b69d9e8

Please sign in to comment.