Permessi facoltativi e richieste a runtime
Richiedete i permessi quando servono, invece che tutti in anticipo, per creare fiducia, superare più rapidamente le revisioni e ridurre la superficie di attacco.
Permessi facoltativi e richieste a runtime è una lezione Browser Extensions Development (Chrome & Edge) gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Browser Extensions Development (Chrome & Edge), e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Browser Extensions Development (Chrome & Edge) include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
The Problem With Asking for Everything
Requesting many permissions at install time scares users and slows store review. The principle of least privilege says request only what you need, when you need it.
Optional permissions let you ask at runtime, in context.
Required vs Optional
The manifest separates permissions (granted at install) from optional_permissions (requested later). Move anything non-essential into optional.
{
"permissions": ["storage"],
"optional_permissions": ["bookmarks", "history"]
}Optional Host Permissions
Site access can also be optional. Declare it under optional_host_permissions so users grant access to specific sites only when they choose.
{
"optional_host_permissions": ["https://*/*"]
}Requesting at Runtime
Call permissions.request in response to a user gesture, such as a button click. The browser shows a prompt.
const granted = await chrome.permissions.request({
permissions: ['bookmarks']
})
console.log('Granted: ' + granted)Must Come From a User Gesture
The request prompt only appears if triggered by a direct user action. Calling it on startup or from a timer will silently fail.
Wire it to a click handler.
button.addEventListener('click', async () => {
await chrome.permissions.request({ permissions: ['history'] })
})Checking Before Using
Before calling an API, check whether the permission is currently granted with permissions.contains.
const has = await chrome.permissions.contains({
permissions: ['bookmarks']
})
if (has) loadBookmarks()Removing Permissions
Let users revoke access they no longer want with permissions.remove. This shrinks your attack surface.
await chrome.permissions.remove({ permissions: ['history'] })Reacting to Grants and Revokes
Listen for onAdded and onRemoved to enable or disable features as permissions change.
chrome.permissions.onRemoved.addListener((p) => {
console.log('Removed: ' + p.permissions)
})Designing the Request Flow
Explain why you need a permission before prompting. A short sentence and a clear button earns far more grants than a surprise system dialog.
Faster Store Review
Extensions with broad install-time permissions face deeper review. Moving sensitive scopes to optional often speeds approval and reduces warning banners.
Graceful Degradation
Always handle the case where a permission is denied. Disable or hide the feature rather than throwing errors, so the rest of the extension keeps working.
if (!granted) showFallbackMessage()Quick Check
Test your optional permissions knowledge.
Recap
You learned runtime permission requests:
- Split required and
optional_permissions - Request from a user gesture with
permissions.request - Check with
contains, revoke withremove - React to
onAddedandonRemoved - Degrade gracefully when denied
Least-privilege design builds trust and eases store review.
Domande Frequenti
La lezione «Permessi facoltativi e richieste a runtime» è gratuita?
Sì — il testo completo di «Permessi facoltativi e richieste a runtime» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Browser Extensions Development (Chrome & Edge), passa a CoddyKit PRO. Il corso Browser Extensions Development (Chrome & Edge) include 4 lezioni in totale.
Cosa imparerò in «Permessi facoltativi e richieste a runtime»?
Richiedete i permessi quando servono, invece che tutti in anticipo, per creare fiducia, superare più rapidamente le revisioni e ridurre la superficie di attacco. Eserciti Browser Extensions Development (Chrome & Edge) con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Browser Extensions Development (Chrome & Edge)?
Non è richiesta alcuna esperienza precedente. Browser Extensions Development (Chrome & Edge) su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Permessi facoltativi e richieste a runtime»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Browser Extensions Development (Chrome & Edge)?
Sì. Ogni lezione Browser Extensions Development (Chrome & Edge) include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Comprendere le autorizzazioni avanzate
- Pratiche di programmazione sicura
- Content Security Policy (CSP)
- Permessi facoltativi e richieste a runtime