Lançamento do Chrome 80

A empresa Google apresentou lançamento do navegador web Chrome 80. Ao mesmo tempo disponível lançamento estável de um projeto de código aberto Chromium, que serve como base para o Chrome. O navegador Chrome caracteriza-se pelo uso de logotipos do Google, pela presença de um sistema de envio de notificações em caso de falha, pela possibilidade de carregar o módulo Flash sob demanda, 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 na busca de parâmetros RLZA próxima versão do Chrome 81 está programada para 17 de março.

Principais mudanças em Chrome 80:

  • Para uma pequena porcentagem de usuários, foi proposta a funcionalidade de agrupamento de abas, permitindo combinar várias abas semelhantes em grupos visualmente distintos. Cada grupo pode ter uma cor e um nome associados. Os usuários que não estão na primeira onda de ativação podem ativar o suporte a agrupamento através da opção "chrome://flags/#tab-groups".

    Lançamento do Chrome 80
  • Adicionada a suporte da função Scroll-To-Text, permitindo criar links para palavras ou frases individuais, sem a necessidade de especificar explícitamente no documento rótulos usando a tag "a name" ou a propriedade "id". A sintaxe desses links está prevista para ser aprovada como um padrão da web, que ainda está em fase de rascunho. A máscara para transição (essencialmente executa uma busca com rolagem) é separada do âncoras comuns pelo sinal ":~:". Por exemplo, ao abrir o link "https://opennet.ru/52312/#:~:text=Chromе", a página se moverá para a posição com a primeira menção da palavra "Chromе" e essa palavra será realçada.
  • Aplicado um limite mais rigoroso para o envio de Cookies entre sites, proibindo o tratamento de Cookies de terceiros para solicitações não HTTPS, que são emitidos 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 em código de redes de anúncios, widgets de redes sociais e sistemas de web analytics. Lembramos que para gerenciar o envio de Cookies é usado o atributo SameSite indicado no cabeçalho Set-Cookie, que agora, por padrão, é definido como "SameSite=Lax", restringindo o envio de Cookies para subconsultas entre sites, como solicitações de imagens ou carregamento de conteúdo através de iframes de outro site. Os sites podem substituir o modo SameSite padrão, explicitamente definindo o valor SameSite=None ao configurar Cookies. Vale ressaltar que o valor SameSite=None para Cookies só pode ser definido no modo Secure (aplica-se a conexões através de HTTPS). A mudança começará a ser implementada gradualmente. ser usados 17 de fevereiro, inicialmente para uma pequena porcentagem de usuários, e depois expandindo gradualmente o alcance.
  • Adicionada proteção contra notificações incômodas relacionadas à confirmação de permissões. Como tal atividade, por exemplo, spam de solicitações para receber notificações push, interrompe o trabalho do usuário e desvia a atenção para ações nos diálogos de confirmação, no Chrome 80, ao invés de um diálogo separado, agora pode ser exibida uma dica na barra de endereços com um aviso sobre o bloqueio da solicitação de permissões, que é então reduzida a um indicador com uma imagem de um sino riscado. Ao clicar no indicador, é possível ativar ou rejeitar a permissão solicitada a qualquer momento. Automaticamente, o novo modo será habilitado de forma seletiva para usuários que anteriormente costumavam bloquear tais solicitações, bem como para sites que registram um alto percentual de rejeições de solicitações. Para habilitar o novo modo para todas as solicitações, uma opção especial foi adicionada nas configurações (chrome://flags/#quiet-notification-prompts).

    Lançamento do Chrome 80
  • Proibido saída de janelas pop-ups (chamando o método window.open()) e envio de solicitações síncronas XMLHttpRequest nos manipuladores de eventos de fechamento ou ocultação da página (unload, beforeunload, pagehide e visibilitychange);
  • Proposta inicial proteção contra o carregamento de conteúdo multimídia misto (quando em uma página HTTPS são carregados recursos via http://). Em páginas abertas via HTTPS, agora os links "http://" serão automaticamente alterados para "https://" em blocos relacionados à reprodução de arquivos de som e vídeo. Se um recurso de áudio ou vídeo não estiver disponível via https, seu carregamento será bloqueado (pode-se manualmente marcar o bloqueio através do menu acessível pelo símbolo de cadeado na barra de endereços).

    Imagens continuarão a ser carregadas sem alterações (a auto-substituição será aplicada no Chrome 81), mas para troca por https ou bloqueio de imagens, os desenvolvedores de sites têm à disposição as propriedades CSP upgrade-insecure-requests e block-all-mixed-content. O bloqueio de conteúdo misto já foi implementado anteriormente para scripts e iframes.

  • Iniciou-se um desligamento gradual do suporte FTP. Por padrão, o suporte FTP ainda é mantido, mas será realizado um experimento em que para um determinado percentual de usuários o suporte a FTP será desativado (para reativá-lo, será necessário iniciar o navegador com a opção “—enable-ftp”). Lembramos que nas edições anteriores já foi desabilitada a exibição no navegador do conteúdo de recursos carregados pelo protocolo “ftp://” (por exemplo, a exibição de documentos HTML e arquivos README foi interrompida), foi proibido o uso de FTP ao carregar sub-recursos de documentos e o suporte a proxy para FTP foi descontinuado. No entanto, até agora, ainda era possível carregar arquivos por links diretos e exibir o conteúdo de diretórios.
  • Adicionada
    a possibilidade de usar imagens SVG vetoriais como ícone do site (favicon).
  • Nas configurações, foi adicionada a opção de desabilitar seletivamente tipos específicos de dados enviados durante a sincronização entre navegadores.
  • Para usuários corporativos administrados centralmente, foi adicionada uma regra BlockExternalExtensions, que permite proibir a instalação de complementos externos no dispositivo.
  • Implementado a possibilidade uma verificação única de toda a cadeia de propriedades ou chamadas em JavaScript. Por exemplo, ao acessar “db.user.name.length”, anteriormente era necessário verificar sequencialmente a definição de todas as partes compostas, como “if (db && db.user && db.user.name)”. Agora, usando a operação “?.”, é possível acessar o valor “db?.user?.name?.length” sem verificações prévias, e essa chamada não resultará em erro. Em caso de problemas (se algum elemento for processado como null ou undefined), será retornado o valor “undefined”.
  • Em JavaScript, foi proposto um novo operador lógico de união “????”, que retorna o operando à direita se o operando à esquerda tiver o valor NULL ou undefined, e vice-versa. Por exemplo, “const foo = bar ?? ‘string padrão’” se bar for igual a null, retornará a string ou o valor de bar caso contrário, incluindo quando bar for 0 e ‘’, diferentemente do operador “||”.
  • No modo Origin Trials (recursos experimentais que exigem uma ativação) foi proposto o API Content Indexing. O Origin Trial inclui a possibilidade de trabalhar com a referida API a partir de aplicativos carregados com localhost ou 127.0.0.1, ou após registro e obtenção de um token especial, que tem um tempo limitado de validade para um site específico. API Indexação de Conteúdo, fornece metadados sobre o conteúdo que foi anteriormente armazenado em cache por aplicativos da web que funcionam no modo Progressive Web Apps (PWS). O aplicativo pode armazenar diferentes dados no lado do navegador, incluindo imagens, vídeos e artigos, e, quando a conexão de rede é perdida, pode usá-los através da API Cache Storage e IndexedDB. A Content Indexing API permite adicionar, localizar e remover tais recursos. Esse API já é utilizado no navegador para listar páginas e dados multimídia disponíveis para visualização offline.

    Lançamento do Chrome 80
  • Foi estabilizada e agora é distribuída fora dos Trials de Origem a interface de programação Contact Picker, permitindo que o usuário selecione registros do catálogo de endereços e envie certos detalhes sobre eles para o site. Ao fazer a solicitação, é determinado a lista de propriedades que precisam ser obtidas. Essas propriedades são claramente exibidas para o usuário, que decide se deseja ou não enviar essas informações. A API pode ser usada, por exemplo, em um cliente de e-mail na web para selecionar destinatários para um email enviado, em um aplicativo web com função VoIP para iniciar uma chamada para um determinado número ou em uma rede social para procurar amigos já cadastrados. Nesse contexto, novos atributos do Contact Picker foram propostos dentro dos Origin Trials: além das informações previamente disponíveis, como nome completo, email e número de telefone, agora é possível enviar o endereço postal e uma imagem.
  • Nos Web Workers foi oferecido , uma nova maneira de carregar módulos ECMAScript, permitindo evitar o uso da função importScripts(), que bloqueia o funcionamento do worker enquanto processa o script importado e o executa no contexto global. A nova abordagem implica a criação de módulos especiais para Web Workers, que suportam os mecanismos de importação padrão do JavaScript e podem ser carregados dinamicamente, sem bloquear a execução do worker. Para carregar os módulos, foi introduzido um novo tipo de recurso no construtor Worker — ‘module’:

    const worker = new Worker(‘worker.js’, {
    type: ‘module’
    });

  • Implementado , uma funcionalidade interna para processar fluxos comprimidos em JavaScript, que não requer bibliotecas externas. Para compressão e descompressão, foram adicionadas as APIs CompressionStream e DecompressionStream. A compressão é suportada usando os algoritmos gzip e deflate.

    const compressionReadableStream
    = inputReadableStream.pipeThrough(new CompressionStream(‘gzip’));

  • Foi adicionado o atributo CSS "line-break: anywhere«, permitindo quebras em qualquer nível de caractere tipográfico, incluindo quebras ao lado de caracteres de pontuação, espaços pré-definidos (<pre>) e no meio de palavras. Também foi adicionado a propriedade CSS «overflow-wrap: anywhere» permitindo quebrar sequências de caracteres não separáveis em qualquer local, se não conseguir encontrar uma posição adequada para a quebra na linha.
  • Para o contexto de mídia, processado de forma criptografada, foi implementado suporte ao método MediaCapabilities.decodingInfo(), que fornece informações sobre as capacidades do navegador relacionadas à decodificação de conteúdo protegido (por exemplo, o método especificado pode ser usado para escolher scripts de decodificação de alta qualidade ou que economizam energia, levando em consideração a largura de banda disponível e o tamanho da tela).
  • Método adicionado HTMLVideoElement.getVideoPlaybackQuality(), através do qual é possível obter informações sobre o desempenho da reprodução de vídeo para ajustar a taxa de bits, resolução e outros parâmetros de vídeo.
  • Na API Payment Handler, que simplifica a integração com sistemas de pagamento existentes, foi adicionada a possibilidade , o que simplificou a API, aumentou o desempenho e reduziu o consumo de recursos. de processar o endereço e informações de contato para um processador de pagamentos externo (o aplicativo de pagamento pode ter informações mais precisas do que o navegador).
  • Adicionada a suporte ao cabeçalho HTTP Sec-Fetch-Dest, que permite enviar metadados adicionais sobre o tipo de conteúdo relacionado à requisição (por exemplo, para uma requisição através da tag img, o tipo é 'image', para fontes é 'font', para scripts é 'script', e para estilos é 'style', etc.). Com base no tipo especificado, o servidor pode tomar medidas para se proteger contra certos tipos de ataques (por exemplo, é improvável que um link para um handler de transferência de dinheiro seja definido através de uma tag img, portanto, tais requisições não precisam ser processadas).
  • No mecanismo JavaScript V8 foi realizada a otimização do armazenamento de ponteiros na heap. Em vez de armazenar o valor completo de 64 bits, é armazenado apenas os bits inferiores únicos do ponteiro. Essa otimização permitiu reduzir o consumo de memória na heap em 40%, às custas de uma redução de desempenho de 3-8%.
    Lançamento do Chrome 80

    Lançamento do Chrome 80
  • Mudanças nas ferramentas para desenvolvedores web:
    • Na web console, foi adicionada a possibilidade de reescrever expressões let e class.

      Lançamento do Chrome 80
    • Melhoradas as ferramentas de depuração do WebAssembly. Adicionado suporte ao DWARF para depuração passo a passo, definição de pontos de interrupção e análise de rastreamentos de pilha no código-fonte onde o aplicativo WebAssembly é escrito.

      Lançamento do Chrome 80
    • Melhorado o painel para análise de atividade de rede. Adicionada a capacidade de visualizar a cadeia de chamadas de scripts associada à solicitação inicial.

      Lançamento do Chrome 80

      Novas colunas Path e URL foram adicionadas, mostrando o caminho absoluto e a URL completa para cada recurso de rede. A solicitação selecionada é destacada no gráfico de visão geral.

      Lançamento do Chrome 80
    • Na aba Condições de Rede, foi adicionada uma opção para alterar o parâmetro User-Agent.

      Lançamento do Chrome 80
    • Uma nova interface para configurar o painel de auditoria foi proposta.
      Lançamento do Chrome 80
    • Na aba Coverage oferece a opção de coletar dados de cobertura para cada função ou para cada bloco de código (estatísticas mais detalhadas, mas requer mais recursos).

      Lançamento do Chrome 80
  • Ação do manifesto AppCache (tecnologia para operar aplicações web em modo offline) limitada pelo diretório atual do site (se o manifesto foi carregado de www.example.com/foo/bar/, a possibilidade de sobrescrever a URL só será válida dentro de /foo/bar/). No Chrome 82, o suporte ao AppCache está programado para ser completamente removido. A razão dada é a intenção de eliminar um dos vetores para ataques relacionados a scripts entre sites. Em vez de AppCache, é recomendado usar a API Cache.
  • O suporte para as propriedades -moz-column-* foi encerrado, e os padrões sem prefixo devem ser usados. suporte à API obsoleta WebVR 1.1, que pode ser substituída pela API WebXR Device, que permite acesso a componentes para criação de realidade virtual e aumentada, unificando o trabalho com diferentes classes de dispositivos, desde headsets de realidade virtual de mesa até soluções baseadas em dispositivos móveis.
  • Manipuladores de protocolos, conectados através dos métodos registerProtocolHandler() e unregisterProtocolHandler(), agora só podem funcionar em contextos seguros (quando acessados via HTTPS).

Além das inovações e correções de bugs, na nova versão foram eliminadas 56 vulnerabilidades. Muitas das vulnerabilidades foram descobertas através de teste automatizado com ferramentas AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Nenhum problema crítico que permita contornar todos os níveis de proteção do navegador e executar código no sistema fora do ambiente sandbox foi identificado. No âmbito do programa de recompensas por vulnerabilidades para esta versão, a Google pagou 37 prêmios totalizando 48 mil dólares (um prêmio de $10,000, três prêmios de $5,000, três prêmios de $3,000, quatro prêmios de $2,000, três prêmios de $1,000 e seis prêmios de $500). O valor de 17 recompensas ainda não foi definido.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster