Add namespace and deprecation alias to Xml and XmlSelect

This patch introduces a new namespace declaration,
MediaWiki\Xml and adds Xml and XmlSelect to it
and establishes class aliases marked as deprecated
since version 1.43.

Bug: T353458
Change-Id: I45cccd540b6e15f267d3ab588a064fbeb719d921
This commit is contained in:
Ebrahim Byagowi 2024-05-16 14:22:03 +03:30
parent f4d953a714
commit 14b4269d83
65 changed files with 104 additions and 73 deletions

View file

@ -2498,6 +2498,8 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Widget\\UsersMultiselectWidget' => __DIR__ . '/includes/widget/UsersMultiselectWidget.php',
'MediaWiki\\WikiMap\\WikiMap' => __DIR__ . '/includes/WikiMap/WikiMap.php',
'MediaWiki\\WikiMap\\WikiReference' => __DIR__ . '/includes/WikiMap/WikiReference.php',
'MediaWiki\\Xml\\Xml' => __DIR__ . '/includes/xml/Xml.php',
'MediaWiki\\Xml\\XmlSelect' => __DIR__ . '/includes/xml/XmlSelect.php',
'MediumSpecificBagOStuff' => __DIR__ . '/includes/libs/objectcache/MediumSpecificBagOStuff.php',
'MemcLockManager' => __DIR__ . '/includes/libs/lockmanager/MemcLockManager.php',
'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php',

View file

