OpenAsar/core/src/app/mainScreenPreload.js

74 lines
3.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
if (!process.isMainFrame) {
throw new Error('Preload scripts should not be running in a subframe');
}
let uncaughtExceptionHandler;
function setUncaughtExceptionHandler(handler) {
uncaughtExceptionHandler = handler;
}
if (window.opener === null) {
// App preload script, used to provide a replacement native API now that
// we turned off node integration.
const {
contextBridge,
discord
} = require('electron');
discord === null || discord === void 0 ? void 0 : discord.install('createDiscordStream');
const app = require('./discord_native/renderer/app');
const powerMonitor = require('./discord_native/renderer/powerMonitor');
const DiscordNative = {
isRenderer: process.type === 'renderer',
setUncaughtExceptionHandler,
nativeModules: require('./discord_native/renderer/nativeModules'),
process: require('./discord_native/renderer/process'),
os: require('./discord_native/renderer/os'),
app,
clipboard: require('./discord_native/renderer/clipboard'),
ipc: require('./discord_native/renderer/ipc'),
gpuSettings: require('./discord_native/renderer/gpuSettings'),
window: require('./discord_native/renderer/window'),
powerMonitor,
spellCheck: require('./discord_native/renderer/spellCheck'),
crashReporter: require('./discord_native/renderer/crashReporter'),
desktopCapture: require('./discord_native/renderer/desktopCapture'),
fileManager: require('./discord_native/renderer/fileManager'),
clips: require('./discord_native/renderer/clips'),
processUtils: require('./discord_native/renderer/processUtils'),
powerSaveBlocker: require('./discord_native/renderer/powerSaveBlocker'),
http: require('./discord_native/renderer/http'),
accessibility: require('./discord_native/renderer/accessibility'),
features: require('./discord_native/renderer/features'),
settings: require('./discord_native/renderer/settings'),
userDataCache: require('./discord_native/renderer/userDataCache'),
thumbar: require('./discord_native/renderer/thumbar'),
safeStorage: require('./discord_native/renderer/safeStorage'),
globalOverlay: require('./discord_native/renderer/globalOverlay'),
// TODO: remove these once web no longer uses them
remoteApp: app,
// TODO: Fix. This is a hack to get typing done.
remotePowerMonitor: powerMonitor
};
contextBridge.exposeInMainWorld('DiscordNative', DiscordNative);
process.once('loaded', () => {
// ensures native module `require` context has access to DiscordNative
global.DiscordNative = DiscordNative;
DiscordNative.fileManager.cleanupTempFiles(); // No need to await.
});
process.on('uncaughtException', (err, origin) => {
var _uncaughtExceptionHan;
(_uncaughtExceptionHan = uncaughtExceptionHandler) === null || _uncaughtExceptionHan === void 0 ? void 0 : _uncaughtExceptionHan(err, origin);
});
window.popouts = new Map();
} else {
window.addEventListener('load', _ => {
window.opener.popouts.set(window.name, window);
});
window.addEventListener('beforeunload', _ => {
window.opener.popouts.delete(window.name);
});
}