Merge "Turn HTMLBlockedUsersItemSelect into HTMLSelectLimitField"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 15 Aug 2014 21:40:32 +0000 (21:40 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 15 Aug 2014 21:40:32 +0000 (21:40 +0000)
1  2 
includes/AutoLoader.php
includes/htmlform/HTMLForm.php

diff --combined includes/AutoLoader.php
@@@ -36,15 -36,17 +36,15 @@@ $wgAutoloadLocalClasses = array
        'AuthPlugin' => 'includes/AuthPlugin.php',
        'AuthPluginUser' => 'includes/AuthPlugin.php',
        'Autopromote' => 'includes/Autopromote.php',
 -      'BaseTemplate' => 'includes/SkinTemplate.php',
        'Block' => 'includes/Block.php',
 -      'CacheHelper' => 'includes/CacheHelper.php',
        'Category' => 'includes/Category.php',
        'Categoryfinder' => 'includes/Categoryfinder.php',
        'CategoryViewer' => 'includes/CategoryViewer.php',
 -      'ChangesFeed' => 'includes/ChangesFeed.php',
        'ChangeTags' => 'includes/ChangeTags.php',
        'ChannelFeed' => 'includes/Feed.php',
        'Collation' => 'includes/Collation.php',
        'CollationCkb' => 'includes/Collation.php',
 +      'CollationEt' => 'includes/Collation.php',
        'ConcatenatedGzipHistoryBlob' => 'includes/HistoryBlob.php',
        'Cookie' => 'includes/Cookie.php',
        'CookieJar' => 'includes/Cookie.php',
        'HTMLRadioField' => 'includes/htmlform/HTMLRadioField.php',
        'HTMLSelectAndOtherField' => 'includes/htmlform/HTMLSelectAndOtherField.php',
        'HTMLSelectField' => 'includes/htmlform/HTMLSelectField.php',
+       'HTMLSelectLimitField' => 'includes/htmlform/HTMLSelectLimitField.php',
        'HTMLSelectOrOtherField' => 'includes/htmlform/HTMLSelectOrOtherField.php',
        'HTMLSubmitField' => 'includes/htmlform/HTMLSubmitField.php',
        'HTMLTextAreaField' => 'includes/htmlform/HTMLTextAreaField.php',
        'HTMLTextField' => 'includes/htmlform/HTMLTextField.php',
        'Http' => 'includes/HttpFunctions.php',
 -      'ICacheHelper' => 'includes/CacheHelper.php',
        'IcuCollation' => 'includes/Collation.php',
        'IdentityCollation' => 'includes/Collation.php',
        'ImportStreamSource' => 'includes/Import.php',
        'ImportStringSource' => 'includes/Import.php',
        'IndexPager' => 'includes/Pager.php',
        'Interwiki' => 'includes/interwiki/Interwiki.php',
 -      'LCStore' => 'includes/cache/LocalisationCache.php',
 -      'LCStoreAccel' => 'includes/cache/LocalisationCache.php',
 -      'LCStoreCDB' => 'includes/cache/LocalisationCache.php',
 -      'LCStoreDB' => 'includes/cache/LocalisationCache.php',
 -      'LCStoreNull' => 'includes/cache/LocalisationCache.php',
        'License' => 'includes/Licenses.php',
        'Licenses' => 'includes/Licenses.php',
        'Linker' => 'includes/Linker.php',
        'LinkFilter' => 'includes/LinkFilter.php',
 -      'LocalisationCache' => 'includes/cache/LocalisationCache.php',
 -      'LocalisationCacheBulkLoad' => 'includes/cache/LocalisationCache.php',
        'MagicWord' => 'includes/MagicWord.php',
        'MagicWordArray' => 'includes/MagicWord.php',
        'MailAddress' => 'includes/UserMailer.php',
 -      'MediaWiki' => 'includes/Wiki.php',
 -      'MediaWikiI18N' => 'includes/SkinTemplate.php',
 +      'MediaWiki' => 'includes/MediaWiki.php',
        'MediaWikiVersionFetcher' => 'includes/MediaWikiVersionFetcher.php',
        'Message' => 'includes/Message.php',
        'MessageBlobStore' => 'includes/MessageBlobStore.php',
        'MimeMagic' => 'includes/MimeMagic.php',
        'MWHookException' => 'includes/Hooks.php',
        'MWHttpRequest' => 'includes/HttpFunctions.php',
 -      'MWNamespace' => 'includes/Namespace.php',
 +      'MWNamespace' => 'includes/MWNamespace.php',
        'OutputPage' => 'includes/OutputPage.php',
        'Pager' => 'includes/Pager.php',
 -      'PasswordError' => 'includes/User.php',
        'PathRouter' => 'includes/PathRouter.php',
        'PathRouterPatternReplacer' => 'includes/PathRouter.php',
        'PhpHttpRequest' => 'includes/HttpFunctions.php',
        'PoolCounter_Stub' => 'includes/poolcounter/PoolCounter.php',
        'PoolCounterRedis' => 'includes/poolcounter/PoolCounterRedis.php',
        'PoolCounterWork' => 'includes/poolcounter/PoolCounterWork.php',
 -      'PoolCounterWorkViaCallback' => 'includes/poolcounter/PoolCounterWork.php',
 +      'PoolCounterWorkViaCallback' => 'includes/poolcounter/PoolCounterWorkViaCallback.php',
        'PoolWorkArticleView' => 'includes/poolcounter/PoolWorkArticleView.php',
        'Preferences' => 'includes/Preferences.php',
        'PreferencesForm' => 'includes/Preferences.php',
        'PrefixSearch' => 'includes/PrefixSearch.php',
        'ProtectionForm' => 'includes/ProtectionForm.php',
 -      'QuickTemplate' => 'includes/SkinTemplate.php',
        'RawMessage' => 'includes/Message.php',
        'ReverseChronologicalPager' => 'includes/Pager.php',
        'RevisionItem' => 'includes/RevisionList.php',
        'SiteConfiguration' => 'includes/SiteConfiguration.php',
        'SiteStats' => 'includes/SiteStats.php',
        'SiteStatsInit' => 'includes/SiteStats.php',
 -      'Skin' => 'includes/Skin.php',
 -      'SkinTemplate' => 'includes/SkinTemplate.php',
        'SquidPurgeClient' => 'includes/SquidPurgeClient.php',
        'SquidPurgeClientPool' => 'includes/SquidPurgeClient.php',
        'StatCounter' => 'includes/StatCounter.php',
        'Status' => 'includes/Status.php',
        'StreamFile' => 'includes/StreamFile.php',
        'StringPrefixSearch' => 'includes/PrefixSearch.php',
 -      'StubContLang' => 'includes/StubObject.php',
        'StubObject' => 'includes/StubObject.php',
        'StubUserLang' => 'includes/StubObject.php',
        'TablePager' => 'includes/Pager.php',
        'User' => 'includes/User.php',
        'UserArray' => 'includes/UserArray.php',
        'UserArrayFromResult' => 'includes/UserArrayFromResult.php',
 -      'UserCache' => 'includes/cache/UserCache.php',
        'UserMailer' => 'includes/UserMailer.php',
        'UserRightsProxy' => 'includes/UserRightsProxy.php',
        'WatchedItem' => 'includes/WatchedItem.php',
        'Xml' => 'includes/Xml.php',
        'XmlDumpWriter' => 'includes/Export.php',
        'XmlJsCode' => 'includes/Xml.php',
 -      'XMLReader2' => 'includes/Import.php',
        'XmlSelect' => 'includes/Xml.php',
  
        # includes/actions
        'FormlessAction' => 'includes/actions/FormlessAction.php',
        'FormAction' => 'includes/actions/FormAction.php',
        'HistoryAction' => 'includes/actions/HistoryAction.php',
 -      'HistoryPage' => 'includes/actions/HistoryAction.php',
        'HistoryPager' => 'includes/actions/HistoryAction.php',
        'InfoAction' => 'includes/actions/InfoAction.php',
        'MarkpatrolledAction' => 'includes/actions/MarkpatrolledAction.php',
        'ProtectAction' => 'includes/actions/ProtectAction.php',
        'PurgeAction' => 'includes/actions/PurgeAction.php',
        'RawAction' => 'includes/actions/RawAction.php',
 -      'RawPage' => 'includes/actions/RawAction.php',
        'RenderAction' => 'includes/actions/RenderAction.php',
        'RevertAction' => 'includes/actions/RevertAction.php',
        'RevisiondeleteAction' => 'includes/actions/RevisiondeleteAction.php',
        'RollbackAction' => 'includes/actions/RollbackAction.php',
 -      'SubmitAction' => 'includes/actions/EditAction.php',
 -      'UnprotectAction' => 'includes/actions/ProtectAction.php',
 -      'UnwatchAction' => 'includes/actions/WatchAction.php',
 +      'SubmitAction' => 'includes/actions/SubmitAction.php',
 +      'UnprotectAction' => 'includes/actions/UnprotectAction.php',
 +      'UnwatchAction' => 'includes/actions/UnwatchAction.php',
        'ViewAction' => 'includes/actions/ViewAction.php',
        'WatchAction' => 'includes/actions/WatchAction.php',
  
        # includes/cache
        'BacklinkCache' => 'includes/cache/BacklinkCache.php',
        'CacheDependency' => 'includes/cache/CacheDependency.php',
 +      'CacheHelper' => 'includes/cache/CacheHelper.php',
        'ConstantDependency' => 'includes/cache/CacheDependency.php',
        'DependencyWrapper' => 'includes/cache/CacheDependency.php',
        'FileCacheBase' => 'includes/cache/FileCacheBase.php',
        'GenderCache' => 'includes/cache/GenderCache.php',
        'GlobalDependency' => 'includes/cache/CacheDependency.php',
        'HTMLFileCache' => 'includes/cache/HTMLFileCache.php',
 +      'ICacheHelper' => 'includes/cache/CacheHelper.php',
 +      'LCStore' => 'includes/cache/LocalisationCache.php',
 +      'LCStoreAccel' => 'includes/cache/LocalisationCache.php',
 +      'LCStoreCDB' => 'includes/cache/LocalisationCache.php',
 +      'LCStoreDB' => 'includes/cache/LocalisationCache.php',
 +      'LCStoreNull' => 'includes/cache/LocalisationCache.php',
        'LinkBatch' => 'includes/cache/LinkBatch.php',
        'LinkCache' => 'includes/cache/LinkCache.php',
 +      'LocalisationCache' => 'includes/cache/LocalisationCache.php',
 +      'LocalisationCacheBulkLoad' => 'includes/cache/LocalisationCache.php',
        'MapCacheLRU' => 'includes/cache/MapCacheLRU.php',
        'MessageCache' => 'includes/cache/MessageCache.php',
        'ObjectFileCache' => 'includes/cache/ObjectFileCache.php',
        'ResourceFileCache' => 'includes/cache/ResourceFileCache.php',
 +      'UserCache' => 'includes/cache/UserCache.php',
  
        # includes/changes
 +      'ChangesFeed' => 'includes/changes/ChangesFeed.php',
        'ChangesList' => 'includes/changes/ChangesList.php',
        'EnhancedChangesList' => 'includes/changes/EnhancedChangesList.php',
        'OldChangesList' => 'includes/changes/OldChangesList.php',
        'CssContent' => 'includes/content/CssContent.php',
        'JavaScriptContentHandler' => 'includes/content/JavaScriptContentHandler.php',
        'JavaScriptContent' => 'includes/content/JavaScriptContent.php',
 +      'JSONContentHandler' => 'includes/content/JSONContentHandler.php',
 +      'JSONContent' => 'includes/content/JSONContent.php',
        'MessageContent' => 'includes/content/MessageContent.php',
        'MWContentSerializationException' => 'includes/content/ContentHandler.php',
        'TextContentHandler' => 'includes/content/TextContentHandler.php',
        'SQLiteField' => 'includes/db/DatabaseSqlite.php',
  
        # includes/debug
 -      'MWDebug' => 'includes/debug/Debug.php',
 +      'MWDebug' => 'includes/debug/MWDebug.php',
  
        # includes/deferred
        'DataUpdate' => 'includes/deferred/DataUpdate.php',
        'JobQueueGroup' => 'includes/jobqueue/JobQueueGroup.php',
        'JobQueueFederated' => 'includes/jobqueue/JobQueueFederated.php',
        'JobQueueRedis' => 'includes/jobqueue/JobQueueRedis.php',
 +      'JobRunner' => 'includes/jobqueue/JobRunner.php',
        'JobSpecification' => 'includes/jobqueue/JobSpecification.php',
  
        # includes/jobqueue/jobs
        'CoreTagHooks' => 'includes/parser/CoreTagHooks.php',
        'DateFormatter' => 'includes/parser/DateFormatter.php',
        'LinkHolderArray' => 'includes/parser/LinkHolderArray.php',
 -      'MWTidy' => 'includes/parser/Tidy.php',
 -      'MWTidyWrapper' => 'includes/parser/Tidy.php',
 +      'MWTidy' => 'includes/parser/MWTidy.php',
 +      'MWTidyWrapper' => 'includes/parser/MWTidy.php',
        'PPCustomFrame_DOM' => 'includes/parser/Preprocessor_DOM.php',
        'PPCustomFrame_Hash' => 'includes/parser/Preprocessor_Hash.php',
        'PPDAccum_Hash' => 'includes/parser/Preprocessor_Hash.php',
        'Preprocessor_Hash' => 'includes/parser/Preprocessor_Hash.php',
        'StripState' => 'includes/parser/StripState.php',
  
 +      # includes/password
 +      'BcryptPassword' => 'includes/password/BcryptPassword.php',
 +      'InvalidPassword' => 'includes/password/InvalidPassword.php',
 +      'LayeredParameterizedPassword' => 'includes/password/LayeredParameterizedPassword.php',
 +      'MWSaltedPassword' => 'includes/password/MWSaltedPassword.php',
 +      'MWOldPassword' => 'includes/password/MWOldPassword.php',
 +      'ParameterizedPassword' => 'includes/password/ParameterizedPassword.php',
 +      'Password' => 'includes/password/Password.php',
 +      'PasswordError' => 'includes/password/PasswordError.php',
 +      'PasswordFactory' => 'includes/password/PasswordFactory.php',
 +      'Pbkdf2Password' => 'includes/password/Pbkdf2Password.php',
 +      'EncryptedPassword' => 'includes/password/EncryptedPassword.php',
 +
        # includes/profiler
        'Profiler' => 'includes/profiler/Profiler.php',
        'ProfilerMwprof' => 'includes/profiler/ProfilerMwprof.php',
        'MachineReadableRCFeedFormatter' => 'includes/rcfeed/MachineReadableRCFeedFormatter.php',
  
        # includes/resourceloader
 +      'DerivativeResourceLoaderContext' =>
 +              'includes/resourceloader/DerivativeResourceLoaderContext.php',
        'ResourceLoader' => 'includes/resourceloader/ResourceLoader.php',
        'ResourceLoaderContext' => 'includes/resourceloader/ResourceLoaderContext.php',
        'ResourceLoaderFileModule' => 'includes/resourceloader/ResourceLoaderFileModule.php',
        'ResourceLoaderFilePageModule' => 'includes/resourceloader/ResourceLoaderFilePageModule.php',
 +      'ResourceLoaderFilePath' => 'includes/resourceloader/ResourceLoaderFilePath.php',
        'ResourceLoaderLESSFunctions' => 'includes/resourceloader/ResourceLoaderLESSFunctions.php',
        'ResourceLoaderModule' => 'includes/resourceloader/ResourceLoaderModule.php',
        'ResourceLoaderNoscriptModule' => 'includes/resourceloader/ResourceLoaderNoscriptModule.php',
        'ResourceLoaderWikiModule' => 'includes/resourceloader/ResourceLoaderWikiModule.php',
  
        # includes/revisiondelete
 -      'RevDelArchivedFileItem' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelArchivedFileList' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelArchivedRevisionItem' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelArchiveItem' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelArchiveList' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelFileItem' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelFileList' => 'includes/revisiondelete/RevisionDelete.php',
 +      'RevDelArchivedFileItem' => 'includes/revisiondelete/RevDelArchivedFileItem.php',
 +      'RevDelArchivedFileList' => 'includes/revisiondelete/RevDelArchivedFileList.php',
 +      'RevDelArchivedRevisionItem' => 'includes/revisiondelete/RevDelArchivedRevisionItem.php',
 +      'RevDelArchiveItem' => 'includes/revisiondelete/RevDelArchiveItem.php',
 +      'RevDelArchiveList' => 'includes/revisiondelete/RevDelArchiveList.php',
 +      'RevDelFileItem' => 'includes/revisiondelete/RevDelFileItem.php',
 +      'RevDelFileList' => 'includes/revisiondelete/RevDelFileList.php',
        'RevDelItem' => 'includes/revisiondelete/RevisionDeleteAbstracts.php',
        'RevDelList' => 'includes/revisiondelete/RevisionDeleteAbstracts.php',
 -      'RevDelLogItem' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelLogList' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelRevisionItem' => 'includes/revisiondelete/RevisionDelete.php',
 -      'RevDelRevisionList' => 'includes/revisiondelete/RevisionDelete.php',
 +      'RevDelLogItem' => 'includes/revisiondelete/RevDelLogItem.php',
 +      'RevDelLogList' => 'includes/revisiondelete/RevDelLogList.php',
 +      'RevDelRevisionItem' => 'includes/revisiondelete/RevDelRevisionItem.php',
 +      'RevDelRevisionList' => 'includes/revisiondelete/RevDelRevisionList.php',
        'RevisionDeleter' => 'includes/revisiondelete/RevisionDeleter.php',
        'RevisionDeleteUser' => 'includes/revisiondelete/RevisionDeleteUser.php',
  
        # includes/search
 -      'PostgresSearchResult' => 'includes/search/SearchPostgres.php',
 -      'PostgresSearchResultSet' => 'includes/search/SearchPostgres.php',
        'SearchDatabase' => 'includes/search/SearchDatabase.php',
        'SearchEngine' => 'includes/search/SearchEngine.php',
        'SearchEngineDummy' => 'includes/search/SearchEngine.php',
        'Sites' => 'includes/site/SiteSQLStore.php',
        'SiteStore' => 'includes/site/SiteStore.php',
  
 +      # includes/skins
 +      'BaseTemplate' => 'includes/skins/SkinTemplate.php',
 +      'MediaWikiI18N' => 'includes/skins/SkinTemplate.php',
 +      'QuickTemplate' => 'includes/skins/SkinTemplate.php',
 +      'Skin' => 'includes/skins/Skin.php',
 +      'SkinException' => 'includes/skins/SkinException.php',
 +      'SkinFactory' => 'includes/skins/SkinFactory.php',
 +      'SkinFallback' => 'includes/skins/SkinFallback.php',
 +      'SkinFallbackTemplate' => 'includes/skins/SkinFallbackTemplate.php',
 +      'SkinTemplate' => 'includes/skins/SkinTemplate.php',
 +
        # includes/specialpage
        'ChangesListSpecialPage' => 'includes/specialpage/ChangesListSpecialPage.php',
        'FormSpecialPage' => 'includes/specialpage/FormSpecialPage.php',
        'EmailInvalidation' => 'includes/specials/SpecialConfirmemail.php',
        'FewestrevisionsPage' => 'includes/specials/SpecialFewestrevisions.php',
        'FileDuplicateSearchPage' => 'includes/specials/SpecialFileDuplicateSearch.php',
-       'HTMLBlockedUsersItemSelect' => 'includes/specials/SpecialBlockList.php',
        'ImageListPager' => 'includes/specials/SpecialListfiles.php',
        'ImportReporter' => 'includes/specials/SpecialImport.php',
        'LinkSearchPage' => 'includes/specials/SpecialLinkSearch.php',
        'SpecialLog' => 'includes/specials/SpecialLog.php',
        'SpecialMergeHistory' => 'includes/specials/SpecialMergeHistory.php',
        'SpecialMycontributions' => 'includes/specials/SpecialMyRedirectPages.php',
 +      'SpecialMyLanguage' => 'includes/specials/SpecialMyLanguage.php',
        'SpecialMypage' => 'includes/specials/SpecialMyRedirectPages.php',
        'SpecialMytalk' => 'includes/specials/SpecialMyRedirectPages.php',
        'SpecialMyuploads' => 'includes/specials/SpecialMyRedirectPages.php',
        'FixExtLinksProtocolRelative' => 'maintenance/fixExtLinksProtocolRelative.php',
        'LoggedUpdateMaintenance' => 'maintenance/Maintenance.php',
        'Maintenance' => 'maintenance/Maintenance.php',
 +      'PopulateBacklinkNamespace' => 'maintenance/populateBacklinkNamespace.php',
        'PopulateCategory' => 'maintenance/populateCategory.php',
        'PopulateImageSha1' => 'maintenance/populateImageSha1.php',
        'PopulateFilearchiveSha1' => 'maintenance/populateFilearchiveSha1.php',
@@@ -1207,7 -1186,7 +1207,7 @@@ class AutoLoader 
        /**
         * autoload - take a class name and attempt to load it
         *
 -       * @param string $className name of class we're looking for.
 +       * @param string $className Name of class we're looking for.
         */
        static function autoload( $className ) {
                global $wgAutoloadClasses, $wgAutoloadLocalClasses,
@@@ -50,7 -50,6 +50,7 @@@
   *    'default'             -- default value when the form is displayed
   *    'id'                  -- HTML id attribute
   *    'cssclass'            -- CSS class
 + *    'csshelpclass'        -- CSS class used to style help text
   *    'options'             -- associative array mapping labels to values.
   *                             Some field types support multi-level arrays.
   *    'options-messages'    -- associative array mapping message keys to values.
@@@ -107,6 -106,7 +107,7 @@@ class HTMLForm extends ContextSource 
                'select' => 'HTMLSelectField',
                'radio' => 'HTMLRadioField',
                'multiselect' => 'HTMLMultiSelectField',
+               'limitselect' => 'HTMLSelectLimitField',
                'check' => 'HTMLCheckField',
                'toggle' => 'HTMLCheckField',
                'int' => 'HTMLIntField',
         * @param array $descriptor Input Descriptor, as described above
         *
         * @throws MWException
 -       * @return HTMLFormField subclass
 +       * @return HTMLFormField Instance of a subclass of HTMLFormField
         */
        public static function loadInputFromParameters( $fieldname, $descriptor ) {
                $class = self::getClassFromDescriptor( $fieldname, $descriptor );
        /**
         * Add footer text, inside the form.
         *
 -       * @param string $msg complete text of message to display
 +       * @param string $msg Complete text of message to display
         * @param string|null $section The section to add the footer text to
         *
         * @return HTMLForm $this for chaining calls (since 1.20)
         * Only useful when the method is "post".
         *
         * @since 1.24
 -       * @param string|array Salt to use
 -       * @return HTMLForm $this for chaining calls
 +       * @param string|array $salt Salt to use
 +       * @return HTMLForm $this For chaining calls
         */
        public function setTokenSalt( $salt ) {
                $this->mTokenSalt = $salt;
         *
         * @param bool|string|array|Status $submitResult Output from HTMLForm::trySubmit()
         *
 -       * @return Nothing, should be last call
 +       * @return void Nothing, should be last call
         */
        function displayForm( $submitResult ) {
                $this->getOutput()->addHTML( $this->getHTML( $submitResult ) );
        /**
         * Format a stack of error messages into a single HTML string
         *
 -       * @param array $errors of message keys/values
 +       * @param array $errors Array of message keys/values
         *
         * @return string HTML, a "<ul>" list of errors
         */
        /**
         * Set the text for the submit button
         *
 -       * @param string $t plaintext.
 +       * @param string $t Plaintext
         *
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
         * Set the text for the submit button to a message
         * @since 1.19
         *
 -       * @param string $msg Message key
 +       * @param string|Message $msg Message key or Message object
         *
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setSubmitTextMsg( $msg ) {
 -              $this->setSubmitText( $this->msg( $msg )->text() );
 +              if ( !$msg instanceof Message ) {
 +                      $msg = $this->msg( $msg );
 +              }
 +              $this->setSubmitText( $msg->text() );
  
                return $this;
        }
         * this message as its "<legend>" element.
         * @since 1.19
         *
 -       * @param string $msg Message key
 +       * @param string|Message $msg Message key or Message object
         *
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setWrapperLegendMsg( $msg ) {
 -              $this->setWrapperLegend( $this->msg( $msg )->text() );
 +              if ( !$msg instanceof Message ) {
 +                      $msg = $this->msg( $msg );
 +              }
 +              $this->setWrapperLegend( $msg->text() );
  
                return $this;
        }
         *
         * @param array $data
         *
 -       * @return
 +       * @return array
         */
        function filterDataForSubmit( $data ) {
                return $data;