diff --git a/src/background/background.js b/src/background/background.js index ed1098e78202703ea6a9c6283f09d142d72cc375..cd0c92e21dba7bae716726e8432aad1c25c3e4d5 100644 --- a/src/background/background.js +++ b/src/background/background.js @@ -435,12 +435,13 @@ function initWorker() { log("[Background] Initialisation du WebWorker..."); try { worker = new Worker(browser.runtime.getURL("src/workers/pyodide_worker.js")); - // Centralisation de l'écoute des messages et erreurs du Worker worker.addEventListener("message", handleWorkerMessage); worker.addEventListener("error", handleWorkerError); log("[Background] WebWorker initialisé avec succès."); + // Charger Pyodide et Simplemma + worker.postMessage({ command: "pyodide-simplemma" }); } catch (error) { - log("[Background] Échec de l'initialisation du WebWorker :", error); + log("[Background] Erreur lors de l'initialisation du WebWorker :", error); } } } @@ -497,6 +498,11 @@ function handleWorkerMessage(event) { // Initialisation du worker dès le démarrage initWorker(); +browser.runtime.onStartup.addListener(() => { + log("[Background] Chargement de Pyodide et Simplemma au démarrage."); + browser.runtime.sendMessage({ command: "pyodide-simplemma" }); +}); + // ───────────────────────────────────────────────────────────────────────────── // Écoute des messages de l'extension et transmission au WebWorker // ───────────────────────────────────────────────────────────────────────────── diff --git a/src/plugin/plugin.js b/src/plugin/plugin.js index 3611b30b3eab89130a648d88749b185e68ea5b55..4464ac975627a2ccf253b2bc613ceacb98fcac8c 100644 --- a/src/plugin/plugin.js +++ b/src/plugin/plugin.js @@ -205,7 +205,7 @@ async function handleToggleExtension() { /** * Gestion du bouton d'ajout automatique */ -function handleAutoAddToggle() { +async function handleAutoAddToggle() { const autoAddCheckbox = document.getElementById("auto-add"); const autoAddOptions = document.getElementById("auto-add-options"); const saveOptionsBtn = document.getElementById("save-options"); @@ -214,6 +214,14 @@ function handleAutoAddToggle() { const isAutoAddEnabled = autoAddCheckbox.checked; + // Vérifier si Pyodide et Simplemma sont prêts + const { pyodideSimplemmaReady } = await browser.storage.local.get("pyodideSimplemmaReady"); + + if (isAutoAddEnabled && !pyodideSimplemmaReady) { + log("L'ajout automatique nécessite Pyodide et Simplemma : Chargement en cours..."); + browser.runtime.sendMessage({ command: "pyodide-simplemma" }); + } + // Juste afficher ou cacher les options, mais ne pas sauvegarder dans le local storage autoAddOptions.classList.toggle("hidden", !isAutoAddEnabled); saveOptionsBtn.classList.toggle("hidden", !isAutoAddEnabled); @@ -273,8 +281,18 @@ async function handleSaveOptions() { includeStopwords: stopwordsCheckbox.checked }); + if (autoAddCheckbox.checked) { + const { isTrackingActive } = await browser.storage.local.get("isTrackingActive"); + if (!isTrackingActive) { + log("Activation automatique des statistiques après validation."); + await browser.storage.local.set({ isTrackingActive: true }); + browser.runtime.sendMessage({ command: "toggle-stats", isActive: true }); + } + } + await updateExtension(); log("Options sauvegardées."); + }