Page MenuHomePhabricator

Lost CSS styles in pages transcluding pages from the Special: namespace
Closed, ResolvedPublic

Description

Author: vlakoff

Description:
Hello,

Here is an issue related to the recent 1.18 deployment. Some pages do include {{Special:Prefixindex/something}}. They were usually relying on the CSS property "width:98%" of #mw-prefixindex-list-table, among others properties I guess, but now this property is loaded from another file, specific to the Special: pages, i.e. http://bits.wikimedia.org/fr.wikipedia.org/load.php?debug=true&lang=fr&modules=mediawiki.special&only=styles&skin=vector

So, the pages that are including a page from the Special: namespace lost these CSS styles.

For example, compare http://fr.wikipedia.org/wiki/Sp%C3%A9cial:Index/Utilisateur:Od1n/ with http://fr.wikipedia.org/wiki/Utilisateur:Od1n/Sous-pages ; before, the latter had a 98 % width as the former.

So basically, the styling system is now written to only include the styling for Special pages on special pages, incorrectly assuming that Special pages are not transcludeable.


Version: 1.18.x
Severity: major

Details

Reference
bz31362

Event Timeline

bzimport raised the priority of this task from to High.Nov 21 2014, 11:56 PM
bzimport set Reference to bz31362.
bzimport added a subscriber: Unknown Object (MLST).

Not sure what the 'proper' solution is, but I think either the parser needs to detect the modules added by the special page being transcluded and copy those to it's own modules queue, or the specialpage class for PrefixIndex needs to specifically add the modules when trancluding as well.

(In reply to comment #2)

Not sure what the 'proper' solution is, but I think either the parser needs to
detect the modules added by the special page being transcluded and copy those
to it's own modules queue, or the specialpage class for PrefixIndex needs to
specifically add the modules when trancluding as well.

Well the specialpage class doesn't really have access to the parser object or the OutputPage object when transcluding, so it can't really add them. Merging the modules used in SpecialPageFactory::capturePath is probably the right solution


This bug does not appear to be present on trunk. I'm not sure why...

This bug does not appear to be present on trunk. I'm not sure why...

Apparently on trunk it got fixed as part of r93758

need to verify that this works in 1.17. If it doesn't then take off the regression bit.

Confirmed that it works in 1.17.

(In reply to comment #4)

This bug does not appear to be present on trunk. I'm not sure why...

Apparently on trunk it got fixed as part of r93758

Backported now.