Abandons et suppressions dans Chrome 60

Joe Medley
Joe Medley

Dans presque toutes les versions de Chrome, un nombre important de mises à jour des améliorations apportées au produit, à ses performances, ainsi qu'aux fonctionnalités du Web Plate-forme. Cet article décrit les abandons et les suppressions dans Chrome 60, en version bêta depuis le 8 juin. Cette liste est susceptible d'être modifiée à tout moment.

Sécurité

crypto.subtle nécessite désormais une origine sécurisée

L'API Web Crypto compatible depuis que Chrome 37 a toujours fonctionné sur des environnements non sécurisés origines. En raison de la politique établie depuis longtemps par Chrome préférer les origines sécurisées pour les fonctionnalités puissantes, crypto.subtle n'est pas seulement visible sur les origines sécurisées.

Projet de suppression | Bug Chromium

Supprimer les navigations déclenchées par le contenu depuis le cadre supérieur vers les URL de données

Étant donné qu'ils ne connaissent pas les navigateurs non techniques, nous le schéma data: est de plus en plus utilisé pour le spoofing et l'hameçonnage. contre les attaques. Pour éviter cela, nous empêchons les pages Web de charger data: URL dans le cadre supérieur. Cela s'applique aux balises <a>, window.open, window.location et d'autres mécanismes similaires. Le schéma data: fonctionnera toujours pour chargées par une page.

Cette fonctionnalité était obsolète dans Chrome 58 et a été supprimée.

Projet de suppression | Chromestatus Tracker | Bug Chromium

Désactiver temporairement navigateurator.sendBeacon() pour certains blobs

La fonction navigator.sendBeacon() est disponible depuis Chrome 39. Comme initialement implémenté, l'argument data de la fonction pouvait contenir n'importe quelle blob arbitraire dont le type n'est pas ajouté à la liste d'autorisation CORS. Nous pensons qu'il s'agit une menace de sécurité, même si personne n'a encore essayé de l'exploiter. Parce que nous ne trouver une solution immédiate et raisonnable. Pour le moment, sendBeacon() ne peut pas ne pourra plus être appelé sur les blobs dont le type n'est PAS ajouté à la liste d'autorisation CORS.

Bien que cette modification ait été appliquée pour Chrome 60, elle a depuis été fusionnée. à Chrome 59.

Bug Chromium

CSS

Faire en sorte que le combinateur de descendants anti-ombres se comporte comme un combinateur de descendants

Le combinateur de descendants anti-ombres (>>>), qui fait partie de Module de champ d'application CSS niveau 1 , était destiné à faire correspondre les enfants d'un élément ancêtre particulier même lorsqu'elles sont apparues à l'intérieur d'un arbre sombre. Cela avait certaines limites. Tout d'abord, conformément aux spécifications, ne pouvait être utilisée que dans les appels JavaScript tels que querySelector() et n'a pas travailler dans des feuilles de style. Plus important encore, les fournisseurs de navigateurs n'ont pas réussi ne se limite pas à un seul niveau du Shadow DOM.

Par conséquent, le combinateur descendant a été supprimé des spécifications applicables. y compris Shadow DOM v1. Plutôt que d'interrompre les pages Web en supprimant ce sélecteur de Chromium, nous avons choisi d'utiliser un alias pour le descendant des ombres au combinateur descendant. À l'origine, le comportement était obsolètes depuis Chrome 45. Le nouveau comportement est implémenté dans Chrome 61.

Projet de suppression | Chromestatus Tracker | Bug Chromium

JavaScript

Arrêt et suppression de RTCPeerConnection.getStreamById()

Il y a près de deux ans, getStreamById() a été supprimé de la spécification WebRTC. La plupart des autres navigateurs ont l'ont déjà supprimé de leurs implémentations. Bien que cette fonction soit peu utilisés, on pense également que des mineurs risque d'interopérabilité avec les navigateurs basés sur Edge et WebKit autres que Safari où getStreamById() est toujours accepté. Développeurs ayant besoin d'une alternative vous trouverez un exemple de code dans la section "Intention de suppression" ci-dessous.

La suppression est disponible dans Chrome 62.

Projet de suppression | Chromestatus Tracker | Bug Chromium

Abandon de SVGPathElement.getPathSegAtLength

