Hoja de ruta para mejorar el soporte de Wayland en Firefox

Martin Stransky, mantenedor de paquetes de Firefox para Fedora y RHEL que está migrando Firefox a Wayland, publicó un informe revisando los últimos desarrollos en Firefox ejecutándose en entornos basados ​​en el protocolo Wayland.

En las próximas versiones de Firefox, se planea solucionar los problemas observados en las compilaciones de Wayland con el portapapeles y el manejo de ventanas emergentes. Estas funciones no se pudieron implementar de inmediato debido a diferencias en el enfoque de su implementación en X11 y Wayland. En el primer caso, surgieron dificultades debido a que el portapapeles de Wayland se ejecutaba de forma asincrónica, lo que requirió la creación de una capa separada para abstraer el acceso al portapapeles de Wayland. La capa especificada se agregará a Firefox 93 y se habilitará de forma predeterminada en Firefox 94.

En cuanto a los cuadros de diálogo emergentes, la principal dificultad fue que Wayland requiere una jerarquía estricta de ventanas emergentes, es decir. una ventana principal puede crear una ventana secundaria con una ventana emergente, pero la siguiente ventana emergente iniciada desde esa ventana debe vincularse a la ventana secundaria original, formando una cadena. En Firefox, cada ventana podía generar varias ventanas emergentes que no formaban una jerarquía. El problema fue que al usar Wayland, cerrar una de las ventanas emergentes requiere reconstruir toda la cadena de ventanas con otras ventanas emergentes, a pesar de que la presencia de varias ventanas emergentes abiertas no es infrecuente, ya que los menús y ventanas emergentes se implementan en forma de información sobre herramientas emergentes, cuadros de diálogo de complementos, solicitudes de permiso, etc. La situación también se complicó por fallas en Wayland y GTK, por lo que pequeños cambios podrían conducir a varias regresiones. Sin embargo, el código para manejar ventanas emergentes para Wayland ha sido depurado y está previsto incluirlo en Firefox 94.

Otras mejoras relacionadas con Wayland incluyen la adición de 93 cambios de escala a Firefox en diferentes pantallas de DPI, que eliminan el parpadeo al mover una ventana al borde de la pantalla en configuraciones de varios monitores. Firefox 95 planea abordar los problemas que surgen al usar la interfaz de arrastrar y soltar, por ejemplo, al copiar archivos de fuentes externas a archivos locales y al mover pestañas.

Con el lanzamiento de Firefox 96, se planea llevar el port de Firefox para Wayland a la paridad general en funcionalidad con la versión X11, al menos cuando se ejecuta en el entorno GNOME de Fedora. Después de esto, la atención de los desarrolladores se centrará en perfeccionar el trabajo en entornos Wayland del proceso GPU, que contiene código para interactuar con adaptadores gráficos y que protege el proceso principal del navegador contra fallas en caso de fallas del controlador. También está previsto que el proceso de GPU incluya código para la decodificación de vídeo utilizando VAAPI, que actualmente se ejecuta en los procesos de procesamiento de contenidos.

Además, podemos destacar la inclusión de un modo de aislamiento estricto del sitio, desarrollado como parte del proyecto Fission, para un pequeño porcentaje de usuarios de las ramas estables de Firefox. A diferencia de la distribución arbitraria del procesamiento de pestañas en el grupo de procesos disponible (8 de forma predeterminada), utilizada hasta ahora, el modo de línea de aislamiento coloca el procesamiento de cada sitio en su propio proceso separado, separado no por pestañas, sino por dominio (Público). Suffix), que permite aislar contenidos adicionales de scripts externos y bloques iframe. La habilitación del modo Fisión se controla a través de la variable “fission.autostart=true” en about:config o en la página about:preferences#experimental.

El modo de aislamiento estricto ayuda a proteger contra ataques de canal lateral, como los asociados con las vulnerabilidades de Spectre, y también reduce la fragmentación de la memoria, devuelve la memoria al sistema operativo de manera más eficiente, minimiza el impacto de la recolección de basura y los cálculos intensivos en páginas en otros procesos, y aumenta la eficiencia de la distribución de carga entre diferentes núcleos de CPU y aumenta la estabilidad (la falla del proceso que procesa el iframe no afectará el sitio principal ni otras pestañas).

Entre los problemas conocidos que surgen al utilizar el modo de aislamiento estricto, se encuentra un aumento notable en el consumo de memoria y descriptores de archivos al abrir una gran cantidad de pestañas, así como la interrupción del funcionamiento de algunos complementos, la desaparición del contenido del iframe al imprimir y llamar a la función de grabación de captura de pantalla, reducir la eficiencia del almacenamiento en caché de documentos desde iframe, pérdida de contenido de formularios completados pero no enviados cuando se restablece una sesión después de una falla.

Otros cambios en Firefox incluyen la finalización de la migración al sistema de localización Fluent, mejoras en el modo de alto contraste, la adición de la capacidad de registrar perfiles de rendimiento de procesos con un solo clic en about:processes y la eliminación de una configuración para devolver el antiguo Estilo de la página de nueva pestaña que se usaba antes de Firefox 89.

Fuente: opennet.ru

Añadir un comentario