MarkTraceur has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/119396

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
(cherry picked from commit 02793e5c20b0233ce50c4ababd49f8efd570a36d)
---
M MultimediaViewer.php
M MultimediaViewerHooks.php
2 files changed, 43 insertions(+), 6 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MultimediaViewer 
refs/changes/96/119396/1

diff --git a/MultimediaViewer.php b/MultimediaViewer.php
index 79f56d4..13c0128 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';
 
@@ -537,13 +547,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 328a529..8013227 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/119396
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I232997918dee4a00be18c021eb351d81609df2b0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>

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

Reply via email to