Ensure that delete logs timeout does not run after resolution

This commit is contained in:
Josh Perez 2021-09-20 20:25:29 -04:00 committed by GitHub
parent 4e43459d34
commit 4e6c415ad8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 16 deletions

View File

@ -475,7 +475,6 @@ try {
// Pulling these in separately since they access filesystem, electron // Pulling these in separately since they access filesystem, electron
window.Signal.Debug = require('./js/modules/debug'); window.Signal.Debug = require('./js/modules/debug');
window.Signal.Logs = require('./js/modules/logs');
window.addEventListener('contextmenu', e => { window.addEventListener('contextmenu', e => {
const editable = e.target.closest( const editable = e.target.closest(

View File

@ -102,6 +102,7 @@ import {
loadRecentEmojis, loadRecentEmojis,
getEmojiReducerState, getEmojiReducerState,
} from './util/loadRecentEmojis'; } from './util/loadRecentEmojis';
import { deleteAllLogs } from './util/deleteAllLogs';
const MAX_ATTACHMENT_DOWNLOAD_AGE = 3600 * 72 * 1000; const MAX_ATTACHMENT_DOWNLOAD_AGE = 3600 * 72 * 1000;
@ -749,7 +750,7 @@ export async function startApp(): Promise<void> {
// This one should always be last - it could restart the app // This one should always be last - it could restart the app
if (window.isBeforeVersion(lastVersion, 'v1.15.0-beta.5')) { if (window.isBeforeVersion(lastVersion, 'v1.15.0-beta.5')) {
await window.Signal.Logs.deleteAll(); await deleteAllLogs();
window.restart(); window.restart();
return; return;
} }

View File

@ -2,10 +2,11 @@
// SPDX-License-Identifier: AGPL-3.0-only // SPDX-License-Identifier: AGPL-3.0-only
import * as log from '../logging/log'; import * as log from '../logging/log';
import { deleteAllLogs } from '../util/deleteAllLogs';
export async function deleteAllData(): Promise<void> { export async function deleteAllData(): Promise<void> {
try { try {
await window.Signal.Logs.deleteAll(); await deleteAllLogs();
log.info('deleteAllData: deleted all logs'); log.info('deleteAllData: deleted all logs');

View File

@ -1,27 +1,24 @@
// Copyright 2018-2020 Signal Messenger, LLC // Copyright 2018-2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only // SPDX-License-Identifier: AGPL-3.0-only
const { ipcRenderer } = require('electron'); import { ipcRenderer } from 'electron';
const { beforeRestart } = require('../../ts/logging/set_up_renderer_logging'); import { beforeRestart } from '../logging/set_up_renderer_logging';
/* eslint-env node */ export function deleteAllLogs(): Promise<void> {
module.exports = {
deleteAll,
};
function deleteAll() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// Restart logging again when the file stream close // Restart logging again when the file stream close
beforeRestart(); beforeRestart();
ipcRenderer.once('delete-all-logs-complete', resolve); const timeout = setTimeout(() => {
setTimeout(() => {
reject(new Error('Request to delete all logs timed out')); reject(new Error('Request to delete all logs timed out'));
}, 5000); }, 5000);
ipcRenderer.once('delete-all-logs-complete', () => {
clearTimeout(timeout);
resolve();
});
ipcRenderer.send('delete-all-logs'); ipcRenderer.send('delete-all-logs');
}); });
} }

1
ts/window.d.ts vendored
View File

@ -461,7 +461,6 @@ declare global {
search: typeof searchSelectors; search: typeof searchSelectors;
}; };
}; };
Logs: WhatIsThis;
conversationControllerStart: WhatIsThis; conversationControllerStart: WhatIsThis;
Emojis: { Emojis: {
getInitialState: () => WhatIsThis; getInitialState: () => WhatIsThis;