Para usar la mayoría de las APIs de extensiones y funciones, debes declarar la intención de tu extensión en los campos de permisos del manifiesto. Las extensiones pueden solicitar las siguientes categorías de permisos, que se especifican con las claves de manifiesto correspondientes:
"permissions"- Contiene elementos de una lista de cadenas conocidas. Los cambios pueden activar una advertencia.
"optional_permissions"- El usuario la otorga en el tiempo de ejecución, no en el tiempo de instalación.
"content_scripts.matches"- Contiene uno o más patrones de coincidencia que permiten que las secuencias de comandos de contenido se inserten en uno o más hosts. Los cambios pueden activar una advertencia.
"host_permissions"- Contiene uno o más patrones de coincidencia que dan acceso a uno o más hosts. Los cambios pueden activar una advertencia.
"optional_host_permissions"- El usuario otorga el permiso en el tiempo de ejecución, en lugar de en el tiempo de instalación.
Los permisos ayudan a limitar los daños si el software malicioso vulnera tu extensión. Algunas advertencias de permisos se muestran a los usuarios para que den su consentimiento antes de la instalación o durante el tiempo de ejecución, como se detalla en Permisos con advertencias.
Considera usar permisos opcionales siempre que lo permita la funcionalidad de tu extensión para brindarles a los usuarios un control informado sobre el acceso a los recursos y los datos.
Si una API requiere un permiso, su documentación explica cómo declararlo. Para ver un ejemplo, consulta la API de Storage.
Manifiesto
A continuación, se muestra un ejemplo de la sección de permisos de un archivo de manifiesto:
manifest.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
Permisos de host
Los permisos de host permiten que las extensiones interactúen con los patrones de coincidencia de la URL. Algunas APIs de Chrome requieren permisos de host además de sus propios permisos de API, que se documentan en cada página de referencia. Estos son algunos ejemplos:
- Realiza solicitudes de
fetch()desde el service worker y las páginas de la extensión. - Leer y consultar las propiedades de pestañas sensibles (url, title y favIconUrl) con la API de
chrome.tabs - Inyecta una secuencia de comandos de contenido de forma programática.
- Supervisa y controla las solicitudes de red con la API de
chrome.webRequest. - Accede a las cookies con la API de
chrome.cookies. - Redirige y modifica los encabezados de solicitudes y respuestas con la API de
chrome.declarativeNetRequest.
Permisos con advertencias
Cuando una extensión solicita varios permisos y muchos de ellos muestran advertencias durante la instalación, el usuario verá una lista de advertencias, como en el siguiente ejemplo:

Es más probable que los usuarios confíen en una extensión con advertencias limitadas o cuando se les explican los permisos. Considera implementar permisos opcionales o una API menos potente para evitar advertencias alarmantes. Si deseas conocer las prácticas recomendadas para las advertencias, consulta los Lineamientos para las advertencias de permisos. Las advertencias específicas se enumeran con los permisos a los que se aplican en la lista de referencia de Permisos.
Agregar o cambiar patrones de coincidencia en los campos "host_permissions" y "content_scripts.matches" del archivo de manifiesto también activará una advertencia. Para obtener más información, consulta Cómo actualizar los permisos.
Permitir acceso
Si tu extensión necesita ejecutarse en URLs de file:// o funcionar en modo Incógnito, los usuarios deben otorgarle acceso en su página de detalles. Puedes encontrar instrucciones para abrir la página de detalles en Administra tus extensiones.
Permite el acceso a las URLs de archivos y a las páginas de incógnito
- Haz clic con el botón derecho en el ícono de la extensión en Chrome.
Elige Administrar extensión.
Menú de extensiones Desplázate hacia abajo para habilitar el acceso a las URLs de archivos o al modo Incógnito.
Se habilitó el acceso a las URLs de archivos y al modo Incógnito.
Para detectar si el usuario permitió el acceso, puedes llamar a extension.isAllowedIncognitoAccess() o a extension.isAllowedFileSchemeAccess().