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

28 décembre 2021 à 13h40
27
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

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érique...

Lire d'autres articles

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.

Lire d'autres articles
Vous êtes un utilisateur de Google Actualités ou de WhatsApp ? Suivez-nous pour ne rien rater de l'actu tech !
google-news

A découvrir en vidéo

Rejoignez la communauté Clubic S'inscrire

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.

S'inscrire

Commentaires (27)

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.<br /> Les chaînes complètes d’user-agent n’ont ni queue ni tête à force d’adaptation pour préserver la compatibilité.<br /> 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 «&nbsp;Duda&nbsp;».<br /> 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.<br /> 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.<br /> 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).<br /> 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 <br /> (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 «&nbsp;De nombreux sites mal implémentés vont avoir un problème avec les navigateurs dont les numéro de versions dépassent 99&nbsp;»
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
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é
Smax2k
Faudrait réfléchir avant d’écrire (tu le fait tout le temps), tu as des gens autodidacte qui se débrouille très bien. Dit plus tôt amateur à la rigueur, mais s’est même pas le sujet…
anisite
Ça existe déjà et ça se nomme User-agent client hints, les infos sont décortiquées dans les entêtes http…
anisite
Ça existe ça se nomme User-agent client hints. Le problème c’est que comme tout nouveau c’est lent à être supporté, surtout par les compagnies merdiques comme Apple…
Erdal_Bahadir
En python version_number = USER_AGENT.split("/")[1].split(".")[0]<br /> user_agent = «&nbsp;Mozilla/5.0 (Linux; U; Android 2.1-update1; fr-fr; GTI9000 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17&nbsp;»<br /> user_agent.split("/")[1].split(".")[0]<br /> 5<br />
sebstein
Le problème des tests unitaires, c’est qu’il faut délimiter leur champ d’action, sinon on peut passer un temps infini à en ajouter. Rien ne dit qu’ils auraient fait un test unitaire pour une fonction aussi basique que celle là et, quand bien même ils l’avaient fait, encore faut-il qu’ils y aient entré la version 100+ de Chrome.
orionb1
Et Firefox, ils vont faire comment ?
orionb1
Firefox ne le supporte pas encore User-Agent Client Hints API - Web APIs | MDN
anisite
ouais mais au canada en tout cas Firefox c’est 4.5 % d’utilisation en stats, aussi bien dire : personne! Ce navigateur là pour moi est mort, on ne le teste même plus sur nos sites web développés au gouvernement du Québec, Safari par contre avec son 29 % fait chier puisque c’est un navigateur qui n’a pas évolué, Apple fait vraiment un travail de m#%#$? avec ça, vivement qu’il l’abandonne, ou reparte du code de Chromium comme Microsoft a compris pour Edge…
inconnu_de_passage
Peu importe le bout de papier qu’on a obtenu à l’issue des études, ce qui compte c’est le tête pensante qui est derrière.<br /> J’ai bossé avec des ingénieurs en spécialité informatique (même diplôme que moi) qui m’ont donné envie de brûler mon diplôme tellement j’avais honte d’être rangé dans la même case que ces boulets.<br /> Et j’ai bossé avec des mecs reconvertis de milieux très divers (ingénieur en mécanique, chimiste, physique nucléaire, agronome, un diplôme que j’ai pas retenu en rapport avec le santé, etc.) qui étaient excellents, parce qu’ils utilisaient leur cerveau pour réfléchir.
bmustang
des gens ingé ou pas qui ne réfléchissent pas beaucoup, il y en a partout, même ici !
orionb1
le pire, c’est que si je me souviens bien, Chrome est un parent de Safari
anisite
Oui exactement… Webkit est le moteur derrière tout ça.
_J2B
L’avantage, c’est qu’une fois que ces problèmes seront résolus, Chrome sera tranquille pour 899 mises à jour !
Catstom
C’est pas Chrome en cause, c’est les sites qui sont mal développés et pire les gestionnaires qui restent sur des bibliothèques obsolètes…<br /> Et aussi d’utiliser ces kits touts faits comme le Duda mentionné, Wix et autres saloperies du même acabit…
Enfant_Beni
Exactement !
ar-s
Du coté des navigateurs : Ce serait dur de mettre en place un API GetLastVersion commun bordel ?<br /> Du coté des codeurs : Si vous ne savez pas extraire les 1er chiffres avant un élément séparateur, changez de métier sérieux…<br /> En quoi extraire la version de<br /> &lt; s c r i p t &gt; alert(navigator.userAgent); &lt; / s c r i p t &gt; est difficile ?<br /> Les codes pré-machés qui compte que 2 caractères au lieu de N caractères méritent de bugger ^^
Voir tous les messages sur le forum
  • Indépendance
  • Transparence
  • Expertise

L'équipe Clubic sélectionne et teste des centaines de produits qui répondent aux usages les plus courants, avec le meilleur rapport qualité / prix possible.

Haut de page

Sur le même sujet