Plano de melhoria do suporte a Wayland no Firefox

Martin Stransky, mantenedor de pacotes do Firefox no Fedora e RHEL, responsável pela portabilidade do Firefox para Wayland, publicou um relatório com uma visão geral das últimas conquistas no desempenho do Firefox em ambientes baseados no protocolo Wayland.

Nas próximas versões do Firefox, está previsto resolver os problemas observados nas builds para Wayland relacionados ao clipboard e ao gerenciamento de janelas pop-up. Essas funcionalidades não puderam ser implementadas imediatamente devido às diferenças na abordagem de sua implementação no X11 e no Wayland. No primeiro caso, as dificuldades surgiram devido ao funcionamento assíncrono do clipboard do Wayland, o que exigiu a criação de uma camada separada para abstrair o acesso ao clipboard do Wayland. Esta camada será adicionada na versão 93 do Firefox e ativada por padrão na versão 94.

Em relação aos diálogos pop-up, a principal dificuldade foi que o Wayland exige a observância de uma hierarquia rígida de janelas pop-up, ou seja, uma janela pai pode criar uma janela filha com um pop-up, mas o próximo pop-up iniciado a partir dessa janela deve ser vinculado à janela filha original, formando uma cadeia. No Firefox, cada janela poderia gerar vários pop-ups que não formavam uma hierarquia. O problema era que, ao usar o Wayland, fechar um desses pop-ups exigia a reestruturação de toda a cadeia de janelas com outros pop-ups, sendo que ter vários pop-ups abertos não é incomum, já que menus, dicas, diálogos de complementos e solicitações de permissões também são implementados como pop-ups. A situação foi ainda mais complicada por falhas no Wayland e no GTK, que faziam com que pequenas alterações pudessem causar vários regressos. No entanto, o código para gerenciar janelas pop-up para Wayland foi ajustado e deve ser incluído na versão 94 do Firefox.

Outras melhorias relacionadas ao Wayland incluem a adição, na versão 93 do Firefox, de modificações relacionadas à escala em telas com diferentes DPI, que eliminaram o tremor ao mover uma janela para a borda da tela em configurações de múltiplos monitores. O Firefox 95 pretende resolver os problemas que surgem ao utilizar a interface de arrastar e soltar, por exemplo, ao copiar arquivos de fontes externas para sistemas de arquivos locais e ao mover abas.

Na versão 96 do Firefox, o porto do Firefox para Wayland pretende alcançar paridade funcional com a versão para X11, pelo menos ao trabalhar no ambiente GNOME do Fedora. Após isso, a atenção dos desenvolvedores se concentrará em aprimorar a operação do processo GPU no ambiente Wayland, que contém o código para interagir com adaptadores gráficos e protege o processo principal do navegador contra falhas em caso de problemas com os drivers. Também está previsto que o código para decodificação de vídeo utilizando VAAPI seja transferido para o processo GPU, que atualmente é executado nos processos de manipulação de conteúdo.

Além disso, destaca-se a inclusão, para uma pequena porcentagem de usuários das versões estáveis do Firefox, do modo de estrita isolamento de sites, que foi desenvolvido no âmbito do projeto Fission. Diferentemente da distribuição arbitrária da manipulação de abas pelo pool de processos disponível (por padrão 8), o modo de isolação trata cada site em um processo separado, dividindo não por abas, mas por domínios (Public Suffix), o que permite isolar ainda mais o conteúdo de scripts externos e blocos iframe. O gerenciamento da ativação do modo Fission é feito pela variável "fission.autostart=true" em about:config ou na página about:preferences#experimental.

O modo de estrita isolação ajuda a proteger contra ataques por canais laterais, como aqueles relacionados a vulnerabilidades do tipo Spectre, e também reduz a fragmentação de memória, retornando memória ao sistema operacional de forma mais eficiente, minimiza o impacto da coleta de lixo e de cálculos intensivos nas páginas de outros processos, aumenta a eficiência da distribuição de carga entre diferentes núcleos da CPU e melhora a estabilidade (uma falha no processo que manipula um iframe não afetará o site principal e outras abas).

Entre os problemas conhecidos que ocorrem ao usar o modo de estrita isolação, destaca-se um aumento significativo no consumo de memória e descritores de arquivo ao abrir um grande número de abas, bem como a interrupção do funcionamento de algumas extensões, a perda de conteúdo de iframes ao imprimir e ao chamar a função de gravação de captura de tela, a diminuição da eficiência do cache de documentos com iframes, e a perda de conteúdo de formulários preenchidos, mas não enviados, ao restaurar a sessão após uma falha.

Outras mudanças no Firefox incluem a conclusão da migração para o sistema de localização Fluent, melhorias no modo de alto contraste (High Contrast Mode), a adição de uma opção em about:processes para gravar perfis de desempenho do processo com um clique, e a remoção da configuração para retornar ao estilo antigo da página de abertura de novas abas, que era utilizado até o Firefox 89.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster