lançamento do navegador web , além de Firefox 68.7 para a plataforma Android. Além disso, uma atualização foi formada com suporte a longo prazo . Em breve, a versão para a versão Firefox 76, cujo lançamento está agendado para 5 de maio (projeto de 4 a 5 semanas) ).
:
- Para Linux, a formação de no formato Flatpak.
- A interface da barra de endereço foi atualizada. Agora, ao clicar na barra de endereço, uma lista suspensa das links mais frequentemente usados é exibida sem a necessidade de começar a digitar. A dica com os resultados de pesquisa foi otimizada para um melhor desempenho em telas pequenas. Na área de recomendações contextuais, foram implementadas dicas para resolver problemas comuns ao utilizar o navegador.
A exibição do protocolo https:// e do subdomínio 'www.' na lista suspensa de links que aparece durante a digitação na barra de endereço foi interrompida (por exemplo, links com conteúdo diferente como https://opennet.ru e https://www.opennet.ru se tornarão indistinguíveis). O protocolo http:// será exibido nos resultados de pesquisa sem alterações.
- Para Linux, o comportamento ao clicar na barra de endereço foi modificado (agora é igual ao de Windows e macOS) — um clique simples seleciona todo o conteúdo sem copiá-lo para a área de transferência, um clique duplo seleciona uma palavra, e um clique triplo seleciona todo o conteúdo e o copia para a área de transferência.
- Implementado não carregar imagens que estão fora da área visível até que o usuário role o conteúdo da página para o local imediatamente anterior à imagem. Para controlar o carregamento diferido nas páginas, foi adicionado ao tag 'img' o atributo '', que pode ter o valor 'lazy'. Acredita-se que o carregamento diferido ajudará a reduzir o consumo de memória, diminuir o tráfego e aumentar a velocidade de abertura inicial das páginas. Para gerenciar o carregamento diferido, um parâmetro 'dom.image-lazy-loading.enabled' foi adicionado ao about:config.
- suporte completo ao WebGL em ambientes que utilizam o protocolo Wayland. Até agora, o nível de desempenho do WebGL em compilações do Firefox para Linux deixava a desejar devido à falta de suporte à aceleração de hardware, em decorrência de problemas com drivers gfx para X11 e da aplicação de diferentes padrões. Ao utilizar o Wayland, a situação mudou graças à implementação de um novo , que utiliza um mecanismo . Além da aceleração de hardware para o WebGL, o backend também suporte para aceleração de decodificação de vídeo H.264 usando VA-API (Video Acceleration API) e FFmpegDataDecoder (suporte a VP9 e outros formatos de codificação de vídeo no Firefox 76). Para gerenciar a ativação da aceleração em about:config, são oferecidas as opções "widget.wayland-dmabuf-webgl.enabled" e "widget.wayland-dmabuf-vaapi.enabled".
- Para usuários do Reino Unido, foi ativada a exibição de blocos pagos por patrocinadores na página inicial na seção de conteúdo recomendado pelo serviço Pocket. Os blocos são claramente marcados como anúncios e podem ser desativados nas configurações. Anteriormente, a publicidade apenas para usuários dos EUA.
- modo de limpeza de cookies antigos e dados do site ao acessar sites com código de rastreamento de movimento, com os quais o usuário não interagiu de forma interativa. O modo visa combater o rastreamento por meio de redirecionamentos.
- implementação de diálogos modais vinculados a guias individuais e que não bloqueiam toda a interface.
- possibilidade de instalação e abertura de sites na forma de aplicativos (Apps), permitindo organizar o trabalho no site como se fosse um programa de desktop comum. Para ativar em about:config, deve-se adicionar a configuração "browser.ssb.enabled=true", após o que aparecerá no menu de contexto de ações com a página (os três pontos na barra de endereço) a opção "Instalar Site como App", permitindo colocar no desktop ou no menu de aplicativos um atalho para abrir o site atual de forma isolada. Desenvolvimento desenvolvimento do conceito "" (SSB), que envolve a abertura de um site em uma janela separada sem menu, barra de endereço e outros elementos da interface do navegador. No janela atual, apenas links para páginas do site ativo são abertos, e acessar links externos gera uma nova janela com o navegador comum.

