Versão 74 do Chrome

Google apresentado versão do navegador da web Chrome 74... Simultaneamente está disponível lançamento estável de um projeto gratuito crômio, que é a base do Chrome. navegador Chrome diferente utilização de logotipos do Google, possibilidade de download de módulo Flash mediante solicitação, presença de sistema de envio de notificações em caso de travamento, módulos para reprodução de conteúdo de vídeo protegido, sistema de instalação automática de atualizações e transmissão durante a pesquisa Parâmetros RLZ. O próximo lançamento do Chrome 75 está agendado para 4 de junho.

O principal mudanças в Chrome 74:

  • Quando ocorre o evento onUnload, que é chamado quando a página é fechada, agora fumador exibir janelas pop-up (a chamada window.open() está bloqueada), o que protegerá os usuários de serem forçados a abrir páginas de publicidade após fechar sites duvidosos;
  • No mecanismo JavaScript implementado um novo regime apareceu Sem JIT Sinalizador (“—jitless”), que possibilita executar JavaScript sem usar JIT (apenas o interpretador é usado) e sem alocar memória executável durante a execução do código. Desabilitar o JIT pode ser útil para melhorar a segurança ao trabalhar com aplicativos da web potencialmente perigosos, bem como para garantir compilações em plataformas que proíbem o uso do JIT (por exemplo, iOS, algumas smart TVs e consoles de jogos. Quando o JIT está desabilitado, a execução do JavaScript o desempenho diminui 40% no teste Speedometer 2.0 e 80% no teste Web Tooling Benchmark, mas ao simular o trabalho com o YouTube, houve uma diminuição de desempenho de apenas 6%, enquanto o consumo de memória diminuiu ligeiramente, em apenas 1.7%;
  • O V8 também oferece uma grande parte de novas otimizações. Por exemplo, a execução de chamadas de função nas quais o número de parâmetros efetivamente passados ​​não corresponde ao número de argumentos especificados na definição da função foi acelerada em 60%. O acesso às propriedades do DOM usando a função get foi acelerado, o que tem um impacto positivo no desempenho do framework Angular. A análise de JavaScript foi acelerada: a otimização do decodificador UTF-8 tornou possível aumentar o desempenho do analisador no modo streaming (análise à medida que carrega) em 8%, e a eliminação de operações desnecessárias de desduplicação proporcionou um aumento de outros 10.5%;
  • Trabalho foi feito para reduzir o consumo de memória do mecanismo JavaScript.
    Adicionado código para limpar o cache de bytecode, que ocupa aproximadamente 15% do tamanho total do heap. Um estágio foi adicionado ao coletor de lixo para remover bytecode compilado com pouca frequência do cache para funções que são usadas ou funções que são chamadas apenas na inicialização. A decisão de limpeza é tomada com base em novos contadores que levam em consideração a última vez que o bytecode foi acessado. Essa alteração reduziu o consumo de memória em 5–15% sem impactar negativamente o desempenho. Além disso, o compilador de bytecode exclui a geração de código obviamente não utilizado, por exemplo, que segue return ou break (se não houver transição Jump para ele);

    Versão 74 do Chrome

  • Para WebAssembly implementado suporte a threads e operações atômicas (API WebAssembly Threads e WebAssembly Atomics);
  • Para entrega separada de scripts, foi adicionado suporte para o cabeçalho “#!”, que determina o interpretador a ser executado. Por exemplo, semelhante a outras linguagens de script, um arquivo JavaScript pode ser parecido com isto:

    #! / usr / bin / env node
    console.log(42);

  • Uma nova consulta de mídia foi adicionada ao CSS "prefere movimento reduzido“, permitindo ao site determinar o estado das configurações do sistema operacional relacionadas à desativação de efeitos animados. Usando a solicitação sugerida, o proprietário do site lata descobrir que o usuário desativou os efeitos animados e também desativou diversos recursos de animação do site, por exemplo, remover o efeito de vibração dos botões utilizados para chamar a atenção;
  • Além da capacidade de definir campos públicos introduzida no Chrome 72 suporte implementado Marcação dos campos como privados, após o que o acesso aos seus valores será aberto apenas dentro da classe. Para marcar um campo como privado, adicione um sinal “#” antes do nome do campo. Tal como acontece com os campos públicos, as propriedades privadas não requerem o uso explícito de um construtor.
  • O cabeçalho HTTP Feature-Policy, que permite controlar o comportamento da API e habilitar certos recursos (por exemplo, você pode habilitar o modo de operação síncrona de XMLHttpRequest ou desabilitar a API de geolocalização), foi adicionado API JavaScript para controlar a atividade de certas oportunidades. Para desenvolvedores, existem dois novos métodos document.featurePolicy e frame.featurePolicy, oferecendo três funções:
    permitidoFeatures() para obter uma lista de recursos permitidos para o domínio atual, permiteFeature() para verificar seletivamente se recursos específicos estão habilitados e getAllowlistForFeature() para retornar uma lista de domínios para os quais um recurso especificado é permitido na página atual;

  • Adicionado suporte experimental (“chrome://flags#enable-text-fragment-anchor”) para o modo Rolar para texto, que permite formar links para palavras ou frases individuais, sem especificar explicitamente rótulos no documento usando a tag “a name” ou a propriedade “id”. Para enviar um link, é oferecido um parâmetro especial “#targetText=”, no qual você pode especificar o texto para a transição. É permitido especificar uma máscara que inclua frases indicando o início e o fim do fragmento usando uma vírgula como separador (por exemplo, “example.com#targetText=start%20words, end%20words”);
  • Uma opção foi adicionada ao construtor AudioContext taxa de amostragem, que permite definir a taxa de amostragem para operações de áudio por meio da API Web Audio;
  • Adicionado suporte de classe Local Internacional, que fornece métodos para analisar e processar parâmetros de idioma, região e estilo definidos pela localidade, bem como para ler e gravar tags de extensão Unicode, salvando as configurações de localidade do usuário em um formato serializado;
  • Mecanismo Trocas HTTP assinadas (SXG) expandido com ferramentas para informando distribuidores de conteúdo sobre erros no download de conteúdo assinado, como problemas com verificação de certificado. O tratamento de erros é feito por meio de extensões de API Registro de erros de rede. Lembre-se que SXG permite o proprietário de um site, por meio de assinatura digital, autoriza a colocação de determinadas páginas em outro site, após o que, se essas páginas forem acessadas em um segundo site, o navegador mostrará ao usuário a URL do site original, apesar do fato que a página foi carregada de um host diferente;
  • Um método foi adicionado à classe TextEncoder codificarInto(), que permite gravar uma string codificada diretamente em um buffer pré-alocado. O método encodeInto() é uma alternativa de alto desempenho ao método encode(), que requer que uma operação de alocação de buffer seja executada cada vez que for acessado.
  • Trabalhador em serviço fornecido armazenando em buffer a chamada client.postMessage() até que o documento esteja pronto. As mensagens enviadas via client.postMessage() serão retidas até que o evento DOMContentLoaded seja gerado, onmessage seja definido ou startMessages() seja chamado;
  • Conforme exigido pela especificação CSS Transitions adicionado Eventos Transitionrun, TransitionCancel, TransitionStart e TransitionEnd gerados quando uma transição CSS é enfileirada, cancelada, inicia ou termina a execução.
  • Ao especificar uma codificação de caracteres incorreta por meio de overrideMimeType() ou tipo MIME para um XMLHttpRequest, agora ele volta para UTF-8 em vez de Latin-1;
  • A propriedade “allow-downloads-without-user-activation”, através da qual era possível baixar arquivos automaticamente ao processar iframes, foi obsoleta e será removida em uma versão futura. No futuro, será proibido iniciar downloads de arquivos sem ação explícita do usuário, pois eles têm sido usados ​​ativamente para abuso, forçando downloads e inserindo partes de malware no computador do usuário. Será necessário um clique do usuário na mesma página para iniciar o download. A propriedade foi originalmente planejada para ser removida no Chrome 74, mas a remoção foi adiado até o Chrome 76.
  • Um tema escuro opcional para o design da interface é oferecido para a plataforma Windows (na versão anterior, um tema escuro foi preparado para macOS). Como o design escuro é quase idêntico ao design no modo de navegação anônima, um indicador especial foi adicionado em vez do ícone do perfil do usuário para destacar o modo de operação privado;
  • Uma oportunidade foi adicionada para usuários corporativos Gerenciamento de nuvem do navegador Chrome gerenciar as configurações do navegador do usuário por meio do Google Admin Console;

    Versão 74 do Chrome

Além de inovações e correções de bugs, a nova versão elimina 39 vulnerabilidades. Muitas das vulnerabilidades foram identificadas como resultado de ferramentas de teste automatizadas Endereço Sanitizer, Sanitizador de memória, Integridade do fluxo de controle, LibFuzzerGenericName и AFL. Nenhum problema crítico foi identificado que permitiria ignorar todos os níveis de proteção do navegador e executar código no sistema fora do ambiente sandbox. Como parte do programa de pagamento de recompensas em dinheiro pela descoberta de vulnerabilidades na versão atual, o Google pagou 19 prêmios no valor de US$ 26837 (quatro prêmios de US$ 3000, quatro prêmios de US$ 2000, um prêmio de US$ 1337, quatro prêmios de US$ 1000, três prêmios de US$ 500). O tamanho das 4 recompensas ainda não foi determinado.

Fonte: opennet.ru

Adicionar um comentário