Page MenuHomePhabricator

Bump basic and modern supported Android browsers to v5
Closed, ResolvedPublic

Description

Motivation

Affected components: MediaWiki core, all skins/extensions, Wikimedia Foundation product, third-parties.

Android up to 4.4.4 is currently responsible for many of the remaining -webkit- vendor prefixed properties in render critical CSS, for example on transition property. (Chrome up to 42 is the other one, but that's more neglible as it's non-existent in our access stats with Chrome 38 as somewhat significant outlier with up to 0.5% of pageviews 2021 according to analytics.wikimedia.org)

Statistics

Turnilo breakdown (login only) of OS family, major and minor versions for last 30d, showing Android 4.2 leading, 4.4 behind, 4.3 and others basically non-existing. Altogether at widely under 1%.

Possible alternative to proceed on

Focus on CSS only and remove -webkit- vendor properties and leave JS support, browserslist-config-wikimedia and infrastructure access untouched.

Further reading

https://en.wikipedia.org/wiki/Android_version_history

Event Timeline

Chrome up to 42 is the other one, but that's more neglible as it's non-existent in our access stats

Mobile Chrome 38 is prevalent in Dashiki's browser views, some 2% of all Chrome Mobile views and accordingly 0.5% of all views. I don't know why since I haven't been able to identify anything special about the version (unlike e.g. Firefox 78).

Hmm, I was just about to file a similar task about dropping this support, for JS reasons[1]. Note that Android 4.2 is already not supported per T266866: Remove "Basic" support (Grade C) for browsers without TLS 1.2+ (MediaWiki core and WMF infra), so this would be just dropping 4.3 and 4.4.

What is the threshold needed to drop modern/javascript support?

[1] as far as I can tell the only reason mw.loader needs to handle window.Set not existing is for Android 4.3 and 4.4 support, since the only functionality used there is Set.add and Set.has, which the other browsers all support, except for the bit where IE11 has Set.add return undefined instead of the set itself, but the return value isn't needed

@Volker_E let's move forward with this change. Pageview threshold is low enough at 0.5% and it is a balanced ratio across regions. In the past year, only ~0.000025% of edit attempts were made on Android 4 or less as well.

According to https://caniuse.com/tls1-2, all versions <5 are missing support for TLS1.2 so should be getting no real traffic [1] (we are probably seeing spoofed user agents in Turnilo data). As we already decided TLS1.2 is a requirement in T266866, this can just be resolved with an addition to our on-wiki support matrix.

In T266866 we wrote that we needed to support Android 4.3 but I think this might have been confusion with the required version of "Safari on iOS" for TLS1.2, which is 4.3.

  1. Verified with Andoird 4.4:
    image.png (199×476 px, 26 KB)

Change 784345 had a related patch set uploaded (by VolkerE; author: VolkerE):

[mediawiki/core@master] RELEASE-NOTES-1.39: Add note about bumped basic browser requirements

https://gerrit.wikimedia.org/r/784345

Change 784345 merged by jenkins-bot:

[mediawiki/core@master] RELEASE-NOTES-1.39: Add note about bumped basic browser requirements

https://gerrit.wikimedia.org/r/784345

We should also update our browser lists in eslint & stylelint configs, and browserslist-config-wikimedia

Change 784721 had a related patch set uploaded (by DannyS712; author: DannyS712):

[mediawiki/core@master] resourceloader: update documentation of supported browsers

https://gerrit.wikimedia.org/r/784721

Volker_E claimed this task.

browserlist-config-wikimedia update was done in https://github.com/wikimedia/browserslist-config-wikimedia/pull/9