Interdire les requêtes XMLHTTPRequest() synchrones lors du déchargement de la page
Chrome interdit désormais les appels synchrones à XMLHTTPRequest()
lors du déchargement de la page lorsque l'utilisateur quitte la page ou la ferme.
Cela s'applique à beforeunload
, unload
, pagehide
et visibilitychange
.
Pour vous assurer que les données sont envoyées au serveur lorsqu'une page est désinstallée, nous vous recommandons d'utiliser sendBeacon()
ou Fetch
keep-alive
. Pour le moment, les utilisateurs professionnels peuvent utiliser l'indicateur de règle AllowSyncXHRInPageDismissal
, et les développeurs peuvent utiliser l'indicateur de test d'origine allow-sync-xhr-in-page-dismissal
pour autoriser les requêtes XHR synchrones lors du déchargement de la page. Il s'agit d'une mesure temporaire de désactivation. Nous prévoyons de supprimer ce flag dans Chrome 88.
Pour en savoir plus sur cette option et les alternatives, consultez Interdire les requêtes XMLHTTPRequest() synchrones lors de la fermeture des pages.
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
Compatibilité FTP obsolète
L'implémentation actuelle du protocole FTP dans Chrome n'est pas compatible avec les connexions chiffrées (FTPS), ni les proxys. L'utilisation de FTP dans le navigateur est suffisamment faible pour qu'il ne soit plus viable d'investir dans l'amélioration du client FTP existant. De plus, de nouveaux clients FTP plus performants sont disponibles sur toutes les plates-formes concernées.
Chrome 72 a supprimé la prise en charge de la récupération des sous-ressources de document via FTP et du rendu des ressources FTP de niveau supérieur. Actuellement, l'accès aux URL FTP affiche une liste de répertoires ou un téléchargement, en fonction du type de ressource. Un bug dans Google Chrome 74 et versions ultérieures a entraîné la suppression de la compatibilité avec l'accès aux URL FTP via des proxys HTTP. La compatibilité avec les proxys pour FTP a été entièrement supprimée dans Google Chrome 76.
Les fonctionnalités restantes de l'implémentation FTP de Google Chrome sont limitées à l'affichage d'une liste de répertoires ou au téléchargement d'une ressource via des connexions non chiffrées.
Le calendrier d'abandon est provisoirement défini comme suit:
Chrome 80 (version stable en février 2020)
Le protocole FTP est désactivé par défaut pour les clients non professionnels, mais peut être activé à l'aide des indicateurs de ligne de commande --enable-ftp
ou --enable-features=FtpProtocol
. Vous pouvez également l'activer à l'aide de l'option #enable-ftp
dans chrome://flags.
Chrome 81 (version stable en mars 2020)
Le protocole FTP est désactivé par défaut pour toutes les installations de Chrome, mais peut être activé à l'aide des options de ligne de commande --enable-ftp
ou --enable-features=FtpProtocol
.
Chrome 82 (version stable en avril 2020)
La compatibilité FTP sera complètement supprimée.
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
Interdire les pop-ups pendant le déchargement de la page
Les pages ne peuvent plus utiliser window.open()
pour ouvrir une nouvelle page lors du déchargement. Le bloqueur de pop-up Chrome interdisait déjà cela, mais il est désormais interdit, que le bloqueur de pop-up soit activé ou non.
Les entreprises peuvent utiliser l'indicateur de stratégie AllowPopupsDuringPageUnload
pour autoriser les pop-ups lors du déchargement. Chrome prévoit de supprimer cet indicateur dans Chrome 82.
Intent to Remove | Chromestatus Tracker | Bug Chromium
Suppression de la sérialisation et du transfert ImageBitmap non propres à l'origine
Des erreurs sont désormais générées lorsqu'un script tente de sérialiser ou de transférer un ImageBitmap non propre à l'origine. Un ImageBitmap non propre à l'origine est celui qui contient des données d'images entre origines multiples qui ne sont pas validées par la logique CORS.
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
La gestion des protocoles nécessite désormais un contexte sécurisé
Les méthodes registerProtocolHandler()
et unregisterProtocolHandler()
nécessitent désormais un contexte sécurisé. Ces méthodes sont capables de reconfigurer les états client de manière à permettre la transmission de données potentiellement sensibles sur un réseau.
La méthode registerProtocolHandler()
fournit à une page Web un mécanisme lui permettant de s'enregistrer pour gérer un protocole après qu'un utilisateur a donné son consentement. Par exemple, une application de messagerie Web peut s'enregistrer pour gérer le schéma mailto:
. La méthode unregisterProtocolHandler()
correspondante permet à un site d'abandonner son enregistrement de gestion de protocole.
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
API Web Components v0 supprimées
Web Components v0 est désormais supprimé de Chrome. Les API Web Components v1 sont une norme de plate-forme Web disponible dans Chrome, Safari, Firefox et (bientôt) Edge. Pour obtenir des conseils sur la migration, consultez Mise à jour de Web Components: plus de temps pour passer aux API v1. Les fonctionnalités suivantes ont été supprimées. Cette suppression concerne les éléments listés ci-dessous.
Éléments personnalisés
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
Importations HTML
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
Shadow DOM
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
Suppression de -webkit-appearance:button pour les éléments arbitraires
Modification de -webkit-appearance:button
pour qu'il ne fonctionne qu'avec les boutons <button>
et <input>
. Si button
est spécifié pour un élément non compatible, l'élément a l'apparence par défaut. Toutes les autres restrictions -webkit-appearance
sont déjà appliquées.
Intent to Remove | État de la plate-forme Chrome | Bug Chromium
Règlement d'obsolescence
Pour maintenir la plateforme en bon état, nous supprimons parfois des API de la plate-forme Web qui ont fait leur temps. Plusieurs raisons peuvent expliquer la suppression d'une API, par exemple:
- Elles sont remplacées par des API plus récentes.
- Elles sont mises à jour pour refléter les modifications apportées aux spécifications afin d'assurer l'alignement et la cohérence avec les autres navigateurs.
- Il s'agit de tests préliminaires qui n'ont jamais abouti dans d'autres navigateurs et qui peuvent donc alourdir la charge d'assistance pour les développeurs Web.
Certaines de ces modifications n'auront qu'un impact très limité sur un nombre très faible de sites. Pour atténuer les problèmes à l'avance, nous essayons de prévenir les développeurs à l'avance afin qu'ils puissent apporter les modifications nécessaires pour que leurs sites continuent de fonctionner.
Chrome dispose actuellement d'un processus d'abandon et de suppression des API, qui se résume comme suit:
- Annoncez-le sur la liste de diffusion blink-dev.
- Définissez des avertissements et indiquez des échelles de temps dans la console d'outils pour les développeurs Chrome lorsque l'utilisation est détectée sur la page.
- Attendez, surveillez, puis supprimez la fonctionnalité lorsque l'utilisation diminue.
Vous trouverez la liste de toutes les fonctionnalités obsolètes sur chromestatus.com à l'aide du filtre obsolète et des fonctionnalités supprimées à l'aide du filtre supprimé. Nous essaierons également de résumer certains des changements, des raisonnements et des chemins de migration dans ces articles.