Page MenuHomePhabricator

UniversalLanguageSelector is not compatible with IE8
Closed, ResolvedPublic

Description

Either compatibility must be restored or documents updated about minimum browser requirements.

Event Timeline

Nikerabbit raised the priority of this task from to High.
Nikerabbit updated the task description. (Show Details)
Nikerabbit added a subscriber: Nikerabbit.

fe4e101851f57cc87404d8454e8fec65d9a85358 said IE7 and IE8 were likely blacklisted already; IE8 was blacklisted by d1988bb3c7bdebe5df369cfe53b803bdde37bc33 it seems.

Change 184316 had a related patch set uploaded (by Gerrit Patch Uploader):
Restore support for IE8

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

Patch-For-Review

Change 184316 merged by jenkins-bot:
Restore support for IE8

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

An other possible solution is to implement the missing Object.keys as a polyfill for Internet Explorer 8.

MediaWiki core has the es5-shim module, which provides this method (among others). ULS could presumably just add a dependency on it.

But it's not in REL1_23, so no.

But it's not in REL1_23, so no.

Then the polyfill must be duplicated to ULS until the minimal MediaWiki version for ULS raises to the version containing the polyfill.

Is it possible to copy a module into an extension with the same name? Which module get loaded?

Duplicating and conditionally loading core modules is not a good idea. Tried that, complicated, can cause issues.

See T87874: ULS should not unconditionally use ES5 methods .

@Nikerabbit: There's nothing conditional about it. The es5-shim module has a built-in ResourceLoader skip-function that makes it only load when needed. Without additional requests.

@Nikerabbit: There's nothing conditional about it. The es5-shim module has a built-in ResourceLoader skip-function that makes it only load when needed. Without additional requests.

It's not about loading es5-shim conditionally. It's about REL1_23 not having it at all.

@Nikerabbit: There's nothing conditional about it. The es5-shim module has a built-in ResourceLoader skip-function that makes it only load when needed. Without additional requests.

It's not about loading es5-shim conditionally. It's about REL1_23 not having it at all.

Then don't backport the relevant commit to your REL1_23 branch. Or (if you don't use it), consider using that?

MLEB releases are made from master and MLEB targets 1.23+ compatibility currently. The easiest way is to just avoid Object.keys for now.

Change 193071 had a related patch set uploaded (by KartikMistry):
Update jquery.uls to ffcfdf1

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

Change 193071 merged by jenkins-bot:
Update jquery.uls to ffcfdf1

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

Nikerabbit claimed this task.

I believe this has been fixed by restoring compatibility.