Fix some errors, improve code for message handlers

This commit is contained in:
Younes Aassila 2025-02-01 15:13:21 +01:00
parent e96e509bc7
commit 09750b6b1f
No known key found for this signature in database
6 changed files with 27 additions and 18 deletions

View File

@ -65,7 +65,6 @@ function onStoreChange(changes: Record<string, Storage.StorageChange>) {
// This is mainly to reduce the amount of messages sent to the page script. // This is mainly to reduce the amount of messages sent to the page script.
// (Also to reduce the number of console logs.) // (Also to reduce the number of console logs.)
const ignoredKeys: (keyof State)[] = [ const ignoredKeys: (keyof State)[] = [
"activeChannelSubscriptions",
"adLog", "adLog",
"dnsResponses", "dnsResponses",
"openedTwitchTabs", "openedTwitchTabs",
@ -99,8 +98,9 @@ function onBackgroundMessage(message: any): undefined {
} }
function onPageMessage(event: MessageEvent) { function onPageMessage(event: MessageEvent) {
if (!event.data) return; if (!event.data || event.data.type !== MessageType.ContentScriptMessage) {
if (event.data.type !== MessageType.ContentScriptMessage) return; return;
}
const { message, responseType, responseMessageType } = event.data; const { message, responseType, responseMessageType } = event.data;
if (!message) return; if (!message) return;

View File

@ -169,8 +169,12 @@ function main() {
whitelistSubscriptionsCheckboxElement.checked = whitelistSubscriptionsCheckboxElement.checked =
store.state.whitelistChannelSubscriptions; store.state.whitelistChannelSubscriptions;
whitelistSubscriptionsCheckboxElement.addEventListener("change", () => { whitelistSubscriptionsCheckboxElement.addEventListener("change", () => {
store.state.whitelistChannelSubscriptions = const { checked } = whitelistSubscriptionsCheckboxElement;
whitelistSubscriptionsCheckboxElement.checked; store.state.whitelistChannelSubscriptions = checked;
if (!checked) {
// Clear active channel subscriptions to free up storage space.
store.state.activeChannelSubscriptions = [];
}
}); });
// Proxies // Proxies
if (store.state.optimizedProxiesEnabled) if (store.state.optimizedProxiesEnabled)

View File

@ -28,9 +28,11 @@ export function getFetch(pageState: PageState): typeof fetch {
// Listen for NewPlaybackAccessToken messages from the worker script. // Listen for NewPlaybackAccessToken messages from the worker script.
if (pageState.scope === "page") { if (pageState.scope === "page") {
self.addEventListener("message", async event => { self.addEventListener("message", async event => {
if (event.data?.type !== MessageType.PageScriptMessage) return; if (!event.data || event.data.type !== MessageType.PageScriptMessage) {
return;
}
const message = event.data?.message; const { message } = event.data;
if (!message) return; if (!message) return;
switch (message.type) { switch (message.type) {
@ -58,13 +60,14 @@ export function getFetch(pageState: PageState): typeof fetch {
// Listen for ClearStats messages from the page script. // Listen for ClearStats messages from the page script.
self.addEventListener("message", event => { self.addEventListener("message", event => {
if ( if (
event.data?.type !== MessageType.PageScriptMessage && !event.data ||
event.data?.type !== MessageType.WorkerScriptMessage (event.data.type !== MessageType.PageScriptMessage &&
event.data.type !== MessageType.WorkerScriptMessage)
) { ) {
return; return;
} }
const message = event.data?.message; const { message } = event.data;
if (!message) return; if (!message) return;
switch (message.type) { switch (message.type) {

View File

@ -130,9 +130,9 @@ window.addEventListener("message", event => {
return; return;
} }
if (event.data?.type !== MessageType.PageScriptMessage) return; if (!event.data || event.data.type !== MessageType.PageScriptMessage) return;
const message = event.data?.message; const { message } = event.data;
if (!message) return; if (!message) return;
switch (message.type) { switch (message.type) {

View File

@ -14,7 +14,7 @@ function sendMessage(
message: any message: any
): void { ): void {
if (!recipient) { if (!recipient) {
return console.warn("[TTV LOL PRO] Message recipient is undefined."); return console.error("[TTV LOL PRO] Message recipient is undefined.");
} }
recipient.postMessage({ recipient.postMessage({
type, type,
@ -32,14 +32,14 @@ async function sendMessageAndWaitForResponse(
): Promise<any> { ): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!recipient) { if (!recipient) {
console.warn("[TTV LOL PRO] Message recipient is undefined."); console.error("[TTV LOL PRO] Message recipient is undefined.");
resolve(undefined); resolve(undefined);
return; return;
} }
const listener = (event: MessageEvent) => { const listener = (event: MessageEvent) => {
if (event.data?.type !== responseType) return; if (!event.data || event.data.type !== responseType) return;
const message = event.data?.message; const { message } = event.data;
if (!message) return; if (!message) return;
if (message.type === responseMessageType) { if (message.type === responseMessageType) {
self.removeEventListener("message", listener); self.removeEventListener("message", listener);

View File

@ -47,9 +47,11 @@ const pageState: PageState = {
self.fetch = getFetch(pageState); self.fetch = getFetch(pageState);
self.addEventListener("message", event => { self.addEventListener("message", event => {
if (event.data?.type !== MessageType.WorkerScriptMessage) return; if (!event.data || event.data.type !== MessageType.WorkerScriptMessage) {
return;
}
const message = event.data?.message; const { message } = event.data;
if (!message) return; if (!message) return;
switch (message.type) { switch (message.type) {