jenkins-bot has submitted this change and it was merged.

Change subject: Add feature flags for Media Viewer
......................................................................


Add feature flags for Media Viewer

$wgMediaViewerIsInBeta is one, $wgEnableMediaViewerForLoggedInUsers is
the other - use the former on all sites, the latter on pilot sites in
April.

Before merging, MERGE https://gerrit.wikimedia.org/r/117376

Change-Id: I232997918dee4a00be18c021eb351d81609df2b0
---
M MultimediaViewer.php
M MultimediaViewerHooks.php
2 files changed, 43 insertions(+), 6 deletions(-)

Approvals:
  Gilles: Looks good to me, approved
  Gergő Tisza: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/MultimediaViewer.php b/MultimediaViewer.php
index c82d6fe..0eadf00 100644
--- a/MultimediaViewer.php
+++ b/MultimediaViewer.php
@@ -23,11 +23,21 @@
 
 // do not pollute global namespace
 call_user_func( function() {
-       global $wgExtensionMessagesFiles, $wgResourceModules, 
$wgExtensionFunctions,
-               $wgAutoloadClasses, $wgHooks, $wgExtensionCredits, 
$wgNetworkPerformanceSamplingFactor;
+       global $wgExtensionMessagesFiles, $wgResourceModules, 
$wgExtensionFunctions, $wgMediaViewerIsInBeta,
+               $wgAutoloadClasses, $wgHooks, $wgExtensionCredits, 
$wgNetworkPerformanceSamplingFactor,
+               $wgEnableMediaViewerForLoggedInUsersOnly;
 
        /** @var int|bool: If set, records image load network performance once 
per this many requests. False if unset. **/
        $wgNetworkPerformanceSamplingFactor = false;
+
+       /** @var bool: If set, Media Viewer will try to use BetaFeatures. False 
if unset. **/
+       $wgMediaViewerIsInBeta = false;
+
+       /**
+        * @var bool: If set, and $wgMediaViewerIsInBeta is unset, Media Viewer 
will be turned on for all
+        * logged-in users. False if unset.
+        */
+       $wgEnableMediaViewerForLoggedInUsersOnly = false;
 
        $wgExtensionMessagesFiles['MultimediaViewer'] = __DIR__ . 
'/MultimediaViewer.i18n.php';
 
@@ -555,13 +565,23 @@
        }
 
        $wgAutoloadClasses['MultimediaViewerHooks'] = __DIR__ . 
'/MultimediaViewerHooks.php';
-       $wgHooks['GetBetaFeaturePreferences'][] = 
'MultimediaViewerHooks::getBetaPreferences';
+
+       if ( $wgMediaViewerIsInBeta ) {
+               $wgHooks['GetBetaFeaturePreferences'][] = 
'MultimediaViewerHooks::getBetaPreferences';
+       }
+
        $wgHooks['BeforePageDisplay'][] = 
'MultimediaViewerHooks::getModulesForArticle';
        $wgHooks['CategoryPageView'][] = 
'MultimediaViewerHooks::getModulesForCategory';
        $wgHooks['ResourceLoaderGetConfigVars'][] = 
'MultimediaViewerHooks::resourceLoaderGetConfigVars';
        $wgHooks['ResourceLoaderTestModules'][] = 
'MultimediaViewerHooks::getTestModules';
 
-       $wgExtensionCredits['betafeatures'][] = array(
+       $section = 'other';
+
+       if ( $wgMediaViewerIsInBeta ) {
+               $section = 'betafeatures';
+       }
+
+       $wgExtensionCredits[$section][] = array(
                'path' => __FILE__,
                'name' => 'MultimediaViewer',
                'descriptionmsg' => 'multimediaviewer-desc',
diff --git a/MultimediaViewerHooks.php b/MultimediaViewerHooks.php
index 26ca567..669a3f3 100644
--- a/MultimediaViewerHooks.php
+++ b/MultimediaViewerHooks.php
@@ -29,14 +29,31 @@
        protected static $discussionLink = 
'//mediawiki.org/wiki/Special:MyLanguage/Talk:Multimedia/About_Media_Viewer';
 
        /**
+        * Checks the context for whether to load the viewer.
+        * @param User $user
+        * @return bool
+        */
+       protected static function shouldLoad( $user ) {
+               global $wgMediaViewerIsInBeta;
+
+               if ( $wgMediaViewerIsInBeta && class_exists( 'BetaFeatures' ) ) 
{
+                       return BetaFeatures::isFeatureEnabled( $user, 
'multimedia-viewer' );
+               } else if ( $wgEnableMediaViewerForLoggedInUsersOnly ) {
+                       return $user->isLoggedIn();
+               } else {
+                       // Default to enabling for everyone.
+                       return true;
+               }
+       }
+
+       /**
         * Handler for all places where we add the modules
         * Could be on article pages or on Category pages
         * @param OutputPage $out
         * @return bool
         */
        protected static function getModules( &$out ) {
-               if ( class_exists( 'BetaFeatures')
-                       && !BetaFeatures::isFeatureEnabled( $out->getUser(), 
'multimedia-viewer' ) ) {
+               if ( !self::shouldLoad( $out->getUser() ) ) {
                        return true;
                }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/117374
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I232997918dee4a00be18c021eb351d81609df2b0
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: wmf/1.23wmf17
Gerrit-Owner: MarkTraceur <[email protected]>
Gerrit-Reviewer: Aarcos <[email protected]>
Gerrit-Reviewer: GergÅ‘ Tisza <[email protected]>
Gerrit-Reviewer: Gilles <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to