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
