mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-12 10:39:57 +00:00
Fix receiver selector manager event listeners
This commit is contained in:
@@ -590,6 +590,46 @@ async function onConnectShim (port: browser.runtime.Port) {
|
|||||||
? ReceiverSelectorManagerType.NativeMac
|
? ReceiverSelectorManagerType.NativeMac
|
||||||
: ReceiverSelectorManagerType.Popup);
|
: ReceiverSelectorManagerType.Popup);
|
||||||
|
|
||||||
|
function onReceiverSelectorManagerSelected (
|
||||||
|
ev: ReceiverSelectorSelectedEvent) {
|
||||||
|
|
||||||
|
port.postMessage({
|
||||||
|
subject: "shim:/selectReceiverEnd"
|
||||||
|
, data: {
|
||||||
|
receiver: ev.detail.receiver
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function onReceiverSelectorManagerCancelled () {
|
||||||
|
port.postMessage({
|
||||||
|
subject: "shim:/selectReceiverCancelled"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function onReceiverSelectorManagerError () {
|
||||||
|
// TODO: Report errors properly
|
||||||
|
port.postMessage({
|
||||||
|
subject: "shim:/selectReceiverCancelled"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
receiverSelectorManager.addEventListener("selected"
|
||||||
|
, onReceiverSelectorManagerSelected);
|
||||||
|
receiverSelectorManager.addEventListener("cancelled"
|
||||||
|
, onReceiverSelectorManagerCancelled);
|
||||||
|
receiverSelectorManager.addEventListener("error"
|
||||||
|
, onReceiverSelectorManagerError);
|
||||||
|
|
||||||
|
port.onDisconnect.addListener(() => {
|
||||||
|
receiverSelectorManager.removeEventListener("selected"
|
||||||
|
, onReceiverSelectorManagerSelected);
|
||||||
|
receiverSelectorManager.removeEventListener("cancelled"
|
||||||
|
, onReceiverSelectorManagerCancelled);
|
||||||
|
receiverSelectorManager.removeEventListener("error"
|
||||||
|
, onReceiverSelectorManagerError);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
const tabId = port.sender.tab.id;
|
const tabId = port.sender.tab.id;
|
||||||
const frameId = port.sender.frameId;
|
const frameId = port.sender.frameId;
|
||||||
@@ -668,31 +708,6 @@ async function onConnectShim (port: browser.runtime.Port) {
|
|||||||
receiverSelectorManager.open(
|
receiverSelectorManager.open(
|
||||||
Array.from(statusBridgeReceivers.values())
|
Array.from(statusBridgeReceivers.values())
|
||||||
, message.data.defaultMediaType);
|
, message.data.defaultMediaType);
|
||||||
|
|
||||||
receiverSelectorManager.addEventListener("selected"
|
|
||||||
, (ev: ReceiverSelectorSelectedEvent) => {
|
|
||||||
|
|
||||||
port.postMessage({
|
|
||||||
subject: "shim:/selectReceiverEnd"
|
|
||||||
, data: {
|
|
||||||
receiver: ev.detail.receiver
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
receiverSelectorManager.addEventListener("cancelled", () => {
|
|
||||||
port.postMessage({
|
|
||||||
subject: "shim:/selectReceiverCancelled"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
receiverSelectorManager.addEventListener("error", () => {
|
|
||||||
// TODO: Report errors properly
|
|
||||||
port.postMessage({
|
|
||||||
subject: "shim:/selectReceiverCancelled"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ export function getReceiverSelectorManager (
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ReceiverSelectorManagerType.Popup: {
|
case ReceiverSelectorManagerType.Popup: {
|
||||||
return PopupReceiverSelectorManager;
|
return new PopupReceiverSelectorManager();
|
||||||
}
|
}
|
||||||
case ReceiverSelectorManagerType.NativeMac: {
|
case ReceiverSelectorManagerType.NativeMac: {
|
||||||
return NativeMacReceiverSelectorManager;
|
return new NativeMacReceiverSelectorManager();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { NativeReceiverSelectorCloseMessage
|
|||||||
const _ = browser.i18n.getMessage;
|
const _ = browser.i18n.getMessage;
|
||||||
|
|
||||||
|
|
||||||
class NativeMacReceiverSelectorManager
|
export default class NativeMacReceiverSelectorManager
|
||||||
extends EventTarget
|
extends EventTarget
|
||||||
implements ReceiverSelectorManager {
|
implements ReceiverSelectorManager {
|
||||||
|
|
||||||
@@ -105,6 +105,3 @@ class NativeMacReceiverSelectorManager
|
|||||||
this.wasReceiverSelected = false;
|
this.wasReceiverSelected = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Singleton instance
|
|
||||||
export default new NativeMacReceiverSelectorManager();
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { getWindowCenteredProps } from "../../lib/utils";
|
|||||||
import { Message, Receiver } from "../../types";
|
import { Message, Receiver } from "../../types";
|
||||||
|
|
||||||
|
|
||||||
class PopupReceiverSelectorManager
|
export default class PopupReceiverSelectorManager
|
||||||
extends EventTarget
|
extends EventTarget
|
||||||
implements ReceiverSelectorManager {
|
implements ReceiverSelectorManager {
|
||||||
|
|
||||||
@@ -158,6 +158,3 @@ class PopupReceiverSelectorManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Singleton instance
|
|
||||||
export default new PopupReceiverSelectorManager();
|
|
||||||
|
|||||||
Reference in New Issue
Block a user