Problemas conocidos de la migración a Manifest V3

En esta página, se documentan las brechas de la plataforma que se resolvieron durante la transición al manifiesto V3 y se responden las preguntas frecuentes sobre la migración.

Se resolvieron las brechas de la plataforma

Se agregaron las siguientes capacidades para abordar los bloqueadores de migración comunes:

  1. Se agregó compatibilidad con File Handling en ChromeOS como reemplazo de chrome.fileBrowserHandler (Chrome 120).
  2. Compatibilidad con secuencias de comandos del usuario: Permite registrar secuencias de comandos de contenido con código arbitrario con la nueva API de userScripts (Chrome 120).
  3. Keepalives de Service Worker sólidos adicionales para ciertas operaciones que tardan más de cinco minutos
    • Se agregó en Chrome 116 para permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() y management.uninstall().
    • Se agregó en Chrome 118 para chrome.debugger.
  4. Aumenta la cantidad de conjuntos de reglas estáticos y habilitados para Declarative Net Request (DNR). Se aumentó la cantidad de conjuntos de reglas estáticos habilitados de 10 a 50 y la cantidad total de conjuntos de reglas estáticos de 50 a 100 (Chrome 120).
  5. Se extendió la funcionalidad de documento fuera de pantalla para admitir más motivos para usar un documento fuera de pantalla. Se agregó GEOLOCATION en Chrome 116.
  6. Mejoras en la compatibilidad con la API de chrome.tabCapture (Chrome 116):
    • Admite llamadas a getMediaStreamId() desde un service worker.
    • Se admite la obtención de un MediaStream a partir de un ID de transmisión en un documento fuera de la pantalla.
  7. Se extienden los tiempos de actividad de los service workers mientras haya conexiones WebSocket activas (Chrome 116).

Preguntas frecuentes sobre Manifest V3

P.: ¿Tenemos planes para admitir Service Workers persistentes?
R.: Una de las razones clave para migrar de los secuencias de comandos en segundo plano a los service workers es el modelo de programación basado en eventos más eficiente en cuanto a la memoria que proviene de la naturaleza efímera de los service workers. Por lo tanto, no planeamos admitir service workers persistentes. Sin embargo, para abordar las necesidades específicas de los desarrolladores de extensiones, seguimos realizando muchas mejoras en los service workers. En particular:

  • Todos los eventos de extensión y las llamadas a la API extenderán el ciclo de vida del service worker.
  • Los casos de uso seleccionados, como la mensajería nativa, mantendrán activos los service workers de las extensiones durante más de 5 minutos.

P.: ¿Hay alguna forma de acceder al DOM en los service workers?
R.: Seguimos el enfoque de la Plataforma web de no incluir acceso al DOM en los trabajadores web (que incluyen los service workers). Para admitir casos de uso que requieren acceso al DOM en segundo plano desde service workers, presentamos la posibilidad de delegar el trabajo en segundo plano a documentos fuera de pantalla de corta duración que proporcionan acceso completo al DOM.

P.: ¿Habrá alguna forma de admitir código remoto en Manifest V3?
R.: Para que las extensiones de Chrome sean más seguras, seguiremos prohibiendo la ejecución de código arbitrario alojado de forma remota en las extensiones de Chrome. Sin embargo, esto no significa que no permitamos todo tipo de ejecución de código dinámico. Seguimos admitiendo diferentes opciones para ejecutar código de forma dinámica en las extensiones de Chrome:

P.: Mi extensión de Manifest V2 depende de webRequestBlocking, que no es compatible con Manifest V3. ¿Cómo puedo seguir proporcionando la misma funcionalidad en Manifest V3?
R.: Confiamos en que la mayoría de los casos de uso de bloqueo de solicitudes se pueden resolver con la nueva API de declarativeNetRequest, que tiene el beneficio adicional de evitar la sobrecarga de rendimiento de la comunicación entre procesos, la ejecución de código en cada solicitud o la necesidad de un proceso de extensión activo en el momento de la solicitud. Sin embargo, para los casos de uso empresariales (o educativos) complejos, se sigue admitiendo el bloqueo de solicitudes dinámicas.

¿Nos faltó incluir algo? Comunícate con nosotros.