mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
* feat: add a new contextBridge module (#20307)
* 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
* docs: mark contextBridge as experimental (#20638)
* docs: mark contextBridge as experimental
This commit didn't make it to the original PR, quick addition here
* Update context-bridge.md
* chore: update for 7-0-x differences
* chore: update callback header
* chore: add v8 serializer converter, cherry picked from 2fad53e66b
* chore: update for 7-0-x differences
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
'use strict'
|
|
|
|
const features = process.electronBinding('features')
|
|
|
|
module.exports = [
|
|
{
|
|
name: 'contextBridge',
|
|
load: () => require('@electron/internal/renderer/api/context-bridge')
|
|
},
|
|
{
|
|
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
|
|
}
|
|
]
|