Cómo declarar permisos

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, especificadas con las respectivas claves de manifiesto:

"permissions"
Contiene elementos de una lista de cadenas conocidas. Los cambios pueden activar una advertencia.
"optional_permissions"
Otorgada por el usuario durante el tiempo de ejecución, en lugar de hacerlo en el momento de la 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 otorgan acceso a uno o más hosts. Los cambios pueden activar una advertencia.
"optional_host_permissions"
Otorgada por el usuario durante el tiempo de ejecución, en lugar de hacerlo en el momento de la instalación.

Los permisos ayudan a limitar el daño si la extensión se ve comprometida por un software malicioso. Se muestra alguna advertencia de permiso a los usuarios para obtener su consentimiento antes del durante la instalación o en el tiempo de ejecución, como se detalla en Permisos con advertencias.

Considera usar permisos opcionales cuando esté disponible la funcionalidad de tu extensión. de datos, de brindar a los usuarios un control informado sobre el acceso a los recursos y datos.

Si una API requiere un permiso, en su documentación se explica cómo declararlo. Para un ejemplo, consulta API de Storage.

Manifiesto

El siguiente es 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 coincidentes de la URL. Algunas APIs de Chrome requieren permisos de host además de sus propios permisos de API, los cuales se documentan en cada página de referencia. Estos son algunos ejemplos:

Permisos con advertencias

Cuando una extensión solicita varios permisos y se muestran muchos de ellos advertencias durante la instalación, el usuario verá una lista de advertencias, como en el siguiente ejemplo:

Advertencias sobre los permisos de extensiones durante la instalación

Es más probable que los usuarios confíen en una extensión con advertencias limitadas o cuando se explican los permisos. para ellos. Considera implementar permisos opcionales o una API menos potente para evitar alarmas advertencias existentes. Para conocer las prácticas recomendadas sobre las advertencias, consulta los Lineamientos sobre las advertencias de permisos. Específico (Specific) advertencias se enumeran con los permisos a los que se aplican en la Permisos.

Agregar o cambiar patrones de coincidencia en "host_permissions" y "content_scripts.matches" del archivo de manifiesto también activarán una advertencia. Para obtener más información, consulta Actualiza los permisos.

Permitir acceso

Si tu extensión necesita ejecutarse en URLs de file://, o bien operar en modo Incógnito, los usuarios deben otorgar acceso a la extensión en la página de detalles. Puede encontrar instrucciones para abrir la página de detalles en Administrar sus extensiones.

Permitir el acceso a las URLs de los archivos y a las páginas de incógnito

  1. Haz clic con el botón derecho en el ícono de la extensión en Chrome.
  2. Elige Administrar extensión.

    Menú contextual de la extensión
    Menú de la extensión
    .
  3. Desplázate hacia abajo para habilitar el acceso a las URLs de los archivos o al modo Incógnito.

    Permitir las URLs de archivos y el modo Incógnito en la página de detalles de la extensión
    Se habilitó el acceso a las URLs de los archivos y al modo Incógnito.

Para detectar si el usuario permitió el acceso, puedes llamar a extension.isAllowedIncognitoAccess() o extension.isAllowedFileSchemeAccess()