Chrome continues to fall apart at brisk pace

Google Chrome is not the default browser on Android 4.3+. There are now at least eight Chromium-based Android default browsers, and they are all subtly, though not wildly, different.

The number of Chromium family members has recently risen from nine to eleven with the addition of HTC and LG Chromium, default browsers for modern HTC and LG high-end devices.

Moreover, LG uses at least two different versions (30 and 34) concurrently, while HTC replaced Android WebKit by HTC Chromium over the air. As far as I know none of this has been done before — so far.

In order to prove that they’re different we will study zoom reflow, a feature that HTC and Xiaomi support, but the others, including Google, don’t.

What went before

Although Google Chrome is installed on all Android 4.3+ devices, it is not necessarily the default browser. Only Nexus devices, and Motorolas created while Google owned the company, have the official Google Chrome as their default browser. No other device does.

Android 4.3+ devices, including those by Samsung, HTC, LG, Sony, Huawei, and Xiaomi, have their own default browser on the homescreen, while Google Chrome can be found in the Apps menu. I would be highly surprised if this situation changed.

Some devices still use Android WebKit, Android’s old default browser, but device vendors are gradually replacing it by Chrome — their Chrome, not Google’s.

Eleven

So far I was aware of nine Chromes: Google Chrome, Opera, Yandex, Xiaomi, Cyanogen, Puffin (weird one, that), Samsung, Amazon Silk, and Nokia X.

Nokia disappeared from the list when Microsoft nixed the X line, but in the last two weeks I found three new Chromium-based browsers, so that wde now have eleven Chromium-based browsers (or thirteen if you count Google Chrome and Opera desktop and mobile as different browsers).

LG Chromium 30 and 34

A few weeks ago someone showed me his new, high-end LG phone, and I took the opportunity to identify the browser. It turned out to be Chrome 34; or, rather, LG Chromium 34.

However, when I went to the friendly local phone store and bought a modern mid-range LG, it turned out to have a Chromium 30 default browser; not 34. I tried updating the firmware: no updates. Therefore LG is using at least two Chromium versions at the same time — or one of the two lies, and the 30 is in fact a 34 or vice versa. This is the first time this situation occurs, as far as I know.

HTC Chromium 33

Then, when doing my latest round of testing, my HTC M8’s default browser started acting up. I re-identified it, and lo and behold: it had changed from Android WebKit 4.3 to Chrome 33; or, rather, HTC Chromium 33.

Moreover, it was an over-the-air update — I think even an individual app update rather than a full firmware update, but I’m not sure. I wish I paid more attention to those updates.

This is certainly the first instance I know of of an Android WebKit being replaced OTA by a Chromium. So far I had to buy new devices.

More to come

So this is the current Chromium situation:

Vendor Version Tested Default Remarks Google 40 Yes Yes Opera 39 Yes No Yandex 38 Yes No Xiaomi 34 or 35 Yes Yes Zoom reflow HTC 33 Yes Yes Zoom reflow Cyanogen 33 Yes Yes LG 30 Yes Yes Mid-range Puffin 30 Yes No Proxy Samsung 28 Yes Yes Amazon 37 No Yes Silk LG 34 No Yes High-end

Why stop now when we’re having fun? I confidently expect Sony, Motorola, and the Chinese vendors to go over to their own, custom-built Chromium-based browsers. UC, the Chinese browser vendor recently acquired by Alibaba, might swap out WebKit for Chromium — UC Chromium, that is; not Google Chrome.

Oh, and remember that Chrome on iOS is not Chrome at all, but Apple WebView, which on iOS8 is supposed to be the same as Safari. That’s because you are not allowed to install other rendering engines on iOS. So that Chrome doesn’t belong on the list.

Differences

Let’s say, with my classical education in mind, that the plural of Chromium is Chromia, and ask ourselves the question: How different are these Chromia?

I’ll eventually give you a detailed reply to this question. I test all Chromia except for the two I don’t have devices for: Amazon Silk and LG 34. So far I found a few slight differences.

For instance, <input type="datetime"> is supported only by the Samsung, HTC, and LG Chromia, and not by any of the others. That might be a mild annoyance, but not much more than that, and you can detect your way around it.

Zoom reflow

Normal zooming: you only see part of the line. HTC zooming: the lines reflow to fit on the screen.

A much more interesting difference is zoom reflow, a feature that HTC has supported from 2009 on, but that the other Android vendors ignored. Those of you who read my book know about it already, but let’s give the others a quick recap.

If, on a mobile browser, you zoom in to way beyond the width of a line, most browsers will show only parts of the lines, and you’ll have to pan horizontally in order to read them fully.

HTC has always done something quite different: when you zoom in and the regular lines don’t fit on your screen any more, it reflows the entire text so that it does fit. Essentially, the lines become as narrow as they have to be in order to fit. And yes, this causes reflows throughout the document and is thus somewhat expensive processor-wise. It’s also potentially useful (I quite like it).

I know for a fact that zoom reflow was under a flag in Android WebKit. HTC elected to set this flag, the others didn’t. What I did not expect was for HTC to carry over this behaviour to Chromium.

Was it Google or HTC that added zoom reflow to Chromium? I think it was Google, because the Xiaomi Chromium (34 or 35) also has this feature. (It might be a recent addition; I don’t remember seeing it earlier.)

So we either postulate that HTC and Xiaomi developed this feature independently, or that they shared their code base, or that both received it from Google. My money is on the last option.

Stats

What’s the market share of all these Chromia? Unfortunately I cannot answer that question because public sources are completely absent. StatCounter, the only public mobile browser stat service that actually works, does not distinguish between Chromium version numbers. (I asked them to add that feature, but it hasn’t happened yet.)

Update: Got some stats.

In September I studied some Dutch stats that happened to come my way. Slightly more than half of the Chrome on Android hits came from Google Chrome; the rest came mostly from Samsung Chromium 28. Still, back then HTC and LG hadn’t gone over yet, so the stats may have changed by now. I’ll see if I can whip up a few more.

The plural of Chromium is Chromia

The really annoying part is that web developers, as well as Google itself, seem to be unaware of this situation. You’ll only find this information here, because nobody else cares. (Or, at least, nobody else who blogs about such issues.)

Although there is no reason to panic (Chromium has a much more unified codebase than Android WebKit), you will occasionally run into problems if you test your site only on Google Chrome and ignore the ten others.

The solution is simple: test on devices that have non-Google Chromia as their default browser. Modern high-end Samsungs, HTCs, Xiaomis, and LGs will do the trick today, and the other brands will follow. (Testing on Chrome on iOS, on the other hand, is useless since it’s not a Chromium. Do it if it makes you feel good, but don’t expect it to say anything useful about other Chromia.)

Also, study your clients’ logfiles to figure out which Chromium versions are visiting his site in which numbers — and share those numbers if you can. Then make sure to test on those Chromia.

Not that anyone will actually listen. Nobody wants to know that the suppsedly-tidy Chrome on Android situation is deteriorating fast, and was never tidy to begin with. That’s why I decided that in 2015 I’ll talk about these issues at conferences — starting with our own Mobilism.

Finally, I hope that Google Chrome’s great dev rel team picks up this concern and starts helping me — for instance by providing an archive of old Chromes on Android, so that I can test all these Chromia against the Google standard.

Anyway, to me, 2015 will be the year of the Chromia.