0090616f7b
* feat: add a new contextBridge module * chore: fix docs linting * feat: add support for function arguments being proxied * chore: ensure that contextBridge can only be used when contextIsolation is enabled * docs: getReverseBinding can be null * docs: fix broken links in md file * feat: add support for promises in function parameters * fix: linting failure for explicit constructor * Update atom_api_context_bridge.cc * chore: update docs and API design as per feedback * refactor: remove reverse bindings and handle GC'able functions across the bridge * chore: only expose debugGC in testing builds * fix: do not proxy promises as objects * spec: add complete spec coverage for contextBridge * spec: add tests for null/undefined and the anti-overwrite logic * chore: fix linting * spec: add complex nested back-and-forth function calling * fix: expose contextBridge in sandboxed renderers * refactor: improve security of default_app using the new contextBridge module * s/bindAPIInMainWorld/exposeInMainWorld * chore: sorry for this commit, its a big one, I fixed like everything and refactored a lot * chore: remove PassedValueCache as it is unused now Values transferred from context A to context B are now cachde in the RenderFramePersistenceStore * chore: move to anonymous namespace * refactor: remove PassValueToOtherContextWithCache * chore: remove commented unused code blocks * chore: remove .only * chore: remote commented code * refactor: extract RenderFramePersistenceStore * spec: ensure it works with numbered keys * fix: handle number keys correctly * fix: sort out the linter * spec: update default_app asar spec for removed file * refactor: change signatures to return v8 objects directly rather than the mate dictionary handle * refactor: use the v8 serializer to support cloneable buffers and other object types * chore: fix linting * fix: handle hash collisions with a linked list in the map * fix: enforce a recursion limit on the context bridge * chore: fix linting * chore: remove TODO * chore: adapt for PR feedback * chore: remove .only * chore: clean up docs and clean up the proxy map when objects are released * chore: ensure we cache object values that are cloned through the V8 serializer
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
const features = process.electronBinding('features')
|
|
|
|
export const moduleList: ElectronInternal.ModuleEntry[] = [
|
|
{
|
|
name: 'contextBridge',
|
|
loader: () => require('@electron/internal/renderer/api/context-bridge')
|
|
},
|
|
{
|
|
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 (features.isRemoteModuleEnabled() && process.isRemoteModuleEnabled) {
|
|
moduleList.push({
|
|
name: 'remote',
|
|
loader: () => require('@electron/internal/renderer/api/remote')
|
|
})
|
|
}
|