point-median-extension/background.js
François Pelletier 9840633305 feat: Implémentation de la correction via le menu contextuel et améliorations de la construction
-  Ajout de la fonctionnalité de correction via le menu contextuel.
- 🗑️ Suppression de la fonctionnalité de correction en temps réel.
-  Ajout du script de fond (background.js) pour gérer le menu contextuel.
- 📝 Mise à jour du manifest.json (permissions, service_worker, description).
- 🐛 Correction de la logique de remplacement de texte dans content.js pour une meilleure compatibilité.
- 🏗️ Mise à jour du Dockerfile pour construire l'extension Chrome dans un répertoire (non zippé).
- 🛠️ Mise à jour du script build.sh pour gérer le nouveau format de sortie et nettoyer le répertoire.
- 🌐 Traduction du manifest.json en français.
- 📄 Ajout d'un README.md complet avec les instructions d'installation.
- 🐛 Ajout de logs pour faciliter le débogage.
2025-07-01 07:16:08 -04:00

43 lines
No EOL
1.9 KiB
JavaScript

chrome.runtime.onInstalled.addListener(() => {
console.log("Background script: Extension installed or updated.");
chrome.contextMenus.create({
id: "convertText",
title: "Convertir en écriture inclusive",
contexts: ["selection"]
});
console.log("Background script: Context menu item created.");
});
chrome.contextMenus.onClicked.addListener((info, tab) => {
console.log("Background script: Context menu item clicked.", info);
if (info.menuItemId === "convertText" && info.selectionText && tab && tab.id) {
console.log(`Background script: Selected text: "${info.selectionText}" in tab ID: ${tab.id}`);
// First, ensure the content script is injected into the tab.
// This is crucial if the tab was opened before the extension was installed/updated,
// or if the content script somehow failed to load.
chrome.scripting.executeScript({
target: { tabId: tab.id },
files: ['content.js']
}, () => {
// Check for runtime.lastError to see if injection failed
if (chrome.runtime.lastError) {
console.error("Background script: Error injecting content script:", chrome.runtime.lastError.message);
return;
}
console.log("Background script: Content script injected/confirmed.");
// After the content script is (re)injected, send the message.
chrome.tabs.sendMessage(tab.id, {
action: "convertSelectedText",
text: info.selectionText
}).then(response => {
console.log("Background script: Message sent to content script. Response:", response);
}).catch(error => {
// Catch potential errors if the receiving end still doesn't exist
// (e.g., tab closed immediately after context menu click).
console.error("Background script: Error sending message to content script:", error);
});
});
} else {
console.log("Background script: Context menu click conditions not met.");
}
});