mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 01:59:58 +00:00
Convert shim to Typescript (#32)
This commit is contained in:
34
ext/src/shim/content.ts
Normal file
34
ext/src/shim/content.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
|
||||
import { Message } from "../types";
|
||||
import { onMessageResponse, sendMessage } from "./messageBridge";
|
||||
|
||||
// Message ports
|
||||
const backgroundPort = browser.runtime.connect({ name: "shim" });
|
||||
let popupPort: browser.runtime.Port;
|
||||
|
||||
|
||||
// Set popupPort once it connects
|
||||
browser.runtime.onConnect.addListener(port => {
|
||||
if (port.name === "popup") {
|
||||
popupPort = port;
|
||||
}
|
||||
|
||||
port.onMessage.addListener(sendMessage);
|
||||
});
|
||||
|
||||
// Forward background messages to shim
|
||||
backgroundPort.onMessage.addListener(sendMessage);
|
||||
|
||||
// Forward shim messages to popup and background script
|
||||
onMessageResponse((message: Message) => {
|
||||
const [ destination ] = message.subject.split(":/");
|
||||
|
||||
if (destination === "popup") {
|
||||
if (popupPort) {
|
||||
popupPort.postMessage(message);
|
||||
}
|
||||
} else {
|
||||
backgroundPort.postMessage(message);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user