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 dans chrome.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.

Prompts similaires