Il y a plus de deux ans, getPathSegAtLength() a été supprimé des spécifications SVG. Étant donné qu'il n'existe qu'une poignée d'appels pour cette méthode dans httparchive, il est obsolète dans Chrome 60. La suppression devrait avoir lieu dans Chrome 62, qui sera expédiée au début ou à la mi-octobre.

Projet d'abandon | Chromestatus Tracker | Bug Chromium

Déplacer getContextAttributes() derrière un indicateur

La fonction getContextAttributes() est compatible avec CanvasRenderingContext2D depuis 2013. Toutefois, cette fonctionnalité ne faisait partie d'aucune norme fait partie de l'une d'elles depuis lors. Elle aurait dû être implémentée en arrière-plan l'option de ligne de commande --enable-experimental-canvas-features, mais qui a été supprimée par erreur ; non. Dans Chrome 60, cette erreur a été corrigée. On pense que cela le changement est sans risque, car aucune donnée n'indique que quelqu'un utilise la méthode.

Bug Chromium

Suppression de Headers.prototype.getAll()

La fonction Headers.prototype.getAll() est supprimée conformément à la dernière de la spécification Fetch.

Projet de suppression | Chromestatus Tracker | Bug Chromium

Supprimer indexéDB.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 a fait fureur. L'API renvoie de manière asynchrone la liste des bases de données existantes. d'origine, ce qui semblait assez logique.

Malheureusement, la conception présente un défaut, car les résultats peuvent devenir obsolètes dès que possible à mesure qu'elles sont renvoyées. Vous ne pouvez donc l'utiliser que pour la journalisation, logique d'application. La problème GitHub suit/liens vers discussion précédente sur les alternatives, ce qui nécessiterait une approche différente. Même si les développeurs ont suscité un intérêt de la part des développeurs, étant donné l'absence d'échanges progression du navigateur. Les auteurs de la bibliothèque ont résolu le problème.

Les développeurs qui ont besoin de cette fonctionnalité doivent développer leur propre solution. Par exemple, les bibliothèques comme Dexie.js utilisent 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é était obsolète dans Chrome 58 et a été supprimée.

Projet de suppression | Chromestatus Tracker | Bug Chromium

Supprimer WEBKIT_KEYFRAMES_RULE et WEBKIT_KEYFRAME_RULE

Constantes WEBKIT_KEYFRAMES_RULE et WEBKIT_KEYFRAME_RULE non standards sont supprimés de Règle CSS. Les développeurs doivent utiliser KEYFRAMES_RULE et KEYFRAME_RULE à la place.

Projet de suppression | Chromestatus Tracker | Bug Chromium

Interface utilisateur

Exiger un geste de l'utilisateur pour les boîtes de dialogue beforeunload

À partir de Chrome 60, la boîte de dialogue beforeunload ne s'affiche que si le cadre tentant d'afficher un écran, il a reçu un geste ou une interaction de l'utilisateur (ou si si aucune image intégrée n'a reçu un tel geste). Précisons qu'il ne s'agit pas modification de l'envoi de l'événement beforeunload. Il s’agit simplement d’un changement pour si la boîte de dialogue est affichée.

La boîte de dialogue beforeunload est une boîte de dialogue d'application. Par conséquent, il est intrinsèquement hostile à l'utilisateur, c'est-à-dire qu'il répond à la navigation d'un utilisateur en interrogeant les de la décision. Cette fonctionnalité peut s'avérer utile. Par exemple, il est souvent utilisé pour avertir les utilisateurs lorsqu'ils perdront des données en naviguant.

Même si une page pouvait fournir du texte pour la boîte de dialogue beforeunload, supprimée il y a quelque temps, beforeunload boîtes de dialogue restent un vecteur d'abus. Dans En particulier, les boîtes de dialogue beforeunload sont utilisées dans les sites Web frauduleux, où les contenus audio en lecture automatique et les textes menaçants fournissent un contexte dans lequel le navigateur fourni "Voulez-vous vraiment quitter cette page ?" le message devient inquiétant.

Nous voulons enchaîner les fils et n'autoriser que les bonnes utilisations de beforeunload. . La boîte de dialogue est utilisée à bon escient lorsque l'état de l'utilisateur perdu. Si l'utilisateur n'a jamais interagi avec la page, il ne peut pas avoir l'état qui pourrait être perdu. Ainsi, nous ne risquons pas de perdre des données utilisateur en supprimant la boîte de dialogue dans ce cas.