0Pricing
Browser Extensions Development (Chrome & Edge) · Lección

Permisos opcionales y solicitudes en tiempo de ejecución

Solicite permisos cuando sean necesarios en lugar de pedirlos de antemano para generar confianza, superar las revisiones más rápido y minimizar la superficie de ataque.

Permisos opcionales y solicitudes en tiempo de ejecución es una lección gratuita de Browser Extensions Development (Chrome & Edge) en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Browser Extensions Development (Chrome & Edge), y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Browser Extensions Development (Chrome & Edge) incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

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 with remove
  • React to onAdded and onRemoved
  • Degrade gracefully when denied

Least-privilege design builds trust and eases store review.

Preguntas frecuentes

¿La lección «Permisos opcionales y solicitudes en tiempo de ejecución» es gratis?

Sí — el texto completo de «Permisos opcionales y solicitudes en tiempo de ejecución» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Browser Extensions Development (Chrome & Edge), actualiza a CoddyKit PRO. El curso de Browser Extensions Development (Chrome & Edge) incluye 4 lecciones en total.

¿Qué aprenderé en «Permisos opcionales y solicitudes en tiempo de ejecución»?

Solicite permisos cuando sean necesarios en lugar de pedirlos de antemano para generar confianza, superar las revisiones más rápido y minimizar la superficie de ataque. Practicas Browser Extensions Development (Chrome & Edge) con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Browser Extensions Development (Chrome & Edge)?

No se requiere experiencia previa. Browser Extensions Development (Chrome & Edge) en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Permisos opcionales y solicitudes en tiempo de ejecución»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Browser Extensions Development (Chrome & Edge)?

Sí. Cada lección de Browser Extensions Development (Chrome & Edge) incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Comprensión de los permisos avanzados
  2. Prácticas de programación segura
  3. Content Security Policy (CSP)
  4. Permisos opcionales y solicitudes en tiempo de ejecución
← Volver a Browser Extensions Development (Chrome & Edge)