Abandon et suppression d'API dans Chrome 57

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 57, qui est en version bêta début février. Cette liste est susceptible d'être modifiée à tout moment.

Supprimer l'attribut BluetoothDevice.uuids

L'attribut BluetoothDevice.uuids est en cours de suppression pour que l'API Web Bluetooth soit conforme à la spécification actuelle. Vous pouvez récupérer tous les services GATT autorisés en appelant device.getPrimaryServices().

Bug Chromium

Supprimer l'élément de génération de clé

Depuis Chrome 49, le comportement par défaut de <keygen> est de renvoyer la chaîne vide, à moins qu'une autorisation ne soit accordée à cette page. IE/Edge n'est pas compatible avec <keygen> et n'a pas indiqué de signaux publics comme compatibles avec <keygen>. Firefox autorise déjà <keygen> par un geste de l'utilisateur, mais il encourage publiquement sa suppression. Safari expédie <keygen> et n'a pas exprimé d'opinion publique concernant son maintien dans cette version. Avec Chrome 57, cet élément est supprimé.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de l'API de gestion des tampons de temps de ressources préfixée

Deux méthodes ainsi qu'un gestionnaire d'événements, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize() et onwebkitresourcetimingbufferfull, sont obsolètes et spécifiques au fournisseur. Les versions standards de ces API sont compatibles depuis Chrome 46, et les fonctions préfixées étaient également obsolètes dans cette version. Ces fonctionnalités ont été initialement implémentées dans WebKit, mais Safari ne les a pas activées. Firefox, IE 10+ et Edge ne proposent qu'une version sans préfixe de l'API. Par conséquent, les versions Webkit sont supprimées.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression de ServiceWorkerMessageEvent en faveur de MessageEvent.

La spécification HTML a étendu MessageEvent afin d'autoriser ServiceWorker comme type pour l'attribut source. client.postMessage() et la création d'événements de message personnalisés utilisent MessageEvent au lieu de ServiceWorkerMessageEvent. Suppression de ServiceWorkerMessageEvent.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Suppression des alias globaux IndexedDB avec webkit-prefixed

Le point d'entrée IndexedDB et les constructeurs globaux ont été exposés avec les préfixes webkit autour de Chrome 11. Les versions sans préfixe ont été ajoutées dans Chrome 24, et les versions avec préfixe ont été abandonnées dans Chrome 38. Les interfaces suivantes sont concernées:

  • webkitIndexedDB (point d'entrée principal)
  • webkitIDBKeyRange (constructeur global non appelable, mais doté de méthodes statiques utiles)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (constructeurs globaux non appelables)

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

WebAudio: supprimer les préfixes AudioContext et hors connexionAudioContext

Chrome est compatible avec WebAudio depuis mi-2011, y compris AudioContext. OfflineAudioContext a été ajouté l'année suivante. Compte tenu de la durée d'assistance des interfaces standards et de l'objectif à long terme de Google de supprimer les fonctionnalités préfixées, les versions préfixées de ces interfaces sont obsolètes depuis fin 2014 et sont en cours de suppression.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Abandon et suppression de webkitCancelRequestAnimationFrame

La méthode webkitCancelRequestAnimationFrame() est une API obsolète spécifique au fournisseur, et la cancelAnimationFrame() standard est depuis longtemps compatible avec Chromium. Par conséquent, la version du Webkit est en cours de suppression.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Abandon de la mise en 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 que même la 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 est obsolète dans Chrome 57 et devrait être supprimé dans Chrome 58.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Abandon de FileReaderSync dans les service workers

La spécification de service worker indique toujours (non normatif) que "aucun type de requêtes synchrones ne doit être initié au sein d'un service worker" afin d'éviter de bloquer le service worker. Le blocage du service worker bloque toutes les requêtes réseau provenant de pages contrôlées. Malheureusement, l'API FileReaderSync est disponible depuis longtemps par les service workers.

Actuellement, seuls Firefox et Chrome exposent FileReaderSync dans les service workers. Dans la discussion sur les spécifications, il est convenu que ce problème doit être résolu dans Firefox. Cette suppression est prévue dans Chrome 59.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium

Abandon 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é est obsolète. Après la suppression, ce qui est attendu dans 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

Abandon de RTCRtcpMuxPolicy pour "négocié"

Le rtcpMuxPolicy permet à Chrome de spécifier la règle à privilégier concernant l'utilisation du multiplexage RTP/RTCP. Dans Chrome 57, nous avons remplacé la valeur par défaut rtcpMuxPolicy par "require" (nécessite) et avons abandonné "deved" (négocier) pour les raisons suivantes:

  • Le RTCP non multiple utilise des ressources réseau supplémentaires.
  • La suppression de "négocier" simplifie la surface de l'API, car un "RtpSender"/"RtpReceiver" ne comportera alors qu'un seul transport.

Dans Chrome 57, l'option "négocier" est obsolète. Nous pensons qu'il s'agit d'une modification non destructive, car l'utilisateur recevra un message d'abandon et RTCPeerConnection pourra toujours être créé. La suppression est effectuée dans Chrome 63.

Intention d'abandon | Bug Chromium

Abandon de la prise en charge des identifiants intégrés dans les requêtes de sous-ressources

Le codage en dur des identifiants dans les demandes de sous-ressources est problématique du point de vue de la sécurité, car il a permis par le passé à des pirates informatiques d'utiliser des identifiants par force brute. Ces dangers sont exacerbés pour les requêtes de sous-ressources authentifiées qui atteignent des plages d'adresses IP internes (vos routeurs, etc.). Compte tenu de sa faible utilisation, fermer cette (petite) faille de sécurité semble raisonnable.

Les développeurs peuvent intégrer des ressources qui ne nécessitent pas d'authentification de base/d'authentification digest, en s'appuyant plutôt sur des cookies et d'autres mécanismes de gestion de session.

Intention de suppression | Outil de suivi Chromestatus | Bug Chromium