Em quase todas as versões do Chrome, observamos um número significativo de atualizações e melhorias no produto, no desempenho e nos recursos da plataforma da Web. Este artigo descreve as suspensões de uso e remoções no Chrome 56, que está na versão Beta desde 8 de dezembro. Essa lista está sujeita a mudanças a qualquer momento.
Remover o suporte a certificados SHA-1
O algoritmo hash criptográfico SHA-1 mostrou sinais de fraqueza pela primeira vez há mais de 11 anos, e pesquisas recentes apontam para a possibilidade iminente de ataques que poderiam afetar diretamente a integridade da infraestrutura de chave pública (PKI) da Web.
Para proteger os usuários contra esses ataques, o Chrome não oferece mais suporte a certificados SHA-1 a partir da versão 56, que foi lançada em janeiro de 2017. A visita a um site com esse certificado resulta em um aviso intersticial. Confira mais detalhes no blog de segurança do Chrome.
Intent to remove | Chromestatus Tracker | Chromium Bug
Remover 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 ser implementada com segurança. Embora as criptografias no modo CBC ainda sejam amplamente usadas com o RSA, elas são praticamente inexistentes com o ECDSA. Outros navegadores ainda oferecem suporte a essas cifras. 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ó oferecem suporte ao RSA). Portanto, esperamos que os sites ECDSA sejam melhor mantidos e mais responsivos em caso de problemas.
O TLS 1.2 adicionou novas criptografias com base em AEADs que evitam esses problemas, especificamente AES_128_GCM, AES_256_GCM ou CHACHA20_POLY1305. Embora, no momento, exijamos isso apenas para sites baseados em ECDSA, recomendamos que todos os administradores façam isso. As criptografias com base em AEAD não só melhoram a segurança, mas também o desempenho. O AES-GCM tem suporte de hardware em CPUs recentes e o ChaCha20-Poly1305 aceita implementações rápidas de software. Enquanto isso, as cifras CBC exigem mitigações complexas lentas e acesso a PRNG em cada registro de saída. As cifras baseadas em AEAD também são um pré-requisito para otimizações de HTTP/2 e False Start.
Intent to remove | Chromestatus Tracker | Chromium Bug
Remover gestos do usuário do rolagem por toque
Vimos vários exemplos de anúncios mal escritos ou
maliciosos que acionam a navegação para rolagens por toque em touchstart
ou em todos os eventos touchend
. Se um evento de "roda" não puder abrir um pop-up, a rolagem
de toque também não deverá ser. Isso pode quebrar alguns cenários, por exemplo, a mídia
não é reproduzida por toque ou os pop-ups não são abertos por toque. O Safari já falha em abrir pop-ups
em todos esses cenários.
Intenção de remover | Rastreador Chromestatus | Bug do Chromium
Proibir todas as transferências de scripts com atributos de tipo/idioma inválidos
No momento, o scanner de pré-carregamento do Chrome busca itens em elementos <scripts>
,
independente do valor do atributo type
ou language
, embora o script
não seja executado quando analisado. Ao descontinuar a busca, o scanner de pré-carregamento
e o analisador terão a mesma semântica, e não iniciaremos
buscas para scripts que não vamos usar. O objetivo é salvar dados de usuários que
navegam para sites com muitas tags de script personalizadas que são pós-processadas (como
type="text/template"
, por exemplo).
O uso de scripts inválidos para dar ping em servidores é abordado adequadamente pela API sendBeacon.
Essa mudança alinha o Chrome ao Safari, embora o Firefox ainda solicite scripts independente do tipo ou idioma.
Intenção de remover | Rastreador Chromestatus | Bug do Chromium
Remoção de MediaStreamTrack.getSources()
Esse método não faz mais parte da especificação e não é compatível com nenhum outro
navegador importante. Ele foi substituído por
MediaDevices.enumerateDevices()
,
que o Blink oferece suporte sem flags desde a versão 47 e também
é compatível com outros navegadores. Confira um exemplo abaixo. Essa
função hipotética getCameras()
usa primeiro a detecção de recursos para encontrar e
usar enumerateDevices()
. Se a detecção de recursos falhar, ela vai procurar
getSources()
em MediaStreamTrack
. Por fim, se não houver suporte a nenhuma API,
retorne a matriz cameras
vazia.
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 Chromestatus | Bug do Chromium
Remover a diretiva CSP reflected-xss
Os primeiros rascunhos da especificação da Política de Segurança de Conteúdo do Nível 2
contiam uma diretiva reflected-xss
que oferecia apenas o cabeçalho
X-XSS-Protection
, além de uma sintaxe diferente. Essa diretiva foi
removida da especificação em 2015, mas não antes de ser implementada no Chrome.
O suporte a essa diretiva está sendo removido.
Intent to remove | Chromestatus Tracker | Chromium Bug
Substituir a diretiva "referrer" da CSP
Com a diretiva referrer
da CSP, os proprietários de sites podiam definir uma política de referenciador a partir de um cabeçalho HTTP. Além de ter
uso muito baixo,
esse recurso 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 Referrer-Policy.
Intenção de remover | Rastreador Chromestatus | Bug do Chromium
Remoção do campo PaymentAddress.careOf
A interface PaymentAddress
tem um campo careOf
que não é padrão (nenhum
padrão de endereço conhecido oferece suporte a ele). O campo careOf
também não é
necessário. Os campos de destinatário e organização oferecem suporte suficiente para todos
os casos de uso necessários. A adição de careOf
causa problemas significativos em termos de
interoperabilidade com APIs e esquemas de endereço postal atuais. Para uma discussão
mais completa, leia a
proposta de remoção de especificação
no GitHub.
Intent to remove | Bug do Chromium
Remover SVGViewElement.viewTarget
O atributo SVGViewElement.viewTarget
não faz parte da especificação SVG2.0
e seu uso é pequeno ou inexistente. Esse atributo foi
descontinuado no Chrome 54 e removido.