[RFC] perf: use an internal module resolver to improve require performance (#14633)

* perf: use an internal module resolver instead of relative requires

* perf: memoize the results of getting exported Electron properties

* perf: make internal module changes consistent across sandboxed / bundled files
This commit is contained in:
Samuel Attard 2018-09-20 13:43:26 +10:00 committed by GitHub
parent 73d1b76b54
commit 54ef906832
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 156 additions and 73 deletions

View file

@ -2,7 +2,7 @@
/* global binding, Buffer */
const events = require('events')
process.atomBinding = require('../common/atom-binding-setup')(binding.get, 'renderer')
process.atomBinding = require('@electron/internal/common/atom-binding-setup')(binding.get, 'renderer')
// The electron module depends on process.atomBinding
const electron = require('electron')
@ -41,7 +41,7 @@ const {
preloadSrc, preloadError, process: processProps
} = electron.ipcRenderer.sendSync('ELECTRON_BROWSER_SANDBOX_LOAD')
require('../renderer/web-frame-init')()
require('@electron/internal/renderer/web-frame-init')()
// Pass different process object to the preload script(which should not have
// access to things like `process.atomBinding`).
@ -76,7 +76,7 @@ function preloadRequire (module) {
if (window.location.protocol === 'chrome-devtools:') {
// Override some inspector APIs.
require('../renderer/inspector')
require('@electron/internal/renderer/inspector')
}
if (binding.guestInstanceId) {
@ -85,8 +85,8 @@ if (binding.guestInstanceId) {
if (!process.guestInstanceId && preloadProcess.argv.indexOf('--webview-tag=true') !== -1) {
// don't allow recursive `<webview>`
require('../renderer/web-view/web-view')
require('../renderer/web-view/web-view-attributes')
require('@electron/internal/renderer/web-view/web-view')
require('@electron/internal/renderer/web-view/web-view-attributes')
}
// Wrap the script into a function executed in global scope. It won't have