Restructure shim/bridge initialization steps

This commit is contained in:
hensm
2019-02-10 06:31:31 +00:00
parent a1101d6cf6
commit 1c55b67922
8 changed files with 181 additions and 139 deletions

View File

@@ -1,12 +1,37 @@
"use strict";
document.addEventListener("__castMessageResponse", ev => {
browser.runtime.sendMessage(ev.detail);
})
browser.runtime.onMessage.addListener(message => {
const event = new CustomEvent("__castMessage", {
detail: JSON.stringify(message)
});
document.dispatchEvent(event);
const backgroundPort = browser.runtime.connect({
name: "shim"
});
backgroundPort.onMessage.addListener(message => {
const event = new CustomEvent("__castMessage", {
detail: JSON.stringify(message)
});
document.dispatchEvent(event);
});
let popupPort;
browser.runtime.onConnect.addListener(port => {
if (port.name === "popup") {
popupPort = port;
}
port.onMessage.addListener(message => {
const event = new CustomEvent("__castMessage", {
detail: JSON.stringify(message)
});
document.dispatchEvent(event);
})
});
document.addEventListener("__castMessageResponse", ev => {
if (ev.detail.destination === "popup") {
if (popupPort) {
popupPort.postMessage(ev.detail);
}
return;
}
backgroundPort.postMessage(ev.detail);
});