-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpreload.js
More file actions
51 lines (49 loc) · 2.68 KB
/
preload.js
File metadata and controls
51 lines (49 loc) · 2.68 KB
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
const { contextBridge, ipcRenderer } = require('electron');
// Récupère l'argument --de=xxx injecté par main
let desktopEnv = 'generic';
try {
const arg = process.argv.find(a => a.startsWith('--de='));
if (arg) desktopEnv = arg.slice(5);
} catch(_) {}
let systemLocale = null;
contextBridge.exposeInMainWorld('electronAPI', {
amAction: (action, software) => ipcRenderer.invoke('am-action', action, software),
listAppsDetailed: () => ipcRenderer.invoke('list-apps-detailed'),
windowControl: (action) => ipcRenderer.invoke('window-control', action),
openExternal: (url) => ipcRenderer.invoke('open-external', url),
desktopEnv: () => desktopEnv,
systemLocale: () => systemLocale,
envLang: () => process.env.LC_ALL || process.env.LC_MESSAGES || process.env.LANG || null,
installStart: (name) => ipcRenderer.invoke('install-start', name),
installCancel: (id) => ipcRenderer.invoke('install-cancel', id, id),
installSendChoice: (id, choice) => ipcRenderer.invoke('install-send-choice', id, choice),
onInstallProgress: (cb) => ipcRenderer.on('install-progress', (e, msg) => cb && cb(msg)),
startUpdates: () => ipcRenderer.invoke('updates-start'),
cancelUpdates: (id) => ipcRenderer.invoke('updates-cancel', id),
onUpdatesProgress: (cb) => ipcRenderer.on('updates-progress', (e, msg) => cb && cb(msg)),
installAppManAuto: () => ipcRenderer.invoke('install-appman-auto'),
purgeIconsCache: () => ipcRenderer.invoke('purge-icons-cache'),
getGpuPref: () => ipcRenderer.invoke('get-gpu-pref'),
setGpuPref: (val) => ipcRenderer.invoke('set-gpu-pref', val),
restartApp: () => ipcRenderer.invoke('restart-app'),
fetchAllCategories: () => ipcRenderer.invoke('fetch-all-categories'),
getCategoriesCache: () => ipcRenderer.invoke('get-categories-cache'),
// Ajout pour gestion mot de passe sudo
onPasswordPrompt: (cb) => ipcRenderer.on('password-prompt', (e, data) => cb && cb(data)),
sendPassword: (payload) => ipcRenderer.send('password-response', payload),
getSandboxInfo: (appName) => ipcRenderer.invoke('sandbox-info', appName),
configureSandbox: (options) => ipcRenderer.invoke('sandbox-configure', options),
disableSandbox: (payload) => {
if (payload && typeof payload === 'object') {
return ipcRenderer.invoke('sandbox-disable', payload);
}
return ipcRenderer.invoke('sandbox-disable', { appName: payload });
},
onSandboxProgress: (cb) => ipcRenderer.on('sandbox-progress', (e, data) => cb && cb(data)),
closeWindow: () => ipcRenderer.invoke('close-window'),
onBeforeClose: (cb) => ipcRenderer.on('before-close', () => cb && cb())
});
try {
const lArg = process.argv.find(a => a.startsWith('--locale='));
if (lArg) systemLocale = lArg.slice(9);
} catch(_) {}