class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
- /* Methods */
-
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return array
*/
public function getStyles( ResourceLoaderContext $context ) {
- $logo = $this->getConfig()->get( 'Logo' );
- $logoHD = $this->getConfig()->get( 'LogoHD' );
+ $conf = $this->getConfig();
+ $logo = $conf->get( 'Logo' );
+ $logoHD = $conf->get( 'LogoHD' );
+
+ $logo1 = OutputPage::transformResourcePath( $conf, $logo );
+ $logo15 = OutputPage::transformResourcePath( $conf, $logoHD['1.5x'] );
+ $logo2 = OutputPage::transformResourcePath( $conf, $logoHD['2x'] );
+
$styles = parent::getStyles( $context );
$styles['all'][] = '.mw-wiki-logo { background-image: ' .
- CSSMin::buildUrlValue( $logo ) .
+ CSSMin::buildUrlValue( $logo1 ) .
'; }';
+ // Only 1.5x and 2x are supported
+ // Note: Keep in sync with OutputPage::addLogoPreloadLinkHeaders()
if ( $logoHD ) {
if ( isset( $logoHD['1.5x'] ) ) {
$styles[
'(min-resolution: 1.5dppx), ' .
'(min-resolution: 144dpi)'
][] = '.mw-wiki-logo { background-image: ' .
- CSSMin::buildUrlValue( $logoHD['1.5x'] ) . ';' .
+ CSSMin::buildUrlValue( $logo15 ) . ';' .
'background-size: 135px auto; }';
}
if ( isset( $logoHD['2x'] ) ) {
'(min-resolution: 2dppx), ' .
'(min-resolution: 192dpi)'
][] = '.mw-wiki-logo { background-image: ' .
- CSSMin::buildUrlValue( $logoHD['2x'] ) . ';' .
+ CSSMin::buildUrlValue( $logo2 ) . ';' .
'background-size: 135px auto; }';
}
}
}
/**
- * @param $context ResourceLoaderContext
+ * @param ResourceLoaderContext $context
* @return bool
*/
public function isKnownEmpty( ResourceLoaderContext $context ) {
return false;
}
- /**
- * @param $context ResourceLoaderContext
- * @return string: Hash
- */
- public function getModifiedHash( ResourceLoaderContext $context ) {
- $logo = $this->getConfig()->get( 'Logo' );
- $logoHD = $this->getConfig()->get( 'LogoHD' );
- return md5( parent::getModifiedHash( $context ) . $logo . json_encode( $logoHD ) );
+ public function getDefinitionSummary( ResourceLoaderContext $context ) {
+ $summary = parent::getDefinitionSummary( $context );
+ $summary[] = [
+ 'logo' => $this->getConfig()->get( 'Logo' ),
+ 'logoHD' => $this->getConfig()->get( 'LogoHD' ),
+ ];
+ return $summary;
}
}