A empresa Google lançou a versão 89 do navegador web Chrome. Ao mesmo tempo, está disponível a versão estável do projeto gratuito Chromium, que serve de base para o Chrome. O navegador Chrome se destaca pelo uso de logotipos do Google, pela presença de um sistema de envio de notificações em caso de falhas, módulos para reprodução de conteúdo de vídeo protegido (DRM), sistema de instalação automática de atualizações e transmissão dos parâmetros RLZ durante as pesquisas. A próxima versão do Chrome, a 90, está programada para 13 de abril.
Principais mudanças no Chrome 89:
- A versão do Chrome para Android agora só poderá ser executada em dispositivos certificados pelo Play Protect. No máquinas virtuais e em emuladores, o Chrome para Android só poderá ser utilizado se um dispositivo ou emulador compatível estiver emulando. É possível verificar se um dispositivo está certificado no aplicativo Google Play, na seção de configurações (na página de configurações, na parte inferior, está exibido o status "Certificação Play Protect"). Para dispositivos não certificados, como ao utilizar ROMs de terceiros, os usuários são convidados a registrar seus dispositivos para usar o Chrome.
- Para uma pequena porcentagem de usuários, foi habilitada a abertura de sites por padrão via HTTPS ao digitar nomes de host na barra de endereços. Por exemplo, ao digitar o host example.com, o site https://example.com será aberto por padrão, e, se houver problemas ao abrir, o sistema reverterá para http://example.com. Para gerenciar o uso padrão do "https://", há uma configuração "chrome://flags#omnibox-default-typed-navigations-to-https".
- O suporte a perfis foi ativado, permitindo que diferentes usuários compartilhem suas contas ao trabalhar em um único navegador. Por exemplo, usando perfis, é possível organizar o acesso a membros da família ou separar as sessões utilizadas para trabalho e interesses pessoais. O usuário pode criar um novo perfil no Chrome e configurá-lo para ser ativado ao se conectar a uma conta específica do Google, o que permite que diferentes usuários compartilhem bookmarks, configurações e histórico de navegação. Ao tentar fazer login em uma conta vinculada a outro perfil, o usuário será solicitado a mudar para esse perfil. Se o usuário estiver vinculado a vários perfis, ele terá a opção de escolher o perfil desejado. É possível vincular diferentes esquemas de cores a diferentes perfis para uma divisão visual entre os usuários.

- A visualização de miniaturas do conteúdo foi habilitada ao passar o mouse sobre as guias na barra superior. Anteriormente, a pré-visualização do conteúdo das guias estava desativada por padrão e exigia a alteração da configuração "chrome://flags/#tab-hover-cards".

- Para alguns usuários, a função "Lista de leitura" (Reading List, "chrome://flags#read-later") foi ativada, na qual, ao clicar na estrela na barra de endereço, além do botão "Adicionar aos Favoritos", uma segunda opção "Adicionar à Lista de Leitura" aparece, e no canto direito da barra de favoritos é adicionado o menu "Lista de Leitura", que lista todas as páginas anteriormente adicionadas. Ao abrir uma página da lista, ela é marcada como lida. As páginas na lista também podem ser marcadas como lidas ou não lidas manualmente ou removidas da lista.

- Para usuários que estão logados em uma conta do Google, sem a ativação do Chrome Sync, há acesso a métodos de pagamento e senhas salvas na conta do Google. Essa capacidade está habilitada para alguns usuários e será gradualmente disponibilizada para os demais.
- O suporte à busca rápida de guias foi ativado, o que antes exigia a ativação por meio da flag "chrome://flags/#enable-tab-search". O usuário pode visualizar uma lista de todas as guias abertas e filtrar rapidamente a guia desejada, independentemente de estar na janela atual ou em outra.

