Fix crash report location on Windows

This commit is contained in:
Fedor Indutny 2022-01-19 17:50:16 -08:00 committed by GitHub
parent 26421b8c18
commit 1a313b88f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 4 deletions

View File

@ -10,10 +10,18 @@ import * as Errors from '../ts/types/errors';
import { isProduction } from '../ts/util/version';
import { upload as uploadDebugLog } from '../ts/logging/uploadDebugLog';
import { SignalService as Proto } from '../ts/protobuf';
import * as OS from '../ts/OS';
async function getPendingDumps(): Promise<ReadonlyArray<string>> {
const crashDumpsPath = await realpath(app.getPath('crashDumps'));
const pendingDir = join(crashDumpsPath, 'pending');
let pendingDir: string;
if (OS.isWindows()) {
pendingDir = join(crashDumpsPath, 'reports');
} else {
// macOS and Linux
pendingDir = join(crashDumpsPath, 'pending');
}
const files = await readdir(pendingDir);
return files.map(file => join(pendingDir, file));
@ -38,7 +46,7 @@ async function eraseDumps(
);
}
export function setup(getLogger: () => LoggerType): void {
export async function setup(getLogger: () => LoggerType): Promise<void> {
const isEnabled = !isProduction(app.getVersion());
if (isEnabled) {

View File

@ -325,6 +325,7 @@ function prepareUrl(
userDataPath: app.getPath('userData'),
downloadsPath: app.getPath('downloads'),
homePath: app.getPath('home'),
crashDumpsPath: app.getPath('crashDumps'),
...moreKeys,
}).href;
}
@ -1401,11 +1402,14 @@ function getAppLocale(): string {
// Some APIs can only be used after this event occurs.
let ready = false;
app.on('ready', async () => {
const userDataPath = await realpath(app.getPath('userData'));
const [userDataPath, crashDumpsPath] = await Promise.all([
realpath(app.getPath('userData')),
realpath(app.getPath('crashDumps')),
]);
logger = await logging.initialize(getMainWindow);
setupCrashReports(getLogger);
await setupCrashReports(getLogger);
if (!locale) {
const appLocale = getAppLocale();
@ -1451,6 +1455,7 @@ app.on('ready', async () => {
const installPath = await realpath(app.getAppPath());
addSensitivePath(userDataPath);
addSensitivePath(crashDumpsPath);
if (getEnvironment() !== Environment.Test) {
installFileHandler({

View File

@ -436,6 +436,9 @@ try {
const { addSensitivePath } = require('./ts/util/privacy');
addSensitivePath(window.baseAttachmentsPath);
if (config.crashDumpsPath) {
addSensitivePath(config.crashDumpsPath);
}
window.Signal = Signal.setup({
Attachments,