A empresa Google anunciou o lançamento do navegador web Chrome 118. Simultaneamente, a versão estável do projeto livre Chromium, que serve de base para o Chrome, também está disponível. O navegador Chrome se diferencia do Chromium pelo uso dos logotipos do Google, pela presença de um sistema para enviar notificações em caso de falhas, módulos para reprodução de conteúdo de vídeo protegido contra cópias (DRM), um sistema de instalação automática de atualizações, a ativação permanente da sandbox e o fornecimento de chaves para a API do Google, além da transmissão de parâmetros RLZ durante as buscas. Para aqueles que precisam de mais tempo para atualizar, existe uma ramificação separada chamada Extended Stable, que é mantida por 8 semanas. O próximo lançamento do Chrome 119 está programado para 31 de outubro.
Principais mudanças no Chrome 118:
- Começou a preparação para a descontinuação do suporte a cookies de terceiros no Chrome, que são configurados ao acessar sites diferentes do domínio da página atual. Esses cookies são usados para rastrear o movimento do usuário entre sites, por meio de códigos de redes publicitárias, widgets de redes sociais e sistemas de análise web. As mudanças estão sendo implementadas dentro da iniciativa Privacy Sandbox, que visa encontrar um equilíbrio entre a necessidade dos usuários de manter a privacidade e o desejo das redes publicitárias e sites de rastrear as preferências dos visitantes.
No Chrome 118, as ferramentas para desenvolvedores web agora exibem um aviso ao enviar cookies que estarão sujeitos a futuras restrições. Também foi adicionada a opção de linha de comando "--test-third-party-cookie-phaseout" e a configuração "chrome://flags/#test-third-party-cookie-phaseout" para forçar a ativação da restrição para fins de teste. A verdadeira restrição aos cookies de terceiros começará no primeiro trimestre de 2024 e, até o terceiro trimestre, durante o período de teste, apenas 1% dos usuários do Chrome será afetado. Após o terceiro trimestre de 2024, a abrangência da restrição será expandida para 100%.
Em vez de cookies de rastreamento, propõe-se usar as seguintes APIs:
- FedCM (Gerenciamento de Credenciais Federadas), que permite criar serviços de identificação unificados que garantem a privacidade e funcionam sem cookies de terceiros.
- Tokens de Estado Privado, que permitem distinguir diferentes usuários sem o uso de identificadores intersites e transferir informações sobre a autenticidade do usuário entre diferentes contextos.
- Os Tópicos (crítica) permitem identificar categorias de interesses dos usuários, que podem ser utilizados para agrupar usuários com interesses semelhantes sem identificar usuários específicos através de Cookies de rastreamento. Os interesses são calculados com base na atividade do usuário no navegador e são armazenados no dispositivo do usuário. Através da API Tópicos, a rede de anúncios pode obter informações gerais sobre interesses individuais sem informações sobre a atividade concreta do usuário.
- Audiência Protegida, solução para retargeting e avaliação de sua própria audiência (trabalho com usuários que já visitaram o site anteriormente).
- Relatório de Atribuição, permite avaliar características de eficácia da publicidade, como cliques e conversões (compra no site após o clique).
- API de Acesso ao Armazenamento, pode ser usada para solicitar ao usuário permissões para acessar o armazenamento de Cookies, caso Cookies de terceiros sejam bloqueados por padrão.
- Para todos os usuários, o suporte ao mecanismo ECH (Encrypted Client Hello) foi ativado, que é uma evolução do ESNI (Encrypted Server Name Indication) e é utilizado para criptografar informações sobre os parâmetros de sessões TLS, como o nome de domínio solicitado. A principal diferença entre ECH e ESNI é que, no ECH, em vez de criptografar a nível de campos individuais, toda a mensagem TLS ClientHello é criptografada, o que ajuda a bloquear vazamentos através de campos que não são cobertos pelo ESNI, como o campo PSK (Pre-Shared Key). Para gerenciar a ativação do ECH, há uma configuração chamada "chrome://flags#encrypted-client-hello".
- Com a ativação da proteção ampliada do navegador (Safe Browsing > Enhanced protection), foi implementada a capacidade de desativar remotamente complementos maliciosos instalados fora do catálogo oficial de complementos. A decisão de remoção é tomada nos servidores do Google com base em uma verificação manual ou após a ativação de um sistema automatizado de detecção de código malicioso.
- Com a ativação da proteção padrão do navegador (Safe Browsing > Standard protection), uma verificação de segurança de URLs abertos é realizada em tempo real, baseada na transmissão para servidores Google de hashes parciais dos URLs abertos pelo usuário. Para evitar a correspondência endereços IP entre o usuário e o hash, os dados são transmitidos através de um proxy intermediário. Anteriormente, a verificação era realizada através do upload de uma cópia local da lista de URLs inseguros no sistema do usuário. O novo esquema permite bloquear URLs maliciosos de forma mais ágil.
- A apresentação das páginas exibidas ao tentar abrir um site considerado inseguro através do mecanismo Safe Browsing foi aprimorada.

