Skip to content
Snippets Groups Projects
Commit 629c02bb authored by Prénom Nom's avatar Prénom Nom
Browse files

ajout gestion connexion port après refresh

parent d3fb8413
No related branches found
No related tags found
No related merge requests found
......@@ -761,28 +761,42 @@ browser.runtime.onMessage.addListener(async (message, sender) => {
* Gère la connexion entre stats.js et le Worker via un port dédié
* @param {Object} port - Le port de communication avec le Worker
*/
// Tableau pour stocker tous les ports connectés depuis stats.js
let statsPorts = [];
// Lorsqu'un content script se connecte via le port "stats-worker-port"
browser.runtime.onConnect.addListener((port) => {
log("[Background] Connexion établie :", port.name);
if (port.name === "stats-worker-port") {
// Redirige les messages de stats.js vers le Worker
log("[Background] Connexion établie sur stats-worker-port.");
statsPorts.push(port);
// Rediriger les messages reçus de ce port vers le Worker
port.onMessage.addListener((message) => {
log("[Background] Message reçu de stats.js :", message);
worker.postMessage(message);
});
// Transmettre les réponses du Worker à stats.js via le port
worker.addEventListener("message", (event) => {
const data = event.data;
if (data.type === "update-frequencies") {
port.postMessage({ command: "update-frequencies", frequencies: data.frequencies });
}
if (data.type === "threshold-exceeded") {
port.postMessage({ command: "threshold-exceeded", wordsAboveThreshold: data.wordsAboveThreshold });
}
// Lors de la déconnexion, retirer le port du tableau
port.onDisconnect.addListener(() => {
log("[Background] Déconnexion d'un port stats-worker-port.");
statsPorts = statsPorts.filter((p) => p !== port);
});
}
});
// Écoute des messages du worker et on les envoie à tous les ports actifs
worker.addEventListener("message", (event) => {
const data = event.data;
// Envoi des messages à tous les ports connectés
statsPorts.forEach((port) => {
if (data.type === "update-frequencies") {
port.postMessage({ command: "update-frequencies", frequencies: data.frequencies });
} else if (data.type === "threshold-exceeded") {
port.postMessage({ command: "threshold-exceeded", wordsAboveThreshold: data.wordsAboveThreshold });
}
});
});
// ─────────────────────────────────────────────────────────────────────────────
// Surlignage
// ─────────────────────────────────────────────────────────────────────────────
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment