Créer une extension Chrome avec Manifest V3 et des permissions minimales
Générez une extension de navigateur complète avec Manifest V3 : manifest.json à permissions minimales, service worker, content script, popup, messagerie, stockage et checklist Chrome Web Store. Conçu pour ChatGPT, Claude, Gemini et Microsoft Copilot. Il comprend 4 variables personnalisables et vous pouvez le copier gratuitement en un clic.
Intermédiaire · Code · En attente de relecture éditoriale
Prompt
Agis comme développeur spécialisé dans les extensions de navigateur basées sur Chromium avec Manifest V3.
Contexte :
- Ce que doit faire l'extension : {{objectif}}
- Sites concernés : {{sites}}
- Interface et points d'entrée : {{interface}}
- Données stockées et synchronisation entre appareils ou non : {{donnees}}
Livrables :
1. Architecture : rôle du service worker, du content script et du popup ou de la page d'options, et leur communication (chrome.runtime.sendMessage, ports), avec un schéma simple.
2. Un manifest.json complet avec les permissions minimales : justifie chaque permission et chaque host_permissions ; utilise activeTab ou optional_permissions quand c'est possible.
3. Le code de chaque fichier (service worker, content script, popup HTML/CSS/JS, options si besoin) en JavaScript moderne, sans code distant ni eval, conforme à la politique de sécurité du contenu de MV3.
4. La persistance avec chrome.storage (local ou sync selon {{donnees}}), en tenant compte du fait que le service worker peut s'arrêter à tout moment et ne garde aucun état en mémoire.
5. L'accessibilité de base du popup (libellés, focus, contraste) et des textes prêts à traduire avec _locales.
6. Comment la tester : chargement non empaqueté dans chrome://extensions, débogage du service worker et du content script, cas de test.
7. Une checklist de publication sur le Chrome Web Store : justification des permissions, politique de confidentialité si des données sont traitées, captures et icônes.
Contraintes :
- Aucune collecte de données ni pistage non demandé par l'utilisateur ; si l'extension traite des données personnelles, précise ce qu'il faut déclarer dans la politique de confidentialité.
- Si une API peut varier selon les versions, indique [À VÉRIFIER dans la documentation Chrome Extensions].
- Si le comportement attendu sur chaque site n'est pas clair, pose-moi la question d'abord.
Format : sections numérotées, arborescence des fichiers et un bloc de code par fichier.Comment l'utiliser
Décrivez le comportement avec un exemple concret (« quand je sélectionne du texte, clic droit et… »). Créez les fichiers dans un dossier, chargez-le comme extension non empaquetée et testez chaque cas avant d’envisager la publication.
Exemple d'utilisation
Objectif : surligner en jaune les mots-clés choisis dans n’importe quel article · Sites : tous, seulement au clic sur l’icône · Interface : popup et menu contextuel · Données : liste de mots synchronisée.
Exemple de résultat
1. Architecture
Un popup suffit : son ouverture donne à activeTab un accès temporaire à l’onglet courant. Ni service worker ni content script, ce qui limite les permissions et la surface d’attaque.
2. manifest.json
{
"manifest_version": 3,
"name": "__MSG_extName__",
"version": "1.0.0",
"default_locale": "fr",
"action": { "default_popup": "popup.html", "default_title": "__MSG_saveTitle__" },
"permissions": ["activeTab", "storage"]
}
activeTab: lit le titre et l’URL uniquement quand l’utilisateur clique sur l’icône.storage: conserve la liste danschrome.storage.sync.
3. popup.js
const list = document.querySelector('#list');
async function render() {
const { links = [] } = await chrome.storage.sync.get('links');
list.replaceChildren(...links.map(({ title, url }) => {
const a = Object.assign(document.createElement('a'), { href: url, textContent: title, target: '_blank' });
const li = document.createElement('li');
li.append(a); // textContent : jamais d'innerHTML avec des données de page
return li;
}));
}
document.querySelector('#save').addEventListener('click', async () => {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
if (!tab?.url) return;
const { links = [] } = await chrome.storage.sync.get('links');
if (!links.some((l) => l.url === tab.url)) {
links.unshift({ title: tab.title || tab.url, url: tab.url, savedAt: Date.now() });
await chrome.storage.sync.set({ links });
}
render();
});
render();
Attention : storage.sync impose une taille maximale par élément ; avec une seule clé links, la liste sera vite pleine. Stockez chaque lien sous sa propre clé ou passez à storage.local au-delà d’une certaine taille [À VÉRIFIER : quotas dans la doc Chrome Extensions]…
Informations clés
- Catégorie
- Programmation et développement · Plugins
- Type de résultat
- Code
- Niveau
- Intermédiaire
- Conçu pour
- ChatGPT, Claude, Gemini et Microsoft Copilot
- Vérifié sur
- En attente de vérification éditoriale
- Variables
- Objectif, Sites, Interface et Données et synchronisation
- Langue
- Français
- Prix
- Gratuit, sans inscription
- Mis à jour
- 07/11/2026
Questions fréquentes
Fonctionnera-t-elle sur Edge, Brave ou Opera ?
En général oui, car ils reposent sur Chromium et prennent en charge Manifest V3, même si certaines API ou règles de leurs boutiques diffèrent. Testez-la dans chaque navigateur avant de l’y publier.
Pourquoi demander le moins de permissions possible ?
Les permissions larges déclenchent des avertissements qui font fuir les utilisateurs et allongent la revue sur le Chrome Web Store. Elles limitent aussi les dégâts si l’extension présente une faille.
À quoi sert ce prompt ?
Générez une extension de navigateur complète avec Manifest V3 : manifest.json à permissions minimales, service worker, content script, popup, messagerie, stockage et checklist Chrome Web Store.
Avec quels outils d'IA fonctionne-t-il ?
Il est conçu pour ChatGPT, Claude, Gemini et Microsoft Copilot. Nous ne l'avons pas encore vérifié sur ces outils ; les résultats peuvent donc varier de l'un à l'autre.
Comment personnaliser le prompt ?
Cliquez sur « Personnaliser » et remplissez les variables (Objectif, Sites, Interface et Données et synchronisation). Le texte se met à jour instantanément et vous pouvez ensuite le copier en un clic. Les valeurs sont stockées uniquement dans votre navigateur.
Faut-il de l'expérience pour l'utiliser ?
Il est de niveau intermédiaire : il vaut mieux connaître le sujet pour fournir un bon contexte et relire le résultat d'un œil critique.
Ce prompt est-il gratuit ?
Oui. Tous les prompts de HomeCasa Prompts sont gratuits, sans inscription ni abonnement. Vous pouvez aussi les utiliser dans des projets professionnels.
Puis-je me fier au résultat de l'IA ?
Considérez-le comme un brouillon de qualité : vérifiez toujours les données, les chiffres et les affirmations importantes avant de publier ou de prendre des décisions.