@ -25,6 +25,7 @@ use MediaWiki\MainConfigNames;
use MediaWiki\Status\Status;
use MediaWiki\User\User;
use MediaWiki\Watchlist\WatchlistManager;
use MediaWiki\Xml\XmlSelect;
use Wikimedia\ParamValidator\TypeDef\ExpiryDef;
/**

View file

@ -21,6 +21,7 @@
*/
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use Wikimedia\ParamValidator\ParamValidator;
/**

View file

@ -35,6 +35,7 @@ use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\User\UserIdentity;
use MediaWiki\Xml\XmlSelect;
use Wikimedia\Rdbms\IReadableDatabase;
class ChangeTags {

View file

@ -36,6 +36,7 @@ use MediaWiki\Revision\SlotRecord;
use MediaWiki\Revision\SuppressedDataException;
use MediaWiki\Storage\SqlBlobStore;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use Wikimedia\Assert\Assert;
use Wikimedia\IPUtils;

View file

@ -75,10 +75,10 @@ use MediaWiki\Parser\Sanitizer;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\Title\TitleValue;
use MediaWiki\Xml\Xml;
use MessageSpecifier;
use StatusValue;
use Stringable;
use Xml;
/**
* Object handling generic submission, CSRF protection, layout and

View file

@ -5,7 +5,7 @@ namespace MediaWiki\HTMLForm\Field;
use FormatJson;
use InvalidArgumentException;
use MediaWiki\HTMLForm\HTMLFormField;
use XmlSelect;
use MediaWiki\Xml\XmlSelect;
/**
* Text field for selecting a value from a large list of possible values, with

View file

@ -8,7 +8,7 @@ use MediaWiki\HTMLForm\HTMLFormField;
use MediaWiki\HTMLForm\OOUIHTMLForm;
use MediaWiki\HTMLForm\VFormHTMLForm;
use MediaWiki\Request\WebRequest;
use Xml;
use MediaWiki\Xml\Xml;
/**
* A checkbox field

View file

@ -8,7 +8,7 @@ use MediaWiki\HTMLForm\HTMLFormField;
use MediaWiki\HTMLForm\HTMLFormFieldRequiredOptionsException;
use MediaWiki\HTMLForm\HTMLNestedFilterable;
use MediaWiki\Request\WebRequest;
use Xml;
use MediaWiki\Xml\Xml;
/**
* A checkbox matrix

View file

@ -2,7 +2,7 @@
namespace MediaWiki\HTMLForm\Field;
use XmlSelect;
use MediaWiki\Xml\XmlSelect;
/**
* A combo box field.

View file

@ -8,7 +8,7 @@ use MediaWiki\HTMLForm\HTMLForm;
use MediaWiki\HTMLForm\HTMLFormField;
use MediaWiki\Parser\Sanitizer;
use MediaWiki\Request\DerivativeRequest;
use Xml;
use MediaWiki\Xml\Xml;
/**
* A container for HTMLFormFields that allows for multiple copies of the set of

View file

@ -7,8 +7,8 @@ use MediaWiki\HTMLForm\HTMLFormField;
use MediaWiki\HTMLForm\HTMLNestedFilterable;
use MediaWiki\HTMLForm\OOUIHTMLForm;
use MediaWiki\Request\WebRequest;
use MediaWiki\Xml\Xml;
use RuntimeException;
use Xml;
/**
* Multi-select field

View file

@ -5,7 +5,7 @@ namespace MediaWiki\HTMLForm\Field;
use MediaWiki\Html\Html;
use MediaWiki\HTMLForm\HTMLFormField;
use MediaWiki\Parser\Sanitizer;
use Xml;
use MediaWiki\Xml\Xml;
/**
* Radio checkbox fields.

View file

@ -3,7 +3,7 @@
namespace MediaWiki\HTMLForm\Field;
use MediaWiki\HTMLForm\HTMLFormField;
use XmlSelect;
use MediaWiki\Xml\XmlSelect;
/**
* A select dropdown field. Basically a wrapper for Xmlselect class

View file

@ -5,7 +5,7 @@ namespace MediaWiki\HTMLForm\Field;
use MediaWiki\Html\Html;
use MediaWiki\HTMLForm\HTMLFormField;
use MediaWiki\Request\WebRequest;
use XmlSelect;
use MediaWiki\Xml\XmlSelect;
/**
* Select dropdown field, with an additional "other" textbox.

View file

@ -4,7 +4,7 @@ namespace MediaWiki\HTMLForm\Field;
use MediaWiki\Request\WebRequest;
use MediaWiki\Widget\SizeFilterWidget;
use Xml;
use MediaWiki\Xml\Xml;
/**
* A size filter field for use on query-type special pages. It looks a bit like:

View file

@ -32,7 +32,7 @@ use MediaWiki\MediaWikiServices;
use MediaWiki\Message\Message;
use MediaWiki\Request\WebRequest;
use MediaWiki\Status\Status;
use Xml;
use MediaWiki\Xml\Xml;
/**
* Class for the core installer web interface.

View file

@ -24,7 +24,7 @@ namespace MediaWiki\Installer;
use MediaWiki\Html\Html;
use MediaWiki\Status\Status;
use Xml;
use MediaWiki\Xml\Xml;
class WebInstallerDBConnect extends WebInstallerPage {

View file

@ -25,7 +25,7 @@ namespace MediaWiki\Installer;
use MediaWiki\Html\Html;
use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\MediaWikiServices;
use XmlSelect;
use MediaWiki\Xml\XmlSelect;
class WebInstallerLanguage extends WebInstallerPage {

View file

@ -23,7 +23,7 @@
namespace MediaWiki\Installer;
use MediaWiki\Html\Html;
use Xml;
use MediaWiki\Xml\Xml;
/**
* Abstract class to define pages for the web installer.

View file

@ -48,6 +48,7 @@ use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserTimeCorrection;
use MediaWiki\Utils\MWTimestamp;
use MediaWiki\Xml\XmlSelect;
use Wikimedia\Assert\Assert;
use Wikimedia\AtEase\AtEase;
use Wikimedia\Bcp47Code\Bcp47Code;

View file

@ -44,12 +44,12 @@ use MediaWiki\Title\Title;
use MediaWiki\Title\TitleValue;
use MediaWiki\User\ExternalUserNames;
use MediaWiki\User\UserIdentityValue;
use MediaWiki\Xml\Xml;
use MessageLocalizer;
use Wikimedia\Assert\Assert;
use Wikimedia\IPUtils;
use Wikimedia\Rdbms\SelectQueryBuilder;
use Wikimedia\RemexHtml\Serializer\SerializerNode;
use Xml;
/**
* Some internal bits split of from Skin.php. These functions are used

View file

@ -40,6 +40,7 @@ use MediaWiki\Parser\Sanitizer;
use MediaWiki\Permissions\Authority;
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Status\Status;
use MediaWiki\Xml\Xml;
class LogEventsList extends ContextSource {
public const NO_ACTION_LINK = 1;

View file

@ -25,6 +25,7 @@
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use MediaWiki\Status\Status;
use MediaWiki\Xml\Xml;
/**
* Base class for the output of MediaHandler::doTransform() and File::transform().

View file

@ -27,6 +27,7 @@ use MediaWiki\Html\Html;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
/**
* Media transform output for images

View file

@ -50,6 +50,7 @@ use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserNameUtils;
use MediaWiki\Xml\Xml;
use Wikimedia\IPUtils;
use Wikimedia\LightweightObjectStore\ExpirationAwareness;
use Wikimedia\NonSerializable\NonSerializableTrait;

View file

@ -26,6 +26,7 @@ use MediaWiki\Request\WebRequest;
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Title\Title;
use MediaWiki\Title\TitleArrayFromResult;
use MediaWiki\Xml\Xml;
use Wikimedia\Rdbms\IResultWrapper;
/**

View file

@ -45,8 +45,8 @@ use MediaWiki\Request\WebRequest;
use MediaWiki\Title\Title;
use MediaWiki\Title\TitleFormatter;
use MediaWiki\Watchlist\WatchlistManager;
use Xml;
use XmlSelect;
use MediaWiki\Xml\Xml;
use MediaWiki\Xml\XmlSelect;
/**
* Handles the page protection UI and backend

View file

@ -24,10 +24,10 @@ use MediaWiki\Context\IContextSource;
use MediaWiki\Html\Html;
use MediaWiki\Linker\LinkRenderer;
use MediaWiki\Parser\ParserOutput;
use MediaWiki\Xml\XmlSelect;
use OOUI\ButtonGroupWidget;
use OOUI\ButtonWidget;
use stdClass;
use XmlSelect;
/**
* Table-based display with a user-selectable sort order

View file

@ -83,6 +83,7 @@ use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserNameUtils;
use MediaWiki\Utils\MWTimestamp;
use MediaWiki\Utils\UrlUtils;
use MediaWiki\Xml\Xml;
use Message;
use ParserFactory;
use ParserOptions;
@ -110,7 +111,6 @@ use Wikimedia\Parsoid\DOM\Node;
use Wikimedia\Parsoid\Utils\DOMCompat;
use Wikimedia\Parsoid\Utils\DOMUtils;
use Wikimedia\ScopedCallback;
use Xml;
/**
* @defgroup Parser Parser

View file

@ -54,6 +54,7 @@ use MediaWiki\User\User;
use MediaWiki\User\UserGroupManager;
use MediaWiki\User\UserGroupMembership;
use MediaWiki\User\UserTimeCorrection;
use MediaWiki\Xml\Xml;
use MessageLocalizer;
use OOUI\ButtonWidget;
use OOUI\FieldLayout;
@ -66,7 +67,6 @@ use Psr\Log\LoggerAwareTrait;
use Psr\Log\NullLogger;
use SkinFactory;
use UnexpectedValueException;
use Xml;
/**
* This is the default implementation of PreferencesFactory.

View file

@ -22,6 +22,7 @@
use MediaWiki\CommentStore\CommentStore;
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use Wikimedia\Rdbms\IConnectionProvider;
/**

View file

@ -22,6 +22,7 @@
use MediaWiki\Linker\Linker;
use MediaWiki\MediaWikiServices;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Xml\Xml;
/**
* Item class for a live revision table row

View file

@ -11,12 +11,12 @@ use MediaWiki\MainConfigNames;
use MediaWiki\Specials\SpecialSearch;
use MediaWiki\Title\NamespaceInfo;
use MediaWiki\Widget\SearchInputWidget;
use MediaWiki\Xml\Xml;
use OOUI\ActionFieldLayout;
use OOUI\ButtonInputWidget;
use OOUI\CheckboxInputWidget;
use OOUI\FieldLayout;
use SearchEngineConfig;
use Xml;
class SearchFormWidget {
/** @internal For use by SpecialSearch only */

