En esta guía, se detalla el flujo completo de actualización de extensiones, que abarca el proceso de actualización estándar, las anulaciones manuales, las APIs para desarrolladores y el impacto significativo de las políticas empresariales.
El ciclo de actualización estándar
Chrome está diseñado para actualizar automáticamente las extensiones instaladas a sus versiones más recientes, lo que garantiza que los usuarios tengan acceso a las nuevas funciones y correcciones de seguridad. De forma predeterminada, Chrome busca actualizaciones de extensiones al inicio y cada algunas horas.
Un aspecto fundamental del proceso de actualización es que solo se instala una actualización cuando la extensión se considera inactiva. Para que una extensión esté inactiva, sus componentes no deben estar en uso activo. En el contexto de Manifest V3, esto significa principalmente que el service worker de la extensión no se está ejecutando. El service worker está diseñado para estar controlado por eventos y finaliza después de un período de inactividad. Además, cualquier página de extensión abierta, como un panel lateral, una ventana emergente o una página de opciones, impide que la extensión se considere inactiva. Un script de contenido activo no afecta si una extensión se considera inactiva o no.
Este requisito de inactividad puede causar demoras en las actualizaciones de las extensiones que se usan con frecuencia. Si los eventos activan constantemente el service worker de una extensión, es posible que nunca alcance un estado de inactividad y que la actualización se posponga hasta que se reinicie el navegador.
Supervisa la distribución de las actualizaciones de extensiones
Para saber cuántos de tus usuarios tienen la versión más reciente de tu extensión, usa el panel de estadísticas de Chrome Web Store. Ve al Panel de desarrollador de Chrome Web Store y selecciona una de tus extensiones publicadas. En la barra de navegación lateral, ve a Analytics -> Usuarios y desplázate hacia abajo hasta el gráfico de usuarios diarios por elemento. Aquí puedes ver cuántos usuarios ya tienen la versión más reciente.
Cómo actualizar extensiones manualmente
Si los usuarios quieren recibir las actualizaciones más recientes de inmediato, Chrome proporciona un mecanismo de actualización manual. Esta también es una herramienta útil cuando se prueban actualizaciones.
Los usuarios individuales pueden forzar una actualización para todas las extensiones instaladas siguiendo estos pasos:
- Navega a chrome://extensions.
- Habilita el Modo de desarrollador con el botón de activación en la esquina superior derecha.
- Haz clic en el botón Actualizar que aparece.
Esta acción le indica a Chrome que recupere de inmediato las versiones más recientes de todas las extensiones instaladas desde Chrome Web Store.
Cómo buscar actualizaciones desde una extensión
La API de chrome.runtime proporciona herramientas para que las extensiones interactúen con el mecanismo de actualización.
Cómo buscar actualizaciones a pedido
La función chrome.runtime.requestUpdateCheck() permite que una extensión inicie una verificación de actualización de forma programática. Esto es especialmente útil para las extensiones que tienen una dependencia crítica en un servicio de backend y deben asegurarse de que se ejecute la versión compatible más reciente.
Cuando se llama a esta función, Chrome consulta Chrome Web Store para obtener una nueva versión y la descarga si está disponible. La devolución de llamada de la función recibe un estado que indica el resultado de la verificación.
Cómo detectar actualizaciones disponibles
El evento chrome.runtime.onUpdateAvailable se activa cuando se descarga una actualización y está lista para instalarse. Este evento proporciona el nuevo número de versión en sus detalles. Si una extensión detecta este evento, puede determinar que hay una actualización disponible y considerar la posibilidad de quedar inactiva o provocar una recarga con chrome.runtime.reload() cuando sea apropiado.
El siguiente código muestra un patrón de implementación básico:
En casos excepcionales, es posible forzar al navegador a que busque una actualización de la extensión con chrome.runtime.requestUpdateCheck():
Es importante tener en cuenta que el navegador limitará las llamadas frecuentes a requestUpdateCheck(). Usa esta función solo cuando sepas que hay una actualización disponible. Por ejemplo, cuando un backend actualizado requiere una versión más reciente de la extensión.
Control de actualizaciones a través de políticas empresariales
En los entornos empresariales administrados, el flujo de actualización estándar de las extensiones está sujeto a las políticas establecidas por los administradores del sistema. Estas políticas pueden anular el comportamiento predeterminado para aplicar la seguridad y la estabilidad.
Instalación forzada
La política ExtensionInstallForcelist permite que los administradores instalen de forma silenciosa extensiones específicas para sus usuarios. Los usuarios no pueden inhabilitar ni desinstalar las extensiones instaladas con esta política.
Cómo fijar la versión de la extensión
Sin embargo, las empresas a menudo necesitan controlar la versión exacta de una extensión que se usa para garantizar la compatibilidad con otro software. Para lograrlo, los administradores pueden "fijar" una extensión a una versión específica. Esto se hace a través de la Consola del administrador de Google, en la que un administrador puede seleccionar la versión requerida para una unidad organizativa. Cuando se fija una extensión, Chrome no la actualizará más allá de la versión especificada.
Anula la fuente de actualización
Las empresas pueden alojar sus propias versiones bifurcadas de extensiones por motivos de seguridad o personalización. Pora ello, usa la política ExtensionSettings con la propiedad override_update_url establecida como verdadera. Esto obliga a Chrome a recuperar la extensión y sus actualizaciones desde una URL especificada, en lugar de hacerlo desde Chrome Web Store.
Cómo establecer una versión mínima de Chrome
Puedes especificar un minimum_chrome_version en el archivo de manifiesto de tu extensión. Esto garantiza que la extensión solo se instale en versiones de Chrome que admitan las APIs que usa.
En el caso de las instalaciones nuevas, Chrome Web Store impedirá que los usuarios de versiones anteriores de Chrome instalen la extensión y mostrará el mensaje "No compatible". En el caso de los usuarios existentes, si una actualización de una extensión aumenta el valor de minimum_chrome_version
a una versión superior a la versión de Chrome instalada por el usuario, este dejará de recibir actualizaciones de esa extensión de forma silenciosa. Los desarrolladores deben tener en cuenta esto y, si una parte significativa de su base de usuarios podría verse afectada, deben informar a los usuarios.