Foi lançado o navegador web Firefox 89. Além disso, foi configurada uma atualização da ramificação com suporte a longo prazo 78.11.0. A ramificação Firefox 90 será transferida para a fase de beta-testes em breve, com lançamento previsto para 13 de julho.
Principais novidades:
- Uma modernização significativa da interface foi realizada. Os ícones foram atualizados, o estilo de diferentes elementos foi unificado e a paleta de cores foi reestruturada.
- A aparência da barra de abas foi alterada — os cantos dos botões de abas foram arredondados e agora não se fundem com a barra na borda inferior (efeito de botão flutuante). A separação visual das abas inativas foi removida, mas a área ocupada pelo botão é destacada ao passar o mouse sobre a aba.

- O menu passou por uma reestruturação. Itens raramente usados e obsoletos foram removidos do menu principal e dos menus de contexto para enfatizar os recursos mais importantes. Os elementos restantes foram reorganizados com base em sua importância e demanda pelos usuários. No âmbito da luta contra desordens visuais que distraem, os ícones próximos aos elementos do menu foram removidos, deixando apenas as etiquetas textuais. A interface para configuração da barra e ferramentas para desenvolvedores web foram movidas para um submenu separado chamado ‘Ferramentas Adicionais’ (‘More Tools’).


- Removido o menu ‘…’ (Ações da Página) embutido na barra de endereços, que permitia adicionar um marcador, enviar um link para o Pocket, fixar uma aba, trabalhar com a área de transferência e iniciar o envio de material por e-mail. As opções disponíveis no menu ‘…’ foram transferidas para outras partes da interface, permanecendo acessíveis na seção de configuração da barra e podendo ser individualmente colocadas na barra em forma de botões. Por exemplo, o botão que chama a interface para criar capturas de tela está disponível através do menu de contexto exibido ao clicar com o botão direito do mouse na página.

- O painel lateral pop-up para configuração da página foi reformulado com uma interface exibida ao abrir uma nova aba.

- O design dos painéis de informação e diálogos modais com avisos, confirmações e solicitações foi alterado e unificado com os demais diálogos. Os diálogos agora exibem cantos arredondados e estão centralizados verticalmente.

- Após a atualização, é exibida uma tela de boas-vindas que sugere o uso do Firefox como navegador padrão no sistema e oferece a escolha de temas. As opções de tema incluem: sistema (considerando as configurações do sistema para a aparência das janelas, menus e botões), claro, escuro e Alpenglow (colorido).





- Por padrão, a interface de configurações de aparência da barra oculta o botão para ativar o modo compacto de visualização. Para reverter a configuração, foi implementado o parâmetro "browser.compactmode.show" no about:config. Para usuários que tiverem o modo compacto ativado, o parâmetro será ativado automaticamente.
- Reduzido o número de elementos que distraem o usuário. Removidas advertências e notificações desnecessárias.
- Integrado uma calculadora na barra de endereços, permitindo calcular expressões matemáticas fornecidas em ordem arbitrária. A calculadora está desligada por padrão e requer a alteração da configuração suggest.calculator no about:config. Em uma das próximas versões, também se espera (já adicionado nas compilações noturnas en-US) o aparecimento de um conversor de unidades integrado à barra de endereços, permitindo, por exemplo, converter pés em metros.

- Nas compilações para Linux, o uso do motor de composição WebRender foi ativado para todos os usuários do Linux, incluindo quaisquer ambientes de desktop, todas as versões do Mesa e sistemas com drivers NVIDIA (anteriormente o WebRender estava habilitado apenas para GNOME, KDE e Xfce com drivers Intel e AMD). O WebRender é escrito em Rust e permite um aumento significativo na velocidade de renderização e redução da carga no CPU, ao deslocar para o GPU as operações de renderização do conteúdo da página, que são realizadas através de shaders executados no GPU. Para desativar o WebRender no about:config, é possível usar a configuração "gfx.webrender.enabled" ou iniciar o Firefox com a variável de ambiente MOZ_WEBRENDER=0.
- O método de proteção total de Cookies (Total Cookie Protection) agora está ativado por padrão, sendo que anteriormente era ativado apenas ao selecionar o modo estrito de bloqueio de conteúdo indesejado (strict). Agora, um armazenamento isolado separado para Cookies é usado para cada site, o que impede o uso de Cookies para rastrear o movimento entre sites, pois todos os Cookies definidos por blocos externos carregados no site estão agora vinculados ao site principal e não são transmitidos ao acessar esses blocos de outros sites. Como exceção, a possibilidade de transmissão de Cookies entre sites foi mantida para serviços não relacionados ao rastreamento de usuários, como os utilizados para autenticação única. As informações sobre Cookies intersites bloqueados e permitidos são exibidas no menu que aparece ao clicar no ícone de escudo na barra de endereços.

