Lançamento do Chrome 105

A empresa Google lançou a versão 105 do navegador web Chrome. Simultaneamente, 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 diferencia-se do Chromium pelo uso dos logotipos do Google, pela presença de um sistema de envio de notificações em caso de falhas, por módulos para reprodução de conteúdo protegido contra cópia (DRM), por um mecanismo automático de instalação de atualizações, pela inclusão constante da isolação Sandbox, pelo fornecimento de chaves para a API do Google e pela transmissão dos parâmetros RLZ nas pesquisas. Para aqueles que precisam de mais tempo para a atualização, uma ramificação Extended Stable é mantida, com suporte por 8 semanas. O próximo lançamento do Chrome 106 está programado para 27 de setembro.

Principais mudanças no Chrome 105:

  • O suporte a aplicativos web especializados Chrome Apps foi interrompido, sendo substituído por aplicativos web independentes baseados na tecnologia Progressive Web Apps (PWA) e APIs Web padrão. Inicialmente, a Google havia anunciado a intenção de descontinuar os Chrome Apps em 2016 e planejava encerrar seu suporte até 2018, mas posteriormente adiou esse plano. No Chrome 105, ao tentar instalar aplicativos Chrome Apps, será exibido um aviso sobre a interrupção de seu suporte, mas os próprios aplicativos continuarão a ser executados. No Chrome 109, a capacidade de execução dos Chrome Apps será desativada.
  • Foi garantida uma maior isolação do processo "renderer", responsável pela renderização. Este processo agora é executado em um contêiner adicional (App Container), implementado sobre o sistema existente de isolação sandbox. Em caso de exploração de uma vulnerabilidade no código de renderização, as restrições adicionadas impedirão que o atacante tenha acesso à rede, devido à proibição de chamadas de sistema relacionadas a recursos de rede.
  • Foi implementado um armazenamento unificado próprio de certificados raiz de autoridades certificadoras (Chrome Root Store). Este novo armazém ainda não está ativado por padrão e, até que a implementação esteja concluída, os certificados continuarão a ser verificados usando o armazenamento específico de cada sistema operacional. A solução em teste lembra a abordagem da Mozilla, que mantém um armazenamento independente separado de certificados raiz para o Firefox, usado como a primeira etapa para verificar a cadeia de confiança de certificados ao abrir sites via HTTPS.
  • Foi iniciada a preparação para a descontinuação do suporte ao API Web SQL, que não é padronizado, quase não é utilizado e requer reformulação para atender aos atuais requisitos de segurança. No Chrome 105, o acesso ao Web SQL a partir de código carregado sem utilizar HTTPS foi proibido, e um aviso sobre a obsolescência da tecnologia foi adicionado ao DevTools. Em 2023, o API Web SQL deverá ser removido. Para os desenvolvedores que necessitam de funcionalidades similares, uma substituição baseada em WebAssembly será preparada.
  • No Chrome, o suporte à sincronização foi descontinuado com o Chrome 73 e versões anteriores.
  • Para as plataformas macOS e Windows, um visualizador de certificados integrado foi ativado, que substituiu a chamada da interface fornecida pelo sistema operacional. Anteriormente, o visualizador integrado era utilizado apenas nas compilações para Linux e ChromeOS.
  • Na versão para a plataforma Android, foram adicionadas configurações para gerenciar a API “Topics & Interest Group”, promovida no âmbito da iniciativa Privacy Sandbox, permitindo identificar categorias de interesse do usuário e usá-las em vez de cookies de rastreamento para destacar grupos de usuários com interesses similares sem identificar usuários individuais. No lançamento anterior, configurações semelhantes foram adicionadas nas versões para Linux, ChromeOS, macOS e Windows.
  • Com a ativação da proteção avançada do navegador (Safe Browsing > Enhanced protection), foi implementada a coleta de telemetria sobre extensões instaladas, chamadas à API e conexões com sites externos. Os dados coletados são utilizados nos servidores do Google para identificar atividades maliciosas e violações de regras por extensões do navegador.
  • A possibilidade de usar caracteres não-ASCII em domínios especificados no cabeçalho de cookies foi classificada como obsoleta e será bloqueada na versão do Chrome 106 (para domínios IDN, deve-se especificar os domínios no formato punycode). Essa mudança alinhará o navegador com os requisitos do RFC 6265bis e o comportamento implementado no Firefox.
  • Foi proposto um API Custom Highlight, destinado a modificar arbitrariamente o estilo das áreas de texto selecionadas, permitindo não se limitar ao estilo fixo fornecido pelo navegador para áreas selecionadas (::selection, ::inactive-selection) e à realce de erros de sintaxe (::spelling-error, ::grammar-error). Na primeira versão do API, foi oferecido suporte para alterar a cor do texto e o fundo usando os pseudo-elementos color e background-color, mas outras opções de personalização serão adicionadas posteriormente.

    Como exemplo de tarefas que podem ser resolvidas com a nova API, menciona-se a adição em frameworks web que fornecem ferramentas para edição de texto, mecanismos próprios de seleção de texto, diferentes seleções durante a edição colaborativa entre vários usuários, busca em documentos virtualizados e marcação de erros durante a verificação ortográfica. Se antes era necessário realizar manipulações complexas na árvore DOM para criar uma seleção não padrão, o API Custom Highlight oferece operações prontas para adicionar e remover destaques, sem afetar a estrutura do DOM e aplicando estilos vinculados a objetos Range.

  • Foi adicionado o recurso «@container» ao CSS, permitindo formar o estilo dos elementos com base no tamanho do elemento pai. O «@container» é semelhante aos queries «@media», mas aplica-se não ao tamanho de toda a área visível, mas ao tamanho do bloco (container) em que o elemento está inserido, o que permite definir uma lógica própria de seleção de estilo para os elementos filhos, independentemente de onde o elemento esteja localizado na página.
    Lançamento do Chrome 105
  • Adicionado o pseudo-classe CSS «:has()» para verificar a presença de um elemento filho em um elemento pai. Por exemplo, «p:has(span)» abrange elementos <p>, dentro dos quais existe um elemento <span>.
  • Foi adicionada a API HTML Sanitizer, que permite remover do conteúdo elementos que influenciam a exibição e execução ao serem exibidos através do método setHTML(). O API pode ser útil para limpar dados recebidos externamente, removendo HTML-tags que podem ser usadas para realizar ataques XSS.
  • Foi possibilitada a utilização da API Streams (ReadableStream) para enviar requisições fetch antes que o corpo da resposta seja carregado, ou seja, é possível começar a enviar dados sem esperar a conclusão da geração da página.
  • Para aplicações web isoladas (PWA, Progressive Web App) instaladas, foi disponibilizada a possibilidade de alterar a aparência da área do cabeçalho da janela através de componentes Window Controls Overlay, que expandem a área da aplicação web para toda a janela e permitem dar à aplicação web a aparência de uma aplicação de desktop comum. A aplicação web pode gerenciar a renderização e o tratamento de entrada em toda a janela, exceto na área sobreposta com os botões de controle da janela (fechar, minimizar, maximizar).
    Lançamento do Chrome 105
  • Foi estabilizada a possibilidade de acesso às Media Source Extensions a partir de workers dedicados (no contexto de DedicatedWorker), o que pode ser utilizado, por exemplo, para aumentar o desempenho da reprodução de dados multimídia em buffer, criando um objeto MediaSource em um worker separado e transmitindo os resultados de seu trabalho para um HTMLMediaElement no thread principal.
  • Na API Client Hints, que está se desenvolvendo para substituir o cabeçalho User-Agent e permite devolver seletivamente dados sobre parâmetros específicos do navegador e do sistema (versão, plataforma, etc.) apenas após solicitação, servidorfoi adicionada a suporte para a propriedade Sec-CH-Viewport-Heigh, que permite obter informações sobre a altura da área visível. O formato da marcação para definir os parâmetros Client Hints para recursos externos na tag "meta" foi alterado: Foi: Tornou-se:
  • Foi adicionada a capacidade de criar manipuladores de eventos globais onbeforeinput (document.documentElement.onbeforeinput), permitindo que aplicações web reescrevam o comportamento na edição de texto em elementos ,