Page MenuHomePhabricator

MV broken in Internet Explorer 8 on WMF sites
Closed, ResolvedPublic

Description

On https://de.wikipedia.org/wiki/Wikipedia:Fragen_von_Neulingen a user reports that MediaViewer is broken in IE 8, which I can partially confirm (using the IE8-mode of an IE 9):

Clicking on any image in an article shows just a black screen. I was redirected to the image description page after a few seconds, but the reporting user seems to have no way to access the image.

Clicking "Expanded view" on an image description page shows just a black screen, too.

A JavaScript error is shown in the console, saying that some object doesn't support the method addEventListener ("Das Objekt unterstützt die Eigenschaft oder Methode "addEventListener" nicht." in German)

So please either bind the events in a way that works in IE8, too, or just disable MV in IE8.


Version: unspecified
Severity: major
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=70744
https://bugzilla.wikimedia.org/show_bug.cgi?id=70932

Details

Reference
bz70553

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 3:58 AM
bzimport set Reference to bz70553.
bzimport added a subscriber: Unknown Object (MLST).

IE8 does not support Object.create so https://gerrit.wikimedia.org/r/#/c/150086/ should stop MediaViewer from being loaded (unless something polyfills it).

I can confirm that on IE8 by default this test should work, but on wikipedia it fails.

That probably means that something... somewhere... is polyfilling Object.create

So summarize, yes, the OOjs polyfill is active on our pages, thus launching the MediaViewer, which for some reason doesn't use .on for setting the event.

OOjs-UI has some addEventListener calls (and removeEventListener), so it's probably one of these.

Short term solution: Temporarily revert https://gerrit.wikimedia.org/r/#/c/150086/ to explicitly blacklist IE8 again.
Long term solution: Replace the remaining addEventListener calls in oojs-ui with $.on(), and hope that it works acceptably in IE8, too.

Fixing the addEventListener (which I'm about to do) is far from sufficient for MV to work in IE8. Right off the bat, MV uses SVG icons, and IE8 can't display them without a plugin. Then I'm not sure that OOUI fully supports IE8 yet, which MV needs for "use this file".

IMHO the easiest thing to do is to go back to the status quo before our feature check got polyfilled without us realizing: find another feature check (SVG support, if that's event possible?) that will make IE8 not run MV.

gerritadmin wrote:

Change 159263 had a related patch set uploaded by Gilles:
Replace addEventListener call with jQuery's .on()

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

gerritadmin wrote:

Change 159265 had a related patch set uploaded by Gilles:
Run only when SVG support is available

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

gerritadmin wrote:

Change 159263 merged by jenkins-bot:
Replace addEventListener call with jQuery's .on()

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

gerritadmin wrote:

Change 159265 merged by jenkins-bot:
Feature detection for MV load: add SVG, remove Object.create

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

Should be fixed in https://gerrit.wikimedia.org/r/159265 . The fix will be deployed to wikipedias tomorrow.