- A segunda versão do mecanismo SmartBlock, destinada a resolver problemas em sites que surgem devido ao bloqueio de scripts externos no modo de navegação privada ou ao ativar o bloqueio intensificado de conteúdo indesejado (strict), foi habilitada. O SmartBlock também permite aumentar significativamente o desempenho de alguns sites que estão lentos devido à impossibilidade de carregar o código dos scripts de rastreamento. O SmartBlock substitui automaticamente os scripts de rastreamento por substitutos que garantem o carregamento correto do site. Os substitutos foram preparados para alguns scripts de rastreamento de usuários populares, incluídos na lista do Disconnect, incluindo scripts com widgets do Facebook, Twitter, Yandex, Vkontakte e Google.
- O suporte para a extensão TLS DC (Delegated Credentials) foi ativado para delegar certificados de curta duração, que resolvem o problema com os certificados ao acessar sites através de redes de entrega de conteúdo. Os Delegated Credentials introduzem uma chave privada intermediária adicional, cujo tempo de validade é limitado a horas ou alguns dias (no máximo 7 dias). Esta chave é gerada com base no certificado emitido pela autoridade certificadora e permite manter a chave privada do certificado original em segredo dos serviços de entrega de conteúdo. Para evitar problemas de acesso após o término da validade da chave intermediária, foi implementada uma tecnologia de atualização automática, realizada no lado do servidor TLS original.
- Foi apresentada uma implementação de elementos de formulário de entrada de terceiros (não nativa ao sistema), como botões, campos de seleção e caixas de texto (input, textarea, button, select), com um design mais moderno. A aplicação de uma implementação separada de elementos de formulário também teve um impacto positivo na performance de renderização das páginas.
- Foi disponibilizada a manipulação do conteúdo dos elementos e
- Foi implementada a API Event Timing para medir os atrasos de eventos antes e depois do carregamento da página.
- Adicionado a propriedade CSS forced-colors para determinar se o navegador está aplicando uma paleta de cores limitada definida pelo usuário na página.
- Nos atributos CSS ascent-override, descent-override e line-gap-override, foi adicionado o descritor @font-face para redefinir as métricas da fonte, o que pode ser usado para uniformizar a exibição da fonte em diferentes navegadores e sistemas operacionais, além de eliminar o deslocamento do layout da página por fontes da web.
- Na função CSS image-set(), que permite escolher a imagem mais adequada de um conjunto de opções com diferentes resoluções, foi implementado o suporte para a função type().
- No JavaScript, por padrão, é permitido o uso da palavra-chave await em módulos de nível superior, o que permite uma integração mais suave de chamadas assíncronas no processo de carregamento de módulos, eliminando a necessidade de encapsulá-las em uma 'async function'. Por exemplo, em vez de (async function() { await Promise.resolve(console.log('teste')); }()); agora pode-se escrever await Promise.resolve(console.log('teste'));
- Em sistemas de 64 bits, é permitido criar estruturas ArrayBuffers com tamanho superior a 2GB (mas não mais que 8GB).
- O suporte para eventos DeviceProximityEvent, UserProximityEvent e DeviceLightEvent foi interrompido, pois não são compatíveis com outros navegadores.
- Na ferramenta de inspeção de páginas, a navegação por meio do teclado foi aprimorada nas propriedades editáveis do BoxModel.
- Nas compilações para Windows, a interface dos menus de contexto foi melhorada e o lançamento do navegador foi acelerado.
- Nas compilações para macOS, foi implementado o uso de menus de contexto nativos da plataforma e barras de rolagem. Adicionada a suporte ao efeito de rolagem além da área visível (overscroll), sinalizando o alcance do final da página. Implementada a escala inteligente, ativada por um clique duplo. Adicionada a suporte ao tema escuro. Problemas de discrepância na exibição de cores em CSS e imagens foram resolvidos. No modo de tela cheia, foi adicionado o recurso de ocultar barras.
Além de inovações e correções de bugs no Firefox 89, 16 vulnerabilidades foram corrigidas, das quais 6 foram marcadas como perigosas. 5 vulnerabilidades (agrupadas sob CVE-2021-29967) foram causadas por problemas relacionados à memória, como estouros de buffer e acesso a áreas de memória já liberadas. Potencialmente, esses problemas podem permitir a execução de código malicioso ao abrir páginas especificamente formatadas.
Fonte: opennet.ru













