From 15eac4c27939c2558615844ce2dbb86f5bbc9647 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Fri, 11 May 2018 15:33:41 +0100 Subject: [PATCH] mediawiki.special: Combine various tiny specialpage style modules These stylesheets are sufficiently tiny that it doesn't make sense to offer them the ability to be loaded separately from each other (saving bytes in double-digits) at the cost of 1) exporting a dedicated registry item with meta data shipped on every page view, 2) reduced cache re-use from increased fragmentation. Instead, move these to the 'mediawiki.special' style module. The entries retain their own files to keep them as easy to find and edit as before. Where not already, ensure addModuleStyles() is always placed above any addModules() call in the same method. The load order isn't affected by the call order, but given blocking style-modules load before async JS, it helps to order them in a way that visually matches the effective load order (from top to bottom). The following 7 modules were remove without deprecation: 1. "mediawiki.special.apisandbox.styles" (1 rule) 2. "mediawiki.special.edittags.styles" (3 rules) 3. "mediawiki.special.movePage.styles" (1 rule) 4. "mediawiki.special.pagesWithProp" (1 rule) 5. "mediawiki.special.upload.styles" (2 rules) 6. "mediawiki.special.watchlist.styles" (3 rules) 7. "mediawiki.special.comparepages.styles" (4 rules) These module names were only used on the core classes loading them, and aren't depended on outside core by module name, rather, extensions and gadgets depend on the styles styles being loaded in a blocking manner on these pages, which remains unaffected. Bug: T192623 Change-Id: I6e663dc3c80c7104c9b9abdde44c654543185373 --- includes/specials/SpecialApiSandbox.php | 2 +- includes/specials/SpecialComparePages.php | 2 +- includes/specials/SpecialEditTags.php | 2 +- includes/specials/SpecialMovepage.php | 2 +- includes/specials/SpecialPagesWithProp.php | 2 +- includes/specials/SpecialUpload.php | 2 +- includes/specials/SpecialWatchlist.php | 2 +- includes/specials/forms/UploadForm.php | 2 +- resources/Resources.php | 35 ++++++------------- .../apisandbox.css} | 0 .../comparepages.less} | 0 .../edittags.css} | 0 .../movePage.css} | 0 .../pagesWithProp.css} | 0 .../{mediawiki.special.css => special.css} | 0 .../upload.css} | 0 ....special.userrights.css => userrights.css} | 0 .../watchlist.css} | 0 18 files changed, 18 insertions(+), 33 deletions(-) rename resources/src/{mediawiki.special.apisandbox.styles.css => mediawiki.special/apisandbox.css} (100%) rename resources/src/{mediawiki.special.comparepages.styles.less => mediawiki.special/comparepages.less} (100%) rename resources/src/{mediawiki.special.edittags.styles.css => mediawiki.special/edittags.css} (100%) rename resources/src/{mediawiki.special.movePage.css => mediawiki.special/movePage.css} (100%) rename resources/src/{mediawiki.special.pagesWithProp.css => mediawiki.special/pagesWithProp.css} (100%) rename resources/src/mediawiki.special/{mediawiki.special.css => special.css} (100%) rename resources/src/{mediawiki.special.upload.styles.css => mediawiki.special/upload.css} (100%) rename resources/src/mediawiki.special/{mediawiki.special.userrights.css => userrights.css} (100%) rename resources/src/{mediawiki.special.watchlist.styles.css => mediawiki.special/watchlist.css} (100%) diff --git a/includes/specials/SpecialApiSandbox.php b/includes/specials/SpecialApiSandbox.php index c000d546d1..034e569e6c 100644 --- a/includes/specials/SpecialApiSandbox.php +++ b/includes/specials/SpecialApiSandbox.php @@ -37,7 +37,7 @@ class SpecialApiSandbox extends SpecialPage { $out->addJsConfigVars( 'apihighlimits', $this->getUser()->isAllowed( 'apihighlimits' ) ); $out->addModuleStyles( [ - 'mediawiki.special.apisandbox.styles', + 'mediawiki.special', ] ); $out->addModules( [ 'mediawiki.special.apisandbox', diff --git a/includes/specials/SpecialComparePages.php b/includes/specials/SpecialComparePages.php index 35cc6b84f2..28f04faa29 100644 --- a/includes/specials/SpecialComparePages.php +++ b/includes/specials/SpecialComparePages.php @@ -49,7 +49,7 @@ class SpecialComparePages extends SpecialPage { public function execute( $par ) { $this->setHeaders(); $this->outputHeader(); - $this->getOutput()->addModuleStyles( 'mediawiki.special.comparepages.styles' ); + $this->getOutput()->addModuleStyles( 'mediawiki.special' ); $form = HTMLForm::factory( 'ooui', [ 'Page1' => [ diff --git a/includes/specials/SpecialEditTags.php b/includes/specials/SpecialEditTags.php index 60d5fd7c8c..3db7edaf8e 100644 --- a/includes/specials/SpecialEditTags.php +++ b/includes/specials/SpecialEditTags.php @@ -76,7 +76,7 @@ class SpecialEditTags extends UnlistedSpecialPage { $this->outputHeader(); $this->getOutput()->addModules( [ 'mediawiki.special.edittags', - 'mediawiki.special.edittags.styles' ] ); + 'mediawiki.special' ] ); $this->submitClicked = $request->wasPosted() && $request->getBool( 'wpSubmit' ); diff --git a/includes/specials/SpecialMovepage.php b/includes/specials/SpecialMovepage.php index d30ff4329d..0069ea1bbe 100644 --- a/includes/specials/SpecialMovepage.php +++ b/includes/specials/SpecialMovepage.php @@ -143,8 +143,8 @@ class MovePageForm extends UnlistedSpecialPage { $out = $this->getOutput(); $out->setPageTitle( $this->msg( 'move-page', $this->oldTitle->getPrefixedText() ) ); + $out->addModuleStyles( 'mediawiki.special' ); $out->addModules( 'mediawiki.special.movePage' ); - $out->addModuleStyles( 'mediawiki.special.movePage.styles' ); $this->addHelpLink( 'Help:Moving a page' ); $out->addWikiMsg( $this->getConfig()->get( 'FixDoubleRedirects' ) ? diff --git a/includes/specials/SpecialPagesWithProp.php b/includes/specials/SpecialPagesWithProp.php index 34fcc78c7e..46ad31c4a8 100644 --- a/includes/specials/SpecialPagesWithProp.php +++ b/includes/specials/SpecialPagesWithProp.php @@ -60,7 +60,7 @@ class SpecialPagesWithProp extends QueryPage { public function execute( $par ) { $this->setHeaders(); $this->outputHeader(); - $this->getOutput()->addModuleStyles( 'mediawiki.special.pagesWithProp' ); + $this->getOutput()->addModuleStyles( 'mediawiki.special' ); $request = $this->getRequest(); $propname = $request->getVal( 'propname', $par ); diff --git a/includes/specials/SpecialUpload.php b/includes/specials/SpecialUpload.php index f7cb654527..2eeafe6900 100644 --- a/includes/specials/SpecialUpload.php +++ b/includes/specials/SpecialUpload.php @@ -387,7 +387,7 @@ class SpecialUpload extends SpecialPage { } // Add styles for the warning, reused from the live preview - $this->getOutput()->addModuleStyles( 'mediawiki.special.upload.styles' ); + $this->getOutput()->addModuleStyles( 'mediawiki.special' ); $linkRenderer = $this->getLinkRenderer(); $warningHtml = '

