Set browser action details to match cast session states

This commit is contained in:
hensm
2022-09-10 19:48:46 +01:00
parent 764a5e0a00
commit e761d4756a
5 changed files with 143 additions and 9 deletions

View File

@@ -27,6 +27,7 @@ import ReceiverSelector, {
} from "./ReceiverSelector";
import deviceManager from "./deviceManager";
import { ActionState, updateActionState } from "./action";
type AnyPort = Port | TypedMessagePort<Message>;
@@ -85,6 +86,13 @@ async function createCastSession(opts: {
destroyCastInstance(opts.instance)
);
if (opts.instance.contentContext?.tabId) {
updateActionState(
ActionState.Connecting,
opts.instance.contentContext?.tabId
);
}
return session;
}
@@ -161,6 +169,10 @@ function destroyCastInstance(instance: CastInstance) {
);
}
if (instance.contentContext?.tabId) {
updateActionState(ActionState.Default, instance.contentContext?.tabId);
}
activeInstances.delete(instance);
}
@@ -227,6 +239,13 @@ const castManager = new (class {
});
delete instance.session;
if (instance.contentContext?.tabId) {
updateActionState(
ActionState.Default,
instance.contentContext?.tabId
);
}
}
}
@@ -407,6 +426,13 @@ async function handleBridgeMessage(instance: CastInstance, message: Message) {
}
});
if (instance.contentContext?.tabId) {
updateActionState(
ActionState.Connected,
instance.contentContext?.tabId
);
}
break;
}
@@ -529,6 +555,13 @@ async function handleContentMessage(instance: CastInstance, message: Message) {
}
});
if (instance.contentContext?.tabId) {
updateActionState(
ActionState.Connected,
instance.contentContext?.tabId
);
}
break sessionLoop;
}
}