Align ResourceLoader's 'startup.js' feature check with updated modern browser list
Closed, ResolvedPublic

Description

As of current, in startup.js we're feature testing “[c]apabilities required for modern run-time” and remove some positives via RegEx resulting in list below.

* - ECMAScript 5
* - DOM Level 4 & Selectors API Level 1
* - HTML5 & Web Storage
* - DOM Level 2 Events
*
* Browsers we support in our modern run-time (Grade A):
* - Chrome 13+
* - IE 11+
* - Firefox 4+
* - Safari 5+
* - Opera 15+
* - Mobile Safari 6.0+ (iOS 6+)
* - Android 4.1+

Expected outcome

Startup feature checks got out of sync with current browser support matrix.
They need to be updated accordingly.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

There is an expected gap between the feature-test and the documented Grade A support, which is effectively Grade X.

There is no reason to force upon these users a javascriptless experience if their browser is capable of all APIs we currently expect/require.

I expect this will be raised as part of T178356. If there are specific APIs you think we should require on all page views and allow unconditional use of, we can add more to it now as well. Do you have any in mind?

As now, I think the main issue is the phrasing (it says "Support" which is wrong, but the listed names/versions are correct).

Krinkle triaged this task as Medium priority.

Change 723331 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/core@master] resourceloader: Document reasons for forced downgrades to Basic

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

Thanks for this clarfication in patch above.

Remaining here is from my POV: Currently our browser support matrix lists a different set of browsers than is still listed under “modern runtime (Grade A)” in startup.js.
We should remove that difference, even though the startup check(s) puts browsers like Firefox 4-26 to Grade A, or expose the list differently in order to prevent confusion. If latter path is chosen to be more technically accurate for startup.js I'd expect a note stating, that the Grade A support is more limited due to other technical architecture reasons like TLS support.

Change 723331 merged by jenkins-bot:

[mediawiki/core@master] resourceloader: Document reasons for forced downgrades to Basic

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

@Volker_E: Per emails from Sep18 and Oct20 and https://www.mediawiki.org/wiki/Bug_management/Assignee_cleanup , I am resetting the assignee of this task because there has not been progress lately (please correct me if I am wrong!). Resetting the assignee avoids the impression that somebody is already working on this task. It also allows others to potentially work towards fixing this task. Please claim this task again when you plan to work on it (via Add Action...Assign / Claim in the dropdown menu) - it would be welcome. Thanks for your understanding!

In T283726#7376107, gerritbot wrote:

[mediawiki/core@master] resourceloader: Document reasons for forced downgrades to Basic

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

In T288287#8961660, gerritbot wrote:

[mediawiki/core@master] ResourceLoader: Clarify browser support comment in startup module

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

Outcome: startup.js.

Browsers that pass these checks get served our modern run-time. This includes all Grade A
browsers, and some Grade C and Grade X browsers.

The following browsers are known to pass these checks: […]

In addition, I've also clarified the introduction at https://www.mediawiki.org/wiki/Compatibility#Browsers to distinguish between the support we provide, and the feature test we use.