refactor: unify module-list format and exports/electron (#19697)
This commit is contained in:
parent
c6a8b7f959
commit
7825d043f2
18 changed files with 108 additions and 162 deletions
|
@ -42,7 +42,7 @@ module.exports = ({
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@electron/internal': path.resolve(electronRoot, 'lib'),
|
'@electron/internal': path.resolve(electronRoot, 'lib'),
|
||||||
'electron': path.resolve(electronRoot, 'lib', loadElectronFromAlternateTarget || target, 'api', 'exports', 'electron.js'),
|
'electron': path.resolve(electronRoot, 'lib', loadElectronFromAlternateTarget || target, 'api', 'exports', 'electron.ts'),
|
||||||
// Force timers to resolve to our dependency that doens't use window.postMessage
|
// Force timers to resolve to our dependency that doens't use window.postMessage
|
||||||
'timers': path.resolve(electronRoot, 'node_modules', 'timers-browserify', 'main.js')
|
'timers': path.resolve(electronRoot, 'node_modules', 'timers-browserify', 'main.js')
|
||||||
},
|
},
|
||||||
|
|
|
@ -130,13 +130,14 @@ auto_filenames = {
|
||||||
"lib/browser/api/module-keys.js",
|
"lib/browser/api/module-keys.js",
|
||||||
"lib/common/api/clipboard.js",
|
"lib/common/api/clipboard.js",
|
||||||
"lib/common/api/deprecate.ts",
|
"lib/common/api/deprecate.ts",
|
||||||
"lib/common/api/module-list.js",
|
"lib/common/api/module-list.ts",
|
||||||
"lib/common/api/native-image.js",
|
"lib/common/api/native-image.js",
|
||||||
"lib/common/api/native-theme.ts",
|
"lib/common/api/native-theme.ts",
|
||||||
"lib/common/api/shell.js",
|
"lib/common/api/shell.js",
|
||||||
"lib/common/buffer-utils.ts",
|
"lib/common/buffer-utils.ts",
|
||||||
"lib/common/clipboard-utils.ts",
|
"lib/common/clipboard-utils.ts",
|
||||||
"lib/common/crash-reporter.js",
|
"lib/common/crash-reporter.js",
|
||||||
|
"lib/common/define-properties.ts",
|
||||||
"lib/common/electron-binding-setup.ts",
|
"lib/common/electron-binding-setup.ts",
|
||||||
"lib/common/error-utils.ts",
|
"lib/common/error-utils.ts",
|
||||||
"lib/common/is-promise.ts",
|
"lib/common/is-promise.ts",
|
||||||
|
@ -164,8 +165,8 @@ auto_filenames = {
|
||||||
"lib/renderer/web-view/web-view-element.ts",
|
"lib/renderer/web-view/web-view-element.ts",
|
||||||
"lib/renderer/web-view/web-view-impl.ts",
|
"lib/renderer/web-view/web-view-impl.ts",
|
||||||
"lib/renderer/web-view/web-view-init.ts",
|
"lib/renderer/web-view/web-view-init.ts",
|
||||||
"lib/sandboxed_renderer/api/exports/electron.js",
|
"lib/sandboxed_renderer/api/exports/electron.ts",
|
||||||
"lib/sandboxed_renderer/api/module-list.js",
|
"lib/sandboxed_renderer/api/module-list.ts",
|
||||||
"lib/sandboxed_renderer/init.js",
|
"lib/sandboxed_renderer/init.js",
|
||||||
"package.json",
|
"package.json",
|
||||||
"tsconfig.electron.json",
|
"tsconfig.electron.json",
|
||||||
|
@ -214,7 +215,7 @@ auto_filenames = {
|
||||||
"lib/browser/api/content-tracing.js",
|
"lib/browser/api/content-tracing.js",
|
||||||
"lib/browser/api/crash-reporter.js",
|
"lib/browser/api/crash-reporter.js",
|
||||||
"lib/browser/api/dialog.js",
|
"lib/browser/api/dialog.js",
|
||||||
"lib/browser/api/exports/electron.js",
|
"lib/browser/api/exports/electron.ts",
|
||||||
"lib/browser/api/global-shortcut.js",
|
"lib/browser/api/global-shortcut.js",
|
||||||
"lib/browser/api/in-app-purchase.js",
|
"lib/browser/api/in-app-purchase.js",
|
||||||
"lib/browser/api/ipc-main.ts",
|
"lib/browser/api/ipc-main.ts",
|
||||||
|
@ -222,7 +223,7 @@ auto_filenames = {
|
||||||
"lib/browser/api/menu-item.js",
|
"lib/browser/api/menu-item.js",
|
||||||
"lib/browser/api/menu-utils.js",
|
"lib/browser/api/menu-utils.js",
|
||||||
"lib/browser/api/menu.js",
|
"lib/browser/api/menu.js",
|
||||||
"lib/browser/api/module-list.js",
|
"lib/browser/api/module-list.ts",
|
||||||
"lib/browser/api/net-log.js",
|
"lib/browser/api/net-log.js",
|
||||||
"lib/browser/api/net.js",
|
"lib/browser/api/net.js",
|
||||||
"lib/browser/api/notification.js",
|
"lib/browser/api/notification.js",
|
||||||
|
@ -261,14 +262,14 @@ auto_filenames = {
|
||||||
"lib/browser/utils.ts",
|
"lib/browser/utils.ts",
|
||||||
"lib/common/api/clipboard.js",
|
"lib/common/api/clipboard.js",
|
||||||
"lib/common/api/deprecate.ts",
|
"lib/common/api/deprecate.ts",
|
||||||
"lib/common/api/exports/electron.js",
|
"lib/common/api/module-list.ts",
|
||||||
"lib/common/api/module-list.js",
|
|
||||||
"lib/common/api/native-image.js",
|
"lib/common/api/native-image.js",
|
||||||
"lib/common/api/native-theme.ts",
|
"lib/common/api/native-theme.ts",
|
||||||
"lib/common/api/shell.js",
|
"lib/common/api/shell.js",
|
||||||
"lib/common/buffer-utils.ts",
|
"lib/common/buffer-utils.ts",
|
||||||
"lib/common/clipboard-utils.ts",
|
"lib/common/clipboard-utils.ts",
|
||||||
"lib/common/crash-reporter.js",
|
"lib/common/crash-reporter.js",
|
||||||
|
"lib/common/define-properties.ts",
|
||||||
"lib/common/electron-binding-setup.ts",
|
"lib/common/electron-binding-setup.ts",
|
||||||
"lib/common/error-utils.ts",
|
"lib/common/error-utils.ts",
|
||||||
"lib/common/init.ts",
|
"lib/common/init.ts",
|
||||||
|
@ -287,14 +288,14 @@ auto_filenames = {
|
||||||
"lib/browser/api/module-keys.js",
|
"lib/browser/api/module-keys.js",
|
||||||
"lib/common/api/clipboard.js",
|
"lib/common/api/clipboard.js",
|
||||||
"lib/common/api/deprecate.ts",
|
"lib/common/api/deprecate.ts",
|
||||||
"lib/common/api/exports/electron.js",
|
"lib/common/api/module-list.ts",
|
||||||
"lib/common/api/module-list.js",
|
|
||||||
"lib/common/api/native-image.js",
|
"lib/common/api/native-image.js",
|
||||||
"lib/common/api/native-theme.ts",
|
"lib/common/api/native-theme.ts",
|
||||||
"lib/common/api/shell.js",
|
"lib/common/api/shell.js",
|
||||||
"lib/common/buffer-utils.ts",
|
"lib/common/buffer-utils.ts",
|
||||||
"lib/common/clipboard-utils.ts",
|
"lib/common/clipboard-utils.ts",
|
||||||
"lib/common/crash-reporter.js",
|
"lib/common/crash-reporter.js",
|
||||||
|
"lib/common/define-properties.ts",
|
||||||
"lib/common/electron-binding-setup.ts",
|
"lib/common/electron-binding-setup.ts",
|
||||||
"lib/common/error-utils.ts",
|
"lib/common/error-utils.ts",
|
||||||
"lib/common/init.ts",
|
"lib/common/init.ts",
|
||||||
|
@ -303,9 +304,9 @@ auto_filenames = {
|
||||||
"lib/common/web-view-methods.ts",
|
"lib/common/web-view-methods.ts",
|
||||||
"lib/renderer/api/crash-reporter.js",
|
"lib/renderer/api/crash-reporter.js",
|
||||||
"lib/renderer/api/desktop-capturer.ts",
|
"lib/renderer/api/desktop-capturer.ts",
|
||||||
"lib/renderer/api/exports/electron.js",
|
"lib/renderer/api/exports/electron.ts",
|
||||||
"lib/renderer/api/ipc-renderer.ts",
|
"lib/renderer/api/ipc-renderer.ts",
|
||||||
"lib/renderer/api/module-list.js",
|
"lib/renderer/api/module-list.ts",
|
||||||
"lib/renderer/api/remote.js",
|
"lib/renderer/api/remote.js",
|
||||||
"lib/renderer/api/web-frame.ts",
|
"lib/renderer/api/web-frame.ts",
|
||||||
"lib/renderer/callbacks-registry.ts",
|
"lib/renderer/callbacks-registry.ts",
|
||||||
|
@ -338,14 +339,14 @@ auto_filenames = {
|
||||||
"lib/browser/api/module-keys.js",
|
"lib/browser/api/module-keys.js",
|
||||||
"lib/common/api/clipboard.js",
|
"lib/common/api/clipboard.js",
|
||||||
"lib/common/api/deprecate.ts",
|
"lib/common/api/deprecate.ts",
|
||||||
"lib/common/api/exports/electron.js",
|
"lib/common/api/module-list.ts",
|
||||||
"lib/common/api/module-list.js",
|
|
||||||
"lib/common/api/native-image.js",
|
"lib/common/api/native-image.js",
|
||||||
"lib/common/api/native-theme.ts",
|
"lib/common/api/native-theme.ts",
|
||||||
"lib/common/api/shell.js",
|
"lib/common/api/shell.js",
|
||||||
"lib/common/buffer-utils.ts",
|
"lib/common/buffer-utils.ts",
|
||||||
"lib/common/clipboard-utils.ts",
|
"lib/common/clipboard-utils.ts",
|
||||||
"lib/common/crash-reporter.js",
|
"lib/common/crash-reporter.js",
|
||||||
|
"lib/common/define-properties.ts",
|
||||||
"lib/common/electron-binding-setup.ts",
|
"lib/common/electron-binding-setup.ts",
|
||||||
"lib/common/error-utils.ts",
|
"lib/common/error-utils.ts",
|
||||||
"lib/common/init.ts",
|
"lib/common/init.ts",
|
||||||
|
@ -353,9 +354,9 @@ auto_filenames = {
|
||||||
"lib/common/reset-search-paths.ts",
|
"lib/common/reset-search-paths.ts",
|
||||||
"lib/renderer/api/crash-reporter.js",
|
"lib/renderer/api/crash-reporter.js",
|
||||||
"lib/renderer/api/desktop-capturer.ts",
|
"lib/renderer/api/desktop-capturer.ts",
|
||||||
"lib/renderer/api/exports/electron.js",
|
"lib/renderer/api/exports/electron.ts",
|
||||||
"lib/renderer/api/ipc-renderer.ts",
|
"lib/renderer/api/ipc-renderer.ts",
|
||||||
"lib/renderer/api/module-list.js",
|
"lib/renderer/api/module-list.ts",
|
||||||
"lib/renderer/api/remote.js",
|
"lib/renderer/api/remote.js",
|
||||||
"lib/renderer/api/web-frame.ts",
|
"lib/renderer/api/web-frame.ts",
|
||||||
"lib/renderer/callbacks-registry.ts",
|
"lib/renderer/callbacks-registry.ts",
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const common = require('@electron/internal/common/api/exports/electron')
|
|
||||||
// since browser module list is also used in renderer, keep it separate.
|
|
||||||
const moduleList = require('@electron/internal/browser/api/module-list')
|
|
||||||
|
|
||||||
// Import common modules.
|
|
||||||
common.defineProperties(exports)
|
|
||||||
|
|
||||||
for (const module of moduleList) {
|
|
||||||
Object.defineProperty(exports, module.name, {
|
|
||||||
enumerable: !module.private,
|
|
||||||
get: common.handleESModule(module.loader)
|
|
||||||
})
|
|
||||||
}
|
|
6
lib/browser/api/exports/electron.ts
Normal file
6
lib/browser/api/exports/electron.ts
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
import { defineProperties } from '@electron/internal/common/define-properties'
|
||||||
|
import { commonModuleList } from '@electron/internal/common/api/module-list'
|
||||||
|
import { browserModuleList } from '@electron/internal/browser/api/module-list'
|
||||||
|
|
||||||
|
defineProperties(exports, commonModuleList)
|
||||||
|
defineProperties(exports, browserModuleList)
|
|
@ -1,11 +1,9 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
// TODO: Updating this file also required updating the module-keys file
|
// TODO: Updating this file also required updating the module-keys file
|
||||||
|
|
||||||
const features = process.electronBinding('features')
|
const features = process.electronBinding('features')
|
||||||
|
|
||||||
// Browser side modules, please sort alphabetically.
|
// Browser side modules, please sort alphabetically.
|
||||||
module.exports = [
|
export const browserModuleList: ElectronInternal.ModuleEntry[] = [
|
||||||
{ name: 'app', loader: () => require('./app') },
|
{ name: 'app', loader: () => require('./app') },
|
||||||
{ name: 'autoUpdater', loader: () => require('./auto-updater') },
|
{ name: 'autoUpdater', loader: () => require('./auto-updater') },
|
||||||
{ name: 'BrowserView', loader: () => require('./browser-view') },
|
{ name: 'BrowserView', loader: () => require('./browser-view') },
|
||||||
|
@ -36,7 +34,7 @@ module.exports = [
|
||||||
]
|
]
|
||||||
|
|
||||||
if (features.isViewApiEnabled()) {
|
if (features.isViewApiEnabled()) {
|
||||||
module.exports.push(
|
browserModuleList.push(
|
||||||
{ name: 'BoxLayout', loader: () => require('./views/box-layout') },
|
{ name: 'BoxLayout', loader: () => require('./views/box-layout') },
|
||||||
{ name: 'Button', loader: () => require('./views/button') },
|
{ name: 'Button', loader: () => require('./views/button') },
|
||||||
{ name: 'LabelButton', loader: () => require('./views/label-button') },
|
{ name: 'LabelButton', loader: () => require('./views/label-button') },
|
|
@ -1,37 +0,0 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const moduleList = require('@electron/internal/common/api/module-list')
|
|
||||||
|
|
||||||
exports.handleESModule = (loader) => () => {
|
|
||||||
const value = loader()
|
|
||||||
if (value.__esModule && value.default) return value.default
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.memoizedGetter = (getter) => {
|
|
||||||
/*
|
|
||||||
* It's ok to leak this value as it would be leaked by the global
|
|
||||||
* node module cache anyway at `Module._cache`. This memoization
|
|
||||||
* is dramatically faster than relying on nodes module cache however
|
|
||||||
*/
|
|
||||||
let memoizedValue = null
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
if (memoizedValue === null) {
|
|
||||||
memoizedValue = getter()
|
|
||||||
}
|
|
||||||
return memoizedValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Attaches properties to |targetExports|.
|
|
||||||
exports.defineProperties = function (targetExports) {
|
|
||||||
const descriptors = {}
|
|
||||||
for (const module of moduleList) {
|
|
||||||
descriptors[module.name] = {
|
|
||||||
enumerable: !module.private,
|
|
||||||
get: exports.handleESModule(module.loader)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Object.defineProperties(targetExports, descriptors)
|
|
||||||
}
|
|
|
@ -1,7 +1,5 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
// Common modules, please sort alphabetically
|
// Common modules, please sort alphabetically
|
||||||
module.exports = [
|
export const commonModuleList: ElectronInternal.ModuleEntry[] = [
|
||||||
{ name: 'clipboard', loader: () => require('./clipboard') },
|
{ name: 'clipboard', loader: () => require('./clipboard') },
|
||||||
{ name: 'nativeImage', loader: () => require('./native-image') },
|
{ name: 'nativeImage', loader: () => require('./native-image') },
|
||||||
{ name: 'nativeTheme', loader: () => require('./native-theme') },
|
{ name: 'nativeTheme', loader: () => require('./native-theme') },
|
17
lib/common/define-properties.ts
Normal file
17
lib/common/define-properties.ts
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
const handleESModule = (loader: ElectronInternal.ModuleLoader) => () => {
|
||||||
|
const value = loader()
|
||||||
|
if (value.__esModule && value.default) return value.default
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attaches properties to |targetExports|.
|
||||||
|
export function defineProperties (targetExports: Object, moduleList: ElectronInternal.ModuleEntry[]) {
|
||||||
|
const descriptors: PropertyDescriptorMap = {}
|
||||||
|
for (const module of moduleList) {
|
||||||
|
descriptors[module.name] = {
|
||||||
|
enumerable: !module.private,
|
||||||
|
get: handleESModule(module.loader)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Object.defineProperties(targetExports, descriptors)
|
||||||
|
}
|
|
@ -1,14 +0,0 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const common = require('@electron/internal/common/api/exports/electron')
|
|
||||||
const moduleList = require('@electron/internal/renderer/api/module-list')
|
|
||||||
|
|
||||||
// Import common modules.
|
|
||||||
common.defineProperties(exports)
|
|
||||||
|
|
||||||
for (const module of moduleList) {
|
|
||||||
Object.defineProperty(exports, module.name, {
|
|
||||||
enumerable: !module.private,
|
|
||||||
get: common.handleESModule(module.loader)
|
|
||||||
})
|
|
||||||
}
|
|
6
lib/renderer/api/exports/electron.ts
Normal file
6
lib/renderer/api/exports/electron.ts
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
import { defineProperties } from '@electron/internal/common/define-properties'
|
||||||
|
import { commonModuleList } from '@electron/internal/common/api/module-list'
|
||||||
|
import { rendererModuleList } from '@electron/internal/renderer/api/module-list'
|
||||||
|
|
||||||
|
defineProperties(exports, commonModuleList)
|
||||||
|
defineProperties(exports, rendererModuleList)
|
|
@ -1,22 +1,19 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const features = process.electronBinding('features')
|
const features = process.electronBinding('features')
|
||||||
const v8Util = process.electronBinding('v8_util')
|
const v8Util = process.electronBinding('v8_util')
|
||||||
|
|
||||||
const enableRemoteModule = v8Util.getHiddenValue(global, 'enableRemoteModule')
|
const enableRemoteModule = v8Util.getHiddenValue<boolean>(global, 'enableRemoteModule')
|
||||||
|
|
||||||
// Renderer side modules, please sort alphabetically.
|
// Renderer side modules, please sort alphabetically.
|
||||||
// A module is `enabled` if there is no explicit condition defined.
|
export const rendererModuleList: ElectronInternal.ModuleEntry[] = [
|
||||||
module.exports = [
|
|
||||||
{ name: 'crashReporter', loader: () => require('./crash-reporter') },
|
{ name: 'crashReporter', loader: () => require('./crash-reporter') },
|
||||||
{ name: 'ipcRenderer', loader: () => require('./ipc-renderer') },
|
{ name: 'ipcRenderer', loader: () => require('./ipc-renderer') },
|
||||||
{ name: 'webFrame', loader: () => require('./web-frame') }
|
{ name: 'webFrame', loader: () => require('./web-frame') }
|
||||||
]
|
]
|
||||||
|
|
||||||
if (features.isDesktopCapturerEnabled()) {
|
if (features.isDesktopCapturerEnabled()) {
|
||||||
module.exports.push({ name: 'desktopCapturer', loader: () => require('./desktop-capturer') })
|
rendererModuleList.push({ name: 'desktopCapturer', loader: () => require('./desktop-capturer') })
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enableRemoteModule) {
|
if (enableRemoteModule) {
|
||||||
module.exports.push({ name: 'remote', loader: () => require('./remote') })
|
rendererModuleList.push({ name: 'remote', loader: () => require('./remote') })
|
||||||
}
|
}
|
|
@ -349,9 +349,8 @@ const addBuiltinProperty = (name) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const browserModules =
|
const { commonModuleList } = require('@electron/internal/common/api/module-list')
|
||||||
require('@electron/internal/common/api/module-list').concat(
|
const browserModules = commonModuleList.concat(require('@electron/internal/browser/api/module-keys'))
|
||||||
require('@electron/internal/browser/api/module-keys'))
|
|
||||||
|
|
||||||
// And add a helper receiver for each one.
|
// And add a helper receiver for each one.
|
||||||
browserModules
|
browserModules
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const moduleList = require('@electron/internal/sandboxed_renderer/api/module-list')
|
|
||||||
|
|
||||||
const handleESModule = (m) => {
|
|
||||||
// Handle Typescript modules with an "export default X" statement
|
|
||||||
if (m.__esModule && m.default) return m.default
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const {
|
|
||||||
name,
|
|
||||||
load,
|
|
||||||
enabled = true,
|
|
||||||
private: isPrivate = false
|
|
||||||
} of moduleList) {
|
|
||||||
if (!enabled) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.defineProperty(exports, name, {
|
|
||||||
enumerable: !isPrivate,
|
|
||||||
get: () => handleESModule(load())
|
|
||||||
})
|
|
||||||
}
|
|
4
lib/sandboxed_renderer/api/exports/electron.ts
Normal file
4
lib/sandboxed_renderer/api/exports/electron.ts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import { defineProperties } from '@electron/internal/common/define-properties'
|
||||||
|
import { moduleList } from '@electron/internal/sandboxed_renderer/api/module-list'
|
||||||
|
|
||||||
|
defineProperties(exports, moduleList)
|
|
@ -1,38 +0,0 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const features = process.electronBinding('features')
|
|
||||||
|
|
||||||
module.exports = [
|
|
||||||
{
|
|
||||||
name: 'crashReporter',
|
|
||||||
load: () => require('@electron/internal/renderer/api/crash-reporter')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'desktopCapturer',
|
|
||||||
load: () => require('@electron/internal/renderer/api/desktop-capturer'),
|
|
||||||
enabled: features.isDesktopCapturerEnabled()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'ipcRenderer',
|
|
||||||
load: () => require('@electron/internal/renderer/api/ipc-renderer')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'nativeImage',
|
|
||||||
load: () => require('@electron/internal/common/api/native-image')
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'remote',
|
|
||||||
load: () => require('@electron/internal/renderer/api/remote'),
|
|
||||||
enabled: process.isRemoteModuleEnabled
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'webFrame',
|
|
||||||
load: () => require('@electron/internal/renderer/api/web-frame')
|
|
||||||
},
|
|
||||||
// The internal modules, invisible unless you know their names.
|
|
||||||
{
|
|
||||||
name: 'deprecate',
|
|
||||||
load: () => require('@electron/internal/common/api/deprecate'),
|
|
||||||
private: true
|
|
||||||
}
|
|
||||||
]
|
|
40
lib/sandboxed_renderer/api/module-list.ts
Normal file
40
lib/sandboxed_renderer/api/module-list.ts
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
const features = process.electronBinding('features')
|
||||||
|
|
||||||
|
export const moduleList: ElectronInternal.ModuleEntry[] = [
|
||||||
|
{
|
||||||
|
name: 'crashReporter',
|
||||||
|
loader: () => require('@electron/internal/renderer/api/crash-reporter')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'ipcRenderer',
|
||||||
|
loader: () => require('@electron/internal/renderer/api/ipc-renderer')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'nativeImage',
|
||||||
|
loader: () => require('@electron/internal/common/api/native-image')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'webFrame',
|
||||||
|
loader: () => require('@electron/internal/renderer/api/web-frame')
|
||||||
|
},
|
||||||
|
// The internal modules, invisible unless you know their names.
|
||||||
|
{
|
||||||
|
name: 'deprecate',
|
||||||
|
loader: () => require('@electron/internal/common/api/deprecate'),
|
||||||
|
private: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
if (features.isDesktopCapturerEnabled()) {
|
||||||
|
moduleList.push({
|
||||||
|
name: 'desktopCapturer',
|
||||||
|
loader: () => require('@electron/internal/renderer/api/desktop-capturer')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.isRemoteModuleEnabled) {
|
||||||
|
moduleList.push({
|
||||||
|
name: 'remote',
|
||||||
|
loader: () => require('@electron/internal/renderer/api/remote')
|
||||||
|
})
|
||||||
|
}
|
1
typings/internal-ambient.d.ts
vendored
1
typings/internal-ambient.d.ts
vendored
|
@ -53,6 +53,7 @@ declare namespace NodeJS {
|
||||||
_firstFileName?: string;
|
_firstFileName?: string;
|
||||||
|
|
||||||
helperExecPath: string;
|
helperExecPath: string;
|
||||||
|
isRemoteModuleEnabled: boolean;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
8
typings/internal-electron.d.ts
vendored
8
typings/internal-electron.d.ts
vendored
|
@ -130,6 +130,14 @@ declare namespace ElectronInternal {
|
||||||
once(channel: string, listener: (event: IpcMainInternalEvent, ...args: any[]) => void): this;
|
once(channel: string, listener: (event: IpcMainInternalEvent, ...args: any[]) => void): this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ModuleLoader = () => any;
|
||||||
|
|
||||||
|
interface ModuleEntry {
|
||||||
|
name: string;
|
||||||
|
private?: boolean;
|
||||||
|
loader: ModuleLoader;
|
||||||
|
}
|
||||||
|
|
||||||
interface WebFrameInternal extends Electron.WebFrame {
|
interface WebFrameInternal extends Electron.WebFrame {
|
||||||
getWebFrameId(window: Window): number;
|
getWebFrameId(window: Window): number;
|
||||||
allowGuestViewElementDefinition(window: Window, context: any): void;
|
allowGuestViewElementDefinition(window: Window, context: any): void;
|
||||||
|
|
Loading…
Reference in a new issue