|
@@ -296,42 +296,75 @@ handleRemoteCommand('ELECTRON_BROWSER_REQUIRE', function (event, contextId, modu
|
|
|
const customEvent = eventBinding.createWithSender(event.sender)
|
|
|
event.sender.emit('remote-require', customEvent, moduleName)
|
|
|
|
|
|
- if (customEvent.defaultPrevented) {
|
|
|
- if (typeof customEvent.returnValue === 'undefined') {
|
|
|
- throw new Error(`Invalid module: ${moduleName}`)
|
|
|
+ if (customEvent.returnValue === undefined) {
|
|
|
+ if (customEvent.defaultPrevented) {
|
|
|
+ throw new Error(`Blocked remote.require('${moduleName}')`)
|
|
|
+ } else {
|
|
|
+ customEvent.returnValue = process.mainModule.require(moduleName)
|
|
|
}
|
|
|
- } else {
|
|
|
- customEvent.returnValue = process.mainModule.require(moduleName)
|
|
|
}
|
|
|
|
|
|
return valueToMeta(event.sender, contextId, customEvent.returnValue)
|
|
|
})
|
|
|
|
|
|
-handleRemoteCommand('ELECTRON_BROWSER_GET_BUILTIN', function (event, contextId, module) {
|
|
|
- return valueToMeta(event.sender, contextId, electron[module])
|
|
|
+handleRemoteCommand('ELECTRON_BROWSER_GET_BUILTIN', function (event, contextId, moduleName) {
|
|
|
+ const customEvent = eventBinding.createWithSender(event.sender)
|
|
|
+ event.sender.emit('remote-get-builtin', customEvent, moduleName)
|
|
|
+
|
|
|
+ if (customEvent.returnValue === undefined) {
|
|
|
+ if (customEvent.defaultPrevented) {
|
|
|
+ throw new Error(`Blocked remote.getBuiltin('${moduleName}')`)
|
|
|
+ } else {
|
|
|
+ customEvent.returnValue = electron[moduleName]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return valueToMeta(event.sender, contextId, customEvent.returnValue)
|
|
|
})
|
|
|
|
|
|
handleRemoteCommand('ELECTRON_BROWSER_GLOBAL', function (event, contextId, globalName) {
|
|
|
const customEvent = eventBinding.createWithSender(event.sender)
|
|
|
event.sender.emit('remote-get-global', customEvent, globalName)
|
|
|
|
|
|
- if (customEvent.defaultPrevented) {
|
|
|
- if (typeof customEvent.returnValue === 'undefined') {
|
|
|
- throw new Error(`Invalid global: ${globalName}`)
|
|
|
+ if (customEvent.returnValue === undefined) {
|
|
|
+ if (customEvent.defaultPrevented) {
|
|
|
+ throw new Error(`Blocked remote.getGlobal('${globalName}')`)
|
|
|
+ } else {
|
|
|
+ customEvent.returnValue = global[globalName]
|
|
|
}
|
|
|
- } else {
|
|
|
- customEvent.returnValue = global[globalName]
|
|
|
}
|
|
|
|
|
|
return valueToMeta(event.sender, contextId, customEvent.returnValue)
|
|
|
})
|
|
|
|
|
|
handleRemoteCommand('ELECTRON_BROWSER_CURRENT_WINDOW', function (event, contextId) {
|
|
|
- return valueToMeta(event.sender, contextId, event.sender.getOwnerBrowserWindow())
|
|
|
+ const customEvent = eventBinding.createWithSender(event.sender)
|
|
|
+ event.sender.emit('remote-get-current-window', customEvent)
|
|
|
+
|
|
|
+ if (customEvent.returnValue === undefined) {
|
|
|
+ if (customEvent.defaultPrevented) {
|
|
|
+ throw new Error('Blocked remote.getCurrentWindow()')
|
|
|
+ } else {
|
|
|
+ customEvent.returnValue = event.sender.getOwnerBrowserWindow()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return valueToMeta(event.sender, contextId, customEvent.returnValue)
|
|
|
})
|
|
|
|
|
|
handleRemoteCommand('ELECTRON_BROWSER_CURRENT_WEB_CONTENTS', function (event, contextId) {
|
|
|
- return valueToMeta(event.sender, contextId, event.sender)
|
|
|
+ const customEvent = eventBinding.createWithSender(event.sender)
|
|
|
+ event.sender.emit('remote-get-current-web-contents', customEvent)
|
|
|
+
|
|
|
+ if (customEvent.returnValue === undefined) {
|
|
|
+ if (customEvent.defaultPrevented) {
|
|
|
+ throw new Error('Blocked remote.getCurrentWebContents()')
|
|
|
+ } else {
|
|
|
+ customEvent.returnValue = event.sender
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return valueToMeta(event.sender, contextId, customEvent.returnValue)
|
|
|
})
|
|
|
|
|
|
handleRemoteCommand('ELECTRON_BROWSER_CONSTRUCTOR', function (event, contextId, id, args) {
|
|
@@ -411,7 +444,19 @@ handleRemoteCommand('ELECTRON_BROWSER_CONTEXT_RELEASE', (event, contextId) => {
|
|
|
|
|
|
handleRemoteCommand('ELECTRON_BROWSER_GUEST_WEB_CONTENTS', function (event, contextId, guestInstanceId) {
|
|
|
const guest = guestViewManager.getGuestForWebContents(guestInstanceId, event.sender)
|
|
|
- return valueToMeta(event.sender, contextId, guest)
|
|
|
+
|
|
|
+ const customEvent = eventBinding.createWithSender(event.sender)
|
|
|
+ event.sender.emit('remote-get-guest-web-contents', customEvent, guest)
|
|
|
+
|
|
|
+ if (customEvent.returnValue === undefined) {
|
|
|
+ if (customEvent.defaultPrevented) {
|
|
|
+ throw new Error(`Blocked remote.getGuestForWebContents()`)
|
|
|
+ } else {
|
|
|
+ customEvent.returnValue = guest
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return valueToMeta(event.sender, contextId, customEvent.returnValue)
|
|
|
})
|
|
|
|
|
|
// Implements window.close()
|