Descontinuações e remoções no Chrome 60

Joe Medley
Joe Medley

Em quase todas as versões do Chrome, vemos um número significativo de atualizações e melhorias no produto, em seu desempenho e também nos recursos da web Google Cloud Platform. Este artigo descreve as descontinuações e remoções no Chrome 60, que está na versão Beta desde 8 de junho. Esta lista está sujeita a alterações a qualquer momento.

Segurança

O crypto.subtle agora requer uma origem segura

A API Web Crypto desde o Chrome 37, que sempre funcionou em sistemas origens. Devido à longa política de proteção do Chrome preferir origens seguras para recursos avançados, crypto.subtle não é visível apenas em origens seguras.

Intenção de remover | Bug do Chromium

Remover navegações de frames principais iniciadas pelo conteúdo para URLs de dados

Como eles não conhecem os navegadores com conhecimento técnico, vamos cada vez mais observamos o esquema data: sendo usado em spoofing e phishing ataques. Para evitar isso, vamos bloquear o carregamento de data: URLs em páginas da Web no quadro superior. Isso se aplica às tags <a>, window.open, window.location e mecanismos semelhantes. O esquema data: ainda vai funcionar recursos carregados por uma página.

Esse recurso foi descontinuado no Chrome 58 e foi removido.

Intenção de remover | Rastreador Chromestatus | Bug do Chromium

Desativar temporariamente Navigator.sendBeacon() para alguns blobs

A função navigator.sendBeacon() está disponível desde o Chrome 39. Como implementado originalmente, o argumento data da função pode conter qualquer blob arbitrário cujo tipo não está na lista de permissões do CORS. Acreditamos que essa é uma oportunidade uma ameaça real à segurança, embora ninguém tenha tentado explorá-la. Como NÃO tem uma correção imediata razoável para ele. Temporariamente, sendBeacon() não pode pode ser mais invocável em blobs de tipo NÃO incluído na lista segura do CORS.

Embora essa alteração tenha sido implementada no Chrome 60, ela já foi mesclada até o Chrome 59.

Bug do Chromium

CSS

Fazer com que o combinador descendente que pisa de sombra se comporte como um combinador descendente

O combinador descendente perfurado por sombras (>>>), parte de Módulo de escopo CSS nível 1 , destinado a corresponder aos filhos de um determinado elemento ancestral mesmo quando elas apareceram dentro de uma árvore paralela. Isso tinha algumas limitações. Primeiro, de acordo com as especificações, só pudesse ser usado em chamadas JavaScript, como querySelector(), e não trabalhar em folhas de estilo. E o mais importante, os fornecedores de navegadores além de um nível do Shadow DOM.

Consequentemente, o combinador descendente foi removido das especificações relevantes. incluindo o Shadow DOM v1. Em vez de corromper as páginas da Web ao remover este seletor do Chromium, optamos por atribuir um alias aos elementos descendentes ao combinator descendente. O comportamento original era suspensa no Chrome 45. O novo comportamento foi implementado no Chrome 61.

Intenção de remover | Rastreador Chromestatus | Bug do Chromium

JavaScript

Descontinuação e remoção de RTCPeerConnection.getStreamById()

Há quase dois anos, o getStreamById() foi removido da especificação WebRTC. A maioria dos outros navegadores tem já removeu isso de suas implementações. Embora essa função seja são pouco usadas, mas também acreditam que há pequenas risco de interoperabilidade com navegadores baseados no Edge e no WebKit, exceto o Safari em que getStreamById() ainda tem suporte. Desenvolvedores que precisam de uma alternativa implementação pode encontrar um exemplo de código em "Intent de remoção", abaixo.

A remoção será feita no Chrome 62.

Intenção de remover | Rastreador Chromestatus | Bug do Chromium

Suspensão do uso do SVGPathElement.getPathSegAtLength

Há mais de dois anos, getPathSegAtLength() foi removido da especificação SVG. Como existem apenas alguns acessos para esse método no httparchive, é que será descontinuada no Chrome 60. A remoção deverá ocorrer no Chrome 62, que será enviado em algum momento no início ou na metade de outubro.

Intenção de descontinuação | Rastreador Chromestatus | Bug do Chromium

Mover getContextAttributes() para trás de uma sinalização

A função getContextAttributes() tem suporte em CanvasRenderingContext2D desde 2013. No entanto, o recurso não fazia parte de nenhum padrão e não se tornou parte de uma desde então. Ele deveria ter sido implementado --enable-experimental-canvas-features, mas foi por engano não. No Chrome 60, essa falha foi corrigida. Acredita-se que isso a mudança é segura, já que não há dados mostrando que alguém está usando o método.

Bug do Chromium

Remover Headers.prototype.getAll()

A função Headers.prototype.getAll() está sendo removida de acordo com a a versão mais recente da especificação de busca.

Intenção de remover | Rastreador Chromestatus | Bug do Chromium

Remover indexadoDB.webkitGetDatabaseNames()

Adicionamos esse recurso quando o DB indexado era relativamente novo no Chrome e prefixado era toda a fúria. A API retorna, de maneira assíncrona, uma lista de bancos de dados existentes nomes em uma origem, o que parecia sensato o suficiente.

Infelizmente, o design é falho, já que os resultados podem ficar obsoletos em breve conforme eles são retornados, então eles só podem ser usados para geração de registros, e não lógica do aplicativo. A O problema no GitHub inclui links/links para discussão anterior sobre alternativas, o que exigiria uma abordagem diferente. Embora os desenvolvedores tenham um interesse constante, dada a falta de o progresso do navegador, o problema foi resolvido pelos autores da biblioteca.

Os desenvolvedores que precisam dessa funcionalidade precisam desenvolver a própria solução. Bibliotecas como Dexie.js, por exemplo, usam uma tabela global que é outro banco de dados para rastrear os nomes dos bancos de dados.

Esse recurso foi descontinuado no Chrome 58 e foi removido.

Intenção de remover | Rastreador Chromestatus | Bug do Chromium

Remover WEBKIT_KEYFRAMES_RULE e WEBKIT_KEYFRAME_RULE

As constantes WEBKIT_KEYFRAMES_RULE e WEBKIT_KEYFRAME_RULE não padrão são removidos dos Regra do CSS. Em vez disso, os desenvolvedores precisam usar KEYFRAMES_RULE e KEYFRAME_RULE.

Intenção de remover | Rastreador Chromestatus | Bug do Chromium

Interface do usuário

Exigir o gesto do usuário para caixas de diálogo antes de descarregar

A partir do Chrome 60, a caixa de diálogo beforeunload só será exibida se o frame a tentativa de exibição recebeu um gesto ou interação do usuário (ou se qualquer frame incorporado recebeu esse gesto). Esclarecendo, este não é um mude para o envio do evento beforeunload. É apenas uma mudança se a caixa de diálogo é exibida.

A caixa de diálogo beforeunload é uma caixa de diálogo modal. Por isso, é essencialmente hostil, ou seja, responde à navegação do usuário questionando decisão. Esse recurso tem usos positivos. Por exemplo, ele é muito usado para avisar os usuários quando eles perderão dados na navegação.

Embora a capacidade de uma página de fornecer texto para a caixa de diálogo beforeunload fosse removidas há algum tempo, as caixas de diálogo do beforeunload continuam sendo um vetor de abuso. Em Especificamente, caixas de diálogo beforeunload são um ingrediente de sites fraudulentos, em que de reprodução automática de áudio e texto ameaçador fornecem um contexto em que o Chromium fornecido "tem certeza de que deseja sair desta página?" se torna preocupante.

Queremos o fio da agulha e só permitimos bons usos do beforeunload. caixa de diálogo. Bons usos da caixa de diálogo são aqueles em que o usuário tem um estado que pode ser perdidos. Se o usuário nunca interagiu com a página, ele não pode ter nenhuma em estado de perda, portanto não corremos o risco de perder dados suprimindo a caixa de diálogo nesse caso.