refactor: export internalWindowOpen from guest-window-manager (#21498)
This commit is contained in:
parent
a7f5aafaca
commit
6a03d3cc66
2 changed files with 12 additions and 12 deletions
|
@ -7,6 +7,7 @@ const path = require('path')
|
||||||
const url = require('url')
|
const url = require('url')
|
||||||
const { app, ipcMain, session, deprecate } = electron
|
const { app, ipcMain, session, deprecate } = electron
|
||||||
|
|
||||||
|
const { internalWindowOpen } = require('@electron/internal/browser/guest-window-manager')
|
||||||
const NavigationController = require('@electron/internal/browser/navigation-controller')
|
const NavigationController = require('@electron/internal/browser/navigation-controller')
|
||||||
const { ipcMainInternal } = require('@electron/internal/browser/ipc-main-internal')
|
const { ipcMainInternal } = require('@electron/internal/browser/ipc-main-internal')
|
||||||
const ipcMainUtils = require('@electron/internal/browser/ipc-main-internal-utils')
|
const ipcMainUtils = require('@electron/internal/browser/ipc-main-internal-utils')
|
||||||
|
@ -397,9 +398,7 @@ WebContents.prototype._init = function () {
|
||||||
width: 800,
|
width: 800,
|
||||||
height: 600
|
height: 600
|
||||||
}
|
}
|
||||||
ipcMainInternal.emit('ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN',
|
internalWindowOpen(event, url, referrer, frameName, disposition, options, additionalFeatures, postData)
|
||||||
event, url, referrer, frameName, disposition,
|
|
||||||
options, additionalFeatures, postData)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// Create a new browser window for the native implementation of
|
// Create a new browser window for the native implementation of
|
||||||
|
@ -421,8 +420,7 @@ WebContents.prototype._init = function () {
|
||||||
webContents
|
webContents
|
||||||
}
|
}
|
||||||
const referrer = { url: '', policy: 'default' }
|
const referrer = { url: '', policy: 'default' }
|
||||||
ipcMainInternal.emit('ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN',
|
internalWindowOpen(event, url, referrer, frameName, disposition, options)
|
||||||
event, url, referrer, frameName, disposition, options)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const { BrowserWindow, webContents } = require('electron')
|
const electron = require('electron')
|
||||||
|
const { BrowserWindow } = electron
|
||||||
const { isSameOrigin } = process.electronBinding('v8_util')
|
const { isSameOrigin } = process.electronBinding('v8_util')
|
||||||
const { ipcMainInternal } = require('@electron/internal/browser/ipc-main-internal')
|
const { ipcMainInternal } = require('@electron/internal/browser/ipc-main-internal')
|
||||||
const ipcMainUtils = require('@electron/internal/browser/ipc-main-internal-utils')
|
const ipcMainUtils = require('@electron/internal/browser/ipc-main-internal-utils')
|
||||||
|
@ -244,13 +245,11 @@ ipcMainInternal.on('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_OPEN', (event, url, fra
|
||||||
}
|
}
|
||||||
|
|
||||||
const referrer = { url: '', policy: 'default' }
|
const referrer = { url: '', policy: 'default' }
|
||||||
ipcMainInternal.emit('ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN', event,
|
internalWindowOpen(event, url, referrer, frameName, disposition, options, additionalFeatures)
|
||||||
url, referrer, frameName, disposition, options, additionalFeatures)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// Routed window.open messages with fully parsed options
|
// Routed window.open messages with fully parsed options
|
||||||
ipcMainInternal.on('ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN', function (event, url, referrer,
|
function internalWindowOpen (event, url, referrer, frameName, disposition, options, additionalFeatures, postData) {
|
||||||
frameName, disposition, options, additionalFeatures, postData) {
|
|
||||||
options = mergeBrowserWindowOptions(event.sender, options)
|
options = mergeBrowserWindowOptions(event.sender, options)
|
||||||
event.sender.emit('new-window', event, url, frameName, disposition, options, additionalFeatures, referrer)
|
event.sender.emit('new-window', event, url, frameName, disposition, options, additionalFeatures, referrer)
|
||||||
const { newGuest } = event
|
const { newGuest } = event
|
||||||
|
@ -268,11 +267,12 @@ ipcMainInternal.on('ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN', functio
|
||||||
} else {
|
} else {
|
||||||
event.returnValue = createGuest(event.sender, url, referrer, frameName, options, postData)
|
event.returnValue = createGuest(event.sender, url, referrer, frameName, options, postData)
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
|
||||||
const makeSafeHandler = function (handler) {
|
const makeSafeHandler = function (handler) {
|
||||||
return (event, guestId, ...args) => {
|
return (event, guestId, ...args) => {
|
||||||
const guestContents = webContents.fromId(guestId)
|
// Access webContents via electron to prevent circular require.
|
||||||
|
const guestContents = electron.webContents.fromId(guestId)
|
||||||
if (!guestContents) {
|
if (!guestContents) {
|
||||||
throw new Error(`Invalid guestId: ${guestId}`)
|
throw new Error(`Invalid guestId: ${guestId}`)
|
||||||
}
|
}
|
||||||
|
@ -360,3 +360,5 @@ handleMessageSync('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', (event, g
|
||||||
|
|
||||||
return guestContents[method](...args)
|
return guestContents[method](...args)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
exports.internalWindowOpen = internalWindowOpen
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue