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 limiter l'impact, et solutions pour l'aider.

Chrome et Firefox atteindront la version 100 dans quelques mois. Cela peut entraîner des dysfonctionnements sur les sites qui s'appuient sur l'identification de la version du navigateur pour exécuter la logique métier. Cet article décrit la chronologie des événements, les stratégies adoptées par Chrome et Firefox pour atténuer leur impact, et la manière dont vous pouvez les aider.

Chaîne user-agent

User-agent (UA) est une chaîne que les navigateurs envoient dans des en-têtes HTTP afin que les serveurs puissent identifier le navigateur. La chaîne est également accessible via JavaScript avec navigator.userAgent. Elle 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 représente une étape importante pour Chrome et Firefox. Cela peut également entraîner des dysfonctionnements sur les sites Web lorsque nous passons d'un numéro de version à deux chiffres à un numéro de version à trois chiffres. Les développeurs Web utilisent toutes sortes de techniques pour analyser ces chaînes, du code personnalisé à l'utilisation des bibliothèques d'analyse user-agent, qui peuvent ensuite être utilisées pour déterminer la logique de traitement correspondante. L'user-agent et tout autre mécanisme de création de rapports de version indiqueront bientôt un numéro de version à trois chiffres.

Chronologies de la version 100

Les navigateurs de la version 100 seront d'abord disponibles sous forme de versions expérimentales (Chrome Canary et Firefox Nightly), puis en version bêta et enfin sur la version stable.

Visiteur Chronologie
Chrome (calendrier des versions) 29 mars 2022
Firefox (calendrier des versions) 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étectés avec les bibliothèques d'analyse user-agent, car le numéro de version majeure est passé d'un chiffre à deux.

En l'absence de spécification unique à suivre, différents navigateurs ont des formats différents pour la chaîne user-agent et l'analyse user-agent spécifique au site. Il est possible que certaines bibliothèques d'analyse comportent des hypothèses codées en dur ou des bugs qui ne prennent pas en compte les numéros de version majeures à trois chiffres. De nombreuses bibliothèques ont amélioré la logique d'analyse lorsque les navigateurs sont passés à des numéros de version à deux chiffres. Par conséquent, atteindre le jalon à trois chiffres devrait entraîner moins de problèmes. Mike Taylor, ingénieur de l'équipe Chrome, a mené 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 font l'objet de recherches en cours.

Que font les navigateurs à ce sujet ?

Firefox et Chrome ont tous deux effectué des tests où les versions actuelles du navigateur signalent une version majeure 100 afin de détecter une éventuelle dysfonctionnement du site Web. Nous avons donc signalé quelques problèmes, dont certains ont déjà été résolus. L'exécution de ces tests se poursuivra jusqu'à la publication de la version 100.

Des stratégies d'atténuation des risques de sauvegarde sont également en place, au cas où la version 100 publiée sur des canaux stables entraînerait plus de dommages aux sites Web que prévu.

Atténuation de Chrome

Dans Chrome, le plan de sauvegarde consiste à utiliser un indicateur permettant de figer la version majeure à 99 et de signaler le vrai numéro de version majeure dans la partie mineure de la chaîne user-agent (le code a déjà atterri).

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 doit se présenter comme suit:

99.101.4988.0

Chrome effectue également des tests pour s'assurer qu'une valeur à trois chiffres dans la partie version mineure de la chaîne ne cause pas de dysfonctionnement, car la version mineure de la chaîne user-agent Chrome renvoie la valeur 0 depuis très longtemps. L'équipe Chrome décidera d'utiliser ou non l'option de sauvegarde en fonction du nombre et de la gravité des problèmes signalés.

Atténuation de Firefox

Dans Firefox, la stratégie dépend de l'importance de la faille. Firefox dispose d'un mécanisme d'intervention sur le site. L'équipe Mozilla Webcompat peut réparer à chaud les sites Web endommagés dans Firefox à l'aide de ce mécanisme. Si vous saisissez about:compat dans la barre d'adresse de Firefox, vous pouvez voir ce qui est en cours de correction. Si un site ne fonctionne plus avec la version majeure 100 sur un domaine spécifique, vous pouvez résoudre le problème en envoyant la version 99 à la place.

Si la faille est généralisée, il est possible de figer le numéro de version majeure. Il existe donc différentes stratégies possibles, chacune avec ses avantages et ses inconvénients. Mozilla peut envoyer le numéro de version réel en tant que numéro de version mineure, figer la chaîne entièrement telle quelle ou envoyer le numéro de version réel via d'autres paramètres.

Chaque stratégie qui complexifie 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 immédiatement la version 100 et signale les problèmes que vous rencontrez.

Configurer Chrome pour qu'il signale la version majeure 100

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

Configurer Firefox Nightly pour indiquer que la version principale est 100

  1. Ouvrez le menu Paramètres de Firefox Nightly.
  2. Recherchez "Firefox 100", puis cochez l'option "Firefox 100 User-Agent String".

Tester et créer des rapports

  • Si vous gérez un site Web, testez-le avec Chrome et Firefox 100. Examinez votre code d'analyse et vos bibliothèques user-agent, et assurez-vous qu'ils sont capables de gérer des numéros de version à trois chiffres. Nous avons compilé certains des modèles actuellement défaillants.
  • Si vous développez une bibliothèque d'analyse user-agent, ajoutez des tests pour analyser les versions supérieures et égales à 100. Nos premiers tests montrent que les versions récentes des bibliothèques peuvent le gérer correctement. Cependant, le Web a un long passé. Par conséquent, si vous disposez d'anciennes versions des bibliothèques d'analyse, il est temps de vérifier s'il existe des problèmes et d'effectuer une mise à niveau à terme.
  • Si vous naviguez sur le Web et que vous remarquez des problèmes avec la version majeure 100, envoyez un rapport sur webcompat.com.