refactor: use separate ipc-renderer-internal / ipc-main-internal APIs for Electron internals (#13940)
This commit is contained in:
parent
f7122610cc
commit
b50f86ef43
49 changed files with 322 additions and 133 deletions
|
@ -17,6 +17,9 @@ v8Util.setHiddenValue(global, 'Buffer', Buffer)
|
|||
// The `lib/renderer/api/ipc-renderer.js` module looks for the ipc object in the
|
||||
// "ipc" hidden value
|
||||
v8Util.setHiddenValue(global, 'ipc', new EventEmitter())
|
||||
// The `lib/renderer/ipc-renderer-internal.js` module looks for the ipc object in the
|
||||
// "ipc-internal" hidden value
|
||||
v8Util.setHiddenValue(global, 'ipc-internal', new EventEmitter())
|
||||
// The process object created by browserify is not an event emitter, fix it so
|
||||
// the API is more compatible with non-sandboxed renderers.
|
||||
for (const prop of Object.keys(EventEmitter.prototype)) {
|
||||
|
@ -40,9 +43,28 @@ const loadedModules = new Map([
|
|||
['url', require('url')]
|
||||
])
|
||||
|
||||
// AtomSandboxedRendererClient will look for the "ipcNative" hidden object when
|
||||
// invoking the `onMessage`/`onExit` callbacks.
|
||||
const ipcNative = process.atomBinding('ipc')
|
||||
v8Util.setHiddenValue(global, 'ipcNative', ipcNative)
|
||||
|
||||
const ipcRenderer = require('@electron/internal/renderer/ipc-renderer-internal')
|
||||
|
||||
ipcNative.onInternalMessage = function (channel, args, senderId) {
|
||||
ipcRenderer.emit(channel, { sender: ipcRenderer, senderId }, ...args)
|
||||
}
|
||||
|
||||
ipcNative.onMessage = function (channel, args, senderId) {
|
||||
electron.ipcRenderer.emit(channel, { sender: electron.ipcRenderer, senderId }, ...args)
|
||||
}
|
||||
|
||||
ipcNative.onExit = function () {
|
||||
process.emit('exit')
|
||||
}
|
||||
|
||||
const {
|
||||
preloadSrc, preloadError, process: processProps
|
||||
} = electron.ipcRenderer.sendSync('ELECTRON_BROWSER_SANDBOX_LOAD')
|
||||
} = ipcRenderer.sendSync('ELECTRON_BROWSER_SANDBOX_LOAD')
|
||||
|
||||
require('@electron/internal/renderer/web-frame-init')()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue