O lançamento do navegador web Firefox 122 ocorreu e uma atualização para a ramificação de longo suporte — 115.7.0 foi formada. A ramificação Firefox 123 entrou em fase de beta-teste, com o lançamento previsto para 20 de fevereiro.
Principais novidades do Firefox 122:
- Foram ampliadas as funcionalidades relacionadas à exibição de recomendações ao inserir na barra de endereços. Para alguns motores de busca, foi implementada a capacidade de mostrar imagens e descrições textuais nas recomendações. Ao buscar informações relacionadas ao desenvolvimento web, links para a documentação no MDN (Mozilla Developer Network) serão exibidos entre as recomendações.

- Iniciou-se a formação de pacotes .deb prontos para Ubuntu, Debian e Linux Mint. Os pacotes formados são compatíveis com as compilações tradicionais do Firefox para Debian e Ubuntu, oferecidas para download nos arquivos '.tar.bz2'. Durante a compilação dos pacotes, foram incluídas otimizações adicionais, além de flags para aumentar a segurança. Um arquivo .desktop foi incluído para colocar o atalho na área de trabalho e no menu do sistema. Instruções para instalação do Firefox a partir do repositório APT da Mozilla.
- A qualidade da tradução de páginas foi melhorada através do sistema integrado de tradução automática. Problemas de desaparecimento da página traduzida e dificuldades com widgets interativos foram resolvidos.
- Para aumentar a proteção contra ataques XSS e melhorar a portabilidade entre navegadores, a URL 'data:' foi descontinuada no SVGUseElement.
- Adicionada proteção contra vazamento de informações sobre links visitados anteriormente através da análise da cor dos pixels usando filtros que utilizam o parâmetro currentColor. Agora, a saída desses filtros não poderá ser lida a partir do canvas em SVG, pois podem ser usados para determinar a cor apresentada pelo seletor ':visited'.
- Nas compilações para macOS, foi adicionada a suporte à tecnologia Passkey (uso somente no iCloud Keychain), que permite ao usuário se autenticar sem senhas, utilizando identificadores biométricos como impressão digital ou reconhecimento facial.
- Implementada a manipulação do token de autocompletar 'webauthn'. Nos diálogos de autocompletar formulários, foi implementada uma interface para conexão utilizando Passkey.
- No modo de navegação privada, os scripts têm a capacidade de salvar dados através da API Cache visando unificar o comportamento entre os modos privado e normal (a diferença existente poderia ser utilizada para determinar se o usuário está no modo privado).
- O suporte ao mecanismo de correção de erros preemptiva ULPFEC (Uneven Level Protection Forward Error Correction) está ativado por padrão no WebRTC, permitindo a recuperação de pacotes danificados ou perdidos. A aplicação do ULPFEC possibilita melhorar a qualidade do vídeo para usuários com conexões instáveis.
- É permitido o uso do elemento <hr> dentro do elemento <select> para inserir divisores em listas geradas com base no elemento <select>.
- Adicionada a possibilidade de usar o método showPicker com elementos para chamar programaticamente a implementação do menu suspenso fornecida pelo navegador.
- As regras de quebra de linha para a exibição de texto em páginas da web foram ajustadas para estar em conformidade com o padrão Unicode. Para línguas asiáticas, como o japonês e o chinês, foi implementado o suporte à seleção de palavras inteiras com um duplo clique do mouse no texto.
- Foi adicionado a propriedade CSS offset-position, que define a posição inicial de um elemento e geralmente é utilizada em conjunto com a propriedade offset-path para determinar a trajetória de movimento de objetos de animação.
- O suporte à função ray() foi adicionado à propriedade CSS offset-path, definindo o segmento de linha que o elemento a ser animado deverá seguir, assim como os valores basic-shape e coord-box.
- O suporte às funções rect() e xywh() foi incorporado às propriedades CSS clip-path e offset-path para a criação de formas básicas.
- Foi acrescentado o suporte para a animação do atributo SVG viewBox, utilizando a linguagem SMIL (Synchronized Multimedia Integration Language), projetada para animar elementos SVG.
- O parser de URL, chamado para links com esquema desconhecido, foi alterado para DefaultURI em conformidade com a exigência da especificação.
- O suporte aos métodos ArrayBuffer.prototype.transfer() e ArrayBuffer.prototype.transferToFixedLength() foi adicionado para transferir a propriedade da memória de um ArrayBuffer para outro. Após a transferência, o buffer é desconectado da área de memória original e se torna inadequado para uso. O estado do buffer pode ser verificado usando a propriedade ArrayBuffer.prototype.detached.
- Foi implementado a API LargestContentfulPaint, que fornece informações sobre o tempo de renderização da imagem ou texto mais significativo antes que o usuário comece a interagir com a página.
- Foi adicionado o suporte à API Screen Wake Lock, permitindo que um aplicativo da web, como um player multimídia, bloqueie a ativação do protetor de tela após um longo período de inatividade do usuário.
- Apoio experimental à API foi adicionado:
- API Declarativo Shadow DOM (ativado através de dom.webcomponents.shadowdom.declarative.enabled em about:config) para criar novas ramificações raiz no Shadow DOM, por exemplo, para separar o estilo de terceiros importado de um elemento e sua ramificação DOM associada do documento principal. O API declarativo proposto permite soltar as ramificações DOM apenas com HTML, sem a necessidade de escrever código JavaScript.
- API Popover (ativado através de dom.element.popover.enabled em about:config) para criar elementos de interface que são exibidos sobre outros elementos da interface web. Por exemplo, com o novo API, é possível criar menus de ações, exibir dicas para preenchimento de formulários, criar interfaces interativas e implementar captura de conteúdo. A exibição sobre outros elementos é realizada através da atribuição do atributo "popover", enquanto a localização, cascata e foco de entrada são tratados automaticamente. Diferente do elemento "dialog", elementos com o atributo "popover" não utilizam modo modal, suportam eventos e são facilmente cancelados.
- Ferramentas para ler e gravar na área de transferência (ativado através de dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readText e dom.events.asyncClipboard.writeText em about:config), permitindo o uso da interface ClipboardItem e dos métodos read(), readText() e write().
- Objeto Intl.Segmenter (disponível apenas nas versões de desenvolvimento do Firefox) para segmentação precisa de texto em uma string considerando a localidade, por exemplo, para separar palavras em idiomas que não usam espaço para dividir palavras.
- Nas ferramentas para web desenvolvedores, no modo de inspeção, ao editar um seletor ou propriedades, pressionar a tecla Enter agora confirma a entrada e aplica o foco no elemento correspondente, em vez de mover o foco para o próximo campo de entrada (para mover o foco para o próximo campo, pode-se usar a tecla Tab).
- Na versão para Android, foi introduzida a possibilidade de ativar o mecanismo GPC (Global Privacy Control), que substitui o cabeçalho "DNT" (Do Not Track) e permite informar sites sobre a proibição da venda de dados pessoais e seu uso para rastreamento de preferências ou movimentos entre sites. Também foi possibilitado definir o Firefox como o programa padrão para visualização de PDFs. Para aumentar a proteção contra a identificação passiva do usuário, o cabeçalho User-Agent agora sempre exibe "Android 10", independentemente da versão real da plataforma.
Além das novidades e correções de erros, o Firefox 122 eliminou 15 vulnerabilidades (5 marcadas como críticas). 8 dessas vulnerabilidades são causadas por problemas de gerenciamento de 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 especialmente formatadas.
Adicionalmente, foi anunciada a criação de um serviço separado pela Mozilla para monitorar casos de discriminação do Firefox em várias plataformas e resolver problemas identificados juntamente com os fabricantes das plataformas. Atualmente, o site compila problemas técnicos que surgem ao utilizar o Firefox em sistemas da Apple, Google e Microsoft. Por exemplo, na plataforma Android, foi notada a impossibilidade de importar configurações do navegador e uma diminuição na qualidade das buscas. No Windows, menciona-se a proibição de alteração programática do navegador padrão e a imposição do Microsoft Edge. Em Android e Windows, também se observa a manutenção de algumas dependências ao Chrome e ao Edge, mesmo após a alteração do navegador padrão.
Fonte: opennet.ru

