mirror of
https://github.com/younesaassila/ttv-lol-pro.git
synced 2025-05-11 03:44:31 +02:00
Fix #302
This commit is contained in:
parent
812a5d2d3b
commit
b57c5e96eb
@ -93,6 +93,9 @@ window.Worker = class Worker extends window.Worker {
|
|||||||
new Blob([wrapperScript], { type: "text/javascript" })
|
new Blob([wrapperScript], { type: "text/javascript" })
|
||||||
);
|
);
|
||||||
super(wrapperScriptURL, options);
|
super(wrapperScriptURL, options);
|
||||||
|
URL.revokeObjectURL(newScriptURL);
|
||||||
|
URL.revokeObjectURL(wrapperScriptURL);
|
||||||
|
pageState.twitchWorker = this;
|
||||||
this.addEventListener("message", event => {
|
this.addEventListener("message", event => {
|
||||||
if (
|
if (
|
||||||
event.data?.type === MessageType.ContentScriptMessage ||
|
event.data?.type === MessageType.ContentScriptMessage ||
|
||||||
@ -101,7 +104,6 @@ window.Worker = class Worker extends window.Worker {
|
|||||||
window.postMessage(event.data);
|
window.postMessage(event.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
pageState.twitchWorker = this;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ async function sendMessageAndWaitForResponse(
|
|||||||
const message = event.data?.message;
|
const message = event.data?.message;
|
||||||
if (!message) return;
|
if (!message) return;
|
||||||
if (message.type === responseMessageType) {
|
if (message.type === responseMessageType) {
|
||||||
|
self.removeEventListener("message", listener);
|
||||||
resolve(message);
|
resolve(message);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -10,7 +10,10 @@ class Store<T extends Record<string | symbol, any>> {
|
|||||||
private readonly _areaName: StorageAreaName;
|
private readonly _areaName: StorageAreaName;
|
||||||
private readonly _getDefaultState: () => T;
|
private readonly _getDefaultState: () => T;
|
||||||
private _state: T; // Raw state
|
private _state: T; // Raw state
|
||||||
private _listenersByEvent: Record<string, Function[]> = {};
|
private _listenersByEvent: Record<EventType, Function[]> = {
|
||||||
|
load: [],
|
||||||
|
change: [],
|
||||||
|
};
|
||||||
|
|
||||||
readyState: ReadyState = "loading";
|
readyState: ReadyState = "loading";
|
||||||
state: T; // Proxy state
|
state: T; // Proxy state
|
||||||
@ -18,12 +21,13 @@ class Store<T extends Record<string | symbol, any>> {
|
|||||||
constructor(areaName: StorageAreaName, getDefaultState: () => T) {
|
constructor(areaName: StorageAreaName, getDefaultState: () => T) {
|
||||||
this._areaName = areaName;
|
this._areaName = areaName;
|
||||||
this._getDefaultState = getDefaultState;
|
this._getDefaultState = getDefaultState;
|
||||||
// Temporary state until init() is called to satisfy TypeScript.
|
// Temporary state to satisfy TypeScript until init() is called.
|
||||||
this._state = this._getDefaultState();
|
this._state = this._getDefaultState();
|
||||||
this.state = this._state;
|
this.state = this._state;
|
||||||
this._init().then(() => {
|
this._init().then(() => {
|
||||||
this.readyState = "complete";
|
this.readyState = "complete";
|
||||||
this.dispatchEvent("load");
|
this.dispatchEvent("load");
|
||||||
|
this._listenersByEvent["load"] = []; // Remove all load listeners.
|
||||||
});
|
});
|
||||||
browser.storage.onChanged.addListener((changes, area) => {
|
browser.storage.onChanged.addListener((changes, area) => {
|
||||||
if (area !== this._areaName) return;
|
if (area !== this._areaName) return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user