O Chrome 74 chega com funções JavaScript menos tontas e novas
O Google lançou hoje o Chrome 74 para Windows, Mac, Linux, Android e iOS. A versão inclui suporte para uma consulta de mídia de movimento reduzido, campos de classe privada, melhorias de política de recursos e mais recursos para desenvolvedores. Pode atualizar para a versão mais recente agora com o atualizador integrado do Chrome ou transferi-lo diretamente em google.com/chrome.
Com mais de um bilhão de usuários, o Chrome é um navegador e uma plataforma importante que os desenvolvedores da Web devem considerar. Na verdade, com as adições e as alterações regulares do Chrome, os desenvolvedores geralmente precisam estar cientes de tudo que está disponível, bem como do que foi reprovado ou removido, especialmente o Chrome 74 que elimina pop-ups durante downloads de páginas.
Antes de saltar para as novas funções, uma palavra rápida no modo escuro. O Chrome 73 introduziu o modo escuro para usuários de Mac, e o Chrome 74 deveria fazer o mesmo para usuários do Windows. Por algum motivo, a funcionalidade não está no Chrome 74, embora a página de suporte esteja ativa.
Reduzir a doença de movimento
Enjoo de movimento no navegador é uma coisa real. O Android fornece uma opção de acessibilidade para reduzir o movimento sempre que possível, conforme mostrado acima na configuração "excluir animações". O Google Chrome agora está dando um passo adiante para que os sites possam limitar o enjôo ao visualizar a rolagem paralaxe, o zoom e outros efeitos de movimento.
O Chrome 74 apresenta prefere movimento reduzido
(parte do Nível 5 das consultas de mídia) que permite que os sites sejam compatíveis quando um sistema operacional é configurado para limitar os efeitos da movimentação. Isso pode não parecer um grande problema hoje em dia, mas pode ser muito útil se os sites começarem a abusar dos efeitos do movimento.
Android e iOS
O Chrome 74 para Android está sendo lançado lentamente no Google Play. Inclui melhorias na estabilidade e no desempenho e altera o nome do Data Saver para o modo Lite. Em notícias relacionadas, o Google também removeu a extensão do Data Saver.
O Chrome 74 para iOS também está sendo lançado lentamente na Apple App Store.
Correções de segurança
O Chrome 74 também implementa 39 correções de segurança. Pesquisadores externos descobriram o seguinte:
- ($ 3000) (913320) High CVE-2019-5805: use depois de livre em PDFium. Reportado por Anônimo em 2018-12-10
- ($ 3000) (943087) High CVE-2019-5806: Estouro de inteiro angular. Relatado por Wen Xu da SSLab, Georgia Tech em 2019-03-18
- ($ 3000) (945644) High CVE-2019-5807: corrupção de memória no V8. Relatado por TimGMichaud do Leviathan Security Group. em 2019-03-26
- ($ 3000) (947029) High CVE-2019-5808: Use depois de livre no piscar de olhos. Reportado por cloudfuzzer em 2019-03-28
- ($ N / A) (941008) High CVE-2019-5809: Use depois que você estiver livre no Blink. Relatado por Mark Brand do Google Project Zero em 2019-03-12
- ($ 2000 + $ 1,337) (916838) Médio CVE-2019-5810: Divulgação de informações do usuário no AutoCompletar. Reportado por Mark Amery em 2018-12-20
- ($ 2000) (771815) Médio CVE-2019-5811: desvio CORS em Piscar. Relatado por Jun Kokatsu (@shhnjk) em 2017-10-04
- ($ 2000) (925598) Médio CVE-2019-5812: falsificação de URL na Omnibox no iOS. Reportado por Khalil Zhani em 2019-01-26
- ($ 2000) (942699) Médio CVE-2019-5813: Fora dos limites lidos em V8. Relatado por Aleksandar Nikolic da Cisco Talos em 2019-03-15
- ($ 1000) (930057) Médio CVE-2019-5814: desvio CORS em Piscar. Relatada por @ AaylaSecura1138 em 2019-02-08
- ($ 1000) (930663) Mídia CVE-2019-5815: estouro de buffer de heap no Blink. Relatado por Nicolas Grégoire, Agarri em 2019-02-11
- ($ 1000) (940245) Médio CVE-2019-5816: explore a extensão de persistência no Android. Relatado por Yongke Wang do Laboratório Xuanwu da Tencent (xlab.tencent.com) em 2019-03-10
- ($ 1000) (943709) Médio CVE-2019-5817: estouro de buffer de heap em ângulo no Windows. Relatado por Wen Xu da SSLab, Georgia Tech em 2019-03-19
- (US $ 500) (929962) Médio CVE-2019-5818: Valor não inicializado no leitor de mídia. Reportado por Adrian Tolbaru em 2019-02-08
- ($ N / A) (919356) Médio CVE-2019-5819: Incapacidade incorreta nas ferramentas do desenvolvedor. Reportado por Svyat Mitin em 2019-01-06
- ($ N / A) (919635) Médio CVE-2019-5820: Estouro de inteiro no PDFium. Reportado por pdknsk em 2019-01-07
- ($ N / A) (919640) Médio CVE-2019-5821: Excesso de inteiro no PDFium. Reportado por pdknsk em 2019-01-07
- (US $ 500) (926105) Em CVE-2019-5822: desvio de CORS no gerenciador de downloads. Reportado por Jun Kokatsu, Pesquisa de Vulnerabilidade do Microsoft Browser em 2019-01-29
- (US $ 500) (930154) Sob CVE-2019-5823: Navegação forçada do trabalhador de serviço. Reportado por David Erceg em 2019-02-08
- (955186) Várias disposições para auditorias internas, fuzzing e outras iniciativas
Portanto, o Google gastou pelo menos US $ 26.837 em recompensas de bugs para essa versão ou dobrou o gasto do mês passado. Como sempre, as soluções de segurança, por si só, devem ser um incentivo suficiente para você realizar a atualização.
Características do desenvolvedor
O Chrome 72 introduziu os campos de classe pública ECMAScript, que simplificam a sintaxe de classe evitando a necessidade de funções de construtor apenas para definir as propriedades da instância. O Chrome 74 permite marcar um campo como privado (basta preceder o campo com um #) e nenhum consumidor na classe pode acessar seu valor. Como nos campos de classe pública, suas propriedades não precisam estar em um construtor. Ao contrário dos campos públicos, os campos privados não estão acessíveis fora do corpo da classe.
O Chrome 60 introduziu as políticas de recursos para que os websites possam ativar, desativar e modificar seletivamente o comportamento de APIs e outras funções da Web por meio do cabeçalho Feature-Policy ou do atributo Allow em um iframe. O Google Chrome 74 aprimora as políticas de recursos com uma API JavaScript, disponível em document.featurePolicy
e frame.featurePolicy
através de três funções:
Funções permitidas ()
retorna uma lista de recursos permitidos pelo domínio atual.AllowFatura ()
retorna um valor booleano que indica se um recurso específico é permitido pelo domínio atual ou pelo domínio especificado.getAllowlistForFeature ()
retorna uma lista de domínios usados na página atual que permite uma função específica.
O Chrome 74 também atualiza o mecanismo JavaScript V8 para a versão 7.4. Ele inclui V8 sem JIT, threads atômicos de montagem da Web, melhor desempenho, melhorias de memória e novas funções de linguagem JavaScript. Confira a lista completa de alterações para mais informações.
Outros recursos do desenvolvedor nesta versão incluem:
sampleRate
opção paraAudioContext
construtor: define o "sampleRate" para um valor específico para um AudioContext que será criado. Isso permite que os desenvolvedores definam uma frequência de amostragem arbitrária para o processamento de áudio na API de áudio da web, separada da velocidade do hardware. Use isso para reduzir a complexidade (usando uma taxa de amostragem mais baixa) ou tornar a frequência de amostragem consistente em todos os dispositivos usando uma frequência fixa e permitindo que o WebAudio faça uma nova amostragem adequada para a velocidade do hardware.Intl.Locale
O Chrome agora suporta a classe Intl.Locale, que permite analisar e manipular o idioma, a região e o script de uma localidade. ler ou gravar os rótulos de extensão Unicode em uma localidade; armazene as preferências locais do usuário para essa API em um formato serializável e padrão (em vez de usar uma combinação de idiomas e o objeto de opções).- Relatórios de troca assinados para distribuidores: Os relatórios de troca assinados para distribuidores estendem o log de erro da rede para permitir que trocas assinadas investiguem erros de carga de trocas assinadas, como erros de verificação de certificado.
- Método TextEncoder encodeInto (): o Chrome agora é compatível
TextEncoder.prototype.encodeInto ()
, que permite gravar uma cadeia diretamente codificada "em" um buffer pré-atribuído fornecido, oferecendo uma excelente alternativa para o uso de codificar () para produzir um buffer e para copiar seu conteúdo em um buffer existente. - Trabalhador de serviço:
client.postMessage ()
ele é armazenado em buffer até que o documento esteja pronto. Para impedir que as mensagens sejam enviadas antes do destino estar pronto, o client.postMessage () não envia a mensagem até que uma das seguintes situações ocorra no destino:DOMContentLoaded
o evento é dispensado,uma mensagem
é estabelecido, ouHomeMessages ()
se chama. - Eventos de transição de CSS: A especificação de Transições de CSS requer que os eventos de transição sejam enviados quando uma transição é enfileirada, começa, termina ou é cancelada como
vôo de transição
,transição para começar
,transição
etransição
respectivamente. Esses eventos refletem os eventos de animação CSS que permitem aos desenvolvedores assistir a animações CSS. O Chrome agora segue a especificação. RTCIceCandidate
eRTCIceCandidateInit
Agora está em conformidade com a especificação. oRTCIceCandidate
interface descreve um candidato ICE no WebRTC. Está disponível no Chrome, mas não atende às especificações, pois alguns campos estão faltando. Há também alguns desvios da especificação em termos de atributos que podem conter erros nulos e somente leitura e erros gerados pelo construtor.- XHR chama UTF-8 quando uma codificação inválida é especificada: quando uma codificação inválida é especificada para um XMLHttpRequest (através de
overrideMimeType ()
ou o tipo MIME da resposta), o UTF-8 é usado de acordo com a especificação. Anteriormente, o Latin-1 era usado.
Para obter um resumo completo das notícias, consulte a lista de marcos do Chrome 74.
O Google lança uma nova versão do seu navegador a cada seis semanas. O Chrome 75 chegará no início de junho.