Plan de mejora del soporte Wayland en Firefox

Martin Stransky, mantenedor de paquetes de Firefox en Fedora y RHEL, que se encarga de portar Firefox para Wayland, publicó un informe sobre los últimos logros en el funcionamiento de Firefox en entornos basados en el protocolo Wayland.

En las próximas versiones de Firefox se abordarán los problemas observados en las compilaciones para Wayland relacionados con el portapapeles y la gestión de ventanas emergentes (popup). Estas funcionalidades no se pudieron implementar de inmediato debido a las diferencias en el enfoque de su implementación en X11 y Wayland. En el primer caso, las dificultades surgieron debido al funcionamiento del portapapeles de Wayland en modo asíncrono, lo que requirió la creación de una capa separada para abstraer el acceso al portapapeles de Wayland. Esta capa se añadirá en Firefox 93 y estará habilitada por defecto en Firefox 94.

En cuanto a los diálogos emergentes, la principal dificultad era que Wayland requiere mantener una estricta jerarquía de ventanas emergentes, es decir, una ventana principal puede crear una ventana hija con un popup, pero el siguiente popup iniciado desde esta ventana debe estar vinculado a la ventana hija original, formando una cadena. En Firefox, cada ventana podía crear múltiples popups que no formaban jerarquía. El problema radicaba en que, al usar Wayland, cerrar uno de los popups requiere reconstruir toda la cadena de ventanas con otros popups, siendo que tener varios popups abiertos no es raro, ya que los menús, las sugerencias emergentes, los diálogos de complementos, las solicitudes de permisos, etc., se implementan como popups. La situación también se complicaba por fallos en Wayland y GTK, debido a los cuales realizar pequeños cambios podía provocar diversas regresiones. Sin embargo, el código para gestionar las ventanas emergentes para Wayland fue depurado y se planea incluirlo en Firefox 94.

Entre otras mejoras relacionadas con Wayland, se menciona la adición en Firefox 93 de cambios relacionados con la escalación en pantallas con diferente DPI, lo que permitió eliminar el parpadeo al mover una ventana hacia el borde de la pantalla en configuraciones de múltiples monitores. En Firefox 95 se planea abordar los problemas que surgen al usar la interfaz de arrastrar y soltar, por ejemplo, al copiar archivos de fuentes externas a sistemas de archivos locales y al mover pestañas.

En la versión 96 de Firefox, se planea llevar el puerto de Firefox para Wayland a una paridad funcional general con la construcción para X11, al menos en el entorno de GNOME de Fedora. Después de esto, la atención de los desarrolladores se centrará en perfeccionar el funcionamiento del proceso GPU en entornos Wayland, en el que se ha movido el código para interactuar con los adaptadores gráficos y que protege el proceso principal del navegador de fallos en caso de errores en los controladores. También se planea trasladar el código para la decodificación de video utilizando VAAPI al proceso GPU, que actualmente se ejecuta en procesos de procesamiento de contenido.

Además, se puede destacar la inclusión para un pequeño porcentaje de usuarios de ramas estables de Firefox del modo de estricta aislamiento de sitios, desarrollado en el marco del proyecto Fission. A diferencia de la distribución aleatoria de procesamiento de pestañas por el grupo de procesos disponible (por defecto 8), el modo de aislamiento separa el procesamiento de cada sitio en su propio proceso, dividiendo no por pestañas, sino por dominios (Public Suffix), lo que permite aislar aún más el contenido de scripts externos y bloques iframe. La gestión de la activación del modo Fission se realiza a través de la variable «fission.autostart=true» en about:config o en la página about:preferences#experimental.

El modo de estricta aislamiento permite protegerse contra ataques por canales laterales, como los relacionados con vulnerabilidades de la clase Spectre, y también reduce la fragmentación de la memoria, devolviendo la memoria al sistema operativo de manera más eficiente, minimiza el impacto de la recolección de basura y cálculos intensivos en páginas de otros procesos, aumenta la eficiencia de la distribución de carga en diferentes núcleos de CPU y mejora la estabilidad (la caída del proceso que maneja un iframe no arrastrará consigo al sitio principal ni a otras pestañas).

Entre los problemas conocidos que surgen al utilizar el modo de estricta aislamiento, se destaca un aumento notable en el consumo de memoria y descriptores de archivos al abrir un gran número de pestañas, así como el mal funcionamiento de algunas extensiones, la desaparición del contenido iframe al imprimir y al invocar la función de captura de pantalla, disminución de la efectividad del almacenamiento en caché de documentos con iframe, y pérdida de contenido en formularios que se han llenado pero no se han enviado al restaurar la sesión después de un fallo.

Entre otros cambios en Firefox, se destaca la finalización de la migración al sistema de localización Fluent, la mejora del modo de alto contraste, la adición en about:processes de la capacidad de grabar perfiles de rendimiento del proceso con un solo clic y la eliminación de la configuración para volver al antiguo estilo de presentación de la página de nueva pestaña, que se utilizaba antes de Firefox 89.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster