A Google apresentou o lançamento do navegador web Chrome 98. Ao mesmo tempo, está disponível a versão estável do projeto de código aberto Chromium, que serve de base para o Chrome. O navegador Chrome se distingue pelo uso dos logotipos do Google, pelo sistema de notificação em caso de falha, por módulos para reprodução de conteúdo de vídeo protegido por direitos autorais (DRM), pelo sistema automático de instalação de atualizações e pela transmissão de parâmetros RLZ durante as buscas. O próximo lançamento do Chrome 99 está agendado para 1º de março.
Principais alterações no Chrome 98:
- O navegador incorporou um armazenamento próprio de certificados raiz de autoridades certificadoras (Chrome Root Store), que será usado em vez de armazenamentos externos específicos para cada sistema operacional. O armazenamento é implementado de forma semelhante ao armazenamento independente de certificados raiz no Firefox, usado como primeiro elo para verificar a cadeia de confiança dos certificados ao acessar sites via HTTPS. O novo armazenamento ainda não está em uso por padrão. Para facilitar a migração de configurações vinculadas a armazenamentos do sistema e garantir portabilidade, um período de transição será mantido, durante o qual o Chrome Root Store incluirá um conjunto completo de certificados aprovados na maioria das plataformas suportadas.
- Continua a implementação do plano para fortalecer a proteção contra ataques relacionados ao acesso a recursos na rede local ou no computador do usuário (localhost) a partir de scripts carregados ao abrir um site. Esses pedidos são utilizados por invasores para realizar ataques CSRF em roteadores, pontos de acesso, impressoras, interfaces web corporativas e outros dispositivos e serviços que aceitam solicitações somente da rede local.
Para proteger contra esses ataques, ao acessar quaisquer sub-recursos na rede interna, o navegador começará a enviar uma solicitação explícita de autorização para o carregamento desses sub-recursos. A solicitação de autorização será feita através do envio para servidor do site principal da solicitação CORS (Cross-Origin Resource Sharing) com o cabeçalho "Access-Control-Request-Private-Network: true", antes de acessar a rede interna ou localhost. Ao confirmar a operação em resposta a esta solicitação, o servidor deve retornar o cabeçalho "Access-Control-Allow-Private-Network: true". No Chrome 98, a verificação foi implementada em modo de teste e, na ausência de confirmação, um aviso é exibido na console da web, mas a solicitação do sub-recurso não é bloqueada. O bloqueio deve ser habilitado apenas após o lançamento do Chrome 101.
- As configurações da conta incluem ferramentas para gerenciar a ativação do modo avançado de proteção contra sites perigosos (Enhanced Safe Browsing), onde verificações adicionais são ativadas para proteger contra phishing, atividades maliciosas e outras ameaças na web. Quando o modo é ativado, a conta do Google agora sugerirá a ativação do modo também no Chrome.
- Adicionou-se um modelo para detectar tentativas de phishing no lado do cliente, implementado usando a plataforma de aprendizado de máquina TFLite (TensorFlow Lite) e que não requer o envio de dados para realizar a verificação no lado do Google (enviando-se, no entanto, dados de telemetria com informações sobre a versão do modelo e pesos calculados para cada categoria). Quando uma tentativa de phishing é detectada, o usuário verá uma página de aviso antes de abrir um site suspeito.
- Na API Client Hints, desenvolvida como uma substituição ao cabeçalho User-Agent, permite entregar seletivamente dados sobre parâmetros específicos do navegador e sistema (versão, plataforma, etc.) apenas após solicitação. servidor, foi implementada a possibilidade de substituir na lista de identificadores do navegador nomes fictícios, semelhante ao mecanismo GREASE (Generate Random Extensions And Sustain Extensibility) usado no TLS. Por exemplo, além de '"Chrome"; v="98"' e '"Chromium"; v="98"', uma identificação aleatória de um navegador inexistente '"(Not;Browser"; v="12"' pode ser adicionada à lista. Essa substituição permitirá identificar problemas de processamento de identificadores de navegadores desconhecidos, que fazem com que navegadores alternativos tenham que se passar por outros navegadores populares para contornar a verificação nas listas de navegadores permitidos.
- A partir de 17 de janeiro, o catálogo do Chrome Web Store não aceitará mais extensões que utilizam a segunda versão do manifesto do Chrome. Novas extensões agora serão aceitas apenas com a terceira versão do manifesto. Os desenvolvedores de extensões já adicionadas poderão continuar a publicar atualizações com a segunda versão do manifesto. O suporte total à segunda versão do manifesto está programado para ser encerrado em janeiro de 2023.
- Foi adicionada a suporte a fontes vetoriais coloridas no formato COLRv1 (um subconjunto de fontes OpenType, que contém, além de glifos vetoriais, uma camada com informações de cor), que podem ser utilizadas, por exemplo, para criar emojis multicoloridos. Ao contrário do formato COLRv0, anteriormente suportado, o COLRv1 agora permite o uso de gradientes, sobreposições e transformações. O formato também oferece uma forma compacta de armazenamento, garante compressão eficiente e permite o reuso de contornos, o que pode reduzir significativamente o tamanho da fonte. Por exemplo, a fonte Noto Color Emoji na representação raster ocupa 9MB, enquanto no formato vetorial COLRv1 ocupa apenas 1.85MB.

