diff --git a/src/background/background.js b/src/background/background.js
index 1f76e0cbf79a0a4cd3b2de0e060350ce4475b71c..be0c8146c0d5e9f201c74f66b686ac592e061558 100644
--- a/src/background/background.js
+++ b/src/background/background.js
@@ -10,7 +10,7 @@ const AUTH_LOGIN_URL = "https://prisms.lezinter.net/fr/login";
 const AUTH_BALEX_URL = "https://prisms.lezinter.net/fr/headquarters/balex";
 
 // ─────────────────────────────────────────────────────────────────────────────
-// Logs de démarrage
+// Logs de démarrage et initialisation
 // ─────────────────────────────────────────────────────────────────────────────
 log("🚀 ff2BaLex (background) chargé.");
 
@@ -22,6 +22,11 @@ browser.runtime.onStartup.addListener(() => {
   log("🔄 Extension démarrée (onStartup).");
 });
 
+browser.runtime.onInstalled.addListener(() => {
+  browser.storage.local.set({ extensionActive: false });
+  log("🔔 Extension installée, état initialisé à désactivé.");
+});
+
 // ─────────────────────────────────────────────────────────────────────────────
 // Suivi des changements dans le stockage
 // ─────────────────────────────────────────────────────────────────────────────
@@ -225,13 +230,11 @@ browser.runtime.onMessage.addListener(async (message, sender, sendResponse) => {
       const tabs = await browser.tabs.query({active: true, currentWindow: true});
       if (tabs[0]) {
         try {
-          // S'assurer que le script est injecté
           await browser.scripting.executeScript({
               target: { tabId: tabs[0].id },
               files: ["src/utils/highlighting.js"]
           });
 
-          // Envoyer le message d'activation
           await browser.tabs.sendMessage(tabs[0].id, {
             command: message.isActive ? "activate-highlighting" : "deactivate-highlighting",
             lexiconId: message.lexiconId
@@ -248,6 +251,14 @@ browser.runtime.onMessage.addListener(async (message, sender, sendResponse) => {
       log("📝 Script de surlignage enregistré pour l'onglet", sender.tab.id);
       break;
     }
+
+    case "toggleExtension": {
+      const newState = message.isActive;
+      isExtensionActive = newState;
+      browser.storage.local.set({ extensionActive: isExtensionActive });
+      log("État de l'extension mis à jour :", isExtensionActive);
+      break;
+    }
     
     default:
       break;
diff --git a/src/context_menu/browser_context_menu.js b/src/context_menu/browser_context_menu.js
index 1486eff316d702277eae81370a8dda21ade0ac04..cd98a6f297007beac7902932d13bc43505cacf24 100644
--- a/src/context_menu/browser_context_menu.js
+++ b/src/context_menu/browser_context_menu.js
@@ -25,8 +25,10 @@ async function loadAuthToken() {
 async function createContextMenu() {
   await browser.contextMenus.removeAll();
 
-  if (authToken) {
-    // Item 1 : Recherche dans les lexiques de l’utilisateur
+  const { extensionActive } = await browser.storage.local.get("extensionActive");
+  log("État de l'extension :", extensionActive);
+
+  if (extensionActive) {
     browser.contextMenus.create({
       id: "searchInLexicons",
       title: "Rechercher dans mes lexiques",
@@ -34,7 +36,6 @@ async function createContextMenu() {
       icons: { "16": "src/assets/icons/quel_lexique.png" },
     });
 
-    // Item 2 : Ajouter le mot au(x) lexique(s) de l’utilisateur
     browser.contextMenus.create({
       id: "addToLexicon",
       title: "Ajouter ce mot à mes lexiques",
@@ -42,30 +43,22 @@ async function createContextMenu() {
       icons: { "16": "src/assets/icons/ajout_lexique.png" },
     });
 
-    // Item 3 : Recherche globale de définition (Lexiques + Wiktionnaire)
     browser.contextMenus.create({
       id: "getDefinition",
       title: "Obtenir une définition",
       contexts: ["selection"],
       icons: { "16": "src/assets/icons/definition.png" },
     });
-  }
-
-  // Séparateur
-  browser.contextMenus.create({
-    id: "separatorExtension",
-    type: "separator",
-    contexts: ["all"],
-  });
 
+    browser.contextMenus.create({
+      id: "separatorExtension",
+      type: "separator",
+      contexts: ["all"],
+    });
+  } else {
+    log("⚠️ L'extension est désactivée, aucune option d'analyse ne sera affichée.");
+  }
 
-  browser.contextMenus.create({
-    id: "separatorAfterExtension",
-    type: "separator",
-    contexts: ["all"],
-  });
-  
-  // Item de connexion/déconnexion
   browser.contextMenus.create({
     id: "login",
     title: authToken ? "Se déconnecter de BaLex" : "Se connecter à BaLex",
@@ -73,10 +66,11 @@ async function createContextMenu() {
   });
 }
 
+
 loadAuthToken().then(createContextMenu);
 
 browser.runtime.onMessage.addListener((message) => {
-  if (message.action === "refreshUI") {
+  if (message.action === "refreshUI" || message.action === "updateUI") {
     log("🔄 refreshUI reçu dans browser_context_menu.js");
     loadAuthToken().then(createContextMenu);
   }
diff --git a/src/context_menu/custom_context_menu.js b/src/context_menu/custom_context_menu.js
index 14517921997c030e0ef3fc2dc4dca615a6dd8da9..0c74f175906ad8750c62d8d3d8bcfb04c1343a10 100644
--- a/src/context_menu/custom_context_menu.js
+++ b/src/context_menu/custom_context_menu.js
@@ -159,7 +159,12 @@ function getSelectedWord() {
 /**
  * Affiche le menu contextuel à la position du clic.
  */
-function showWhiteBox(event, selectedText) {
+async function showWhiteBox(event, selectedText) {
+  const { extensionActive } = await browser.storage.local.get("extensionActive") || { extensionActive: false };
+  if (!extensionActive || !authToken) {
+    hideWhiteBox();
+    return;
+  }
   const whiteBox = getOrCreateWhiteBox();
   const selectedWordElement = document.getElementById("selectedWord");
   selectedWordElement.textContent = selectedText;
diff --git a/src/popup/popup.js b/src/popup/popup.js
index 62250bd2e677dc160c86216a16a48a6ab3795041..0a2f83e7db5df114d0930e82b0330e7068f3150e 100644
--- a/src/popup/popup.js
+++ b/src/popup/popup.js
@@ -247,8 +247,12 @@ async function proceedToggleExtension() {
     extensionActive: false,
     isTrackingActive: false
   });
+  log("État actuel de extensionActive avant changement :", extensionActive);
+
   const newState = !extensionActive;
   await browser.storage.local.set({ extensionActive: newState });
+  log("Nouvel état de extensionActive :", newState);
+
   browser.runtime.sendMessage({ action: "updateUI", extensionActive: newState });
 
   if (!newState) {