Autorisations facultatives et demandes à l’exécution
Demandez les autorisations au moment opportun plutôt que dès le départ afin d’instaurer la confiance, d’accélérer les validations et de réduire votre surface d’attaque.
Autorisations facultatives et demandes à l’exécution est une leçon Browser Extensions Development (Chrome & Edge) gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Browser Extensions Development (Chrome & Edge), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Browser Extensions Development (Chrome & Edge) comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
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.
Questions Fréquemment Posées
La leçon « Autorisations facultatives et demandes à l’exécution » est-elle gratuite ?
Oui — le texte complet de « Autorisations facultatives et demandes à l’exécution » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Browser Extensions Development (Chrome & Edge), passe à CoddyKit PRO. Le cours Browser Extensions Development (Chrome & Edge) comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Autorisations facultatives et demandes à l’exécution » ?
Demandez les autorisations au moment opportun plutôt que dès le départ afin d’instaurer la confiance, d’accélérer les validations et de réduire votre surface d’attaque. Tu pratiques Browser Extensions Development (Chrome & Edge) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Browser Extensions Development (Chrome & Edge) ?
Aucune expérience préalable n'est requise. Browser Extensions Development (Chrome & Edge) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Autorisations facultatives et demandes à l’exécution » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Browser Extensions Development (Chrome & Edge) ?
Oui. Chaque leçon Browser Extensions Development (Chrome & Edge) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Comprendre les autorisations avancées
- Bonnes pratiques de programmation sécurisée
- Politique de sécurité du contenu (CSP)
- Autorisations facultatives et demandes à l’exécution