- No modo Origin Trials (recursos experimentais que requerem ativação separada), foi implementada a API Region Capture, que permite recortar o vídeo capturado. Por exemplo, o recorte pode ser necessário em aplicações web que capturam vídeo do conteúdo de sua aba, para cortar determinado conteúdo antes do envio. O Origin Trial implica a possibilidade de trabalhar com a API especificada a partir de aplicações carregadas via localhost ou 127.0.0.1, ou após registro e recebimento de um token especial, que é válido por tempo limitado para um site específico.
- A propriedade CSS 'contain-intrinsic-size' agora suporta o valor 'auto', que, quando especificado, utilizará o último tamanho registrado do elemento (ao ser usado juntamente com 'content-visibility: auto', o desenvolvedor não precisa adivinhar o tamanho renderizado do elemento).
- Foi adicionada a propriedade AudioContext.outputLatency, através da qual é possível saber informações sobre a latência prevista antes da saída de som (latência entre o pedido de som e o início do processamento dos dados recebidos pelo dispositivo de saída de som).
- A propriedade CSS color-scheme permite determinar em quais esquemas de cores um elemento pode ser exibido corretamente (‘light’, ‘dark’, ‘day mode’ e ‘night mode’), e foi adicionado um parâmetro ‘only’ que permite excluir a mudança forçada do esquema de cor para elementos HTML específicos. Por exemplo, ao definir ‘div { color-scheme: only light }’, apenas o tema claro será usado para o elemento div, mesmo que o modo escuro esteja forçado no navegador.
- O CSS agora suporta media queries ‘dynamic-range’ e ‘video-dynamic-range’ para detectar a presença de uma tela que suporta HDR (High Dynamic Range).
- A função window.open() agora permite escolher abrir um link em uma nova aba, nova janela ou janela popup. Além disso, a propriedade window.statusbar.visible agora retorna ‘false’ para janelas popup e ‘true’ para abas e janelas. const popup = window.open(‘_blank’,’,’popup=1′); // Abrir em uma janela popup const tab = window.open(‘_blank’,’,’popup=0′); // Abrir em uma aba
- Para janelas e web workers, foi implementado o método structuredClone(), permitindo criar cópias recursivas de objetos que incluem propriedades não apenas do objeto especificado, mas também de todos os outros objetos referenciados pelo objeto atual.
- Na API Web Authentication, foi adicionada a suporte para a extensão da especificação FIDO CTAP2, permitindo especificar o tamanho mínimo aceitável para o código PIN (minPinLength).
- Para web apps isolados, foi adicionado o componente Window Controls Overlay, que expande a área da tela do aplicativo para toda a janela, incluindo a área de cabeçalho, sobre a qual os botões de controle da janela (fechar, minimizar, maximizar) são sobrepostos. O web app pode controlar a renderização e o tratamento de entrada em toda a janela, exceto para o bloco sobreposto com os botões de controle da janela.
- O WritableStreamDefaultController acrescentou uma propriedade de sinalização que retorna um objeto AbortSignal, permitindo interromper imediatamente as operações de gravação no WritableStream, sem aguardar sua conclusão.
- No WebRTC, o suporte para o mecanismo de negociação de chaves SDES foi removido, uma vez que foi declarado obsoleto pela IETF em 2013 devido a problemas de segurança.
- O API U2F (Cryptotoken) está desativado por padrão, tendo sido declarado obsoleto e substituído pelo API Web Authentication. O API U2F será completamente removido no Chrome 104.
- No diretório API, o campo installed_browser_version foi declarado obsoleto, sendo proposto um novo campo pending_browser_version, que contém informações sobre a versão do navegador considerando as atualizações baixadas, mas não aplicadas (ou seja, a versão que será válida após a reinicialização do navegador).
- Foram removidos os parâmetros que permitiam retornar o suporte ao TLS 1.0 e 1.1.
- Foram feitas melhorias nas ferramentas para desenvolvedores web. Adicionada uma aba para avaliar o desempenho do cache de retrocesso (Back-forward cache), que oferece transições instantâneas ao usar os botões ‘Voltar’ e ‘Avançar’. Incluída a possibilidade de emular media queries forced-colors. No editor Flexbox, foram adicionados botões para suportar as propriedades row-reverse e column-reverse. Na aba ‘Changes’, agora é exibida a mudança após a formatação do código, auxiliando na análise de páginas minificadas.

A implementação do painel de visualização de código foi atualizada para o lançamento do editor de código CodeMirror 6, que aumenta significativamente o desempenho ao lidar com arquivos muito grandes (WASM, JavaScript), resolvendo problemas de deslocamento aleatório durante a navegação e melhorando as sugestões do sistema de autocompletar durante a edição de código. No painel de propriedades CSS, foi adicionada a possibilidade de filtrar a saída pelo nome ou valor da propriedade.

Além das inovações e correções de erros, a nova versão corrigiu 27 vulnerabilidades. Muitas das vulnerabilidades foram identificadas por meio de testes automatizados com ferramentas AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Não foram encontradas questões críticas que permitam contornar todos os níveis de proteção do navegador e executar código no sistema fora do ambiente sandbox. No âmbito do programa de recompensa por descoberta de vulnerabilidades para esta versão, a empresa Google pagou 19 prêmios totalizando 88 mil dólares (dois prêmios de $20000, um prêmio de $12000, dois prêmios de $7500, quatro prêmios de $1000 e um prêmio cada de $7000, $5000, $3000 e $2000).
Fonte: opennet.ru