View file

@ -21,7 +21,7 @@
namespace MediaWiki\Site;
use InvalidArgumentException;
use Xml;
use MediaWiki\Xml\Xml;
/**
* Utility for exporting site entries to XML.

View file

@ -66,6 +66,7 @@ use MediaWiki\Specials\SpecialWantedFiles;
use MediaWiki\Specials\SpecialWantedPages;
use MediaWiki\Specials\SpecialWantedTemplates;
use MediaWiki\Specials\SpecialWithoutInterwiki;
use MediaWiki\Xml\Xml;
use Skin;
use stdClass;
use Wikimedia\Rdbms\DBError;
@ -75,7 +76,6 @@ use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
use Wikimedia\Rdbms\SelectQueryBuilder;
use Xml;
/**
* This is a class for doing query pages; since they're almost all the same,

View file

@ -20,8 +20,8 @@ use MediaWiki\Revision\SlotRecord;
use MediaWiki\SpecialPage\FormSpecialPage;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use SearchEngineFactory;
use Xml;
class SpecialChangeContentModel extends FormSpecialPage {

View file

@ -33,10 +33,10 @@ use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\SpecialPage\UnlistedSpecialPage;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use MediaWiki\Xml\XmlSelect;
use RevisionDeleter;
use UserBlockedError;
use Xml;
use XmlSelect;
/**
* Special page for adding and removing change tags to individual revisions.

View file

@ -34,9 +34,9 @@ use MediaWiki\Status\Status;
use MediaWiki\Tidy\TidyDriverBase;
use MediaWiki\Title\Title;
use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\Xml\Xml;
use ParserFactory;
use ParserOptions;
use Xml;
/**
* A special page that expands submitted templates, parser functions,

View file

@ -43,6 +43,7 @@ use MediaWiki\Title\TitleFactory;
use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\Watchlist\WatchlistManager;
use MediaWiki\Widget\ComplexTitleInputWidget;
use MediaWiki\Xml\Xml;
use OOUI\ButtonInputWidget;
use OOUI\CheckboxInputWidget;
use OOUI\DropdownInputWidget;
@ -60,7 +61,6 @@ use ThrottledError;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IExpression;
use Wikimedia\Rdbms\LikeValue;
use Xml;
/**
* Implement Special:Movepage for changing page titles

View file

@ -41,10 +41,10 @@ use MediaWiki\SpecialPage\FormSpecialPage;
use MediaWiki\Status\Status;
use MediaWiki\Title\MalformedTitleException;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use SearchEngineFactory;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IDatabase;
use Xml;
/**
* Special page for changing the content language of a page

View file

@ -30,8 +30,8 @@ use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Title\Title;
use MediaWiki\User\UserGroupManager;
use MediaWiki\User\UserGroupMembership;
use MediaWiki\Xml\Xml;
use UserPasswordPolicy;
use Xml;
/**
* This special page lists the defined password policies for user groups.

View file

@ -40,6 +40,7 @@ use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\User\TempUser\TempUserConfig;
use MediaWiki\User\UserIdentityUtils;
use MediaWiki\Utils\MWTimestamp;
use MediaWiki\Xml\Xml;
use MessageCache;
use OOUI\ButtonWidget;
use OOUI\HtmlSnippet;
@ -47,7 +48,6 @@ use RecentChange;
use WatchedItemStoreInterface;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
use Xml;
/**
* A special page that lists last changes made to the wiki

View file

@ -31,13 +31,13 @@ use MediaWiki\Title\Title;
use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\User\TempUser\TempUserConfig;
use MediaWiki\User\UserIdentityUtils;
use MediaWiki\Xml\Xml;
use MessageCache;
use RecentChange;
use SearchEngineFactory;
use WatchedItemStoreInterface;
use Wikimedia\Rdbms\SelectQueryBuilder;
use Wikimedia\Rdbms\Subquery;
use Xml;
/**
* This is to display changes made to all articles linked in an article.

View file

@ -36,12 +36,12 @@ use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\SpecialPage\UnlistedSpecialPage;
use MediaWiki\Status\Status;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use PermissionsError;
use RepoGroup;
use RevDelList;
use RevisionDeleter;
use UserBlockedError;
use Xml;
/**
* Special page allowing users with the appropriate permissions to view

View file

@ -49,12 +49,12 @@ use MediaWiki\Status\Status;
use MediaWiki\Title\NamespaceInfo;
use MediaWiki\Title\Title;
use MediaWiki\User\Options\UserOptionsManager;
use MediaWiki\Xml\Xml;
use RepoGroup;
use SearchEngine;
use SearchEngineConfig;
use SearchEngineFactory;
use Wikimedia\Rdbms\ReadOnlyMode;
use Xml;
/**
* implements Special:Search - Run text & title search and display the output

View file

@ -31,7 +31,7 @@ use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Title\Title;
use MediaWiki\User\UserGroupManager;
use MediaWiki\User\UserGroupMembership;
use Xml;
use MediaWiki\Xml\Xml;
/**
* Special page lists various statistics, including the contents of

View file

@ -29,8 +29,8 @@ use MediaWiki\CommentStore\CommentStore;
use MediaWiki\HTMLForm\HTMLForm;
use MediaWiki\MainConfigNames;
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Xml\Xml;
use PermissionsError;
use Xml;
/**
* A special page that lists tags for edits

View file

@ -60,6 +60,7 @@ use MediaWiki\Title\Title;
use MediaWiki\User\Options\UserOptionsLookup;
use MediaWiki\User\User;
use MediaWiki\Watchlist\WatchlistManager;
use MediaWiki\Xml\Xml;
use OOUI\ActionFieldLayout;
use OOUI\ButtonInputWidget;
use OOUI\CheckboxInputWidget;
@ -81,7 +82,6 @@ use TextContent;
use UserBlockedError;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IResultWrapper;
use Xml;
/**
* Special page allowing users with the appropriate permissions to view

View file

@ -46,10 +46,10 @@ use MediaWiki\User\UserNamePrefixSearch;
use MediaWiki\User\UserNameUtils;
use MediaWiki\Watchlist\WatchlistManager;
use MediaWiki\WikiMap\WikiMap;
use MediaWiki\Xml\Xml;
use MediaWiki\Xml\XmlSelect;
use PermissionsError;
use UserBlockedError;
use Xml;
use XmlSelect;
/**
* Special page to allow managing user group membership

View file

@ -43,14 +43,14 @@ use MediaWiki\User\TempUser\TempUserConfig;
use MediaWiki\User\UserIdentity;
use MediaWiki\User\UserIdentityUtils;
use MediaWiki\Watchlist\WatchlistManager;
use MediaWiki\Xml\Xml;
use MediaWiki\Xml\XmlSelect;
use RecentChange;
use UserNotLoggedIn;
use WatchedItem;
use WatchedItemStoreInterface;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
use Xml;
use XmlSelect;
/**
* A special page that lists last changes made to the wiki,

View file

@ -35,11 +35,11 @@ use MediaWiki\SpecialPage\FormSpecialPage;
use MediaWiki\Title\NamespaceInfo;
use MediaWiki\Title\Title;
use MediaWiki\Title\TitleFactory;
use MediaWiki\Xml\Xml;
use SearchEngineFactory;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\SelectQueryBuilder;
use Xml;
/**
* Implements Special:Whatlinkshere

View file

@ -23,6 +23,7 @@ use MediaWiki\HTMLForm\Field\HTMLToggleSwitchField;
use MediaWiki\HTMLForm\HTMLNestedFilterable;
use MediaWiki\HTMLForm\OOUIHTMLForm;
use MediaWiki\User\User;
use MediaWiki\Xml\Xml;
/**
* Form to edit user preferences.

View file

@ -27,6 +27,7 @@ use MediaWiki\MediaWikiServices;
use MediaWiki\Page\PageIdentity;
use MediaWiki\Status\Status;
use MediaWiki\Title\ForeignTitle;
use MediaWiki\Xml\Xml;
/**
* Reporting callback

View file

@ -33,12 +33,12 @@ use MediaWiki\MediaWikiServices;
use MediaWiki\Parser\Sanitizer;
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Title\Title;
use MediaWiki\Xml\Xml;
use stdClass;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
use Xml;
/**
* Use TablePager for prettified output. We have to pretend that we're

View file

@ -34,12 +34,12 @@ use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Title\Title;
use MediaWiki\User\User;
use MediaWiki\User\UserNameUtils;
use MediaWiki\Xml\Xml;
use RepoGroup;
use UnexpectedValueException;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IConnectionProvider;
use Wikimedia\Rdbms\IResultWrapper;
use Xml;
/**
* @ingroup Pager

View file

@ -32,8 +32,8 @@ use MediaWiki\MediaWikiServices;
use MediaWiki\Page\PageIdentity;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Revision\RevisionStore;
use MediaWiki\Xml\Xml;
use Wikimedia\Rdbms\IConnectionProvider;
use Xml;
/**
* @ingroup Pager

View file

@ -20,12 +20,16 @@
* @file
*/
namespace MediaWiki\Xml;
use MediaWiki\Html\Html;
use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use MediaWiki\Parser\Sanitizer;
use MediaWiki\Utils\MWTimestamp;
use Message;
use UtfNormal\Validator;
/**
* Module of static functions for generating XML
@ -96,7 +100,7 @@ class Xml {
*/
public static function elementClean( $element, $attribs = [], $contents = '' ) {
if ( $attribs ) {
$attribs = array_map( [ UtfNormal\Validator::class, 'cleanUp' ], $attribs );
$attribs = array_map( [ Validator::class, 'cleanUp' ], $attribs );
}
if ( $contents ) {
$contents =
@ -906,3 +910,5 @@ class Xml {
return $s;
}
}
/** @deprecated class alias since 1.43 */
class_alias( Xml::class, 'Xml' );

View file

@ -20,6 +20,8 @@
* @file
*/
namespace MediaWiki\Xml;
use MediaWiki\Html\Html;
/**
@ -159,3 +161,5 @@ class XmlSelect {
return $options;
}
}
/** @deprecated class alias since 1.43 */
class_alias( XmlSelect::class, 'XmlSelect' );

View file

@ -35,6 +35,7 @@ use MediaWiki\Storage\BlobAccessException;
use MediaWiki\Storage\BlobStore;
use MediaWiki\Storage\SqlBlobStore;
use MediaWiki\WikiMap\WikiMap;
use MediaWiki\Xml\Xml;
use Wikimedia\AtEase\AtEase;
use Wikimedia\Rdbms\IMaintainableDatabase;

View file

@ -29,6 +29,7 @@
use MediaWiki\HookContainer\HookRunner;
use MediaWiki\MediaWikiServices;
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Xml\Xml;
// This endpoint is supposed to be independent of request cookies and other
// details of the session. Enforce this constraint with respect to session use.

View file

@ -610,27 +610,27 @@ class TaintCheckAnnotationsTest {
}
function textXml() {
echo \Xml::tags( $_GET['a'], [], '' );// @phan-suppress-current-line SecurityCheck-XSS
\Xml::tags( '', [ htmlspecialchars( '' ) ], '' );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \Xml::tags( '', $_GET['a'], '' );// Safe
echo \Xml::tags( '', [], $_GET['a'] );// @phan-suppress-current-line SecurityCheck-XSS
echo \Xml::tags( '', [], '' );// Safe
htmlspecialchars( \Xml::tags( '', [], '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::tags( $_GET['a'], [], '' );// @phan-suppress-current-line SecurityCheck-XSS
\MediaWiki\Xml\Xml::tags( '', [ htmlspecialchars( '' ) ], '' );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::tags( '', $_GET['a'], '' );// Safe
echo \MediaWiki\Xml\Xml::tags( '', [], $_GET['a'] );// @phan-suppress-current-line SecurityCheck-XSS
echo \MediaWiki\Xml\Xml::tags( '', [], '' );// Safe
htmlspecialchars( \MediaWiki\Xml\Xml::tags( '', [], '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \Xml::element( $_GET['a'] );// @phan-suppress-current-line SecurityCheck-XSS
\Xml::element( '', [ htmlspecialchars( '' ) ] );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \Xml::element( '', $_GET['a'] );// Safe
echo \Xml::element( '', [], htmlspecialchars( '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \Xml::element( '', [], $_GET['a'] );// Safe
echo \Xml::element( '', [], '' );// Safe
htmlspecialchars( \Xml::element( '', [], '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::element( $_GET['a'] );// @phan-suppress-current-line SecurityCheck-XSS
\MediaWiki\Xml\Xml::element( '', [ htmlspecialchars( '' ) ] );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::element( '', $_GET['a'] );// Safe
echo \MediaWiki\Xml\Xml::element( '', [], htmlspecialchars( '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::element( '', [], $_GET['a'] );// Safe
echo \MediaWiki\Xml\Xml::element( '', [], '' );// Safe
htmlspecialchars( \MediaWiki\Xml\Xml::element( '', [], '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \Xml::encodeJsVar( $_GET['a'] );// Safe
echo \Xml::encodeJsVar( htmlspecialchars( '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::encodeJsVar( $_GET['a'] );// Safe
echo \MediaWiki\Xml\Xml::encodeJsVar( htmlspecialchars( '' ) );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \Xml::encodeJsCall( $_GET['a'], [] );// @phan-suppress-current-line SecurityCheck-XSS
echo \Xml::encodeJsCall( '', $_GET['a'] );// Safe
echo \Xml::encodeJsCall( '', [ htmlspecialchars( '' ) ] );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
echo \MediaWiki\Xml\Xml::encodeJsCall( $_GET['a'], [] );// @phan-suppress-current-line SecurityCheck-XSS
echo \MediaWiki\Xml\Xml::encodeJsCall( '', $_GET['a'] );// Safe
echo \MediaWiki\Xml\Xml::encodeJsCall( '', [ htmlspecialchars( '' ) ] );// @phan-suppress-current-line SecurityCheck-DoubleEscaped
}
function testHtmlArmor() {

View file

@ -1,12 +1,13 @@
<?php
use MediaWiki\MainConfigNames;
use MediaWiki\Xml\Xml;
/**
* See also \MediaWiki\Tests\Unit\XmlTest for the pure unit tests
*
* @group Xml
* @covers \Xml
* @covers \MediaWiki\Xml\Xml
*/
class XmlTest extends MediaWikiIntegrationTestCase {
@ -132,7 +133,7 @@ class XmlTest extends MediaWikiIntegrationTestCase {
* @dataProvider provideMonthSelector
*/
public function testMonthSelector( $expected, $selected, $allmonths, $id ) {
$this->hideDeprecated( 'Xml::monthSelector' );
$this->hideDeprecated( 'MediaWiki\Xml\Xml::monthSelector' );
$this->assertEquals(
$expected,
Xml::monthSelector( $selected, $allmonths, $id )
@ -157,8 +158,8 @@ class XmlTest extends MediaWikiIntegrationTestCase {
$nextMonth = 1;
}
$this->hideDeprecated( 'Xml::dateMenu' );
$this->hideDeprecated( 'Xml::monthSelector' );
$this->hideDeprecated( 'MediaWiki\Xml\Xml::dateMenu' );
$this->hideDeprecated( 'MediaWiki\Xml\Xml::monthSelector' );
$this->assertEquals(
'<label for="year">From year (and earlier):</label> ' .
@ -292,7 +293,7 @@ class XmlTest extends MediaWikiIntegrationTestCase {
}
public function testLanguageSelector() {
$this->hideDeprecated( 'Xml::languageSelector' );
$this->hideDeprecated( 'MediaWiki\Xml\Xml::languageSelector' );
$select = Xml::languageSelector( 'en', true, null,
[ 'id' => 'testlang' ], wfMessage( 'yourlanguage' ) );

View file

@ -1,8 +1,10 @@
<?php
use MediaWiki\Xml\XmlSelect;
/**
* @group Xml
* @covers \XmlSelect
* @covers \MediaWiki\Xml\XmlSelect
*/
class XmlSelectTest extends MediaWikiUnitTestCase {

View file

@ -21,14 +21,14 @@
namespace MediaWiki\Tests\Unit;
use MediaWiki\Xml\Xml;
use MediaWikiUnitTestCase;
use Xml;
/**
* Split from \XmlTest integration tests
*
* @group Xml
* @covers \Xml
* @covers \MediaWiki\Xml\Xml
*/
class XmlTest extends MediaWikiUnitTestCase {