- implementação do modo "«Ativado por meio do cabeçalho HTTP «X-Content-Type-Options», que agora desabilita também a lógica de detecção automática de tipos MIME para documentos HTML, e não apenas para JavaScript e CSS. Esse modo ajuda a proteger contra ataques relacionados à manipulação de tipos MIME. O navegador, por padrão, analisa o tipo de conteúdo sendo processado e o lida de acordo com o tipo determinado. Por exemplo, se o código HTML for salvo em um arquivo «.jpg», ao abrir este arquivo, ele será processado como HTML e não como imagem. Um atacante pode usar um formulário de upload de imagens para um arquivo jpg que inclua HTML com código JavaScript, após o que publicará um link para este arquivo, cujo código JavaScript será executado no contexto do site ao qual foi feito o upload (podendo determinar cookies e outros dados dos usuários vinculados ao site que abriu o link).
- O cache local de todos os certificados PKI confiáveis de autoridades certificadoras conhecidos pela Mozilla foi implementado, melhorando a compatibilidade com servidores web mal configurados.
- Foi proibido o uso da API Web Crypto em páginas abertas via HTTP sem criptografia.
- Para Windows, foi implementado o modo de composição direta (Direct Composition), que melhora o desempenho e aproxima a implementação do sistema de composição , escrito em Rust e transferindo operações de renderização do conteúdo da página para a GPU.
- Para macOS, foi implementada uma função experimental que permite o uso de certificados de cliente do armazenamento de certificados compartilhado do sistema operacional (para ativar no about:config, a opção security.osclientcerts.autoload deve ser habilitada). Desde o Firefox 72, essa função só estava disponível para Windows.
- Seguindo o Linux, foi utilizado um mecanismo de isolamento nas versões para macOS , visando bloquear a exploração de vulnerabilidades em bibliotecas de funções de terceiros. Neste estágio, o isolamento está habilitado apenas para a biblioteca , responsável pela renderização de fontes. O RLBox compila código C/C++ de uma biblioteca isolada em código intermediário de baixo nível WebAssembly, que é então encapsulado como um módulo WebAssembly, cujas permissões são definidas apenas para esse módulo. O módulo compilado funciona em uma área de memória separada e não tem acesso ao restante do espaço de endereçamento. Em caso de exploração de uma vulnerabilidade na biblioteca, o atacante será limitado e não conseguirá acessar áreas de memória do processo principal ou transferir o controle para fora do ambiente isolado.
- O atributo "type" no elemento agora só pode aceitar o valor "text/css".
- As funções foram implementadas no CSS , e .
- Para a propriedade CSS suporte para o valor "all" foi implementado, que exige a quebra obrigatória de sublinhados e tachados ao cruzar com glifos de texto (o valor anterior "auto" adaptativamente criava quebras e não excluía toques; com o valor all, toques com o glifo são completamente proibidos).
- Suporte adicionado para JavaScript para instâncias de classes JavaScript, permitindo especificar propriedades predefinidas, inicializadas fora do construtor.
class ClassWithStaticField {
static staticField = 'campo estático'
} - Adicionada a suporte à classe , que fornece métodos para analisar e processar parâmetros linguísticos, regionais e de estilo definidos pela localidade, bem como para ler e gravar tags de extensões Unicode e salvar configurações de localidade do usuário em formato serializado;
- A implementação da propriedade Function.caller foi alinhada com o último rascunho da nova especificação ECMAScript (em vez de TypeError, agora é retornado null se a chamada for feita a partir de uma função com o atributo strict, async ou generator).
- Um método foi adicionado ao HTMLFormElement , que inicia o envio programático de dados do formulário, semelhante ao clique em um botão de envio. A função pode ser usada ao desenvolver botões personalizados de envio de formulário, para os quais a chamada form.submit() não é suficiente, pois não resulta em verificação interativa dos parâmetros, geração do evento 'submit' e envio dos dados vinculados ao botão de envio.
- O evento submit agora é implementado por um objeto do tipo SubmitEvent, e não Event. O SubmitEvent inclui novas propriedades que permitem identificar o elemento que acionou o envio do formulário. Por exemplo, o SubmitEvent possibilita o uso de um único manipulador, compartilhado por diferentes botões e links que levam ao envio do formulário.
- Foi implementada a transmissão correta do evento de clique ao chamar o método click() para elementos desconectados (que não fazem parte da árvore DOM).
- Na API Adicionada a possibilidade de vincular animações ao quadro-chave inicial ou final, e o navegador calculará automaticamente o estado final ou inicial (é suficiente indicar apenas o primeiro ou último quadro-chave). Incluídos por padrão Animation.timeline getter, Document.timeline, DocumentTimeline, AnimationTimeline, Document.getAnimations() e Element.getAnimations().
- Adicionada a possibilidade de ativar a interface de profiling de páginas sem a necessidade de instalar um complemento separado, através do clique no botão 'Enable Profiler Menu Button' no site. . Adicionado o modo de análise de desempenho apenas para a guia ativa.
- Na web console, agora existe o modo de cálculo instantâneo de expressões, permitindo que os desenvolvedores identifiquem e corrijam erros mais rapidamente ao inserir expressões complexas, com a saída do resultado preliminar à medida que digitam.
- Em para medir áreas da página (Measuring Tool) foi adicionada a opção de redimensionar a moldura retangular (anteriormente, ao soltar a tecla do mouse, a moldura não podia ser modificada e, em caso de aliçonamento impreciso, era necessário medir do zero).
- Na interface de inspeção de páginas, adicionada a compatibilidade para busca de elementos utilizando expressões XPath, além da busca anteriormente disponível por meio de seletores CSS.
- Adicionada a possibilidade de filtrar mensagens de WebSocket utilizando expressões regulares (anteriormente, apenas máscaras de texto eram suportadas).
- No depurador JavaScript, foi adicionada a compatibilidade para vincular pontos de parada a manipuladores de eventos de WebSocket.
- Foi realizada uma limpeza da interface para análise da atividade de rede. A renderização de tabelas foi otimizada para o tratamento simultâneo de um grande número de conexões. Os separadores de coluna e os botões para aplicação de filtros foram tornados mais contrastantes. No painel de bloqueio de requisições de rede, foi implementada a possibilidade de usar o caractere «*» em máscaras de URL (o que permite avaliar o comportamento do site em condições de falha no carregamento de recursos).
Além das inovações e correções de erros, no Firefox 75 foi eliminado , das quais várias foram marcadas como críticas, ou seja, podem levar à execução de código malicioso ao abrir páginas especialmente formatadas. No momento, informações detalhadas sobre os problemas de segurança corrigidos não estão disponíveis, espera-se que a lista de vulnerabilidades seja publicada nas próximas horas.
Fonte: opennet.ru

