Dans quelques semaines, en ce début 2022, arrivent Chrome 100 et Firefox 100. Cette nouvelle version, en apparence anodine, pourrait toutefois causer des soucis avec des sites web.

Qu’il semble loin le temps où les navigateurs web annonçaient la sortie de Google Chrome 3 et de Firefox 4. Aujourd’hui, on parle plutôt de Google Chrome 98 et de Firefox 97. Dans quelques mois, en ce début 2022, les deux logiciels atteindront la barre symbolique de la version 100. Une étape symbolique, mais peut-être pas sans conséquence pour les sites web qui s’appuient dessus.

En effet, le numéro de version d’un navigateur n’est pas juste un indicateur qui permet à l’internaute de savoir quelle génération du logiciel il utilise. C’est aussi un signal envoyé aux sites, via une chaîne d’information qui est appelée « User Agent » (agent de l’utilisateur), pour identifier certains éléments de la configuration informatique de chaque internaute.

Ainsi, pour Firefox, l’User Agent peut ressembler à ça :

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0

Et pour Google Chrome :

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36

Le numéro de version est affiché en gras ici. C’est surtout le premier bloc de chiffres qui est utile (la chaîne se décline en : nom du navigateur / version majeure . version mineure). Or, il apparaît que la gestion de l’User Agent risque d’avoir des soucis au moment de passer de deux chiffres dans le premier bloc (Firefox/15.x, Firefox/32.x, Firefox/97.x, par exemple), à trois.

Un chiffre de plus cause tant de tracas

Il s’avère que ce problème s’est manifesté il y a douze ans, quand il y a déjà eu une évolution de la valeur du premier bloc, passant d’un seul chiffre à deux. C’est ce que soulignent trois responsables du développement de Mozilla, Karl Dubost, Chris Peterson, Ali Beyad, dans un article du 15 février 2022 qui anticipe justement le passage à la version 100, dans quelques semaines.

« Quand 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’agent utilisateur, car le numéro de version majeure est passé d’un chiffre à deux », est-il expliqué. Or, ce problème pourrait de nouveau se manifester : Firefox 100 est prévu pour le 3 mai et Chrome 100 pour le 29 mars.

« En l’absence d’une spécification unique à suivre, les différents navigateurs ont des formats différents pour la chaîne User Agent, et une analyse syntaxique User Agent spécifique au site », continuent les trois auteurs. Or, cela pourrait occasionner des problèmes sur les sites qui dépendent de l’identification de la version du navigateur.

Ce souci vous est familier ? C’est peut-être parce que vous avez eu vent d’un bug potentiel concernant Chrome, en décembre. Celui-ci porte justement sur la gestion de l’User Agent. Ici, l’affaire portait sur Duda, un kit de développement de sites web. Il était à craindre que Duda, ne sachant pas interpréter une version à trois chiffres, voit Chrome 100 comme étant Chrome 10.

Google Chrome
La bascule des navigateurs sur la version 100 est attendue avec une certaine appréhension par Google et Mozilla. // Google

Pour Duda, les choses sont vite rentrées dans l’ordre. « L’équipe DevOps de Duda a pris des mesures immédiates et a corrigé le problème en quelques heures », a-t-il été expliqué dans un article publié le 25 décembre. Mais si tout est bien qui finit bien ici, il peut y avoir ailleurs sur le web des sites qui n’ont pris aucune mesure ou ne sont pas au courant.

Que faut-il alors faire ? Faut-il repousser la sortie de Chrome 100 et de Firefox 100 de plusieurs mois, au cas où ? Faut-il « geler » le premier bloc de l’User Agent à 99 et utiliser le bloc suivant (utilisé pour indiquer la version mineure) pour renseigner les futures mises à jour ? Par exemple, la version 100 de Firefox ne serait pas Firefox/100.0 mais Firefox/99.1 ou Firefox/99.100 )

Il y a justement des plans qui sont en train d’être mis en place, à la fois du côté de Chrome et de Firefox, pour négocier ce virage. Les deux navigateurs prévoient entre autres une stratégie de secours consistant à figer leur version à 99, en déportant le numéro suivant sur le bloc d’après. Cela pourrait notamment dépendre de l’étendue du bug.

« Si la panne est généralisée, Mozilla peut geler temporairement la version majeure de Firefox à 99 »

Mozilla

« La stratégie dépendra de l’importance de la casse. Firefox dispose d’un mécanisme d’intervention sur les sites. L’équipe peut réparer à chaud les sites web cassés dans Firefox en utilisant ce mécanisme. […] Si un site tombe en panne alors que la version majeure est 100 sur un domaine spécifique, il est possible de le réparer en envoyant la version 99 à la place », détaille Mozilla.

« Si la panne est généralisée et que les interventions sur les sites individuels deviennent ingérables, Mozilla peut geler temporairement la version majeure de Firefox à 99, puis tester d’autres options », ajoute l’éditeur de Firefox. Un plan similaire est prévu pour Chrome, en déplaçant la valeur sur le bloc d’après (ce qui donnerait Chrome/99.100.04758.102, par exemple).

D’ici la sortie de Chrome 100 et Firefox 100, les tests continuent chez Google et Mozilla pour évaluer l’impact de chaque solution. Car il ne s’agirait pas que le remède soit pire que le mal. « Chaque stratégie qui ajoute de la complexité à la chaîne User-Agent a un fort impact sur l’écosystème ». Mozilla ne tient pas à avoir à gérer un autre « comportement excentrique » plus tard.