Adds debugging utilities in dev/beta environments
This commit is contained in:
parent
ac50af52d2
commit
86488b97b9
13 changed files with 73 additions and 146 deletions
|
@ -14,5 +14,5 @@ if (config.environment === 'test') {
|
|||
if (config.enableCI) {
|
||||
console.log('Importing CI infrastructure...');
|
||||
const { getCI } = require('../../CI');
|
||||
window.Signal.CI = getCI(window.getTitle());
|
||||
window.SignalCI = getCI(window.getTitle());
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@ import { sync } from 'fast-glob';
|
|||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { getSignalProtocolStore } from '../../SignalProtocolStore';
|
||||
|
||||
window.assert = assert;
|
||||
|
||||
// This is a hack to let us run TypeScript tests in the renderer process. See the
|
||||
|
@ -26,3 +28,5 @@ window.testUtilities = {
|
|||
}).forEach(require);
|
||||
},
|
||||
};
|
||||
|
||||
window.getSignalProtocolStore = getSignalProtocolStore;
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
// Copyright 2017 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { clone } from 'lodash';
|
||||
import { clone, has } from 'lodash';
|
||||
import { contextBridge } from 'electron';
|
||||
|
||||
import * as log from '../../logging/log';
|
||||
import { SignalContext } from '../context';
|
||||
|
||||
import './phase1-ipc';
|
||||
import '../preload';
|
||||
|
@ -14,10 +13,11 @@ import './phase3-post-signal';
|
|||
import './phase4-test';
|
||||
import '../../backbone/reliable_trigger';
|
||||
|
||||
import { WebAudioRecorder } from '../../WebAudioRecorder';
|
||||
import { getSignalProtocolStore } from '../../SignalProtocolStore';
|
||||
import type { FeatureFlagType } from '../../window.d';
|
||||
import type { StorageAccessType } from '../../types/Storage.d';
|
||||
import { start as startConversationController } from '../../ConversationController';
|
||||
import { MessageController } from '../../util/MessageController';
|
||||
import { Environment, getEnvironment } from '../../environment';
|
||||
|
||||
window.addEventListener('contextmenu', e => {
|
||||
const node = e.target as Element | null;
|
||||
|
@ -38,124 +38,45 @@ if (window.SignalContext.config.proxyUrl) {
|
|||
log.info('Using provided proxy url');
|
||||
}
|
||||
|
||||
const isTestElectron = process.env.TEST_QUIT_ON_COMPLETE;
|
||||
|
||||
window.Whisper.events = clone(window.Backbone.Events);
|
||||
MessageController.install();
|
||||
startConversationController();
|
||||
|
||||
if (isTestElectron) {
|
||||
window.getSignalProtocolStore = getSignalProtocolStore;
|
||||
} else {
|
||||
contextBridge.exposeInMainWorld('SignalContext', SignalContext);
|
||||
if (getEnvironment() !== Environment.Production) {
|
||||
const SignalDebug = {
|
||||
Data: window.Signal.Data,
|
||||
getConversation: (id: string) => window.ConversationController.get(id),
|
||||
getMessageById: (id: string) => window.MessageController.getById(id),
|
||||
getReduxState: () => window.reduxStore.getState(),
|
||||
getSfuUrl: () => window.Signal.Services.calling._sfuUrl,
|
||||
getStorageItem: (name: keyof StorageAccessType) => window.storage.get(name),
|
||||
putStorageItem: <K extends keyof StorageAccessType>(
|
||||
name: K,
|
||||
value: StorageAccessType[K]
|
||||
) => window.storage.put(name, value),
|
||||
setFlag: (name: keyof FeatureFlagType, value: boolean) => {
|
||||
if (!has(window.Flags, name)) {
|
||||
return;
|
||||
}
|
||||
window.Flags[name] = value;
|
||||
},
|
||||
setSfuUrl: (url: string) => {
|
||||
window.Signal.Services.calling._sfuUrl = url;
|
||||
},
|
||||
};
|
||||
|
||||
contextBridge.exposeInMainWorld('Backbone', window.Backbone);
|
||||
contextBridge.exposeInMainWorld('SignalDebug', SignalDebug);
|
||||
}
|
||||
|
||||
contextBridge.exposeInMainWorld('BasePaths', window.BasePaths);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'ConversationController',
|
||||
window.ConversationController
|
||||
);
|
||||
contextBridge.exposeInMainWorld('Events', window.Events);
|
||||
contextBridge.exposeInMainWorld('Flags', window.Flags);
|
||||
contextBridge.exposeInMainWorld('IPC', window.IPC);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'SignalProtocolStore',
|
||||
window.SignalProtocolStore
|
||||
);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'getSignalProtocolStore',
|
||||
getSignalProtocolStore
|
||||
);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'MessageController',
|
||||
window.MessageController
|
||||
);
|
||||
contextBridge.exposeInMainWorld('WebAudioRecorder', WebAudioRecorder);
|
||||
contextBridge.exposeInMainWorld('WebAPI', window.WebAPI);
|
||||
contextBridge.exposeInMainWorld('Whisper', window.Whisper);
|
||||
contextBridge.exposeInMainWorld('i18n', window.i18n);
|
||||
contextBridge.exposeInMainWorld('reduxActions', window.reduxActions);
|
||||
contextBridge.exposeInMainWorld('reduxStore', window.reduxStore);
|
||||
contextBridge.exposeInMainWorld('startApp', window.startApp);
|
||||
contextBridge.exposeInMainWorld('textsecure', window.textsecure);
|
||||
|
||||
// TODO DESKTOP-4801
|
||||
contextBridge.exposeInMainWorld('ROOT_PATH', window.ROOT_PATH);
|
||||
contextBridge.exposeInMainWorld('Signal', window.Signal);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'enterKeyboardMode',
|
||||
window.enterKeyboardMode
|
||||
);
|
||||
contextBridge.exposeInMainWorld('enterMouseMode', window.enterMouseMode);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'getAccountManager',
|
||||
window.getAccountManager
|
||||
);
|
||||
contextBridge.exposeInMainWorld('getAppInstance', window.getAppInstance);
|
||||
contextBridge.exposeInMainWorld('getBuildCreation', window.getBuildCreation);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'getBuildExpiration',
|
||||
window.getBuildExpiration
|
||||
);
|
||||
contextBridge.exposeInMainWorld('getConversations', window.getConversations);
|
||||
contextBridge.exposeInMainWorld('getEnvironment', window.getEnvironment);
|
||||
contextBridge.exposeInMainWorld('getHostName', window.getHostName);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'getInteractionMode',
|
||||
window.getInteractionMode
|
||||
);
|
||||
contextBridge.exposeInMainWorld('getLocale', window.getLocale);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'getServerPublicParams',
|
||||
window.getServerPublicParams
|
||||
);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'getServerTrustRoot',
|
||||
window.getServerTrustRoot
|
||||
);
|
||||
contextBridge.exposeInMainWorld('getSfuUrl', window.getSfuUrl);
|
||||
contextBridge.exposeInMainWorld('getSocketStatus', window.getSocketStatus);
|
||||
contextBridge.exposeInMainWorld('getSyncRequest', window.getSyncRequest);
|
||||
contextBridge.exposeInMainWorld('getTitle', window.getTitle);
|
||||
contextBridge.exposeInMainWorld('getVersion', window.getVersion);
|
||||
contextBridge.exposeInMainWorld('initialTheme', window.initialTheme);
|
||||
contextBridge.exposeInMainWorld('isAfterVersion', window.isAfterVersion);
|
||||
contextBridge.exposeInMainWorld('isBeforeVersion', window.isBeforeVersion);
|
||||
contextBridge.exposeInMainWorld('isBehindProxy', window.isBehindProxy);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'libphonenumberFormat',
|
||||
window.libphonenumberFormat
|
||||
);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'libphonenumberInstance',
|
||||
window.libphonenumberInstance
|
||||
);
|
||||
contextBridge.exposeInMainWorld('localeMessages', window.localeMessages);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'logAuthenticatedConnect',
|
||||
window.logAuthenticatedConnect
|
||||
);
|
||||
contextBridge.exposeInMainWorld('nodeSetImmediate', window.nodeSetImmediate);
|
||||
contextBridge.exposeInMainWorld('platform', window.platform);
|
||||
contextBridge.exposeInMainWorld('preloadedImages', window.preloadedImages);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'sendChallengeRequest',
|
||||
window.sendChallengeRequest
|
||||
);
|
||||
contextBridge.exposeInMainWorld('setImmediate', window.setImmediate);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'showKeyboardShortcuts',
|
||||
window.showKeyboardShortcuts
|
||||
);
|
||||
contextBridge.exposeInMainWorld('storage', window.storage);
|
||||
contextBridge.exposeInMainWorld('systemTheme', window.systemTheme);
|
||||
contextBridge.exposeInMainWorld(
|
||||
'waitForEmptyEventQueue',
|
||||
window.waitForEmptyEventQueue
|
||||
);
|
||||
|
||||
contextBridge.exposeInMainWorld('assert', window.assert);
|
||||
if (getEnvironment() === Environment.Test) {
|
||||
contextBridge.exposeInMainWorld('RETRY_DELAY', window.RETRY_DELAY);
|
||||
contextBridge.exposeInMainWorld('assert', window.assert);
|
||||
contextBridge.exposeInMainWorld('testUtilities', window.testUtilities);
|
||||
}
|
||||
|
||||
if (process.env.SIGNAL_CI_CONFIG) {
|
||||
contextBridge.exposeInMainWorld('SignalCI', window.SignalCI);
|
||||
}
|
||||
|
||||
contextBridge.exposeInMainWorld('showDebugLog', window.IPC.showDebugLog);
|
||||
contextBridge.exposeInMainWorld('startApp', window.startApp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue