In a few weeks, at the start of 2022, Chrome 100 and Firefox 100 will arrive. This new version, seemingly innocuous, could however cause problems with websites.
It seems a long time ago when web browsers announced the release of Google Chrome 3 and Firefox 4. Today, we are talking more about Google Chrome 98 and Firefox 97. In a few months, at the start of 2022, the two software will reach the symbolic bar of version 100. A symbolic step, but perhaps not without consequences for the websites that rely on it.
Indeed, the version number of a browser is not just an indicator that allows the Internet user to know which generation of software he is using. It is also a signal sent to the sites, via an information chain which is called “User Agent”, to identify certain elements of the computer configuration of each Internet user.
So, for Firefox, the User Agent might look like this:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
And for 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
The version number is displayed in bold here. It is especially the first block of numbers that is useful (the string is broken down into: browser name / major version . minor version). However, it appears that the management of the User Agent may have problems when passing two digits in the first block (Firefox/15.xFirefox/32.x, Firefox/97.x, for example), to three.
One more digit causes so much hassle
It turns out that this problem manifested itself twelve years ago, when there was already a change in the value of the first block, going from a single digit to two. This is underlined by three Mozilla development managers, Karl Dubost, Chris Peterson, Ali Beyad, in an article dated February 15, 2022 which precisely anticipates the transition to version 100, in a few weeks.
” When browsers reached version 10, just over 12 years ago, many problems were discovered with the user agent parsing libraries, as the major version number changed from one digit to of them “, is it explained. However, this problem could arise again: Firefox 100 is scheduled for May 3 and Chrome 100 for March 29.
” In the absence of a single specification to follow, different browsers have different formats for the User Agent string, and site-specific User Agent parsing. “, continue the three authors. However, this could cause problems on sites that depend on identifying the browser version.
Does this concern sound familiar to you? Maybe it’s because you heard about a potential Chrome bug back in December. This relates precisely to the management of the User Agent. Here the case was about Duda, a website development kit. It was feared that Duda, not knowing how to interpret a three-digit version, would see Chrome 100 as Chrome 10.
For Duda, things quickly returned to normal. ” Duda’s DevOps team took immediate action and fixed the issue within hours “, he was explained in an article published on December 25. But if all is well that ends well here, there may be sites elsewhere on the web that haven’t taken any action or aren’t aware.
What should be done then? Should we postpone the release of Chrome 100 and Firefox 100 for several months, just in case? Should we “freeze” the first User Agent block at 99 and use the next block (used to indicate the minor version) to populate future updates? For example, Firefox version 100 would not be Firefox/100.0 but Firefox/99.1 or Firefox/99.100 )
There are precisely plans that are being put in place, both on the side of Chrome and Firefox, to negotiate this shift. The two browsers provide, among other things, a backup strategy consisting of freezing their version at 99, by moving the next number to the next block. This could notably depend on the extent of the bug.
” The strategy will depend on the importance of the breakage. Firefox has a site intervention mechanism. The team can hot fix broken websites in Firefox using this mechanism. […] If a site goes down when the major version is 100 on a specific domain, it is possible to fix it by sending version 99 instead », Details Mozilla.
” If the outage is widespread and interventions on individual sites become unmanageable, Mozilla may temporarily freeze the major version of Firefox at 99 and then test other options “Adds the publisher of Firefox. A similar plan is planned for Chrome, moving the value to the next block (which would give Chrome/99.100.04758.102, for example).
Until the release of Chrome 100 and Firefox 100, tests continue at Google and Mozilla to assess the impact of each solution. Because it would not be a question of the remedy being worse than the disease. ” Every strategy that adds complexity to the User-Agent chain has a strong impact on the ecosystem “. Mozilla does not want to have to deal with another ” eccentric behavior ” later.