perf: lazily load some modules in sandbox mode (#23856)
This commit is contained in:
parent
95037a7d2a
commit
c6f4573a13
1 changed files with 12 additions and 4 deletions
|
@ -43,13 +43,16 @@ process.isRemoteModuleEnabled = isRemoteModuleEnabled;
|
|||
// The electron module depends on process.electronBinding
|
||||
const electron = require('electron');
|
||||
|
||||
const loadedModules = new Map([
|
||||
const loadedModules = new Map<string, any>([
|
||||
['electron', electron],
|
||||
['electron/common', electron],
|
||||
['electron/renderer', electron],
|
||||
['events', events],
|
||||
['timers', require('timers')],
|
||||
['url', require('url')]
|
||||
['events', events]
|
||||
]);
|
||||
|
||||
const loadableModules = new Map<string, Function>([
|
||||
['timers', () => require('timers')],
|
||||
['url', () => require('url')]
|
||||
]);
|
||||
|
||||
// ElectronApiServiceImpl will look for the "ipcNative" hidden object when
|
||||
|
@ -109,6 +112,11 @@ function preloadRequire (module: string) {
|
|||
if (loadedModules.has(module)) {
|
||||
return loadedModules.get(module);
|
||||
}
|
||||
if (loadableModules.has(module)) {
|
||||
const loadedModule = loadableModules.get(module)!();
|
||||
loadedModules.set(module, loadedModule);
|
||||
return loadedModule;
|
||||
}
|
||||
throw new Error(`module not found: ${module}`);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue