Abandons et suppressions dans Chrome 58

Joe Medley
Joe Medley

Dans presque chaque version de Chrome, nous constatons un grand nombre de mises à jour et d'améliorations du produit, de ses performances et des fonctionnalités de la plate-forme Web. Cet article décrit les abandons et les suppressions dans Chrome 58, qui est en version bêta depuis le 16 mars. Cette liste est susceptible d'être modifiée à tout moment.

La souris sur Android arrête le déclenchement d'événements tactiles

Jusqu'à Chrome 57, les événements de souris de bas niveau Android dans Chrome suivaient principalement un chemin d'événement conçu pour les interactions tactiles. Par exemple, un mouvement de déplacement de la souris qui se produit lorsque l'utilisateur appuie sur le bouton de la souris génère une MotionEvents, diffusée via View.onTouchEvent.

Toutefois, comme les événements tactiles ne sont pas compatibles avec le survol, les mouvements de souris ont suivi un tracé distinct. La conception a de nombreux effets secondaires, y compris des interactions avec la souris déclenchant TouchEvents, tous les boutons de la souris apparaissant comme des boutons gauche de la souris et MouseEvents supprimé par TouchEvents.

À partir de Chrome 58, une souris installée sur Android M ou version ultérieure:

  • Ne déclenche plus TouchEvents.
  • Déclenchez une séquence cohérente de MouseEvents avec les boutons appropriés et d'autres propriétés.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de la correspondance non sensible à la casse pour l'attribut usemap.

L'attribut usemap était auparavant défini comme sans casse. Malheureusement, sa mise en œuvre a été suffisamment compliquée pour qu'aucun navigateur ne l'ait implémentée correctement. Des recherches suggèrent qu'un algorithme aussi complexe est inutile, et même que la mise en correspondance ASCII non sensible à la casse n'est pas nécessaire.

Par conséquent, la spécification a été mise à jour afin qu'une correspondance sensible à la casse soit appliquée. L'ancien comportement était obsolète dans Chrome 57 et a été supprimé.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Supprimer les navigations à l'aide des cadres supérieurs déclenchées par le contenu des URL de données

En raison du caractère inconnu des utilisateurs de navigateurs non techniques, nous constatons de plus en plus que le schéma data: est utilisé dans les attaques de spoofing et d'hameçonnage. Pour éviter cela, nous empêchons les pages Web de charger les URL data: dans le frame supérieur. Cela s'applique aux balises <a>, window.open, window.location et à des mécanismes similaires. Le schéma data: continue de fonctionner pour les ressources chargées ci-dessous par une page.

Cette fonctionnalité sera supprimée dans Chrome 60.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression des noms obsolètes des propriétés de trajectoire d'animation

Les propriétés CSS du tracé d'animation permettent aux auteurs d'animer n'importe quel objet graphique selon un chemin d'accès qu'ils ont spécifié. Conformément à la spécification, plusieurs propriétés ont été implémentées dans Chrome 45. Le nom de ces propriétés a été modifié dans les spécifications mi-2016. Chrome a implémenté les nouveaux noms dans Chrome 55 et Chrome 56. Des avertissements d'abandon de la console ont également été implémentés.

Dans Chrome 58, les anciens noms de propriété sont en cours de suppression. Les propriétés concernées et leur nouveau nom sont indiqués ci-dessous.

Propriété supprimée Nom actuel
trajectoire d'animation Chemin de décalage
décalage du mouvement distance de décalage
mouvement-rotation décalage-rotation
mouvement offset

Intention de suppression

Supprimer l'EME des contextes non sécurisés

Certaines utilisations des extensions multimédias chiffrées (EME) exposent des implémentations de gestion des droits numériques qui ne sont pas Open Source, impliquent l'accès à des identifiants uniques persistants et/ou s'exécutent sans bac à sable ou avec un accès privilégié. Les risques de sécurité sont accrus pour les sites exposés via HTTP non sécurisé, car ils peuvent être attaqués par n'importe quel utilisateur du canal. De plus, lorsque le consentement de l'utilisateur est requis, l'acceptation persistante d'un site HTTP non sécurisé peut être exploitée par ce pirate informatique.

La compatibilité avec les contextes non sécurisés a été supprimée de la spécification EME version 1 et n'est pas prise en charge dans la recommandation proposée ni prévue dans la version finale ultérieure. Elle ne figurera pas dans la prochaine recommandation proposée ni dans la recommandation finale ultérieure. L'API affiche un message d'abandon pour les origines non sécurisées depuis Chrome 44 (mai 2015). Dans Chrome 58, elle est désormais supprimée. Ce changement s'inscrit dans le cadre de nos efforts plus larges visant à supprimer les fonctionnalités puissantes des origines non sécurisées.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de l'ancien appelant pour HTMLEmbedElement et HTMLObjectElement

Le fait qu'une interface comporte un ancien appelant signifie qu'une instance peut être appelée en tant que fonction. Actuellement, HTMLEmbedElement et HTMLObjectElement sont compatibles avec cette fonctionnalité. Dans Chrome 57, cette fonctionnalité a été abandonnée. À partir de Chrome 58, l'appel génère une exception.

Ce changement permet d'aligner Chrome sur les modifications récentes des spécifications. L'ancien comportement n'est pas compatible avec Edge ni Safari, et il est en cours de suppression de Firefox.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression des algorithmes de chiffrement ChaCha20-Poly1305 pré-standards

En 2013, Chrome 31 a déployé de nouvelles suites de chiffrement TLS basées sur les algorithmes ChaCha20 et Poly1305 du professeur Dan Bernstein. Celles-ci ont été standardisées plus tard, avec de légères modifications, à l'IETF sous les normes RFC 7539 et RFC 7905. Nous avons commercialisé la variante standardisée début 2016 avec Chrome 49. Nous supprimons maintenant les variantes préstandards.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de la prise en charge de la correspondance CommonName dans les certificats

Le document RFC 2818 décrit deux méthodes permettant d'associer un nom de domaine à un certificat: utiliser les noms disponibles dans l'extension subjectAlternativeName ou, en l'absence d'extension SAN, recourir au commonName. Le remplacement de commonName a été abandonné dans le document RFC 2818 (publié en 2000), mais la prise en charge reste dans un certain nombre de clients TLS, souvent à tort.

L'utilisation des champs subjectAlternativeName permet de déterminer clairement si un certificat exprime une liaison vers une adresse IP ou un nom de domaine, et est entièrement défini en termes d'interaction avec les contraintes de nom. Cependant, commonName est ambigu et, pour cette raison, sa prise en charge a été une source de bugs de sécurité dans Chrome, dans les bibliothèques qu'il utilise et dans l'écosystème TLS en général.

Le risque de compatibilité pour la suppression de commonName est faible. La RFC 2818 est obsolète depuis près de deux décennies, et les exigences de base (que toutes les autorités de certification approuvées publiquement doivent respecter) exigent la présence d'un subjectAltName depuis 2012. Firefox requiert déjà le subjectAltName pour tous les nouveaux certificats reconnus publiquement depuis Firefox 48.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Les éléments d'interface regions, addRegion() et removeRegion() ont été supprimés de la spécification WebVTT et ont été supprimés dans Chrome 58 afin de respecter la dernière spécification. Cette suppression devrait avoir peu d'impact, car la fonctionnalité n'a jamais été activée par défaut (elle se trouvait derrière un indicateur). Ceux qui ont besoin d'une alternative peuvent utiliser la propriété VTTCue.region qui est ajoutée dans Chrome 58.

Outil de suivi Chromestatus | Bug Chromium

WebAudio: suppression de l'interface AudioSourceNode

L'interface AudioSourceNode ne fait pas partie de la spécification Web Audio, n'est pas constructible et ne comporte aucun attribut. Elle ne dispose donc d'aucune fonctionnalité accessible aux développeurs. Elle est donc supprimée.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de l'attribut global webkitdropzone

L'attribut global dropzone a été introduit par la spécification HTML5 de glisser-déposer en tant que méthode déclarative permettant de spécifier la volonté d'un élément HTML d'être la cible d'une opération de glisser-déposer, les types de contenu pouvant être déposés sur l'élément et l'opération de glisser-déposer (copie/déplacement/lien).

L'attribut n'a pas pu être populaire parmi les fournisseurs de navigateurs. Blink et WebKit n'implémentent qu'une forme préfixée de l'attribut, webkitdropzone. Comme l'attribut dropzone a été supprimé de la spécification début mars 2017, la version préfixée est supprimée de Chrome.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Abandon de l'utilisation non sécurisée des notifications

Les notifications sont une fonctionnalité puissante, car elles permettent aux sites Web d'appeler une UI d'un système pour transmettre soit des informations privées elles-mêmes, soit un signal indiquant que des informations privées ont été modifiées. Les pirates informatiques peuvent renifler ou voler les informations envoyées via une notification via une connexion non sécurisée. Le Web push nécessite une origine sécurisée. Cette modification alignera donc les notifications non push sur les notifications push. Ce changement s'inscrit dans le cadre de nos efforts plus larges visant à supprimer les fonctionnalités puissantes des origines non sécurisées.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Abandonner l'utilisation des notifications issues d'iFrames non sécurisés

Les demandes d'autorisation provenant d'iFrames peuvent prêter à confusion, car il est difficile de faire la distinction entre l'origine de la page parent et celle de l'iFrame à l'origine de la demande. Lorsque le champ d'application des requêtes n'est pas clair, il est difficile pour les utilisateurs de déterminer s'ils doivent accorder ou refuser l'autorisation.

Le fait d'interdire les notifications dans les iFrames harmonise également les exigences d'autorisation de notification avec celles des notifications push, ce qui simplifie la tâche des développeurs.

Les développeurs qui ont besoin de cette fonctionnalité peuvent ouvrir une nouvelle fenêtre pour demander une autorisation de notification.

La suppression est effectuée dans Chrome 62.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de indexéeDB.webkitGetDatabaseNames()

Nous avons ajouté cette fonctionnalité lorsque la base de données indexée était relativement récente dans Chrome et que les préfixes étaient devenus très répandus. L'API renvoie de manière asynchrone une liste de noms de bases de données existantes dans une origine, ce qui semblait suffisamment judicieux.

Malheureusement, la conception présente des défauts, car les résultats peuvent devenir obsolètes dès qu'ils sont renvoyés. Ils ne peuvent donc être réellement utilisés que pour la journalisation, et non pour une logique d'application sérieuse. Le problème GitHub suit/lien vers la discussion précédente sur les alternatives, ce qui nécessiterait une approche différente. Bien que les développeurs aient manifesté un intérêt constant de la part des développeurs, compte tenu de l'absence de progression entre les navigateurs, les auteurs de bibliothèques ont résolu le problème.

Les développeurs qui ont besoin de cette fonctionnalité doivent développer leur propre solution. Les bibliothèques telles que Dexie.js utilisent par exemple une table globale qui est elle-même une autre base de données pour suivre les noms des bases de données.

Cette fonctionnalité est supprimée dans Chrome 60.

Intention d'abandon | Outil de suivi de l'état Chrome | Bug Chromium