refactor: expose ipcRendererInternal to the main world for window-setup using the content script world pattern (#17591)

This commit is contained in:
Milan Burda 2019-03-30 02:10:21 +01:00 committed by Samuel Attard
parent b8dbe4bc15
commit d597a0e8b0
4 changed files with 30 additions and 32 deletions

View file

@ -2,9 +2,13 @@
/* global nodeProcess, isolatedWorld */
const electronBinding = require('@electron/internal/common/atom-binding-setup').electronBindingSetup(nodeProcess.binding, 'renderer')
process.electronBinding = require('@electron/internal/common/atom-binding-setup').electronBindingSetup(nodeProcess.binding, 'renderer')
const v8Util = electronBinding('v8_util')
const v8Util = process.electronBinding('v8_util')
// The `lib/renderer/ipc-renderer-internal.js` module looks for the ipc object in the
// "ipc-internal" hidden value
v8Util.setHiddenValue(global, 'ipc-internal', v8Util.getHiddenValue(isolatedWorld, 'ipc-internal'))
const webViewImpl = v8Util.getHiddenValue(isolatedWorld, 'web-view-impl')
@ -17,7 +21,7 @@ if (webViewImpl) {
const isolatedWorldArgs = v8Util.getHiddenValue(isolatedWorld, 'isolated-world-args')
if (isolatedWorldArgs) {
const { ipcRendererInternal, guestInstanceId, isHiddenPage, openerId, usesNativeWindowOpen } = isolatedWorldArgs
const { guestInstanceId, isHiddenPage, openerId, usesNativeWindowOpen } = isolatedWorldArgs
const { windowSetup } = require('@electron/internal/renderer/window-setup')
windowSetup(ipcRendererInternal, guestInstanceId, openerId, isHiddenPage, usesNativeWindowOpen)
windowSetup(guestInstanceId, openerId, isHiddenPage, usesNativeWindowOpen)
}