Add ipcRenderer.sendTo

This commit is contained in:
Cheng Zhao 2016-05-18 21:19:50 +09:00
parent d55b96fdf5
commit ae1f442b02
3 changed files with 39 additions and 2 deletions

View file

@ -2,7 +2,7 @@
const electron = require('electron') const electron = require('electron')
const v8Util = process.atomBinding('v8_util') const v8Util = process.atomBinding('v8_util')
const {ipcMain, isPromise} = electron const {ipcMain, isPromise, webContents} = electron
const objectsRegistry = require('./objects-registry') const objectsRegistry = require('./objects-registry')
@ -351,3 +351,13 @@ ipcMain.on('ELECTRON_BROWSER_ASYNC_CALL_TO_GUEST_VIEW', function (event, request
event.returnValue = exceptionToMeta(error) event.returnValue = exceptionToMeta(error)
} }
}) })
ipcMain.on('ELECTRON_BROWSER_SEND_TO', function (event, webContentsId, channel, ...args) {
let contents = webContents.fromId(webContentsId)
if (!contents) {
console.error(`Sending message to WebContents with unknown ID ${webContentsId}`)
return
}
contents.send(channel, ...args)
})

View file

@ -18,4 +18,12 @@ ipcRenderer.sendToHost = function (...args) {
return binding.send('ipc-message-host', args) return binding.send('ipc-message-host', args)
} }
ipcRenderer.sendTo = function (webContentsId, channel, ...args) {
if (typeof webContentsId !== 'number') {
throw new TypeError(`First argument has to be webContentsId`)
}
ipcRenderer.send('ELECTRON_BROWSER_SEND_TO', webContentsId, channel, ...args)
}
module.exports = ipcRenderer module.exports = ipcRenderer

View file

@ -130,6 +130,25 @@ exports.injectTo = function (extensionId, context) {
} }
chrome.extension = { chrome.extension = {
getURL: chrome.runtime.getURL getURL: chrome.runtime.getURL,
connect: chrome.runtime.connect
onConnect: chrome.runtime.onConnect
}
chrome.storage = {
sync: {
get () {},
set () {}
}
}
chrome.pageAction = {
show: () {},
hide: () {},
setTitle: () {},
getTitle: () {},
setIcon: () {},
setPopup: () {},
getPopup: () {}
} }
} }