' . $this->msg( 'uploadwarning' )->escaped() . "

\n" diff --git a/includes/specials/SpecialWatchlist.php b/includes/specials/SpecialWatchlist.php index dda1dac3af..746084eabb 100644 --- a/includes/specials/SpecialWatchlist.php +++ b/includes/specials/SpecialWatchlist.php @@ -60,11 +60,11 @@ class SpecialWatchlist extends ChangesListSpecialPage { $output = $this->getOutput(); $request = $this->getRequest(); $this->addHelpLink( 'Help:Watching pages' ); + $output->addModuleStyles( [ 'mediawiki.special' ] ); $output->addModules( [ 'mediawiki.special.changeslist.visitedstatus', 'mediawiki.special.watchlist', ] ); - $output->addModuleStyles( [ 'mediawiki.special.watchlist.styles' ] ); $mode = SpecialEditWatchlist::getMode( $request, $subpage ); if ( $mode !== false ) { diff --git a/includes/specials/forms/UploadForm.php b/includes/specials/forms/UploadForm.php index e561fe5882..8ab6f29f09 100644 --- a/includes/specials/forms/UploadForm.php +++ b/includes/specials/forms/UploadForm.php @@ -79,7 +79,7 @@ class UploadForm extends HTMLForm { # Add a link to edit MediaWiki:Licenses if ( $this->getUser()->isAllowed( 'editinterface' ) ) { - $this->getOutput()->addModuleStyles( 'mediawiki.special.upload.styles' ); + $this->getOutput()->addModuleStyles( 'mediawiki.special' ); $licensesLink = $linkRenderer->makeKnownLink( $this->msg( 'licenses' )->inContentLanguage()->getTitle(), $this->msg( 'licenses-edit' )->text(), diff --git a/resources/Resources.php b/resources/Resources.php index e187ef24f2..cdd225dde9 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1994,15 +1994,18 @@ return [ ], 'mediawiki.special' => [ 'styles' => [ - 'resources/src/mediawiki.special/mediawiki.special.css', - 'resources/src/mediawiki.special/mediawiki.special.userrights.css', + 'resources/src/mediawiki.special/special.css', + 'resources/src/mediawiki.special/apisandbox.css', + 'resources/src/mediawiki.special/comparepages.less', + 'resources/src/mediawiki.special/edittags.css', + 'resources/src/mediawiki.special/movePage.css', + 'resources/src/mediawiki.special/pagesWithProp.css', + 'resources/src/mediawiki.special/upload.css', + 'resources/src/mediawiki.special/userrights.css', + 'resources/src/mediawiki.special/watchlist.css', ], 'targets' => [ 'desktop', 'mobile' ], ], - 'mediawiki.special.apisandbox.styles' => [ - 'targets' => [ 'desktop', 'mobile' ], - 'styles' => 'resources/src/mediawiki.special.apisandbox.styles.css', - ], 'mediawiki.special.apisandbox' => [ 'styles' => 'resources/src/mediawiki.special.apisandbox/apisandbox.css', 'scripts' => 'resources/src/mediawiki.special.apisandbox/apisandbox.js', @@ -2119,9 +2122,6 @@ return [ 'mediawiki.special.changeslist.visitedstatus' => [ 'scripts' => 'resources/src/mediawiki.special.changeslist.visitedstatus.js', ], - 'mediawiki.special.comparepages.styles' => [ - 'styles' => 'resources/src/mediawiki.special.comparepages.styles.less', - ], 'mediawiki.special.contributions' => [ 'scripts' => 'resources/src/mediawiki.special.contributions.js', 'dependencies' => [ @@ -2140,9 +2140,6 @@ return [ 'tags-edit-chosen-no-results', ], ], - 'mediawiki.special.edittags.styles' => [ - 'styles' => 'resources/src/mediawiki.special.edittags.styles.css', - ], 'mediawiki.special.import' => [ 'scripts' => 'resources/src/mediawiki.special.import.js', ], @@ -2153,18 +2150,12 @@ return [ 'mediawiki.widgets', ], ], - 'mediawiki.special.movePage.styles' => [ - 'styles' => 'resources/src/mediawiki.special.movePage.css', - ], 'mediawiki.special.pageLanguage' => [ 'scripts' => 'resources/src/mediawiki.special.pageLanguage.js', 'dependencies' => [ 'oojs-ui-core', ], ], - 'mediawiki.special.pagesWithProp' => [ - 'styles' => 'resources/src/mediawiki.special.pagesWithProp.css', - ], 'mediawiki.special.preferences' => [ 'targets' => [ 'desktop', 'mobile' ], 'scripts' => [ @@ -2311,7 +2302,7 @@ return [ 'prefs-editing', ], 'dependencies' => [ - 'mediawiki.special.upload.styles', + 'mediawiki.special', 'jquery.spinner', 'mediawiki.jqueryMsg', 'mediawiki.api', @@ -2323,9 +2314,6 @@ return [ 'user.options', ], ], - 'mediawiki.special.upload.styles' => [ - 'styles' => 'resources/src/mediawiki.special.upload.styles.css', - ], 'mediawiki.special.userlogin.common.styles' => [ 'targets' => [ 'desktop', 'mobile' ], 'skinStyles' => [ @@ -2384,9 +2372,6 @@ return [ 'user.options', ], ], - 'mediawiki.special.watchlist.styles' => [ - 'styles' => 'resources/src/mediawiki.special.watchlist.styles.css', - ], 'mediawiki.special.version' => [ 'styles' => 'resources/src/mediawiki.special.version.css', ], diff --git a/resources/src/mediawiki.special.apisandbox.styles.css b/resources/src/mediawiki.special/apisandbox.css similarity index 100% rename from resources/src/mediawiki.special.apisandbox.styles.css rename to resources/src/mediawiki.special/apisandbox.css diff --git a/resources/src/mediawiki.special.comparepages.styles.less b/resources/src/mediawiki.special/comparepages.less similarity index 100% rename from resources/src/mediawiki.special.comparepages.styles.less rename to resources/src/mediawiki.special/comparepages.less diff --git a/resources/src/mediawiki.special.edittags.styles.css b/resources/src/mediawiki.special/edittags.css similarity index 100% rename from resources/src/mediawiki.special.edittags.styles.css rename to resources/src/mediawiki.special/edittags.css diff --git a/resources/src/mediawiki.special.movePage.css b/resources/src/mediawiki.special/movePage.css similarity index 100% rename from resources/src/mediawiki.special.movePage.css rename to resources/src/mediawiki.special/movePage.css diff --git a/resources/src/mediawiki.special.pagesWithProp.css b/resources/src/mediawiki.special/pagesWithProp.css similarity index 100% rename from resources/src/mediawiki.special.pagesWithProp.css rename to resources/src/mediawiki.special/pagesWithProp.css diff --git a/resources/src/mediawiki.special/mediawiki.special.css b/resources/src/mediawiki.special/special.css similarity index 100% rename from resources/src/mediawiki.special/mediawiki.special.css rename to resources/src/mediawiki.special/special.css diff --git a/resources/src/mediawiki.special.upload.styles.css b/resources/src/mediawiki.special/upload.css similarity index 100% rename from resources/src/mediawiki.special.upload.styles.css rename to resources/src/mediawiki.special/upload.css diff --git a/resources/src/mediawiki.special/mediawiki.special.userrights.css b/resources/src/mediawiki.special/userrights.css similarity index 100% rename from resources/src/mediawiki.special/mediawiki.special.userrights.css rename to resources/src/mediawiki.special/userrights.css diff --git a/resources/src/mediawiki.special.watchlist.styles.css b/resources/src/mediawiki.special/watchlist.css similarity index 100% rename from resources/src/mediawiki.special.watchlist.styles.css rename to resources/src/mediawiki.special/watchlist.css -- 2.20.1