/
preload-sandbox.js
63 lines (60 loc) · 2.12 KB
/
preload-sandbox.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
(function () {
const { setImmediate } = require('timers');
const { ipcRenderer } = require('electron');
window.ipcRenderer = ipcRenderer;
window.setImmediate = setImmediate;
window.require = require;
function invoke (code) {
try {
return code();
} catch {
return null;
}
}
process.once('loaded', () => {
ipcRenderer.send('process-loaded');
});
if (location.protocol === 'file:') {
window.test = 'preload';
window.process = process;
if (process.env.sandboxmain) {
window.test = {
osSandbox: !process.argv.includes('--no-sandbox'),
hasCrash: typeof process.crash === 'function',
hasHang: typeof process.hang === 'function',
creationTime: invoke(() => process.getCreationTime()),
heapStatistics: invoke(() => process.getHeapStatistics()),
blinkMemoryInfo: invoke(() => process.getBlinkMemoryInfo()),
processMemoryInfo: invoke(() => process.getProcessMemoryInfo() ? {} : null),
systemMemoryInfo: invoke(() => process.getSystemMemoryInfo()),
systemVersion: invoke(() => process.getSystemVersion()),
cpuUsage: invoke(() => process.getCPUUsage()),
ioCounters: invoke(() => process.getIOCounters()),
uptime: invoke(() => process.uptime()),
env: process.env,
execPath: process.execPath,
pid: process.pid,
arch: process.arch,
platform: process.platform,
sandboxed: process.sandboxed,
type: process.type,
version: process.version,
versions: process.versions,
contextId: process.contextId
};
}
} else if (location.href !== 'about:blank') {
addEventListener('DOMContentLoaded', () => {
ipcRenderer.on('touch-the-opener', () => {
let errorMessage = null;
try {
const openerDoc = opener.document; // eslint-disable-line no-unused-vars
} catch (error) {
errorMessage = error.message;
}
ipcRenderer.send('answer', errorMessage);
});
ipcRenderer.send('child-loaded', window.opener == null, document.body.innerHTML, location.href);
});
}
})();