Here is the web browser problem 100

0

Soon both Google Chromemost popular of all web browsers, and the Firefox web browser will release its 100th version. Now, in addition to being a cool number, there are technical issues that come with these anniversary releases. Some of these issues can cause your websites to fail.

Yes, fail. Here’s why.

All web browsers come with a User Agent (UA). This is a string that browsers send in HTTP headers, so servers can identify the browser. JavaScript also uses it with JavaScript browser.userAgent. Web developers use UA in all sorts of ways with their server-side programs. The AU format is:

browserName/majorVersion.minorVersion

As written, typical examples of the latest versions of UA browsers are:

  • 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

So what’s the problem here? It’s old: date format configuration errors. The most famous example is the still not quite dead year 2000 problem. Then the problem was that most programs from the late 90s and earlier could not handle four digit dates . Our problem this time is that too many website programs cannot handle three-digit AUs. Yes, it’s as simple as that.

But, while it may be simple, that doesn’t mean it’s inconsequential. You see, we already had a taste of this problem when we went from 1-digit UAs (1-9) to 10-digit UAs. For example, Opera 10 would not render sites correctly in 2009 and some sites would not display at all with Firefox 10 because their scripts read Firefox 10 as outdated Firefox 1.0. We can expect all of this and more with the arrival of Chrome and Firefox 100.

Google and Mozilla are well aware of these upcoming UA browser issues. Both work to find and fix headaches.

Some of these problems will escape their efforts. For example, while we have known for decades that use UAs to determine which web pages or services should be served to a specific browser is a bad idea, it never stopped too many web developers from abusing it anyway. If your website does this, there’s a good chance that your site will end up sending an error message instead of web pages to a version 100 of web browsers.

You can check today if your site has such a problem using a Chrome feature flag, which forces Chrome to send a three-digit UA. Then you can check if the new UA is presented correctly by visiting the test site, Is Chrome still 100?? Then you can use this browser to check for problems on your own sites. Firefox also offers similar tests.

With either browser, if you find something is breaking due to UA before you fix it, file a report at Web compatibility. Also be sure to check that you haven’t discovered another type of bug by checking if the problem persists when using normal UA.

In cases where things go worse than expected by the Chrome or Firefox engineering teams, both have mitigation plans in place.

In Firefox there is a on-site response mechanism. With this, the The Mozilla Web Compat Team can hot fix broken websites. To see what is fixed, you can type about:compat in the URL bar. And, of course, if a site goes down because it can’t handle major version 100, a user can fix it by uploading version 99 instead. But it’s too much to ask ordinary users to manually change their AUs. If things go completely wrong and there are widespread site failures, Mozilla plans to temporarily freeze the major Firefox release at 99 and test other approaches.

With Chrome, the backup plan is to use a flag to freeze the major version at 99 and report the true major version number in the minor version part of the UA string. This backup code is already available in the open-source Chromium browser upstream of Chrome.

In this case, the Chrome version’s UA string will use the following pattern .... So, for example, the important part might look like 99.101.4988.0. Google’s Chrome developers will decide whether or not to resort to this backup option if things go wrong.

If you want to help make this a non-issue – the reason people thought the year 2000 wasn’t that bad was because of all the effort that went into making sure it was correctly solved – Google and Mozilla would welcome your help. And, of course, your own company would appreciate making sure that their website doesn’t go up in smoke when version 100 editions are released.

You can do this by setting your prerelease browser to report the version as 100 and report any issues you encounter. Here’s how.

Configure Firefox Nightly to report major version as 100

  1. Open the Firefox Nightly Settings menu.

  2. Search for “Firefox 100”, then check the “Firefox 100 User-Agent String” option.

Configure Chrome to report major version as 100

  1. Go to chrome://flags/#force-major-version-to-100

  2. Set the option to “Enabled”.

Before you begin, remember multiple UA chain failures have already been found.

If you’re a web developer using an older UA parsing library, you should test to make sure it can handle UA versions greater than or equal to 100. Early testing shows that the newer libraries will do fine. But, as we all know, the web is full of old codes. So it’s entirely possible that you’re using an old, incompatible parsing library and you don’t even know it until they hiccup on the latest browsers, leaving your users wondering what just happened to pass.

It’s time to get to work. Chrome 100 is scheduled for release in March 2022 and Firefox 100 is scheduled for May 3, 2022. Before that, you’ll want to make sure your websites are working as you expect them to,

Related stories:

Share.

Comments are closed.