Foi lançado o navegador web Firefox 108. Além disso, foi criada uma atualização para a ramificação de suporte de longo prazo — 102.6.0. A ramificação Firefox 109 será transferida para a fase de beta teste em breve, com lançamento agendado para 17 de janeiro.
Principais novidades no Firefox 108:
- Foi adicionada a combinação de teclas Shift+ESC para abrir rapidamente a página do gerenciador de processos (about:processes), permitindo avaliar quais processos e fluxos internos consomem recursos excessivos de memória e CPU.

- A programação da exibição de quadros de animação em condições de alta carga foi otimizada, melhorando os resultados no teste MotionMark.
- Na impressão e ao salvar formulários em PDF, agora é possível usar caracteres em idiomas diferentes do inglês.
- Foi implementado o suporte para a correção de cores correta de imagens, de acordo com os perfis de cores ICCv4.
- Garantiu-se o funcionamento correto do modo de exibição da barra de favoritos 'apenas em novas abas' (configuração 'Only show on New Tab') para novas abas vazias.
- Adicionadas as configurações cookiebanners.bannerClicking.enabled e cookiebanners.service.mode em about:config para clicar automaticamente em banners que solicitam permissões para uso de cookies nos sites. Na interface das versões noturnas, foram implementados alternadores para controlar o clique automático em banners de cookies vinculado a domínios específicos.
- Adicionado o API Web MIDI, permitindo que aplicativos web interajam com dispositivos musicais MIDI conectados ao computador do usuário. O API está disponível apenas para páginas carregadas via HTTPS. Ao chamar o método navigator.requestMIDIAccess() quando dispositivos MIDI estão conectados ao computador, o usuário verá um diálogo solicitando a instalação do complemento 'Site Permission Add-on', necessário para ativar o acesso (veja a descrição abaixo).
- Foi proposto um mecanismo experimental de Adição de Permissão de Site para gerenciar o acesso de sites a APIs potencialmente perigosas e recursos que exigem privilégios elevados. Por perigosas, entende-se funcionalidades que podem danificar fisicamente o equipamento, causar alterações irreversíveis, ser utilizadas para instalar código malicioso em dispositivos ou resultar em vazamento de dados do usuário. Por exemplo, no contexto da API Web MIDI, o complemento de Permissão é usado para conceder acesso a um dispositivo de síntese sonora conectado ao computador.
- O suporte a mapas de importação (‘import map’) está habilitado por padrão, permitindo gerenciar quais URLs serão carregados ao importar arquivos JavaScript através das expressões import e import(). O mapa de importação é definido em formato JSON no elemento com um novo atributo ‘importmap’. Por exemplo: { "imports": { "moment": "\/node_modules\/moment\/src\/moment.js", "lodash": "\/node_modules\/lodash-es\/lodash.js" } }
Após a declaração desse mapa de importação no código JavaScript, para carregar e executar o módulo JavaScript ‘\/node_modules\/moment\/src\/moment.js’, pode-se usar a expressão ‘import moment from "moment";’ sem detalhar o caminho (equivalente a ‘import moment from "\/node_modules\/moment\/src\/moment.js";’).
- No elemento , foi implementado o suporte aos atributos ‘height’ e ‘width’, que definem a altura e a largura da imagem em pixels. Os atributos especificados só são eficazes quando o elemento está aninhado dentro do elemento e são ignorados quando aninhados nos elementos
- O CSS fornece um conjunto de funções trigonométricas sin(), cos(), tan(), asin(), acos(), atan() e atan2().
- No CSS, a função round() foi implementada para escolher a estratégia de arredondamento.
- No CSS, foi implementado o tipo , que permite o uso de constantes matemáticas conhecidas em funções matemáticas, como os números Pi e E, além de valores infinitos e NaN. Por exemplo, ‘rotate(calc(1rad * pi))’.
- Na consulta CSS «@container», que permite estilizar elementos de acordo com o tamanho do elemento pai (semelhante à consulta «@media», que se aplica não ao tamanho de toda a área visível, mas ao tamanho do bloco (container) onde o elemento está inserido), foi adicionada a compatibilidade experimental com as unidades de medida cqw (1% da largura), cqh (1% da altura), cqi (1% do tamanho inline), cqb (1% do tamanho do bloco), cqmin (o menor valor entre cqi ou cqb) e cqmax (o maior valor entre cqi ou cqb). A possibilidade está desativada por padrão e pode ser ativada através do parâmetro layout.css.container-queries.enabled em about:config.
- No JavaScript, foi adicionado o método Array.fromAsync para criar um array a partir de dados que chegam de forma assíncrona.
- O cabeçalho HTTP CSP (Content Security Policy) agora suporta as diretrizes ‘style-src-attr’, ‘style-src-elem’, ‘script-src-attr’ e ‘script-src-elem’, que fornecem funcionalidade similar às diretrizes style e script, mas com a possibilidade de serem aplicadas a elementos e manipuladores de eventos específicos, como onclick.
- Foi adicionado um novo evento domContentLoaded, chamado após a conclusão do carregamento do conteúdo.
- Foi adicionada a opção forceSync no método .get() para forçar a sincronização.
- Foi implementada uma área separada na barra para alocar widgets de extensões WebExtension.
- A lógica do blacklist de drivers Linux, incompatíveis com WebRender, foi alterada. Em vez de manter uma lista branca de drivers funcionais, foi feita a transição para a manutenção de uma lista negra de drivers problemáticos.
- Apoio aprimorado ao protocolo Wayland. Foi adicionada a manipulação da variável de ambiente XDG_ACTIVATION_TOKEN com o token de ativação para o protocolo xdg-activation-v1, através do qual um aplicativo pode mudar o foco para outro. Problemas que ocorriam ao mover o mouse sobre as abas foram resolvidos.
- A animação da barra foi habilitada na maioria dos sistemas Linux.
- Uma configuração gfx.display.max-frame-rate foi disponibilizada em about:config para limitar a taxa máxima de atualização de quadros.
- Suporte adicionado para a especificação de emojis 14.
- A extensão WebGL OES_draw_buffers_indexed está ativada por padrão.
- Foi implementada a possibilidade de usar GPU para acelerar a rasterização do Canvas2D.
- Na plataforma Windows, foi habilitada a isolação sandbox para processos que interagem com a GPU.
- Suporte adicionado para instruções SIMD FMA3 (multiplicação e adição com arredondamento único).
- Os processos utilizados para processar abas em segundo plano na plataforma Windows 11 agora são executados no modo «Efficiency», onde o escalonador de tarefas diminui a prioridade de execução para reduzir o consumo de recursos da CPU.

- Melhorias na versão para Android:
- Foi adicionada a possibilidade de salvar uma página da web como um documento PDF.
- Foi implementado o suporte para agrupamento de abas na barra (as abas podem ser rearranjadas após um toque longo na aba).
- Foi disponibilizado um botão para abrir todos os favoritos da seção especificada em novas abas em uma nova janela ou em modo anônimo.
Além das novidades e correções de erros, o Firefox 108 corrigiu 20 vulnerabilidades. Destas, 16 são consideradas críticas, sendo 14 delas (coletadas sob CVE-2022-46879 e CVE-2022-46878) relacionadas a problemas de gerenciamento de memória, como estouros de buffer e acesso a áreas de memória já liberadas. Essas falhas podem potencialmente permitir a execução de código malicioso ao abrir páginas especialmente projetadas. A vulnerabilidade CVE-2022-46871 está relacionada ao uso de código de uma versão desatualizada da biblioteca libusrsctp, que contém vulnerabilidades não corrigidas. A vulnerabilidade CVE-2022-46872 permite que um atacante que tenha acesso ao processo de processamento de páginas contorne a proteção de sandbox no Linux e leia o conteúdo de arquivos arbitrários manipulando mensagens IPC relacionadas à área de transferência.
Fonte: opennet.ru


