A empresa Google lançamento do navegador web . Ao mesmo tempo lançamento estável de um projeto de código aberto , que serve como base para o Chrome. O navegador Chrome uso de logotipos do Google, com a possibilidade de carregar o módulo Flash sob demanda, a presença de um sistema de envio de notificações em caso de falha, módulos para reprodução de conteúdo de vídeo protegido, um sistema de instalação automática de atualizações e a transmissão durante a busca . A próxima versão do Chrome 75 está prevista para 4 de junho.
:
- Na ocorrência do evento onUnload, que é chamado ao fechar a página, agora exibir janelas pop-up (a chamada window.open() é bloqueada), o que ajudará a proteger os usuários de abrir forçadamente páginas publicitárias após o fechamento de sites duvidosos;
- No motor JavaScript apareceu um novo modo (flag "--jitless"), permitindo a execução de JavaScript sem o uso de JIT (utilizando apenas o interpretador) e sem alocar memória executável durante a execução do código. Desativar o JIT pode ser útil para aumentar a segurança ao lidar com aplicativos web potencialmente perigosos, além de garantir a compilação em plataformas que proíbem o uso de JIT (por exemplo, em iOS, em algumas Smart TVs e consoles de jogos). Com o JIT desativado, o desempenho da execução de JavaScript diminui em 40% no teste Speedometer 2.0 e em 80% no teste Web Tooling Benchmark, mas ao simular o uso do YouTube, a diminuição de desempenho foi apenas de 6%. O consumo de memória, nesse caso, é reduzido ligeiramente, em apenas 1.7%;
- No V8 também foram propostas uma série de novas otimizações. Por exemplo, a execução de chamadas de funções onde o número de parâmetros efetivamente passados não corresponde ao número de argumentos indicado na definição da função foi acelerada em 60%. O acesso às propriedades do DOM foi otimizado com a função get, o que impactou positivamente o desempenho do framework Angular. O processo de parsing JavaScript foi acelerado: a otimização do decodificador UTF-8 melhorou a performance do parser em modo streaming (análise enquanto carrega) em 8%, e a eliminação de operações desnecessárias de deduplicação gerou um ganho adicional de 10.5%;
- Foi feito um trabalho para reduzir o consumo de memória do motor JavaScript.
Foi adicionado um código para limpar o cache de bytecode, que ocupa aproximadamente 15% do tamanho total do heap. O coletor de lixo recebeu uma nova fase para expelir do cache bytecode raramente compilado para funções usadas ou funções que são chamadas apenas na inicialização. A decisão de limpeza é baseada em novos contadores que consideram o último tempo de acesso ao bytecode. A alteração especificada permitiu reduzir o consumo de memória em 5 a 15% sem impacto negativo no desempenho. Além disso, o compilador de bytecode excluiu a geração de código claramente não utilizado, por exemplo, que fica após return ou break (se não houver um salto para ele);
- Para WebAssembly suporte a threads e operações atômicas (API WebAssembly Threads e WebAssembly Atomics);
- Para entrega isolada de scripts, foi adicionada a suporte ao cabeçalho "#!", que define o interpretador para execução. Por exemplo, similar a outras linguagens de script, um arquivo JavaScript pode parecer assim:
#!/usr/bin/env node
console.log(42); - No CSS, foi adicionada uma nova consulta media "" que permite ao site determinar o estado das configurações no sistema operacional relacionadas à desativação de efeitos animados. Com a consulta proposta, o proprietário do site pode saber que o usuário desativou efeitos animados e também desativar várias opções de animação no site, como remover o efeito de tremor dos botões usados para chamar a atenção;
- Além da funcionalidade introduzida no Chrome 72 para identificar campos públicos, marcação de campos como privados, após o que o acesso aos seus valores será permitido apenas dentro da classe. Para marcar um campo como privado, é necessário indicar antes do nome do campo o símbolo "#". Assim como nos campos públicos, propriedades privadas não exigem o uso explícito do construtor.
- O cabeçalho HTTP Feature-Policy, que permite controlar o comportamento da API e a ativação de determinadas funcionalidades (por exemplo, habilitar o modo síncrono de XMLHttpRequest ou desativar a Geolocation API), foi complementado para controlar a atividade de determinadas funcionalidades. Para os desenvolvedores, foram oferecidos dois novos métodos document.featurePolicy e frame.featurePolicy, que oferecem três funções:
allowedFeatures() para obter uma lista de funções permitidas para o domínio atual, allowsFeature() para verificar seletivamente a ativação de recursos específicos e getAllowlistForFeature() para exibir a lista de domínios onde o recurso especificado é permitido na página atual; - Adicionada a suporte experimental («chrome://flags#enable-text-fragment-anchor») ao modo , permitindo criar links para palavras ou frases específicas, sem a necessidade de indicar explicitamente no documento rótulos por meio da tag «a name» ou da propriedade «id». Para transmitir o link, é proposto um parâmetro especial «#targetText=», no qual é possível indicar o texto para o acesso. É aceitável especificar uma máscara, incluindo frases que indiquem o início e o fim do fragmento, utilizando a vírgula como separador (por exemplo, «example.com#targetText=startwords, endwords»);
- Foi adicionada uma opção ao construtor AudioContext , que permite definir a frequência de amostragem para operações de áudio através da API Web Audio;
- Adicionada a suporte à classe , que fornece métodos para analisar e manipular parâmetros de idioma, região e formatação definidos pela localidade, além de ler e gravar tags de extensões Unicode, armazenando configurações de localidade do usuário em um formato serializado;
- O mecanismo (SXG) foi ampliado com recursos para distribuidores de conteúdo sobre erros de carregamento de conteúdo assinado, como problemas de verificação de certificados. O tratamento de erros é realizado através das extensões da API . Lembrando que o SXG permite a um proprietário de site autorizar, com assinatura digital, a publicação de determinadas páginas em outro site, após o que, ao acessar essas páginas no segundo site, o navegador mostrará ao usuário a URL do site original, apesar da página ter sido carregada a partir de outro host;
- Foi adicionado ao class TextEncoder o método , que permite gravar uma string codificada diretamente em um buffer previamente alocado. O método encodeInto() é uma alternativa de alto desempenho ao método encode(), que requer a operação de alocação de buffer a cada chamada.
- No Service worker Bufferização da chamada client.postMessage() até que o documento esteja pronto. As mensagens enviadas através de client.postMessage() serão mantidas até o evento DOMContentLoaded ser gerado, a definição do onmessage ser realizada ou o startMessages() ser chamado;
- Em conformidade com os requisitos da especificação CSS Transitions os eventos transitionrun, transitioncancel, transitionstart e transitionend, gerados quando uma transição CSS é colocada na fila, cancelada, iniciada ou concluída.
- Ao especificar um tipo MIME incorreto ou uma codificação de caracteres através de overrideMimeType() para uma solicitação XMLHttpRequest, agora ocorre um retrocesso para UTF-8 em vez de Latin-1;
- O recurso 'allow-downloads-without-user-activation' foi declarado obsoleto e será removido em uma das próximas versões, o qual permitia que downloads de arquivos fossem organizados ao processar iframes. No futuro, a inicialização de downloads de arquivos sem a ação explícita do usuário será proibida, pois foi amplamente utilizada para abusos, impor downloads e injetar partes de malware no computador do usuário. Para iniciar o download, o clique do usuário na mesma página será obrigatório. Inicialmente, a remoção do recurso estava prevista para o Chrome 74, mas a remoção foi adiada até o Chrome 76.
- Uma opção de tema escuro foi proposta para a plataforma Windows (na versão anterior, o tema escuro foi preparado para macOS). Como o tema escuro é quase idêntico ao modo de navegação anônima, para destacar o modo privado de operação, um indicador especial foi adicionado em vez do ícone do perfil do usuário;
- Para usuários corporativos, foi adicionada a possibilidade de para gerenciar as configurações dos navegadores dos usuários através do console do Google Admin;
Além das inovações e correções de bugs, na nova versão foram eliminadas . Muitas das vulnerabilidades foram descobertas através de teste automatizado com ferramentas , , , e . Não foram identificados problemas críticos que permitam contornar todos os níveis de segurança do navegador e executar código no sistema fora do ambiente sandbox. No âmbito do programa de recompensas por descoberta de vulnerabilidades para esta versão, a Google pagou 19 prêmios no total de 26837 dólares EUA (quatro prêmios de $3000, quatro prêmios de $2000, um prêmio de $1337, quatro prêmios de $1000, três prêmios de $500). O valor de 4 recompensas ainda não foi determinado.
Fonte: opennet.ru

