Merge "Work around T87871 to avoid double-loading OOjs UI PHP styles"

This commit is contained in:
jenkins-bot 2016-02-11 03:51:16 +00:00 committed by Gerrit Code Review
commit 42fe7284cd
3 changed files with 20 additions and 3 deletions

View file

@ -4088,5 +4088,8 @@ class OutputPage extends ContextSource {
'oojs-ui.styles.textures',
'mediawiki.widgets.styles',
) );
// Used by 'skipFunction' of the four 'oojs-ui.styles.*' modules. Please don't treat this as a
// public API or you'll be severely disappointed when T87871 is fixed and it disappears.
$this->addMeta( 'X-OOUI-PHP', '1' );
}
}

View file

@ -68,9 +68,6 @@ return call_user_func( function () {
'es5-shim',
'oojs',
'oojs-ui.styles',
'oojs-ui.styles.icons',
'oojs-ui.styles.indicators',
'oojs-ui.styles.textures',
'mediawiki.language',
),
'targets' => array( 'desktop', 'mobile' ),
@ -81,6 +78,14 @@ return call_user_func( function () {
'styles' => 'resources/src/oojs-ui-local.css', // HACK, see inside the file
'skinStyles' => $getSkinSpecific( 'core' ),
'targets' => array( 'desktop', 'mobile' ),
// ResourceLoaderImageModule doesn't support 'skipFunction', so instead we set this up so that
// this module is skipped together with its dependencies. Nothing else depends on these modules.
'dependencies' => array(
'oojs-ui.styles.icons',
'oojs-ui.styles.indicators',
'oojs-ui.styles.textures',
),
'skipFunction' => 'resources/src/oojs-ui-styles-skip.js',
);
// Deprecated old name for the module 'oojs-ui-core.styles'.

View file

@ -0,0 +1,9 @@
/*!
* Skip function for OOjs UI PHP style modules.
*
* The `<meta name="X-OOUI-PHP" />` is added to pages by OutputPage::enableOOUI().
*
* Looking for elements in the DOM might be expensive, but it's probably better than double-loading
* 200 KB of CSS with embedded images because of bug T87871.
*/
return !!jQuery( 'meta[name="X-OOUI-PHP"]' ).length;