Foi lançado mais uma versão do Chrome 86 e a versão estável do Chromium.
As principais mudanças no Chrome 86:
- proteção contra o envio inseguro de formulários de entrada em páginas carregadas via HTTPS, mas que enviam dados via HTTP.
- O bloqueio de downloads inseguros (http) para arquivos executáveis foi complementado com o bloqueio de downloads inseguros de arquivos compactados (zip, iso, etc.) e a exibição de avisos para downloads inseguros de documentos (docx, pdf, etc.). Na próxima versão, espera-se o bloqueio de documentos e a exibição de avisos para imagens, arquivos de texto e multimídia. O bloqueio foi implementado, pois o download de arquivos sem criptografia pode ser utilizado para realizar ações maliciosas por meio de ataques MITM.
- No menu de contexto, por padrão, é exibida a opção "Sempre mostrar URL completo", cuja ativação anteriormente exigia a alteração das configurações na página about:flags. O URL completo também pode ser visualizado clicando duas vezes na barra de endereços. Vale lembrar que, a partir do Chrome 76, o endereço passou a ser exibido sem o protocolo e o subdomínio www. No Chrome 79, a configuração para retornar ao comportamento antigo foi removida, mas, após reclamações dos usuários, no Chrome 83 foi adicionada uma nova flag experimental, que inclui uma opção no menu de contexto para desabilitar a ocultação e mostrar o URL completo em quaisquer condições.
- A iniciativa para remover o suporte a FTP foi retomada. No Chrome 86, o FTP está desabilitado por padrão para cerca de 1% dos usuários, e na versão 87, a abrangência da desativação aumentará para 50%, mas o suporte poderá ser restaurado usando o sinalizador "—enable-ftp" ou "—enable-features=FtpProtocol". No Chrome 88, o suporte a FTP será completamente removido.
- Na versão para Android, assim como na versão para sistemas desktop, o gerenciador de senhas implementou a verificação de logins e senhas salvos com um banco de dados de contas comprometidas, alertando sobre problemas ou tentativas de uso de senhas triviais. A verificação é realizada em um banco de dados que abrange mais de 4 bilhões de contas comprometidas que apareceram em vazamentos de dados. Para preservar a privacidade, é utilizada uma verificação de prefixo de hash do lado do usuário, e as senhas e seus hashes completos não são enviados para fora.
- Na versão para Android, também foram transferidos o botão "Verificação de Segurança" (Safety check) e o modo avançado de proteção contra sites perigosos (Enhanced Safe Browsing). O botão "Safety check" exibe um resumo dos possíveis problemas de segurança, como uso de senhas comprometidas, estado de verificação de sites maliciosos (Safe Browsing), ausência de atualizações e identificação de extensões maliciosas. O modo avançado de proteção ativa verificações adicionais para proteção contra phishing, atividades maliciosas e outras ameaças na web, e inclui proteção extra para a conta do Google e serviços do Google (Gmail, Drive, etc.). Enquanto no modo normal de Safe Browsing as verificações são realizadas localmente em um banco de dados periodicamente carregado no sistema do cliente, no Enhanced Safe Browsing as informações sobre páginas e downloads são enviadas em tempo real para verificação ao Google, permitindo uma resposta rápida a ameaças assim que são detectadas, sem esperar pela atualização da lista negra local.
- Foi adicionado suporte ao arquivo indicador ".well-known/change-password", através do qual os proprietários de sites podem indicar o endereço de um formulário web para alteração de senha. Caso uma comprometimento das credenciais do usuário seja detectado, o Chrome agora oferecerá imediatamente ao usuário um formulário para a alteração da senha, definido com base nas informações deste arquivo.
- Foi implementado um novo aviso "Dica de Segurança" (Safety Tip), exibido ao abrir sites cujos domínios são muito semelhantes a outro site e a heurística mostra que há uma alta probabilidade de spoofing (por exemplo, ao abrir goog0le.com em vez de google.com).
* Suporte para o cache de retrocesso (Back-forward cache) foi implementado, proporcionando uma transição instantânea ao usar os botões "Voltar" e "Avançar" ou ao navegar por páginas previamente visualizadas do site atual. O cache é ativado através da configuração chrome://flags/#back-forward-cache.
- Otimização do consumo de recursos da CPU para janelas fora da área visível. O Chrome verifica se uma janela do navegador está oculta por outras janelas e elimina a renderização de pixels em áreas sobrepostas. Essa otimização foi habilitada para uma pequena porcentagem de usuários no Chrome 84 e 85 e agora foi ativada amplamente. Em comparação com versões anteriores, a incompatibilidade com sistemas de virtualização, que resultava na exibição de páginas em branco, foi também corrigida.
- Foi reforçado o corte de recursos para abas em segundo plano. Estas abas agora não podem consumir mais de 1% dos recursos da CPU e podem ser ativadas no máximo uma vez por minuto. Após cinco minutos em segundo plano, as abas são congeladas, exceto aquelas que reproduzem conteúdo multimídia ou estão gravando.
- O trabalho de unificação do cabeçalho HTTP User-Agent foi reiniciado. Na nova versão, o suporte para o mecanismo User-Agent Client Hints, desenvolvido como substituto do User-Agent, foi ativado para todos os usuários. O novo mecanismo implica a entrega seletiva de dados sobre parâmetros específicos do navegador e do sistema (versão, plataforma, etc.) apenas após solicitação do servidor, permitindo que os usuários forneçam essas informações aos proprietários de sites de forma seletiva. Ao usar o User-Agent Client Hints, a identificação não é transmitida por padrão sem solicitação explícita, tornando impossível a identificação passiva (apenas o nome do navegador é informado por padrão).
Mudou a indicação de atualização disponível e a necessidade de reiniciar o navegador para a instalação. Em vez de uma seta colorida no campo do avatar da conta, agora aparece a mensagem "Atualizar". - Foi realizado um trabalho para a transição do navegador para o uso de terminologia inclusiva. Nos nomes das políticas, as palavras "whitelist" e "blacklist" foram substituídas por "allowlist" e "blocklist" (as políticas já adicionadas continuarão a funcionar, mas um aviso será exibido sobre a transição para a categoria de obsolescência). No código e nos nomes de arquivos, menções a "blacklist" foram substituídas por "blocklist". Menções visíveis aos usuários de "blacklist" e "whitelist" foram substituídas no início de 2019.
Adicionada uma opção experimental para editar senhas salvas, ativável através da flag «chrome://flags/#edit-passwords-in-settings». - Classificado como uma API estável e amplamente acessível, o Native File System permite a criação de aplicativos web que interagem com arquivos no sistema de arquivos local. Por exemplo, a nova API pode ser útil em ambientes de desenvolvimento integrados, editores de texto, imagens e vídeo que são executados no navegador. Para obter a capacidade de leitura e escrita direta de arquivos ou para usar diálogos para abrir e salvar arquivos, bem como para navegar pelo conteúdo de diretórios, o aplicativo solicita uma confirmação especial do usuário.
- Adicionado o seletor CSS ":focus-visible", que utiliza a mesma heurística adotada pelo navegador ao decidir quando exibir o indicador de mudança de foco (quando o foco se move para um botão por meio de combinações de teclas, o indicador aparece, mas não ao clicar com o mouse). O seletor CSS ":focus" disponível anteriormente sempre destaca o foco. Além disso, nas configurações, foi adicionada a opção "Quick Focus Highlight", que, ao ser ativada, mostrará um indicador adicional de foco ao lado dos elementos ativos, que permanecem visíveis mesmo quando os estilos visuais para destacar o foco são desativados na página via CSS.
- No modo Origin Trials (recursos experimentais que requerem ativação separada) foram adicionadas várias novas APIs. O Origin Trial permite o uso da API especificada a partir de aplicativos carregados a partir de localhost ou 127.0.0.1, ou após registro e obtenção de um token especial, que é válido por tempo limitado para um site específico.
- A API WebHID fornece acesso de baixo nível a dispositivos HID (Human Interface Device, como teclados, mouses, gamepads e touchpads), permitindo implementar a lógica de operação com dispositivos HID em JavaScript para trabalhar com dispositivos HID raros sem a necessidade de drivers específicos no sistema. O novo API é, em grande parte, focado em oferecer suporte a gamepads.
- A API Screen Information expande as capacidades da API Window Placement com suporte para configurações de múltiplos monitores. Diferente de window.screen, a nova API permite manipular o posicionamento da janela no espaço geral da tela em sistemas com múltiplos monitores, não se limitando à tela atual.
- A meta tag battery-savings permite que o site informe ao navegador sobre a necessidade de ativar modos de economia de energia e otimizar a carga na CPU.
- A API COOP Reporting informa sobre possíveis violações das políticas de isolamento Cross-Origin-Embedder-Policy (COEP) e Cross-Origin-Opener-Policy (COOP) sem impor restrições reais.
- Na API de Gerenciamento de Credenciais é proposto um novo tipo de credenciais, PaymentCredential, que oferece uma confirmação adicional para a realização de operações de pagamento. A parte verificadora, como um banco, pode gerar uma chave pública, PublicKeyCredential, que pode ser solicitada pelo vendedor para uma confirmação segura adicional do pagamento.
- Na API PointerEvents, foi adicionada a suporte para ângulos de altura (o ângulo entre a caneta e a tela) e azimute (o ângulo entre o eixo X e a projeção da caneta na tela) para determinar a inclinação da caneta*, em vez dos ângulos TiltX e TiltY (os ângulos entre o plano da caneta e um dos eixos e o plano dos eixos Y e Z). Também foram adicionadas funções para conversão entre altura/azimute e TiltX/TiltY.
- A codificação do espaço em URLs foi alterada. Ao calcular isso nos manipuladores de protocolo, o método navigator.registerProtocolHandler() agora substitui os espaços por "" em vez de "+", unificando o comportamento com outros navegadores, como o Firefox.
- No CSS, foi adicionado o pseudo-elemento "::marker", que permite configurar a cor, tamanho, forma e tipo de números e pontos para listas em blocos <ul> e <ol>.
- Foi adicionada a suporte para o cabeçalho HTTP Document-Policy, que permite definir regras de acesso a documentos semelhantes ao mecanismo de isolamento sandbox para iframes, mas de forma mais abrangente. Por exemplo, através do Document-Policy, é possível restringir o uso de imagens de baixa qualidade, desabilitar APIs JavaScript lentas, configurar regras de carregamento de iframes, imagens e scripts, restringir o tamanho total do documento e o tráfego, proibir métodos que causam a repintura da página e desabilitar a função Scroll-To-Text.
- No elemento <fieldset>, foi adicionada a suporte para os parâmetros 'inline-grid', 'grid', 'inline-flex' e 'flex', configurados através da propriedade CSS 'display'.
- Foi adicionado o método ParentNode.replaceChildren() para substituir todos os elementos filhos de um nó pai por outro nó DOM. Anteriormente, para substituir nós, era necessário usar uma combinação dos métodos node.removeChild() e node.append() ou node.innerHTML e node.append().
- A gama de esquemas de URL permitidos para sobreposição com o registerProtocolHandler() foi ampliada. Os protocolos descentralizados cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns e ssb foram incluídos na lista de esquemas, permitindo a definição de links para elementos independentemente do site ou gateway que fornece acesso ao recurso.
- Na API da Área de Transferência Assíncrona, foi adicionada a suportação do formato text/html para copiar e colar HTML através da área de transferência (na gravação e leitura na área de transferência, perigosas construções HTML são limpas). Essa mudança, por exemplo, permite organizar em editores web a inserção e cópia de texto formatado com imagens e links.
- No WebRTC, foi adicionada a capacidade de conectar manipuladores de dados personalizados, chamados nas etapas de codificação ou decodificação do WebRTC MediaStreamTrack. Por exemplo, essa capacidade pode ser usada para adicionar suporte à criptografia de ponta a ponta para dados transmitidos através de servidores intermediários.
No mecanismo JavaScript V8, a implementação de Number.prototype.toString foi acelerada em 75%. Para as classes assíncronas, foi adicionado a propriedade .name com um valor vazio. O método Atomics.wake, que foi renomeado para Atomics.notify para estar de acordo com a especificação ECMA-262, foi removido. O código da ferramenta de teste de fuzzing JS-Fuzzer foi aberto. - No compilador inicial (baseline) Liftoff para WebAssembly, que foi utilizado na última versão, foi incluída a capacidade de usar instruções vetoriais SIMD para acelerar cálculos. Segundo os testes, a otimização permitiu acelerar a execução de alguns testes em 2,8 vezes. Outra otimização permitiu acelerar significativamente a chamada de funções JavaScript importadas do WebAssembly.
- As ferramentas para desenvolvedores web foram ampliadas: No painel de Mídia, foram adicionadas informações sobre os reprodutores usados para reprodução de vídeo na página, incluindo dados de eventos, logs, propriedades e parâmetros de decodificação de quadros (por exemplo, é possível identificar as causas da perda de quadros e problemas de interação a partir do JavaScript).
- No menu de contexto do painel de Elementos, foi adicionada a capacidade de criar capturas de tela do elemento selecionado (por exemplo, é possível criar uma captura de tela do sumário ou da tabela).
- No console web, o painel de advertências sobre problemas foi substituído por uma mensagem comum, e os problemas com Cookies de terceiros são ocultados por padrão na aba Problemas e podem ser ativados com uma marcação especial.
- Na aba Rendering, foi adicionada a botão 'Desativar fontes locais', permitindo simular a ausência de fontes locais, e na aba Sensors, surgiu a possibilidade de simular a inatividade do usuário (para aplicações que utilizam a API Idle Detection).
- No painel de Aplicação, foram fornecidas informações detalhadas sobre cada iframe, janelas abertas e pop-ups, incluindo dados sobre isolamento Cross-Origin através do COEP e COOP.
Começou a substituição da implementação do protocolo QUIC pela variante em desenvolvimento na especificação IETF, ao invés da variante do Google QUIC.
Além das inovações e correções de bugs, a nova versão corrigiu 35 vulnerabilidades. Muitas das vulnerabilidades foram identificadas através de testes automatizados com as ferramentas AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Uma vulnerabilidade (CVE-2020-15967, acesso a um espaço de memória liberado no código para interação com o Google Payments) foi categorizada como crítica, ou seja, permite contornar todos os níveis de segurança do navegador e executar código no sistema fora do ambiente sandbox. No âmbito do programa de recompensas por identificação de vulnerabilidades para este lançamento, a Google pagou 27 prêmios totalizando 71.500 dólares (um prêmio de $15.000, três prêmios de $7.500, cinco prêmios de $5.000, dois de $3.000, um de $200 e dois prêmios de $500). O valor de 13 prêmios ainda não foi definido.
Retirado de Opennet.ru
Fonte: linux.org.ru
