Creare un’estensione Chrome con Manifest V3 e permessi minimi
Genera un’estensione del browser completa con Manifest V3: manifest.json con permessi minimi, service worker, content script, popup, messaggistica, archiviazione e checklist per il Chrome Web Store. Pensato per ChatGPT, Claude, Gemini e Microsoft Copilot. Include 4 variabili personalizzabili e puoi copiarlo gratuitamente con un clic.
Intermedio · Codice · In attesa di revisione editoriale
Prompt
Agisci come sviluppatore specializzato in estensioni per browser basati su Chromium con Manifest V3.
Contesto:
- Cosa deve fare l'estensione: {{scopo}}
- Siti in cui funziona: {{siti}}
- Interfaccia e punti di accesso: {{interfaccia}}
- Dati che salva e se devono sincronizzarsi tra dispositivi: {{dati}}
Consegne:
1. Architettura: cosa fanno il service worker, il content script e il popup o la pagina delle opzioni e come comunicano (chrome.runtime.sendMessage, porte), con un diagramma semplice.
2. manifest.json completo con i permessi minimi necessari: motiva ogni permesso e ogni host_permissions; usa activeTab o optional_permissions quando possibile.
3. Codice di ogni file (service worker, content script, popup HTML/CSS/JS, opzioni se servono) in JavaScript moderno, senza codice remoto né eval, rispettando la content security policy di MV3.
4. Persistenza con chrome.storage (local o sync in base a {{dati}}), tenendo conto che il service worker può fermarsi in qualsiasi momento e non conserva stato in memoria.
5. Accessibilità di base del popup (etichette, focus, contrasto) e testi pronti per la traduzione con _locales.
6. Come testarla: caricarla decompressa in chrome://extensions, fare debug di service worker e content script, casi di test.
7. Checklist di pubblicazione sul Chrome Web Store: motivazione dei permessi, informativa privacy se tratta dati, screenshot e icone.
Vincoli:
- Nessuna raccolta di dati o tracciamento non richiesti dall'utente; se l'estensione tratta dati personali, indica cosa dichiarare nell'informativa privacy.
- Se un'API può variare tra versioni, segnalala con [DA VERIFICARE nella documentazione di Chrome Extensions].
- Se non è chiaro cosa deve fare l'estensione su ogni sito, chiedimelo prima.
Formato: sezioni numerate, albero dei file e un blocco di codice per file.Come usarlo
Descrivi il comportamento con un esempio concreto («quando seleziono un testo, clic destro e…»). Crea i file in una cartella, caricala come estensione decompressa e prova ogni caso prima di pensare a pubblicarla.
Esempio d'uso
Scopo: evidenziare in giallo le parole chiave scelte in qualsiasi articolo · Siti: tutti, solo al clic sull’icona · Interfaccia: popup e menu contestuale · Dati: elenco di parole sincronizzato.
Esempio di risultato
1. Architettura
Basta un popup: aprendolo, activeTab concede un accesso temporaneo alla scheda corrente. Non servono service worker né content script, così permessi e superficie d’attacco restano minimi.
2. manifest.json
{
"manifest_version": 3,
"name": "__MSG_extName__",
"version": "1.0.0",
"default_locale": "it",
"action": { "default_popup": "popup.html", "default_title": "__MSG_saveTitle__" },
"permissions": ["activeTab", "storage"]
}
activeTab: legge titolo e URL solo quando l’utente clicca sull’icona.storage: salva l’elenco inchrome.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: mai innerHTML con dati della pagina
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();
Attenzione: storage.sync ha un limite di dimensione per elemento; con un’unica chiave links l’elenco si riempirà presto. Salva ogni link con una chiave propria o passa a storage.local oltre una certa dimensione [VERIFICARE le quote nella documentazione di Chrome Extensions]…
Dati chiave
- Categoria
- Programmazione e sviluppo · Plugin
- Tipo di output
- Codice
- Livello
- Intermedio
- Pensato per
- ChatGPT, Claude, Gemini e Microsoft Copilot
- Verificato in
- In attesa di verifica editoriale
- Variabili
- Scopo, Siti, Interfaccia e Dati e sincronizzazione
- Lingua
- Italiano
- Prezzo
- Gratuito, senza registrazione
- Aggiornato
- 07/11/2026
Domande frequenti
Funzionerà su Edge, Brave o Opera?
In genere sì, perché si basano su Chromium e supportano Manifest V3, anche se alcune API o regole dei loro store possono cambiare. Provala in ogni browser prima di pubblicarla lì.
Perché chiedere il minimo dei permessi?
I permessi ampi generano avvisi che spaventano gli utenti e allungano la revisione sul Chrome Web Store. Inoltre limitano i danni se l’estensione avesse una falla di sicurezza.
A cosa serve questo prompt?
Genera un’estensione del browser completa con Manifest V3: manifest.json con permessi minimi, service worker, content script, popup, messaggistica, archiviazione e checklist per il Chrome Web Store.
Con quali strumenti di IA funziona?
È pensato per ChatGPT, Claude, Gemini e Microsoft Copilot. Non lo abbiamo ancora verificato in questi strumenti, quindi i risultati possono variare da uno all'altro.
Come personalizzo il prompt?
Clicca su «Personalizza» e compila le variabili (Scopo, Siti, Interfaccia e Dati e sincronizzazione). Il testo si aggiorna all'istante e poi puoi copiarlo con un clic. I valori vengono salvati solo nel tuo browser.
Serve esperienza per usarlo?
È di livello intermedio: conviene conoscere l'argomento per fornire un buon contesto e valutare il risultato con occhio critico.
Questo prompt è gratuito?
Sì. Tutti i prompt di HomeCasa Prompts sono gratuiti, senza registrazione né abbonamento. Puoi usarli anche in progetti professionali.
Posso fidarmi dell'output dell'IA?
Consideralo una bozza di alta qualità: verifica sempre dati, cifre e affermazioni importanti prima di pubblicare o prendere decisioni.