Chrome et Firefox vont bientôt atteindre la version majeure 100

Modifications apportées à la chaîne user-agent, stratégies adoptées par Chrome et Firefox pour atténuer l'impact et comment vous pouvez aider.

Chrome et Firefox atteindront la version 100 dans quelques mois. Cela peut entraîner des erreurs sur les sites qui s'appuient sur l'identification de la version du navigateur pour exécuter la logique métier. Cet article présente la chronologie des événements, les stratégies que Chrome et Firefox mettent en œuvre pour atténuer l'impact et la manière dont vous pouvez aider.

Chaîne user-agent

User-Agent (UA) est une chaîne que les navigateurs envoient dans les en-têtes HTTP afin que les serveurs puissent identifier le navigateur. La chaîne est également accessible via JavaScript avec navigator.userAgent. Il se présente généralement comme suit:

<browser_name>/<major_version>.<minor_version>

Par exemple, les dernières versions des navigateurs au moment de la publication de cet article sont les suivantes:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

Version majeure 100 : numéro de version à trois chiffres

La version majeure 100 est un jalon important pour Chrome et Firefox. Cela peut également entraîner des erreurs sur les sites Web, car nous passons d'un numéro de version à trois chiffres à un numéro de version à deux chiffres. Les développeurs Web utilisent toutes sortes de techniques pour analyser ces chaînes, du code personnalisé à l'utilisation de bibliothèques d'analyse de l'User-Agent, qui peuvent ensuite être utilisées pour déterminer la logique de traitement correspondante. L'User-Agent et tous les autres mécanismes de création de rapports sur les versions indiqueront bientôt un numéro de version à trois chiffres.

Calendrier de la version 100

Les navigateurs de la version 100 seront d'abord publiés en versions expérimentales (Chrome Canary, Firefox Nightly), puis en versions bêta, puis enfin dans le canal stable.

Navigateur Chronologie
Chrome (calendrier des versions) 29 mars 2022
Firefox (calendrier de publication) 3 mai 2022

Pourquoi un numéro de version à trois chiffres peut-il poser problème ?

Lorsque les navigateurs ont atteint la version 10 il y a un peu plus de 12 ans, de nombreux problèmes ont été découverts avec les bibliothèques d'analyse de l'User-Agent, car le numéro de version majeure est passé d'un chiffre à deux.

En l'absence de spécification unique à suivre, les différents navigateurs ont des formats différents pour la chaîne User-Agent et une analyse User-Agent spécifique au site. Il est possible que certaines bibliothèques d'analyse contiennent des hypothèses ou des bugs codés en dur qui ne tiennent pas compte des numéros de version majeure à trois chiffres. De nombreuses bibliothèques ont amélioré la logique d'analyse lorsque les navigateurs sont passés aux numéros de version à deux chiffres. Le passage à trois chiffres devrait donc entraîner moins de problèmes. Mike Taylor, ingénieur de l'équipe Chrome, a effectué une enquête sur les bibliothèques d'analyse UA courantes, qui n'a révélé aucun problème. L'exécution d'expériences Chrome sur le terrain a révélé certains problèmes, qui sont en cours de résolution.

Que font les navigateurs à ce sujet ?

Firefox et Chrome ont effectué des tests dans lesquels les versions actuelles du navigateur indiquent la version majeure 100 afin de détecter d'éventuelles erreurs sur les sites Web. Cela a entraîné quelques problèmes signalés, dont certains ont déjà été corrigés. Ces tests continueront de s'exécuter jusqu'à la sortie de la version 100.

Des stratégies de mitigation de sauvegarde sont également en place, au cas où la version 100 sur les canaux stables causerait plus de dommages aux sites Web que prévu.

Atténuation Chrome

Dans Chrome, le plan de sauvegarde consiste à utiliser un indicateur pour figer la version majeure sur 99 et à indiquer le numéro de version majeure réel dans la partie de la chaîne user-agent correspondant à la version mineure (le code a déjà été implémenté).

La version de Chrome indiquée dans la chaîne User-Agent suit le format <major_version>.<minor_version>.<build_number>.<patch_number>.

Si le plan de sauvegarde est utilisé, la chaîne User-Agent se présente comme suit:

99.101.4988.0

Chrome effectue également des tests pour s'assurer que le signalement d'une valeur à trois chiffres dans la partie de la chaîne correspondant à la version mineure ne provoque pas de panne, car la version mineure de la chaîne User-Agent de Chrome indique 0 depuis très longtemps. L'équipe Chrome décidera d'utiliser l'option de sauvegarde en fonction du nombre et de la gravité des problèmes signalés.

Atténuation dans Firefox

Dans Firefox, la stratégie dépend de l'importance de la panne. Firefox dispose d'un mécanisme d'intervention sur le site. L'équipe Web Compatibility de Mozilla peut corriger les sites Web défectueux en temps réel dans Firefox à l'aide de ce mécanisme. Si vous saisissez about:compat dans la barre d'URL de Firefox, vous pouvez voir ce qui est en cours de correction. Si un site ne fonctionne pas avec la version majeure 100 sur un domaine spécifique, vous pouvez le résoudre en envoyant la version 99 à la place.

Si la défaillance est généralisée, il est possible de geler le numéro de version majeure. Différentes stratégies sont alors possibles, chacune ayant ses avantages et ses inconvénients. Mozilla peut envoyer le numéro de version réel en tant que numéro de version mineure, congeler entièrement la chaîne telle quelle ou envoyer le numéro de version réel via d'autres paramètres.

Chaque stratégie qui ajoute de la complexité à la chaîne User-Agent a un impact important sur l'écosystème. Travaillons ensemble pour éviter un autre comportement étrange.

Que pouvez-vous faire pour nous aider ?

Dans Chrome et Firefox Nightly, vous pouvez configurer le navigateur pour qu'il indique la version 100 dès maintenant et signaler les problèmes que vous rencontrez.

Configurer Chrome pour qu'il indique la version majeure comme étant 100

  1. Accédez à chrome://flags/#force-major-version-to-100.
  2. Définissez l'option sur Enabled.

Configurer Firefox Nightly pour indiquer la version majeure comme 100

  1. Ouvrez le menu "Paramètres" de Firefox Nightly.
  2. Recherchez "Firefox 100", puis cochez l'option "Chaîne user-agent Firefox 100".

Rapports de test et de fichier

  • Si vous gérez un site Web, testez-le avec Chrome et Firefox 100. Examinez votre code et vos bibliothèques d'analyse de l'User-Agent, et assurez-vous qu'ils peuvent gérer les numéros de version à trois chiffres. Nous avons compilé certains des modèles qui ne fonctionnent plus actuellement.
  • Si vous développez une bibliothèque d'analyse de l'User-Agent, ajoutez des tests pour analyser les versions supérieures ou égales à 100. Nos premiers tests montrent que les versions récentes des bibliothèques peuvent gérer cela correctement. Toutefois, le Web a une longue histoire. Par conséquent, si vous disposez d'anciennes versions de bibliothèques d'analyse, il est temps de rechercher des problèmes et éventuellement de les mettre à niveau.
  • Si vous naviguez sur le Web et que vous remarquez des problèmes avec la version majeure 100, envoyez un rapport sur webcompat.com.