diff --git a/docs/config-schema.yaml b/docs/config-schema.yaml index c8ba009d8af..647bdaf551c 100755 --- a/docs/config-schema.yaml +++ b/docs/config-schema.yaml @@ -4151,6 +4151,14 @@ config-schema: separately so that it can continue to be served after the latter is disabled but still in the cache. @internal + UseLegacyMediaStyles: + default: false + description: |- + Temporary flag to stop shipping the styles for the legacy media HTML structure + that has been replaced when $wgParserEnableLegacyMediaDOM is `false`. This is + configured separately to give time for templates and extensions that mimic the + the parser output to be migrated away. See T318433 + @internal RawHtml: default: false description: |- diff --git a/docs/config-vars.php b/docs/config-vars.php index 4312ad62ce7..ea85498ea50 100755 --- a/docs/config-vars.php +++ b/docs/config-vars.php @@ -2341,6 +2341,12 @@ $wgParserEnableLegacyMediaDOM = null; */ $wgUseContentMediaStyles = null; +/** + * Config variable stub for the UseLegacyMediaStyles setting, for use by phpdoc and IDEs. + * @see MediaWiki\MainConfigSchema::UseLegacyMediaStyles + */ +$wgUseLegacyMediaStyles = null; + /** * Config variable stub for the RawHtml setting, for use by phpdoc and IDEs. * @see MediaWiki\MainConfigSchema::RawHtml diff --git a/includes/MainConfigNames.php b/includes/MainConfigNames.php index d1fed1d7979..b6f8e278569 100755 --- a/includes/MainConfigNames.php +++ b/includes/MainConfigNames.php @@ -2356,6 +2356,12 @@ class MainConfigNames { */ public const UseContentMediaStyles = 'UseContentMediaStyles'; + /** + * Name constant for the UseLegacyMediaStyles setting, for use with Config::get() + * @see MainConfigSchema::UseLegacyMediaStyles + */ + public const UseLegacyMediaStyles = 'UseLegacyMediaStyles'; + /** * Name constant for the RawHtml setting, for use with Config::get() * @see MainConfigSchema::RawHtml diff --git a/includes/MainConfigSchema.php b/includes/MainConfigSchema.php index 11c13092990..9169d4d84df 100644 --- a/includes/MainConfigSchema.php +++ b/includes/MainConfigSchema.php @@ -6482,6 +6482,18 @@ class MainConfigSchema { 'default' => false, ]; + /** + * Temporary flag to stop shipping the styles for the legacy media HTML structure + * that has been replaced when $wgParserEnableLegacyMediaDOM is `false`. This is + * configured separately to give time for templates and extensions that mimic the + * the parser output to be migrated away. See T318433 + * + * @internal + */ + public const UseLegacyMediaStyles = [ + 'default' => false, + ]; + /** * Allow raw, unchecked HTML in "..." sections. * diff --git a/includes/ResourceLoader/SkinModule.php b/includes/ResourceLoader/SkinModule.php index 694d271857a..32213cc6cf4 100644 --- a/includes/ResourceLoader/SkinModule.php +++ b/includes/ResourceLoader/SkinModule.php @@ -145,11 +145,7 @@ class SkinModule extends LessVarFileModule { // Reserves whitespace for the logo in a pseudo element. 'print' => [ 'resources/src/mediawiki.skinning/logo-print.less' ], ], - 'content-media' => [ - 'all' => [ 'resources/src/mediawiki.skinning/content.thumbnails-common.less' ], - 'screen' => [ 'resources/src/mediawiki.skinning/content.thumbnails-screen.less' ], - 'print' => [ 'resources/src/mediawiki.skinning/content.thumbnails-print.less' ], - ], + 'content-media' => [], 'content-links' => [ 'screen' => [ 'resources/src/mediawiki.skinning/content.links.less' ] ], @@ -413,25 +409,45 @@ class SkinModule extends LessVarFileModule { ); } } - if ( $feature === 'content-media' && ( - !$this->getConfig()->get( MainConfigNames::ParserEnableLegacyMediaDOM ) || - $this->getConfig()->get( MainConfigNames::UseContentMediaStyles ) - ) ) { - $featureFilePaths['all'][] = new FilePath( - 'resources/src/mediawiki.skinning/content.media-common.less', - $defaultLocalBasePath, - $defaultRemoteBasePath - ); - $featureFilePaths['screen'][] = new FilePath( - 'resources/src/mediawiki.skinning/content.media-screen.less', - $defaultLocalBasePath, - $defaultRemoteBasePath - ); - $featureFilePaths['print'][] = new FilePath( - 'resources/src/mediawiki.skinning/content.media-print.less', - $defaultLocalBasePath, - $defaultRemoteBasePath - ); + + if ( $feature === 'content-media' ) { + if ( $this->getConfig()->get( MainConfigNames::UseLegacyMediaStyles ) ) { + $featureFilePaths['all'][] = new FilePath( + 'resources/src/mediawiki.skinning/content.thumbnails-common.less', + $defaultLocalBasePath, + $defaultRemoteBasePath + ); + $featureFilePaths['screen'][] = new FilePath( + 'resources/src/mediawiki.skinning/content.thumbnails-screen.less', + $defaultLocalBasePath, + $defaultRemoteBasePath + ); + $featureFilePaths['print'][] = new FilePath( + 'resources/src/mediawiki.skinning/content.thumbnails-print.less', + $defaultLocalBasePath, + $defaultRemoteBasePath + ); + } + if ( + !$this->getConfig()->get( MainConfigNames::ParserEnableLegacyMediaDOM ) || + $this->getConfig()->get( MainConfigNames::UseContentMediaStyles ) + ) { + $featureFilePaths['all'][] = new FilePath( + 'resources/src/mediawiki.skinning/content.media-common.less', + $defaultLocalBasePath, + $defaultRemoteBasePath + ); + $featureFilePaths['screen'][] = new FilePath( + 'resources/src/mediawiki.skinning/content.media-screen.less', + $defaultLocalBasePath, + $defaultRemoteBasePath + ); + $featureFilePaths['print'][] = new FilePath( + 'resources/src/mediawiki.skinning/content.media-print.less', + $defaultLocalBasePath, + $defaultRemoteBasePath + ); + } } } } diff --git a/includes/config-schema.php b/includes/config-schema.php index 29b35ba1ab6..a9f275c4b80 100755 --- a/includes/config-schema.php +++ b/includes/config-schema.php @@ -805,6 +805,7 @@ return [ ], 'ParserEnableLegacyMediaDOM' => false, 'UseContentMediaStyles' => false, + 'UseLegacyMediaStyles' => false, 'RawHtml' => false, 'ExternalLinkTarget' => false, 'NoFollowLinks' => true,