feat(extensions): add chrome.tabs.connect API (#22457)
* feat(extensions): add chrome.tabs.connect API * test(extensions): verify that chrome.tabs.connect port communication works
This commit is contained in:
parent
d6701ff435
commit
0201b3e571
4 changed files with 62 additions and 0 deletions
|
@ -16,6 +16,13 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
|||
chrome.tabs.executeScript(tabId, { code }, ([result]) => sendResponse(result))
|
||||
break
|
||||
}
|
||||
|
||||
case 'connectTab': {
|
||||
const [name] = args
|
||||
const port = chrome.tabs.connect(tabId, { name })
|
||||
port.postMessage('howdy')
|
||||
break
|
||||
}
|
||||
}
|
||||
// Respond asynchronously
|
||||
return true
|
||||
|
|
|
@ -29,6 +29,14 @@ const testMap = {
|
|||
chrome.runtime.sendMessage({ method: 'executeScript', args: [code] }, response => {
|
||||
console.log(JSON.stringify(response))
|
||||
})
|
||||
},
|
||||
connectTab (name) {
|
||||
chrome.runtime.onConnect.addListener(port => {
|
||||
port.onMessage.addListener(message => {
|
||||
console.log([port.name, message].join())
|
||||
})
|
||||
})
|
||||
chrome.runtime.sendMessage({ method: 'connectTab', args: [name] })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue