Em quase todas as versões do Chrome, vemos um número significativo de atualizações e melhorias no produto, no desempenho dele e também nos recursos da plataforma da Web. Neste artigo, descrevemos as descontinuações e remoções do Chrome 58, que está na versão Beta desde 16 de março. Essa lista está sujeita a alterações a qualquer momento.
Mouse no Android para de disparar TouchEvents
Até o Chrome 57, os eventos de mouse de baixo nível do Android no Chrome seguiam principalmente um
caminho de evento projetado para interações de toque. Por exemplo, um movimento de arrastar o mouse que ocorre enquanto
um botão do mouse é pressionado gera MotionEvents
, entregue pelo
View.onTouchEvent
.
No entanto, como os eventos de toque não oferecem suporte a esse tipo de ação, esse movimento seguiu um
caminho separado. O design teve muitos efeitos colaterais, incluindo interações do mouse
disparando TouchEvents
, todos os botões do mouse aparecendo como botões esquerdos do mouse e
MouseEvents
sendo suprimido por TouchEvents
.
A partir do Chrome 58, um mouse no Android M ou mais recente fará o seguinte:
- Não disparar mais
TouchEvents
. - Dispare uma sequência consistente de
MouseEvents
com os botões apropriados e outras propriedades.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Removemos a correspondência que não diferencia maiúsculas de minúsculas para o atributo usemap
O atributo usemap
era definido anteriormente como sem maiúsculas. Infelizmente, implementar isso foi complicado o suficiente, e nenhum navegador o implementou corretamente. A pesquisa sugeriu que um algoritmo tão complicado é desnecessário, e mesmo a correspondência ASCII que não diferencia maiúsculas de minúsculas é desnecessária.
Consequentemente, a especificação foi atualizada para que a correspondência que diferencia maiúsculas de minúsculas seja aplicada. O comportamento antigo foi descontinuado no Chrome 57 e foi removido.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remover navegações dos principais frames iniciadas pelo conteúdo para os URLs de dados
Como os usuários não técnicos não conhecem o navegador, o esquema data:
é cada vez mais usado em ataques de spoofing e phishing. Para evitar isso, estamos bloqueando o carregamento de URLs data:
de páginas da Web no frame superior. Isso se aplica a tags <a>
, window.open
, window.location
e mecanismos semelhantes. O esquema data:
ainda funciona para
recursos carregados abaixo por uma página.
Esse recurso será removido no Chrome 60.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remover nomes descontinuados das propriedades de trajetória de animação
As propriedades CSS da trajetória de animação permitem que os autores animem qualquer objeto gráfico ao longo de um caminho especificado pelo autor. Para seguir a especificação, várias propriedades foram implementadas no Chrome 45. Os nomes dessas propriedades foram alterados na especificação em meados de 2016. O Chrome implementou os novos nomes no Chrome 55 e no Chrome 56. Avisos de descontinuação do console também foram implementados.
No Chrome 58, os nomes antigos das propriedades estão sendo removidos. As propriedades afetadas e os novos nomes são mostrados abaixo.
Propriedade removida | Nome atual |
---|---|
demarcação de animação | deslocamento-caminho |
deslocamento de movimento | deslocamento-distância |
rotação de movimento | deslocamento-rotação |
movimento | offset |
Remover o EME de contextos não seguros
Alguns usos de Encrypted Media Extensions (EME) expõem implementações de gerenciamento de direitos digitais que não são de código aberto, envolvem acesso a identificadores exclusivos persistentes e/ou são executados sem sandbox ou com acesso privilegiado. Os riscos de segurança são maiores em sites expostos por HTTP não seguro, porque eles podem ser atacados por qualquer pessoa no canal. Além disso, quando o consentimento do usuário é necessário, a aceitação mantida para um site HTTP não seguro pode ser explorada por esse invasor.
O suporte a contextos não seguros foi removido da especificação versão 1 da EME e não é compatível com a recomendação proposta nem previsto na versão final subsequente. Ele não estará na próxima recomendação proposta ou na recomendação final subsequente. A API mostra uma mensagem de descontinuação em origens não seguras desde o Chrome 44 (maio de 2015). No Chrome 58, ela foi removida. Essa mudança faz parte do nosso esforço mais amplo para remover recursos avançados de origens não seguras.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remover o autor da chamada legado para HTMLEmbedElement e HTMLObjectElement
Se a interface tem um autor de chamada legado, isso significa que uma instância pode ser chamada como uma
função. Atualmente, HTMLEmbedElement
e HTMLObjectElement
são compatíveis com essa
funcionalidade. No Chrome 57, esse recurso foi suspenso. A partir do Chrome 58,
chamar uma exceção gera uma exceção.
Essa mudança deixa o Chrome alinhado com mudanças recentes nas especificações. O comportamento legado não é compatível com o Edge ou o Safari e está sendo removido do Firefox.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
As criptografias ChaCha20-Poly1305 pré-padrão foram removidas
Em 2013, o Chrome 31 implantou novos pacotes de criptografia TLS baseados nos algoritmos ChaCha20 e Poly1305 do Prof. Dan Bernstein. Posteriormente, elas foram padronizadas, com pequenos ajustes, no IETF como RFC 7539 e RFC 7905 (links em inglês). Lançamos a variante padronizada no início de 2016 com o Chrome 49. Agora, vamos remover as variantes pré-padrão.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remoção do suporte para correspondência de commonName em certificados
A RFC 2818 (link em inglês) descreve dois métodos para corresponder um
nome de domínio a um certificado: usando os nomes disponíveis na extensão
subjectAlternativeName
ou, na ausência de uma extensão SAN,
voltando para commonName
. O substituto para o commonName
foi
descontinuado na RFC 2818 (publicado em 2000), mas o suporte continua com vários
clientes TLS, geralmente de maneira incorreta.
O uso dos campos subjectAlternativeName
não determina se um certificado está expressando uma vinculação a um endereço IP ou nome de domínio e é totalmente definido em termos de interação com as restrições de nome. No entanto, o commonName
é ambíguo e, por isso, o suporte tem sido uma fonte de bugs de segurança no Chrome, nas bibliotecas que ele usa e no ecossistema TLS em geral.
O risco de compatibilidade para remover commonName
é baixo. A RFC 2818 suspendeu o uso desse recurso há quase duas décadas, e os requisitos de referência, que todas as autoridades de certificação públicas precisam cumprir, exigem a presença de um subjectAltName
desde 2012. O Firefox já exige o
subjectAltName
para todos os certificados publicamente confiáveis recém-emitidos, desde o
Firefox 48.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Bits de TextTrack relacionados a VTTRegion
Os elementos da interface regions
, addRegion()
e removeRegion()
foram
removidos da especificação WebVTT e no Chrome 58 para obedecer
à especificação mais recente. Esperamos pouco impacto dessa
remoção, já que o recurso nunca foi ativado por padrão (ou seja, estava
por trás de uma flag). Quem precisa de uma alternativa pode usar a propriedade VTTCue.region
,
que será adicionada no Chrome 58.
Rastreador do Chromestatus | Bug do Chromium
WebAudio: remoção da interface AudioSourceNode.
A interface AudioSourceNode
não faz parte da
especificação de áudio da Web,
não é construível e não tem atributos, portanto, basicamente não tem funcionalidade
acessível para o desenvolvedor. Por isso, ele está sendo removido.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
O atributo global webkitdropzone foi removido.
O atributo global dropzone
foi introduzido pela
especificação de arrastar e soltar HTML5
como um método declarativo para especificar a disposição de um elemento HTML como
destino de uma operação de arrastar e soltar, os tipos de conteúdo que podem ser soltos no
elemento e a operação de arrastar e soltar (copiar/mover/vincular).
O atributo não conseguiu ganhar força entre os fornecedores de navegadores. O Blink e o WebKit
implementam apenas uma forma prefixada do atributo, webkitdropzone
. Como o atributo
dropzone
foi removido da especificação no
início de março de 2017,
a versão prefixada está sendo removida do Chrome.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Suspensão do uso não seguro de notificações
As notificações são um recurso poderoso, porque permitem que os sites invoquem a interface do sistema para transmitir informações particulares ou um sinal de que informações particulares foram alteradas. Os invasores podem detectar ou roubar informações enviadas por notificação em uma conexão não segura. O push na Web exige uma origem segura. Portanto, essa mudança vai alinhar as notificações que não são push às notificações push. Essa mudança faz parte do nosso esforço mais amplo para remover recursos avançados de origens não seguras.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Descontinuação do uso de notificações de iframes não seguros
As solicitações de permissão de iframes podem confundir os usuários, porque é difícil distinguir entre a origem da página que contém e a do iframe que está fazendo a solicitação. Quando o escopo das solicitações não é claro, é difícil para os usuários julgarem se vão conceder ou negar a permissão.
Isso também vai alinhar os requisitos de permissão de notificações com os de notificações push, facilitando o atrito para os desenvolvedores.
Os desenvolvedores que precisam dessa funcionalidade podem abrir uma nova janela para solicitar permissão de notificação.
A remoção ocorrerá no Chrome 62.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remoção de indexarDB.webkitGetDatabaseNames()
Adicionamos esse recurso quando o Indexed DB era relativamente novo no Chrome, e o prefixo era muito comum. A API retorna de maneira assíncrona uma lista de nomes de bancos de dados existentes em uma origem, que pareciam razoáveis o suficiente.
Infelizmente, o design é falho, já que os resultados podem ficar obsoletos assim que são retornados. Portanto, ele só pode ser usado para geração de registros, não para uma lógica de aplicativo séria. O problema no github (link em inglês) rastreia/vincula a uma discussão anterior sobre alternativas, o que exigiria uma abordagem diferente. Os desenvolvedores têm bastante interesse, mas devido à falta de progresso entre navegadores, o problema foi resolvido pelos autores das bibliotecas.
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 removido no Chrome 60.
Intenção de descontinuação | Rastreador do Chromestatus | Bug do Chromium