Los usuarios no instalarán una extensión si pone en riesgo su privacidad o solicita más permisos de los que parece necesitar. Las solicitudes de permisos deben ser comprensibles para los usuarios y limitarse a la información fundamental necesaria para implementar la extensión. Las extensiones que recopilan o transmiten datos del usuario deben cumplir con las políticas de Protección de la privacidad del usuario.
Protege y respeta a los usuarios de extensiones incluyendo estas precauciones para mantener su identidad segura.
Reduce los permisos obligatorios
Las APIs a las que puede acceder una extensión se especifican en el permissions campo del manifiesto. Cuantos más permisos se otorguen, más vías tendrá un atacante para interceptar información. Solo se deben enumerar las APIs de las que depende una extensión, y se deben considerar opciones menos invasivas. Cuantos menos permisos solicite una extensión, menos advertencias de permisos se mostrarán a un usuario. Es más probable que los usuarios instalen una extensión con advertencias limitadas.
Las extensiones no deben "prepararse para el futuro" para acceder a los datos del usuario solicitando permisos que no necesitan actualmente, pero que podrían implementar en el futuro. Incluye permisos nuevos con las actualizaciones de extensiones y considera hacerlos opcionales.
activeTab
Las extensiones que usan permisos de host para insertar secuencias de comandos a menudo pueden sustituir activeTab. El permiso activeTab otorgará a una extensión acceso temporal a la pestaña activa en ese momento, solo cuando el usuario invoque la extensión. El acceso se interrumpe cuando el usuario abandona o cierra la pestaña actual. Sirve como alternativa para muchos usos de <all_urls>.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 3
}
El permiso activeTab no muestra mensajes de advertencia durante la instalación.
Elige permisos opcionales
Permite que los usuarios elijan qué funciones y permisos necesitan de una extensión incluyendo permisos opcionales. Si una función no es esencial para la funcionalidad principal de una extensión, hazla opcional y mueve la API o el dominio al campo optional_permissions.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", ],
"optional_host_permissions": ["https://www.google.com/" ],
...
}
Incluir permisos opcionales permite que una extensión explique por qué necesita un permiso en particular cuando el usuario habilita la función pertinente. La extensión puede ofrecer al usuario una opción para habilitar funciones.

Si haces clic en Aceptar , se activará el siguiente evento en el service worker.
chrome.action.onClicked.addListener((event) => {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request(
{
permissions: ["tabs", "scripting"],
origins: ['https://www.google.com/']
},
function (granted) {
// The callback argument will be true if the user granted the permissions.
if (granted) {
// doSomething();
} else {
// doSomethingElse();
}
}
);
});
Luego, se le solicitará al usuario lo siguiente.

Los permisos opcionales también se pueden implementar en una actualización de extensión. Si lo haces, la nueva función estará disponible para los usuarios sin inhabilitar la extensión, como puede suceder si se actualiza con permisos obligatorios nuevos.
Limita y protege la información del usuario
Solo solicita la cantidad mínima de datos que necesita una extensión. Cuanta menos información solicite una extensión a un usuario, menor será la exposición si la extensión se ve comprometida.
Todos los datos del usuario solicitados deben tratarse con cuidado. Almacena y recupera datos en un servidor seguro con un dominio registrado. Usa siempre HTTPS para conectarte y evita conservar datos sensibles del usuario en el lado del cliente de una extensión, ya que el almacenamiento de extensiones no está encriptado.
Cómo guardar datos y el modo Incógnito
Las extensiones pueden guardar datos con la API de Storage o realizando solicitudes al servidor que dan como resultado el guardado de datos. Cuando la extensión necesita guardar algo, primero considera si es de una ventana de incógnito. De forma predeterminada, las extensiones no se ejecutan en ventanas de incógnito.
El modo Incógnito promete que la ventana no dejará rastros. Cuando se trata de datos de ventanas de incógnito, las extensiones deben cumplir esta promesa. Si una extensión suele guardar el historial de navegación, no guardes el historial de las ventanas de incógnito. Sin embargo, las extensiones pueden almacenar preferencias de configuración desde cualquier ventana, ya sea de incógnito o no.
Para detectar si una ventana está en modo Incógnito, verifica la incognito propiedad del objeto
tabs.Tab o windows.Window correspondiente.
function saveTabData(tab) {
if (tab.incognito) {
return;
} else {
chrome.storage.local.set({data: tab.url});
}
}