Page MenuHomePhabricator

Move Firefox 27-38 from Basic support to Unknown support
Closed, ResolvedPublic

Description

Affected components: MediaWiki core, skins and extensions. Wikimedia Foundation libraries like Codex and OOUI.

Motivation

  • Lighten the load of developers and quality assurance folks by removing browser support for very outdated versions of Firefox. Firefox 39 was released in July 2015. Why Firefox 39? It disabled insecure SSLv3 and RC4 (not yet clarified if that's of importance for Wikimedia infrastructure).

Several other reasons and technical abilities, which have been added in between 27 and 39 (release notes summaries), :

  • Improve the user experience by making pages load slightly faster and use less bandwidth, because we're going to send less CSS code (workarounds f.e. on Flexbox) down the wire.
  • Unlock use of newer CSS features that do not have a fallback in Firefox (f.e. Flexbox, position: sticky[[ https://caniuse.com/css-sticky | caniuse ]]) and thus cannot be safely used today. This point is not solely dependent on removal of from basic support, but also a few other very old browsers (ex: IE9 & IE10 T293298) and platforms (Android 4.4 T290815) still to be tackled in similar tasks.
  • Removal of certain remaining -moz prefixed properties, like -moz-box-sizing
  • Take away maintenance-burden of writing fallback CSS for newer CSS features not supported. The effort spent in writing workarounds and addressing specific browser code is a waste of our limited resources.

Statistics

Turnilo (restricted) pageviews statistics from last 30 days for Firefox:
2021-12-08: 22.7 million out of 21 billion including Firefox Mobile so about slightly above 0.1%
These numbers are pageviews, not user numbers!

See also analytics.wikimedia.org – showing no visible significance anymore.

Proposal

I'm proposing to move Firefox 27-38, from “Basic” category in the browser support matrix and automatically move them to unknown support.

This would be effective in MediaWiki 1.38, to be released in Spring 2022, in extensions and libraries possibly effective with decision here.

Event Timeline

Firefox 38 is at 1.4% of all Firefox views according to Dashiki, probably because of the stuff listed in the description about Firefox 39. (You need to drill down in the data I think, it shows up when you click the Firefox piece of the pie.)

I already left comments about flex on the IE task.

CSS sticky according to caniuse (as linked) would also require at least

  • Chrome 56 up from current Chrome 31
    • As noted on the task for Android, mobile Chrome 38 is prevalent.
  • Edge 16 up from current Edge 12 (no prevalent views in that range)
  • IE totally unsupported (IE11 still prevalent, with apparently non-0 views for 6 and 9 as well - someone probably needs to look into why 6 is in there)
  • Opera 41 up from current Opera 18 (no prevalent views in that range)

As a significant dis-use note, even with those adjustments, sticky basically can't be used on tables as all major browsers had bad table support until recent (and Opera still has issues).

I would guess sticky degrades gracefully where the sticky thing just doesn't move, so these may not be a large issue.

Thanks @Izno, sticky on tables also seems like an exceptional application.
Another small, but critical rendering path affecting change would be removal of -moz-box-sizing prefix, unprefixed supported from version 29 on.

Thanks @Izno, sticky on tables also seems like an exceptional application.

English Wikipedia actually has a gadget for it (description, CSS, JavaScript), and T42763: Implement repeated/fixed/floating/sticky table headers exists.

Thanks @Volker_E, I support making this change and we have approval from Web/Growth teams as well.

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

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.
Volker_E removed a subscriber: STH.