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 56, que está na versão Beta desde 8 de dezembro. Essa lista está sujeita a alterações a qualquer momento.
Remover o suporte a certificados SHA-1
O algoritmo de hash criptográfico SHA-1 mostrou pela primeira vez sinais de fraqueza há mais de onze anos. Uma pesquisa recente indica a possibilidade iminente de ataques que poderiam afetar diretamente a integridade da infraestrutura de chave pública (ICP) da Web.
Para proteger os usuários contra esses ataques, o Chrome não oferece mais suporte aos certificados SHA-1 a partir do Chrome 56, com versão estável em janeiro de 2017. Acessar um site usando esse certificado resulta em um aviso intersticial. Confira mais detalhes no Blog de segurança do Chrome (em inglês).
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remoção de criptografias ECDSA no modo CBC no TLS
A construção do modo CBC do TLS tem falhas, o que a torna frágil e muito difícil de implementar com segurança. As criptografias no modo CBC ainda são amplamente usadas com RSA, mas são praticamente inexistentes no ECDSA. Outros navegadores ainda são compatíveis com essas criptografias, mas acreditamos que o risco é baixo. Além disso, o ECDSA no TLS é usado por poucas organizações e geralmente com uma configuração mais complexa (alguns clientes mais antigos são compatíveis apenas com RSA). Por isso, esperamos que os sites ECDSA sejam mais bem mantidos e mais responsivos em caso de problemas.
O TLS 1.2 adicionou novas criptografias com base em AEADs que evita esses problemas, especificamente AES_128_GCM, AES_256_GCM ou CHACHA20_POLY1305. No momento, essa opção é obrigatória apenas para sites com base em ECDSA, mas é recomendado para todos os administradores. As criptografias baseadas em AEAD não apenas melhoram a segurança, mas também o desempenho. O AES-GCM oferece suporte de hardware em CPUs recentes, e ChaCha20-Poly1305 permite implementações rápidas de software. Enquanto isso, as criptografias CBC exigem mitigações complexas lentas e acesso PRNG em cada registro de saída. As criptografias baseadas em AEAD também são um pré-requisito para otimizações HTTP/2 e de início falso.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remover gestos do usuário da rolagem por toque
Já vimos vários exemplos de anúncios mal escritos ou
mal-intencionados que acionam a navegação para rolagens por toque em touchstart
ou em todos os eventos touchend
. Se um evento "wheel" não puder abrir um pop-up, a rolagem
por toque também não vai funcionar. Isso pode causar falhas em alguns cenários, como a mídia
não ser reproduzida com o toque ou os pop-ups não abrirem com o toque. O Safari já não abre pop-ups silenciosamente em todos esses cenários.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Não permitir todas as buscas de scripts com atributos de tipo/idioma inválidos
Atualmente, o verificador de pré-carregamento do Chrome busca itens em elementos <scripts>
, independentemente do valor do atributo type
ou language
, embora o script não seja executado quando analisado. Ao descontinuar a busca, o verificador de pré-carregamento
e o analisador terão a mesma semântica, e não iniciaremos
buscas de scripts que não vamos usar. O objetivo é salvar os dados de usuários que acessam sites com muitas tags de script personalizadas pós-processadas (como type="text/template"
, por exemplo).
A API sendBeacon aborda adequadamente o caso de uso de scripts inválidos em servidores de ping.
Essa mudança alinha o Chrome ao Safari, mas o Firefox ainda solicita scripts, independentemente do tipo ou idioma.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
MediaStreamTrack.getSources() foi removido.
Esse método não faz mais parte da especificação e não é compatível com nenhum outro
principal navegador. Ele foi substituído por
MediaDevices.enumerateDevices()
,
que tem suporte do Blink sem flags desde a versão 47 e que também
é compatível com outros navegadores. Confira um exemplo abaixo. Esta função getCameras()
hipotética primeiro usa a detecção de recursos para encontrar e usar enumerateDevices()
. Se a detecção do recurso falhar, ele vai procurar
getSources()
em MediaStreamTrack
. Por fim, se não houver suporte para a API de nenhum tipo, a matriz cameras
vazia será retornada.
function getCameras(camerasCallback) {
var cameras = [];
if('enumerateDevices' in navigator.mediaDevices) {
navigator.mediaDevices.enumerateDevices()
.then(function(sources) {
return sources.filter(function(source) {
return source.kind == 'videoinput'
});
})
.then(function(sources) {
sources.forEach(function(source) {
if(source.label.indexOf('facing back') >= 0) {
// move front facing to the front.
cameras.unshift(source);
}
else {
cameras.push(source);
}
});
camerasCallback(cameras);
});
}
else if('getSources' in MediaStreamTrack) {
MediaStreamTrack.getSources(function(sources) {
for(var i = 0; i < sources.length; i++) {
var source = sources[i];
if(source.kind === 'video') {
if(source.facing === 'environment') {
// cameras facing the environment are pushed to the front of the page
cameras.unshift(source);
}
else {
cameras.push(source);
}
}
}
camerasCallback(cameras);
});
}
else {
// We can't pick the correct camera because the API doesn't support it.
camerasCallback(cameras);
}
};
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remoção da diretiva da CSP refletida-xss
Os primeiros rascunhos da especificação de nível 2 da política de segurança de conteúdo
continham uma diretiva reflected-xss
que oferecia apenas o
cabeçalho X-XSS-Protection
, com uma sintaxe diferente. Essa diretiva foi
removida da especificação em 2015, mas não antes de ser implementada no Chrome.
O suporte para essa diretiva está sendo removido.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Substituir diretiva "referrer" da CSP
A diretiva referrer
da CSP permitiu que os proprietários do site definam uma política do referenciador a partir de um cabeçalho HTTP. Esse recurso não só tem um
uso muito baixo,
como também não faz mais parte de nenhuma especificação do W3C.
Os sites que ainda precisam dessa funcionalidade precisam usar <meta name="referrer">
ou o novo cabeçalho da política do referenciador.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium
Remover o campo PaymentAddress.careOf
A interface PaymentAddress
tem um campo careOf
que não é padrão. Nenhum padrão de endereço conhecido é compatível com ele. O campo careOf
também não é
necessário, os campos de destinatário e organização oferecem suporte suficiente a todos
os casos de uso necessários. Adicionar careOf
representa problemas significativos em termos de
interoperabilidade com os esquemas de endereços postais e APIs atuais. Para uma discussão mais
completa, leia a
proposta de remoção de especificações (link em inglês)
no GitHub.
Intenção de remoção | Bug do Chromium
SVGViewElement.viewTarget foi removido.
O atributo SVGViewElement.viewTarget
não faz parte da especificação SVG2.0,
e o uso dele é pequeno ou inexistente. Esse atributo foi
descontinuado no Chrome 54 e removido.
Intenção de remover | Rastreador de status do Chrome | Bug do Chromium