+
+ // Use localised/normalised variant to ensure $excludepage matches
+ $userPage = $user->getUserPage()->getPrefixedDBkey();
+ $pages = [];
+
+ if ( $config->get( 'AllowUserJs' ) ) {
+ $pages["$userPage/common.js"] = [ 'type' => 'script' ];
+ $pages["$userPage/" . $context->getSkin() . '.js'] = [ 'type' => 'script' ];
+ }
+
+ // User group pages are maintained site-wide and enabled with site JS/CSS.
+ if ( $config->get( 'UseSiteJs' ) ) {
+ foreach ( $user->getEffectiveGroups() as $group ) {
+ if ( $group == '*' ) {
+ continue;
+ }
+ $pages["MediaWiki:Group-$group.js"] = [ 'type' => 'script' ];
+ }
+ }
+
+ // Hack for T28283: Allow excluding pages for preview on a CSS/JS page.
+ // The excludepage parameter is set by OutputPage.
+ $excludepage = $context->getRequest()->getVal( 'excludepage' );
+ if ( isset( $pages[$excludepage] ) ) {
+ unset( $pages[$excludepage] );
+ }
+
+ return $pages;