Chrome 100 pourrait casser de nombreux sites, alors Google travaille à une solution

Fanny Dufour
Publié le 28 décembre 2021 à 13h40
Google Chrome Logo

Le passage à la version 100 de Google Chrome pourrait poser des problèmes sur certains sites, mais Google s’est déjà emparé du bug et propose plusieurs solutions.

Le problème provient de la façon dont certains sites récupèrent la version du navigateur dans l’en-tête User-Agent.

Une manière imparfaite de récupérer les numéros de version en cause

Fin mars 2022, il est prévu que Google Chrome sorte en version 100, la première version à trois chiffres. Le navigateur ne sera pas le seul à passer ce cap puisque Firefox et Edge prévoient également de quitter les dizaines dans leur numéro de version. Cependant, ce changement majeur risque de poser un problème dans certains cas.

Parmi les informations importantes récupérées par les sites web lorsque vous les visitez, il y a la chaîne de caractères contenue dans l’en-tête User-Agent. Elle permet entre autres aux sites d’identifier votre navigateur web, votre système d’exploitation et votre langue.

L’une des informations essentielles contenues dans cette chaîne de caractères est la version du navigateur, présentée sous la forme « NomDuNavigateur/NuméroDeVersion », par exemple « Chrome/96.0.4664.45 ». Généralement, seuls les chiffres correspondant à la version majeure sont importants, « 96 » ici. Pour les obtenir, certains sites choisissent de mettre en place une règle qui récupère uniquement les deux chiffres après le slash qui suit le nom du navigateur. C’est le cas de ceux créés à l’aide de Duda et c’est ici que se trouve le bug qui impactera Chrome dans sa version 100.

Un problème déjà rencontré en 2009

Pourtant, ce bug n’est pas nouveau. Lorsque les navigateurs sont passés à des numéros de version dans les dizaines en 2009, le problème s'est déjà présenté. Les sites choisissant de récupérer un seul chiffre après le nom du navigateur identifiaient par conséquent des sites en version 10 comme étant en version 1.

Sachant parfaitement que l’histoire a tendance à se répéter lorsqu’il s’agit de l’informatique, Google a permis depuis novembre d’activer un flag pour que son navigateur soit identifié comme étant en version 100 dans l’User-Agent, afin de permettre aux utilisateurs et développeurs de tester les sites web et voir lesquels pourraient poser problème. C’est de cette façon que le bug concernant les sites créés avec Duda et Yell Business, qui identifient la version 100 comme étant la version 10, a pu être repéré et rapporté dès fin novembre. Un bug particulièrement important puisque Duda bloque l’accès aux sites à quiconque utiliserait Chrome dans une version repérée comme étant inférieure à 40.

Quand le problème avec les numéros de version dans les dizaines s’était présenté, Opera avait choisi de conserver son numéro de version comme étant « 9.80 » après le nom de son navigateur, sous la forme « Opera/9.80 » et d’ajouter l’information « Version/10.00 » pour indiquer le véritable numéro de version. Google envisagerait une solution similaire, à l'aide d'un flag qui pourrait être activé pour que le numéro de version majeure reste bloqué à « 99 » et que le véritable numéro de version soit présent après, ce qui donnerait une chaîne de caractères sous la forme « Chrome/99.100.0.0 » au lieu de « Chrome/100.0.0.0 ».

Cependant, cette solution n'est envisagée qu’en dernier recours, l’entreprise préférant contacter les sites impactés pour que le bug soit corrigé avant la sortie de la mise à jour. Une stratégie qui a porté ses fruits puisque Yell Business a déjà résolu le problème sur l’ensemble de ses sites.

Source : 9to5Google

Fanny Dufour
Par Fanny Dufour

Arrivée dans la rédaction par le jeu vidéo, c’est par passion pour le développement web que je me suis intéressée plus largement à tout ce qui gravite autour de notre consommation des outils numériques, des problématiques de vie privée au logiciel libre en passant par la sécurité. Fan inconditionnelle de science-fiction toujours prête à expliquer pendant des heures pourquoi Babylon 5 est ma série préférée.

Vous êtes un utilisateur de Google Actualités ou de WhatsApp ?
Suivez-nous pour ne rien rater de l'actu tech !
Commentaires (0)
Rejoignez la communauté Clubic
Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.
Commentaires (10)
jvachez

Le mieux serait de faire des méthodes qui renvoie directement le numéro de version plutôt que de devoir extraire des sous-chaines.

inconnu_de_passage

C’est dommage de partir sur des solutions de bricolage, alors que ce serait l’occasion parfaite de changer de système pour passer sur un truc plus moderne.

Les chaînes complètes d’user-agent n’ont ni queue ni tête à force d’adaptation pour préserver la compatibilité.

Il devrait y avoir un nouveau système plus moderne en découpant la chaîne en plusieurs sous-propriétés, ça éviterait d’avoir des fonctions de parsage approximatives qui ne sont pas en mesure de gérer un changement de taille du nombre.

Proutie66

Sinon le plus simple c’est de fermer « Duda ».
On bloque pas un site si l’user agent est pas bon. Au pire, on avertit.

avandoorine

Le problème c’est plutôt les développeurs dans ce cas.

Chrome a une numérotation de numéro de version assez standard, et c’est bien les sites qui feraient ce choix de prendre 2 caractères précisément qui doivent se remettre en question.

Une regexp toute bête est capable de récupérer la version majeure peut importe le nombre de chiffres qu’elle contient.

kast_or

J imagine qu’il s’agissait surtout d’une optimisation (de bout de chandelle j en conviens).
C’est plus efficace de lire 2 caractères que de passer par une regex j imagine.

Pronimo

Un bon cas d’école quant au fait de trouver chiant la mise en place de tests unitaires :smiley:

(bon j’avoue que sur ce cas, c’est une de ces petits trucs quand meme ou l’on y pense en dernier ^^).

Koin-Koin

Pour le titre, il fallait en réalité lire « De nombreux sites mal implémentés vont avoir un problème avec les navigateurs dont les numéro de versions dépassent 99 »

avandoorine

Personnellement je ne pense pas car sans Regex tu dois avec toutes les versions qu’il y a dans la chaine, … sauf à lire exactement les deux même position de caractères chaque fois. Les regexp existe depuis tellement longtemps et sur une chaine si courte :stuck_out_tongue:

khalistoo

Je comprend pas tres bien pourquoi on parle de bugs alors que franchement, comme dit plus haut… C’est juste une mauvaise implémentation. Se baser sur une regex de type \d\d au lieu de \d+ faut etre une sacre faignasse.

benben99

Le problème vient dr pseudo développeur qui ne savent pas programmer et qui.font du codepas robuste… C’est souvent le cas avec les types qui apprennent par eux mêmes sans passer par l’Université