- Para todos os usuários, o processamento da entrada de palavras individuais na barra de endereços como tentativas de abertura de sites internos foi encerrado. Anteriormente, se uma única palavra fosse inserida na barra de endereços, o navegador primeiro tentava determinar a existência de um host com esse nome no DNS, acreditando que o usuário estava tentando abrir um subdomínio, e só então redirecionava a solicitação para o mecanismo de busca. Assim, o proprietário do servidor DNS, especificado nas configurações do usuário, recebia informações sobre consultas de busca compostas por uma única palavra, o que era considerado uma violação da privacidade. Para empresas que usam hosts de internet sem subdomínio (por exemplo, “https://helpdesk/”), foi disponibilizada uma opção para retornar ao comportamento antigo.
- Foi adicionada a capacidade de fixar a versão de uma extensão ou aplicativo. Por exemplo, para uso em empresas que requerem apenas extensões verificadas, o administrador, utilizando a nova política ExtensionSettings, pode configurar o Chrome para usar sua própria URL para baixar atualizações, em vez da URL especificada no manifesto da extensão.
- Em sistemas x86, agora é obrigatória a suporte do processador às instruções SSE3 para a operação do navegador, que são suportadas por processadores Intel desde 2003 e por AMD desde 2005.
- Adicionados APIs adicionais com o objetivo de fornecer funcionalidades que possam substituir cookies de terceiros utilizados para rastrear os movimentos do usuário entre sites no código de redes publicitárias, widgets de redes sociais e sistemas de web analytics. Os seguintes APIs foram propostas para teste:
- Trust Token para separar usuários sem o uso de identificadores cross-site.
- First party sets — permite que domínios relacionados se declarem primários para que o navegador possa considerar essa relação em acessos cross-site.
- Schemeful Same-Site para expandir o conceito de same-site para diferentes esquemas de URL, ou seja, http://website.example e https://website.example serão tratados como um único site em requisições cross-site.
- Floc para determinar a categoria de interesses do usuário sem identificação individual e sem vinculação ao histórico de visitas a sites específicos.
- Conversion Measurement para avaliar a atividade do usuário após clicar em um anúncio.
- User-Agent Client Hints para a substituição do User-Agent e a entrega seletiva de dados sobre parâmetros específicos do navegador e do sistema (versão, plataforma, etc.).
- Adicionado o API Serial, permitindo que sites leiam e gravem dados através da porta serial. Esta API surgiu pela possibilidade de criar aplicações web para controle direto de dispositivos como microcontroladores e impressoras 3D. Para acessar o dispositivo periférico, é necessária uma confirmação explícita das permissões pelo usuário.
- Adicionado o API WebHID para acesso de baixo nível a dispositivos HID (Dispositivo de Interface Humana, como teclados, mouses, gamepads, painéis táteis), permitindo implementar a lógica de trabalho com o dispositivo HID em JavaScript para operar com dispositivos HID raros sem a necessidade de drivers específicos no sistema. O novo API é focado principalmente em fornecer suporte a gamepads.
- Adicionado o API Web NFC, permitindo que aplicações web leiam e gravem tags NFC. Exemplos de aplicação do novo API em aplicações web incluem fornecer informações sobre exposições em museus, realizar inventários, obter dados de crachás de participantes de conferências, etc. O envio e a leitura das tags são feitos através dos objetos NDEFWriter e NDEFReader.
- O API Web Share (objeto navigator.share) foi expandido para além de dispositivos móveis e agora está disponível para usuários de navegadores de desktop (atualmente apenas para Windows e Chrome OS). O API Web Share fornece recursos para compartilhar informações em redes sociais, permitindo gerar um botão unificado para publicação nas redes sociais utilizadas pelo visitante ou organizar o envio de dados para outros aplicativos.
- Nas versões para Android e no componente WebView, foi adicionada a suporte à decodificação de imagens no formato AVIF (AV1 Image Format), que utiliza tecnologias de compressão intra-quadro do formato de codificação de vídeo AV1 (nas versões desktop, o suporte a AVIF foi incluído desde o Chrome 85). O contêiner para distribuição de dados comprimidos em AVIF é totalmente análogo ao HEIF. O AVIF suporta imagens em HDR (Alto Alcance Dinâmico) e em espaço de cores de amplo espectro, bem como em alcance dinâmico padrão (SDR).
- Adicionado uma nova API de Relatório para obter informações sobre violações das regras de uso seguro na página de operações privilegiadas, definidas pelo cabeçalho COOP (Cross-Origin-Opener-Policy), que também permite alternar o COOP para um modo de depuração que funciona sem bloquear violações das regras.
- Adicionada a função performance.measureUserAgentSpecificMemory(), que determina o tamanho da memória utilizada no processamento da página.
- Para atender aos requisitos do padrão web, todos os URLs "data:" agora são tratados como potencialmente confiáveis, ou seja, fazem parte de um contexto seguro.
- Na API Streams foi adicionada a suporte a Streams de Bytes (Byte Streams), que são especificamente otimizados para transferência eficiente de conjuntos de bytes arbitrários e minimizam o número de operações de cópia com os dados. A saída de um stream pode ser gravada em primitivas como strings ou ArrayBuffer.
- Nos elementos SVG foi implementado o suporte para a sintaxe completa da propriedade "filter", permitindo aplicar simultaneamente a elementos SVG e não SVG funções de filtragem como blur(), sepia() e grayscale().
- No CSS foi implementado o pseudoelemento "::target-text", que pode ser usado para destacar um fragmento que foi acessado pelo texto (scroll-to-text) com um estilo diferente do que o navegador usa ao realçar o encontrado.
- Adicionados propriedades CSS para gerenciar o arredondamento de cantos: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- Adicionado a propriedade CSS forced-colors para determinar se o navegador está aplicando uma paleta de cores limitada definida pelo usuário na página.
- Adicionada a propriedade CSS forced-color-adjust para desativar a limitação forçada de cores para elementos específicos, permitindo que esses elementos tenham controle total de cores via CSS.
- No JavaScript é permitido o uso da palavra-chave await em módulos no nível superior, o que permite integrar suavemente chamadas assíncronas no processo de carregamento de módulos sem necessidade de encapsulamento em "async function". Por exemplo, em vez de (async function() { await Promise.resolve(console.log('teste')); }()); agora pode-se escrever await Promise.resolve(console.log('teste'));
- No motor JavaScript V8, a chamada de funções foi acelerada em situações onde o número de argumentos passados não corresponde aos parâmetros definidos na função. Com uma discrepância no número de argumentos no modo sem JIT, o desempenho aumentou em 11,2%, e com JIT TurboFan em 40%.
- Realizadas diversas pequenas melhorias nas ferramentas para desenvolvedores web.
Além das inovações e correções de erros, a nova versão resolveu 47 vulnerabilidades. Muitas dessas vulnerabilidades foram identificadas através de testes automatizados usando ferramentas como AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Não foram encontradas questões críticas que permitam burlar todos os níveis de proteção do navegador e executar código no sistema fora do ambiente sandbox. É importante notar que uma das vulnerabilidades corrigidas (CVE-2021-21166), relacionada ao ciclo de vida de objetos no subsistema de áudio, apresenta características de um problema 0-day e foi utilizada em um dos exploits antes da correção. No âmbito do programa de recompensas por identificação de vulnerabilidades para esta versão, a Google pagou 33 prêmios totalizando 61.000 dólares (dois prêmios de $10.000, dois prêmios de $7.500, três prêmios de $5.000, dois prêmios de $3.000, quatro de $1.000 e dois prêmios de $500). O valor de 18 prêmios ainda não foi definido.
Fonte: opennet.ru




