« 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 lorsque le numéro de version majeure est passé d'un chiffre à deux », explique une équipe de développeurs web dans un blog de Mozilla. À l'instar du fameux bogue de l'an 2000 qui a rendu l'année 2000 impossible à distinguer de l'année 1900 pour certains ordinateurs, les navigateurs ont des formats différents pour les chaînes User-Agent et il est possible que certaines bibliothèques d'analyse aient des hypothèses codées en dur ou des bogues qui ne prennent pas en compte les numéros de version majeurs à trois chiffres.
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. Cette chaîne est également accessible par JavaScript avec navigator.userAgent. Elle est généralement formatée comme suit :
- 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.
Bien que la rupture de certains sites Web suscite des inquiétudes, afin que la transition vers la version 100 se déroule sans heurts, un travail considérable aurait été réalisé en coulisses, à l'instar de ce qui s'est passé pour éviter les problèmes majeurs liés au bogue de l'an 2000 il y a 22 ans. Les développeurs peuvent activer un indicateur spécial dans les versions actuelles de Chrome, Edge et Firefox pour que les navigateurs signalent la version 100 et aident à tester les sites.
Des plans sont également prévus en cas de problèmes généralisés. Mozilla indique qu'elle corrigera à chaud les sites Web qui ne fonctionnent pas ou qu'elle bloquera temporairement la version principale de Firefox à 99 si les pannes sont généralisées et impossibles à gérer. Le plan de secours de Google consiste à utiliser un tag pour geler la version majeure à 99, et Microsoft n'a pas détaillé de plan de secours pour autant que nous puissions le dire.
Calendrier de la version 100
Les navigateurs de la version 100 seront d'abord publiés dans des versions expérimentales (Chrome Canary, Firefox Nightly), puis dans des versions bêta, et enfin sur le canal stable. 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. Il est possible que certaines bibliothèques d'analyse aient des hypothèses ou des bogues codés en dur qui ne prennent pas en compte les numéros de version majeurs à 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, de sorte que le passage à la version à trois chiffres devrait entraîner moins de problèmes. Mike Taylor, un ingénieur de l'équipe Chrome, a réalisé une enquête sur les bibliothèques d'analyse de l'UA les plus courantes, qui n'a révélé aucun problème. L'exécution des expériences de Chrome sur le terrain a mis en évidence certains problèmes, qui sont en cours de résolution.
Que font les navigateurs à ce sujet ?
Firefox et Chrome ont tous deux mené des expériences au cours desquelles les versions actuelles du navigateur signalent qu'elles sont à la version majeure 100 afin de détecter d'éventuelles ruptures de sites Web. Cela a donné lieu à quelques problèmes signalés, dont certains ont déjà été corrigés. Ces expériences se poursuivront jusqu'à la sortie de la version 100. Des stratégies d'atténuation sont également en place, au cas où la publication de la version 100 sur les canaux stables causerait plus de dommages aux sites Web que prévu.
Atténuation pour Firefox
Dans Firefox, la stratégie dépendra de l'importance de la rupture. Firefox dispose d'un mécanisme d'intervention sur les sites. L'équipe Mozilla webcompat 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. Si la panne est généralisée et que les interventions sur les sites individuels deviennent ingérables, Mozilla peut temporairement geler la version majeure de Firefox à 99, puis tester d'autres options.
Atténuation dans Chrome
Dans Chrome, le plan de secours consiste à utiliser un tag pour geler la version majeure à 99 et à indiquer le numéro réel de la version majeure dans la partie "version mineure" de la chaîne User-Agent. La version de Chrome telle que rapportée dans la chaîne User-Agent suit le modèle.
<major_version>.<minor_version>.<build_number>.<patch_number>.
Si le plan de sauvegarde est employé, alors la chaîne User-Agent ressemblerait à ceci :
99.101.4988.0
Chrome mène également des expériences pour s'assurer que la déclaration d'une valeur à trois chiffres dans la partie version mineure de la chaîne n'entraîne pas de rupture, puisque la version mineure dans la chaîne User-Agent de Chrome indique 0 depuis très longtemps. L'équipe Chrome décidera de l'opportunité de recourir à l'option de sauvegarde en fonction du nombre et de la gravité des problèmes signalés.
Selon Mozilla, toute stratégie qui ajoute de la complexité à la chaîne User-Agent a un fort impact sur l'écosystème. Dans Chrome et Firefox Nightly, il est possible de configurer le navigateur pour qu'il signale la version 100 actuelle et de signaler tous les problèmes rencontrés. Voici, ci-dessous, la configuration a effectué sur Firefox Nightly pour qu'il signale la version majeure comme étant 100.
- ouvrez le menu Paramètres de Firefox Nightly ;
- recherchez "Firefox 100", puis cochez l'option "Firefox 100 User-Agent String".
Voici, ci-dessous, la configuration a effectué sur Chrome pour qu'il signale que la version majeure est 100 :
- allez sur chrome://flags/#force-major-version-to-100 ;
- réglez l'option sur "Activé".
Si vous êtes un responsable de site Web, il est recommandé de tester votre site avec Chrome et Firefox 100. Vérifiez votre code d'analyse de l'User-Agent et vos bibliothèques, et assurez-vous qu'ils sont capables de gérer des numéros de version à trois chiffres.
Atténuation dans Microsoft Edge
Chez Microsoft, le plan de secours consiste à envoyer un numéro de version à trois chiffres dans l'en-tête User-Agent, par exemple "Edg/100". À partir de Microsoft Edge 97, les propriétaires de sites peuvent tester cette nouvelle chaîne d'agent en activant l'indicateur expérimental #force-major-version-to-100 dans edge://flags pour s'assurer que leur logique d'analyse de l'agent utilisateur est robuste et fonctionne comme prévu.
Source : Mozilla
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi :
Microsoft aurait bloqué toutes les solutions de contournement du navigateur par défaut dans Windows 10 et Windows 11
Windows 11 : Mozilla réussit à contourner les paramètres de navigateur par défaut à la peau dure de Microsoft, et rend plus facile de choisir Firefox
Après Chrome, Firefox va bloquer les téléchargements « non sécurisés » lancés depuis les pages en HTTPS à partir de Firefox 92, dont la sortie est prévue pour septembre 2021
Google Chrome supprime les contrôles détaillés des cookies et des données de site, une autre initiative de l'entreprise qui pourrait susciter la controverse