- Na telemetria enviada aos servidores do Google com a ativação da proteção ampliada do navegador (Safe Browsing > Enhanced protection), agora são levadas em consideração as chamadas dos complementos para a API chrome.tabs. Os dados são coletados para identificação de atividades maliciosas e violações de regras nos complementos.
- Com a ativação da proteção ampliada do navegador (Safe Browsing > Enhanced protection), foi assegurado o suporte à varredura profunda de arquivos ZIP e RAR criptografados do lado do Google (o usuário é solicitado a fornecer a senha de descompactação, após o que o conteúdo é enviado para verificação aos servidores do Google).
- O novo texto foi adicionado no configurador e no guia de privacidade, explicando a essência dos níveis de proteção Safe Browsing e adicionando links para artigos correspondentes com informações adicionais. As descrições da proteção padrão, desativação da proteção e avisos sobre comprometimento de senhas foram simplificadas.

- Na seção Quests (monitoramento de preços em lojas online) da nova página de guia, foram adicionadas informações sobre a disponibilidade de descontos. O indicador de desconto também pode aparecer na barra de endereços ao abrir páginas de produtos de lojas online monitoradas pelo serviço do Google.
- De acordo com a especificação RFC-6265bis, foi implementado o bloqueio de todos os Cookies que contêm caracteres de controle e que foram definidos via JavaScript. Anteriormente, Cookies com o caractere nulo, retorno de carro e nova linha eram cortados pelo caractere problemático, em vez de bloqueados, o que em algumas situações poderia ser explorado para ações maliciosas. Para desativar o novo comportamento, é possível usar a opção ‘—disable-features=BlockTruncatedCookies’.
- Foi permitido o acesso à API WebUSB em Service Workers registrados.
- Removida a necessidade de o usuário ativar previamente a opção de exibir caixas de diálogo para solicitações e confirmações de pagamento.
- Foi interrompida a decodificação da representação de caracteres ASCII em códigos ‘%xx’. Por exemplo, anteriormente ‘http://example.com/’ era decodificado para ‘http://example.com/A’ antes de ser gravado em url.href, mas agora permanecerá como ‘http://example.com/’.
- Adicionada a possibilidade de posicionamento vertical de texto em elementos de web-formulários como select, meter, progress, button, textarea e input. O posicionamento de texto nos formulários é definido pela propriedade CSS writing-mode, que para exibição vertical pode aceitar os valores vertical-rl ou vertical-lr.
- No CSS, a propriedade ‘appearance’ deixou de suportar palavras-chave não padronizadas: inner-spin-button, media-slider, media-sliderthumb, media-volume-slider, media-volume-sliderthumb, push-button, searchfield-cancel-button, slider-horizontal, sliderthumb-horizontal, sliderthumb-vertical e square-button. Para avaliar a demanda por essas palavras-chave não incluídas na especificação, foram coletadas estatísticas, conforme as quais foram aplicadas apenas em 0,001% dos casos.
- Foi adicionado a regra CSS @scope, que vincula estilos CSS considerando a proximidade da definição do estilo em relação aos elementos. A regra @scope pode ser utilizada para contornar o ordenamento padrão dos estilos com base na sequência dos elementos ou para ajustar o estilo de um componente sem alterar os estilos dos elementos aninhados. Por exemplo, para divs aninhadas: <div class="»lightpink-theme»"> <a href="/pt/»/#»">Eu sou rosa claro!</a> <div class="»pink-theme»"> <a href="/pt/»/#»">Rosa diferente!</a> </div> </div> todo o conteúdo será colorido de rosa claro devido à aplicação do bloco de estilo "lightpink-theme" especificado no div pai. Usando @scope, é possível mudar o escopo e conseguir que o estilo "pink-theme" seja aplicado ao div aninhado com base na proximidade da definição do estilo, e não na ordem de definição no código: @scope (.pink-theme) { a { color: hotpink; } } @scope (.lightpink-theme) { a { color: lightpink; } }
- Adicionada a suporte para media query (@media) "scripting", que permite verificar a disponibilidade da capacidade de execução de scripts (por exemplo, no CSS é possível determinar se o suporte a JavaScript está ativado).
- Adicionada a suporte para a media query prefers-reduced-transparency, que possibilita detectar mudanças nas configurações do sistema relacionadas à diminuição do uso de efeitos de transparência ou semitransparência (por exemplo, o modo "Reduce transparency" no macOS, utilizado para aumentar a legibilidade do texto).
- No CSS, adicionada a suporte para novos valores "float: inline-start", "float: inline-end", "clear: inline-start", "clear: inline-end", "resize: block", "resize: inline", que controlam o posicionamento lógico dos elementos (para suportar idiomas que não são escritos de cima para baixo e da esquerda para a direita, o posicionamento lógico utiliza os conceitos de início, fim e direção do texto).
- No atributo CSS "transform-box" foi adicionada a suporte para os valores stroke-box, content-box e border-box, permitindo alterar o método de cálculo da área de referência para operações de transformação, por exemplo, para implementar efeitos gráficos avançados.
- Adicionada a possibilidade de focar blocos de rolagem ao navegar pelo teclado (por exemplo, o foco na rolagem pode ser definido pressionando a tecla Tab e rolando com as teclas de direção).
- Melhorias foram feitas nas ferramentas para desenvolvedores web. As funcionalidades do painel Sources foram ampliadas, onde em vez da seção "Filesystem", é oferecida a aba "Workspace", através da qual é possível sincronizar as alterações feitas com os arquivos fonte usando as ferramentas para desenvolvedores.
Foi oferecida a possibilidade de alterar a ordem das abas no painel Sources arrastando-as com o mouse no modo de arrastar e soltar. Garantido o formato do código JavaScript incorporado em elementos script com os tipos module, importmap e speculationrules. Adicionada a destaque de sintaxe para scripts com os tipos importmap e speculationrules.

No painel Elements, na aba Styles, foi adicionada uma seção separada para propriedades personalizadas, permitindo definir suas próprias propriedades CSS sem executar JavaScript. Nos resultados de busca, agora é exibido todas as correspondências na linha, e não apenas a primeira correspondência, o que é conveniente ao pesquisar em arquivos JavaScript compactados para reduzir o tamanho (ao clicar no resultado, o arquivo é aberto no editor e rola vertical e horizontalmente para mostrar a posição encontrada).

Além das novidades e correções de bugs, a nova versão corrigiu 20 vulnerabilidades. Muitas das vulnerabilidades foram detectadas por meio de testes automatizados utilizando ferramentas como AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Entre outras, o novo lançamento resolveu uma vulnerabilidade crítica CVE-2023-5218, relacionada ao acesso à memória após sua liberação (Use after free) no mecanismo de isolamento de sites. Essa vulnerabilidade permite 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 recompensas por falhas, a Google pagou 14 prêmios para esta versão, totalizando 30,5 mil dólares (um prêmio de $6000, dois prêmios de $5000, dois prêmios de $3000, um prêmio de $2000, seis prêmios de $1000 e um prêmio de $500). O valor de uma recompensa ainda não foi definido.
Fonte: opennet.ru




