2014-09-26 23:13:23 +00:00
|
|
|
<?php
|
2014-11-14 19:00:36 +00:00
|
|
|
// This file is generated by maintenance/generateLocalAutoload.php, do not adjust manually
|
2018-04-08 19:39:46 +00:00
|
|
|
// phpcs:disable Generic.Files.LineLength
|
2014-09-26 23:13:23 +00:00
|
|
|
global $wgAutoloadLocalClasses;
|
|
|
|
|
|
2016-02-17 21:08:07 +00:00
|
|
|
$wgAutoloadLocalClasses = [
|
2016-10-01 17:00:53 +00:00
|
|
|
'APCUBagOStuff' => __DIR__ . '/includes/libs/objectcache/APCUBagOStuff.php',
|
2017-12-20 22:45:23 +00:00
|
|
|
'AbkhazUppercaseCollation' => __DIR__ . '/includes/collation/AbkhazUppercaseCollation.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'AbstractContent' => __DIR__ . '/includes/content/AbstractContent.php',
|
|
|
|
|
'Action' => __DIR__ . '/includes/actions/Action.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'ActiveUsersPager' => __DIR__ . '/includes/specials/pagers/ActiveUsersPager.php',
|
2015-05-13 18:23:52 +00:00
|
|
|
'ActivityUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/ActivityUpdateJob.php',
|
2017-09-12 17:12:29 +00:00
|
|
|
'ActorMigration' => __DIR__ . '/includes/ActorMigration.php',
|
2018-08-21 17:36:45 +00:00
|
|
|
'AddChangeTag' => __DIR__ . '/maintenance/addChangeTag.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'AddRFCandPMIDInterwiki' => __DIR__ . '/maintenance/addRFCandPMIDInterwiki.php',
|
2016-04-18 18:03:53 +00:00
|
|
|
'AddSite' => __DIR__ . '/maintenance/addSite.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'AjaxDispatcher' => __DIR__ . '/includes/AjaxDispatcher.php',
|
|
|
|
|
'AjaxResponse' => __DIR__ . '/includes/AjaxResponse.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'AllMessagesTablePager' => __DIR__ . '/includes/specials/pagers/AllMessagesTablePager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'AllTrans' => __DIR__ . '/maintenance/language/alltrans.php',
|
|
|
|
|
'AlphabeticPager' => __DIR__ . '/includes/pager/AlphabeticPager.php',
|
|
|
|
|
'AnsiTermColorer' => __DIR__ . '/maintenance/term/MWTerm.php',
|
2016-01-11 18:20:22 +00:00
|
|
|
'ApiAMCreateAccount' => __DIR__ . '/includes/api/ApiAMCreateAccount.php',
|
|
|
|
|
'ApiAuthManagerHelper' => __DIR__ . '/includes/api/ApiAuthManagerHelper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiBase' => __DIR__ . '/includes/api/ApiBase.php',
|
|
|
|
|
'ApiBlock' => __DIR__ . '/includes/api/ApiBlock.php',
|
2019-04-29 07:47:31 +00:00
|
|
|
'ApiBlockInfoTrait' => __DIR__ . '/includes/api/ApiBlockInfoTrait.php',
|
2016-07-08 22:52:20 +00:00
|
|
|
'ApiCSPReport' => __DIR__ . '/includes/api/ApiCSPReport.php',
|
2016-01-11 18:20:22 +00:00
|
|
|
'ApiChangeAuthenticationData' => __DIR__ . '/includes/api/ApiChangeAuthenticationData.php',
|
2020-01-11 23:49:41 +00:00
|
|
|
'ApiChangeContentModel' => __DIR__ . '/includes/api/ApiChangeContentModel.php',
|
2015-01-29 20:14:40 +00:00
|
|
|
'ApiCheckToken' => __DIR__ . '/includes/api/ApiCheckToken.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiClearHasMsg' => __DIR__ . '/includes/api/ApiClearHasMsg.php',
|
2016-01-11 18:20:22 +00:00
|
|
|
'ApiClientLogin' => __DIR__ . '/includes/api/ApiClientLogin.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiComparePages' => __DIR__ . '/includes/api/ApiComparePages.php',
|
API: Overhaul ApiResult, make format=xml not throw, and add json formatversion
ApiResult was a mess: some methods could only be used with an array
reference instead of manipulating the stored data, methods that had both
array-ref and internal-data versions had names that didn't at all
correspond, some methods that worked on an array reference were
annoyingly non-static, and then the whole mess with setIndexedTagName.
ApiFormatXml is also entirely annoying to deal with, as it liked to
throw exceptions if certain metadata wasn't provided that no other
formatter required. Its legacy also means we have this silly convention
of using empty-string rather than boolean true, annoying restrictions on
keys (leading to things that should be hashes being arrays of key-value
object instead), '*' used as a key all over the place, and so on.
So, changes here:
* ApiResult is no longer an ApiBase or a ContextSource.
* Wherever sensible, ApiResult provides a static method working on an
arrayref and a non-static method working on internal data.
* Metadata is now always added to ApiResult's internal data structure.
Formatters are responsible for stripping it if necessary. "raw mode"
is deprecated.
* New metadata to replace the '*' key, solve the array() => '[]' vs '{}'
question, and so on.
* New class for formatting warnings and errors using i18n messages, and
support for multiple errors and a more machine-readable format for
warnings. For the moment, though, the actual output will not be changing
yet (see T47843 for future plans).
* New formatversion parameter for format=json and format=php, to select
between BC mode and the modern output.
* In BC mode, booleans will be converted to empty-string presence style;
modules currently returning booleans will need to use
ApiResult::META_BC_BOOLS to preserve their current output.
Actual changes to the API modules' output (e.g. actually returning
booleans for the new formatversion) beyond the use of
ApiResult::setContentValue() are left for a future change.
Bug: T76728
Bug: T57371
Bug: T33629
Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678f
2014-12-03 22:14:22 +00:00
|
|
|
'ApiContinuationManager' => __DIR__ . '/includes/api/ApiContinuationManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiDelete' => __DIR__ . '/includes/api/ApiDelete.php',
|
|
|
|
|
'ApiDisabled' => __DIR__ . '/includes/api/ApiDisabled.php',
|
|
|
|
|
'ApiEditPage' => __DIR__ . '/includes/api/ApiEditPage.php',
|
|
|
|
|
'ApiEmailUser' => __DIR__ . '/includes/api/ApiEmailUser.php',
|
API: Overhaul ApiResult, make format=xml not throw, and add json formatversion
ApiResult was a mess: some methods could only be used with an array
reference instead of manipulating the stored data, methods that had both
array-ref and internal-data versions had names that didn't at all
correspond, some methods that worked on an array reference were
annoyingly non-static, and then the whole mess with setIndexedTagName.
ApiFormatXml is also entirely annoying to deal with, as it liked to
throw exceptions if certain metadata wasn't provided that no other
formatter required. Its legacy also means we have this silly convention
of using empty-string rather than boolean true, annoying restrictions on
keys (leading to things that should be hashes being arrays of key-value
object instead), '*' used as a key all over the place, and so on.
So, changes here:
* ApiResult is no longer an ApiBase or a ContextSource.
* Wherever sensible, ApiResult provides a static method working on an
arrayref and a non-static method working on internal data.
* Metadata is now always added to ApiResult's internal data structure.
Formatters are responsible for stripping it if necessary. "raw mode"
is deprecated.
* New metadata to replace the '*' key, solve the array() => '[]' vs '{}'
question, and so on.
* New class for formatting warnings and errors using i18n messages, and
support for multiple errors and a more machine-readable format for
warnings. For the moment, though, the actual output will not be changing
yet (see T47843 for future plans).
* New formatversion parameter for format=json and format=php, to select
between BC mode and the modern output.
* In BC mode, booleans will be converted to empty-string presence style;
modules currently returning booleans will need to use
ApiResult::META_BC_BOOLS to preserve their current output.
Actual changes to the API modules' output (e.g. actually returning
booleans for the new formatversion) beyond the use of
ApiResult::setContentValue() are left for a future change.
Bug: T76728
Bug: T57371
Bug: T33629
Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678f
2014-12-03 22:14:22 +00:00
|
|
|
'ApiErrorFormatter' => __DIR__ . '/includes/api/ApiErrorFormatter.php',
|
2019-04-20 22:38:11 +00:00
|
|
|
'ApiErrorFormatter_BackCompat' => __DIR__ . '/includes/api/ApiErrorFormatter_BackCompat.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiExpandTemplates' => __DIR__ . '/includes/api/ApiExpandTemplates.php',
|
|
|
|
|
'ApiFeedContributions' => __DIR__ . '/includes/api/ApiFeedContributions.php',
|
|
|
|
|
'ApiFeedRecentChanges' => __DIR__ . '/includes/api/ApiFeedRecentChanges.php',
|
|
|
|
|
'ApiFeedWatchlist' => __DIR__ . '/includes/api/ApiFeedWatchlist.php',
|
|
|
|
|
'ApiFileRevert' => __DIR__ . '/includes/api/ApiFileRevert.php',
|
|
|
|
|
'ApiFormatBase' => __DIR__ . '/includes/api/ApiFormatBase.php',
|
|
|
|
|
'ApiFormatFeedWrapper' => __DIR__ . '/includes/api/ApiFormatFeedWrapper.php',
|
|
|
|
|
'ApiFormatJson' => __DIR__ . '/includes/api/ApiFormatJson.php',
|
|
|
|
|
'ApiFormatNone' => __DIR__ . '/includes/api/ApiFormatNone.php',
|
|
|
|
|
'ApiFormatPhp' => __DIR__ . '/includes/api/ApiFormatPhp.php',
|
|
|
|
|
'ApiFormatRaw' => __DIR__ . '/includes/api/ApiFormatRaw.php',
|
|
|
|
|
'ApiFormatXml' => __DIR__ . '/includes/api/ApiFormatXml.php',
|
2019-04-13 23:27:04 +00:00
|
|
|
'ApiFormatXmlRsd' => __DIR__ . '/includes/api/ApiFormatXmlRsd.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiHelp' => __DIR__ . '/includes/api/ApiHelp.php',
|
2014-11-07 23:57:14 +00:00
|
|
|
'ApiHelpParamValueMessage' => __DIR__ . '/includes/api/ApiHelpParamValueMessage.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiImageRotate' => __DIR__ . '/includes/api/ApiImageRotate.php',
|
|
|
|
|
'ApiImport' => __DIR__ . '/includes/api/ApiImport.php',
|
2019-04-06 12:24:57 +00:00
|
|
|
'ApiImportReporter' => __DIR__ . '/includes/api/ApiImportReporter.php',
|
2016-01-11 18:20:22 +00:00
|
|
|
'ApiLinkAccount' => __DIR__ . '/includes/api/ApiLinkAccount.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiLogin' => __DIR__ . '/includes/api/ApiLogin.php',
|
|
|
|
|
'ApiLogout' => __DIR__ . '/includes/api/ApiLogout.php',
|
|
|
|
|
'ApiMain' => __DIR__ . '/includes/api/ApiMain.php',
|
2015-02-04 11:32:00 +00:00
|
|
|
'ApiManageTags' => __DIR__ . '/includes/api/ApiManageTags.php',
|
2015-12-30 04:53:34 +00:00
|
|
|
'ApiMergeHistory' => __DIR__ . '/includes/api/ApiMergeHistory.php',
|
API: Overhaul ApiResult, make format=xml not throw, and add json formatversion
ApiResult was a mess: some methods could only be used with an array
reference instead of manipulating the stored data, methods that had both
array-ref and internal-data versions had names that didn't at all
correspond, some methods that worked on an array reference were
annoyingly non-static, and then the whole mess with setIndexedTagName.
ApiFormatXml is also entirely annoying to deal with, as it liked to
throw exceptions if certain metadata wasn't provided that no other
formatter required. Its legacy also means we have this silly convention
of using empty-string rather than boolean true, annoying restrictions on
keys (leading to things that should be hashes being arrays of key-value
object instead), '*' used as a key all over the place, and so on.
So, changes here:
* ApiResult is no longer an ApiBase or a ContextSource.
* Wherever sensible, ApiResult provides a static method working on an
arrayref and a non-static method working on internal data.
* Metadata is now always added to ApiResult's internal data structure.
Formatters are responsible for stripping it if necessary. "raw mode"
is deprecated.
* New metadata to replace the '*' key, solve the array() => '[]' vs '{}'
question, and so on.
* New class for formatting warnings and errors using i18n messages, and
support for multiple errors and a more machine-readable format for
warnings. For the moment, though, the actual output will not be changing
yet (see T47843 for future plans).
* New formatversion parameter for format=json and format=php, to select
between BC mode and the modern output.
* In BC mode, booleans will be converted to empty-string presence style;
modules currently returning booleans will need to use
ApiResult::META_BC_BOOLS to preserve their current output.
Actual changes to the API modules' output (e.g. actually returning
booleans for the new formatversion) beyond the use of
ApiResult::setContentValue() are left for a future change.
Bug: T76728
Bug: T57371
Bug: T33629
Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678f
2014-12-03 22:14:22 +00:00
|
|
|
'ApiMessage' => __DIR__ . '/includes/api/ApiMessage.php',
|
2018-05-25 00:59:49 +00:00
|
|
|
'ApiMessageTrait' => __DIR__ . '/includes/api/ApiMessageTrait.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiModuleManager' => __DIR__ . '/includes/api/ApiModuleManager.php',
|
|
|
|
|
'ApiMove' => __DIR__ . '/includes/api/ApiMove.php',
|
|
|
|
|
'ApiOpenSearch' => __DIR__ . '/includes/api/ApiOpenSearch.php',
|
2019-04-13 23:27:04 +00:00
|
|
|
'ApiOpenSearchFormatJson' => __DIR__ . '/includes/api/ApiOpenSearchFormatJson.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiOptions' => __DIR__ . '/includes/api/ApiOptions.php',
|
|
|
|
|
'ApiPageSet' => __DIR__ . '/includes/api/ApiPageSet.php',
|
|
|
|
|
'ApiParamInfo' => __DIR__ . '/includes/api/ApiParamInfo.php',
|
|
|
|
|
'ApiParse' => __DIR__ . '/includes/api/ApiParse.php',
|
|
|
|
|
'ApiPatrol' => __DIR__ . '/includes/api/ApiPatrol.php',
|
|
|
|
|
'ApiProtect' => __DIR__ . '/includes/api/ApiProtect.php',
|
|
|
|
|
'ApiPurge' => __DIR__ . '/includes/api/ApiPurge.php',
|
|
|
|
|
'ApiQuery' => __DIR__ . '/includes/api/ApiQuery.php',
|
|
|
|
|
'ApiQueryAllCategories' => __DIR__ . '/includes/api/ApiQueryAllCategories.php',
|
|
|
|
|
'ApiQueryAllDeletedRevisions' => __DIR__ . '/includes/api/ApiQueryAllDeletedRevisions.php',
|
|
|
|
|
'ApiQueryAllImages' => __DIR__ . '/includes/api/ApiQueryAllImages.php',
|
|
|
|
|
'ApiQueryAllLinks' => __DIR__ . '/includes/api/ApiQueryAllLinks.php',
|
|
|
|
|
'ApiQueryAllMessages' => __DIR__ . '/includes/api/ApiQueryAllMessages.php',
|
|
|
|
|
'ApiQueryAllPages' => __DIR__ . '/includes/api/ApiQueryAllPages.php',
|
2015-09-27 19:43:05 +00:00
|
|
|
'ApiQueryAllRevisions' => __DIR__ . '/includes/api/ApiQueryAllRevisions.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryAllUsers' => __DIR__ . '/includes/api/ApiQueryAllUsers.php',
|
2016-01-11 18:20:22 +00:00
|
|
|
'ApiQueryAuthManagerInfo' => __DIR__ . '/includes/api/ApiQueryAuthManagerInfo.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryBacklinks' => __DIR__ . '/includes/api/ApiQueryBacklinks.php',
|
|
|
|
|
'ApiQueryBacklinksprop' => __DIR__ . '/includes/api/ApiQueryBacklinksprop.php',
|
|
|
|
|
'ApiQueryBase' => __DIR__ . '/includes/api/ApiQueryBase.php',
|
2019-09-05 18:24:28 +00:00
|
|
|
'ApiQueryBlockInfoTrait' => __DIR__ . '/includes/api/ApiQueryBlockInfoTrait.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryBlocks' => __DIR__ . '/includes/api/ApiQueryBlocks.php',
|
|
|
|
|
'ApiQueryCategories' => __DIR__ . '/includes/api/ApiQueryCategories.php',
|
|
|
|
|
'ApiQueryCategoryInfo' => __DIR__ . '/includes/api/ApiQueryCategoryInfo.php',
|
|
|
|
|
'ApiQueryCategoryMembers' => __DIR__ . '/includes/api/ApiQueryCategoryMembers.php',
|
2018-05-25 00:46:30 +00:00
|
|
|
'ApiQueryContributions' => __DIR__ . '/includes/api/ApiQueryUserContribs.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryContributors' => __DIR__ . '/includes/api/ApiQueryContributors.php',
|
|
|
|
|
'ApiQueryDeletedRevisions' => __DIR__ . '/includes/api/ApiQueryDeletedRevisions.php',
|
|
|
|
|
'ApiQueryDeletedrevs' => __DIR__ . '/includes/api/ApiQueryDeletedrevs.php',
|
|
|
|
|
'ApiQueryDisabled' => __DIR__ . '/includes/api/ApiQueryDisabled.php',
|
|
|
|
|
'ApiQueryDuplicateFiles' => __DIR__ . '/includes/api/ApiQueryDuplicateFiles.php',
|
|
|
|
|
'ApiQueryExtLinksUsage' => __DIR__ . '/includes/api/ApiQueryExtLinksUsage.php',
|
|
|
|
|
'ApiQueryExternalLinks' => __DIR__ . '/includes/api/ApiQueryExternalLinks.php',
|
|
|
|
|
'ApiQueryFileRepoInfo' => __DIR__ . '/includes/api/ApiQueryFileRepoInfo.php',
|
|
|
|
|
'ApiQueryFilearchive' => __DIR__ . '/includes/api/ApiQueryFilearchive.php',
|
2015-12-20 09:41:34 +00:00
|
|
|
'ApiQueryGeneratorBase' => __DIR__ . '/includes/api/ApiQueryGeneratorBase.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryIWBacklinks' => __DIR__ . '/includes/api/ApiQueryIWBacklinks.php',
|
|
|
|
|
'ApiQueryIWLinks' => __DIR__ . '/includes/api/ApiQueryIWLinks.php',
|
|
|
|
|
'ApiQueryImageInfo' => __DIR__ . '/includes/api/ApiQueryImageInfo.php',
|
|
|
|
|
'ApiQueryImages' => __DIR__ . '/includes/api/ApiQueryImages.php',
|
|
|
|
|
'ApiQueryInfo' => __DIR__ . '/includes/api/ApiQueryInfo.php',
|
|
|
|
|
'ApiQueryLangBacklinks' => __DIR__ . '/includes/api/ApiQueryLangBacklinks.php',
|
|
|
|
|
'ApiQueryLangLinks' => __DIR__ . '/includes/api/ApiQueryLangLinks.php',
|
2019-05-16 09:42:05 +00:00
|
|
|
'ApiQueryLanguageinfo' => __DIR__ . '/includes/api/ApiQueryLanguageinfo.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryLinks' => __DIR__ . '/includes/api/ApiQueryLinks.php',
|
|
|
|
|
'ApiQueryLogEvents' => __DIR__ . '/includes/api/ApiQueryLogEvents.php',
|
2016-01-20 18:17:07 +00:00
|
|
|
'ApiQueryMyStashedFiles' => __DIR__ . '/includes/api/ApiQueryMyStashedFiles.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryPagePropNames' => __DIR__ . '/includes/api/ApiQueryPagePropNames.php',
|
|
|
|
|
'ApiQueryPageProps' => __DIR__ . '/includes/api/ApiQueryPageProps.php',
|
|
|
|
|
'ApiQueryPagesWithProp' => __DIR__ . '/includes/api/ApiQueryPagesWithProp.php',
|
|
|
|
|
'ApiQueryPrefixSearch' => __DIR__ . '/includes/api/ApiQueryPrefixSearch.php',
|
|
|
|
|
'ApiQueryProtectedTitles' => __DIR__ . '/includes/api/ApiQueryProtectedTitles.php',
|
|
|
|
|
'ApiQueryQueryPage' => __DIR__ . '/includes/api/ApiQueryQueryPage.php',
|
|
|
|
|
'ApiQueryRandom' => __DIR__ . '/includes/api/ApiQueryRandom.php',
|
|
|
|
|
'ApiQueryRecentChanges' => __DIR__ . '/includes/api/ApiQueryRecentChanges.php',
|
|
|
|
|
'ApiQueryRevisions' => __DIR__ . '/includes/api/ApiQueryRevisions.php',
|
|
|
|
|
'ApiQueryRevisionsBase' => __DIR__ . '/includes/api/ApiQueryRevisionsBase.php',
|
|
|
|
|
'ApiQuerySearch' => __DIR__ . '/includes/api/ApiQuerySearch.php',
|
|
|
|
|
'ApiQuerySiteinfo' => __DIR__ . '/includes/api/ApiQuerySiteinfo.php',
|
|
|
|
|
'ApiQueryStashImageInfo' => __DIR__ . '/includes/api/ApiQueryStashImageInfo.php',
|
|
|
|
|
'ApiQueryTags' => __DIR__ . '/includes/api/ApiQueryTags.php',
|
|
|
|
|
'ApiQueryTokens' => __DIR__ . '/includes/api/ApiQueryTokens.php',
|
2018-05-25 00:46:30 +00:00
|
|
|
'ApiQueryUserContribs' => __DIR__ . '/includes/api/ApiQueryUserContribs.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiQueryUserInfo' => __DIR__ . '/includes/api/ApiQueryUserInfo.php',
|
|
|
|
|
'ApiQueryUsers' => __DIR__ . '/includes/api/ApiQueryUsers.php',
|
|
|
|
|
'ApiQueryWatchlist' => __DIR__ . '/includes/api/ApiQueryWatchlist.php',
|
|
|
|
|
'ApiQueryWatchlistRaw' => __DIR__ . '/includes/api/ApiQueryWatchlistRaw.php',
|
2018-05-25 00:59:49 +00:00
|
|
|
'ApiRawMessage' => __DIR__ . '/includes/api/ApiRawMessage.php',
|
2016-01-11 18:20:22 +00:00
|
|
|
'ApiRemoveAuthenticationData' => __DIR__ . '/includes/api/ApiRemoveAuthenticationData.php',
|
|
|
|
|
'ApiResetPassword' => __DIR__ . '/includes/api/ApiResetPassword.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiResult' => __DIR__ . '/includes/api/ApiResult.php',
|
|
|
|
|
'ApiRevisionDelete' => __DIR__ . '/includes/api/ApiRevisionDelete.php',
|
|
|
|
|
'ApiRollback' => __DIR__ . '/includes/api/ApiRollback.php',
|
|
|
|
|
'ApiRsd' => __DIR__ . '/includes/api/ApiRsd.php',
|
API: Overhaul ApiResult, make format=xml not throw, and add json formatversion
ApiResult was a mess: some methods could only be used with an array
reference instead of manipulating the stored data, methods that had both
array-ref and internal-data versions had names that didn't at all
correspond, some methods that worked on an array reference were
annoyingly non-static, and then the whole mess with setIndexedTagName.
ApiFormatXml is also entirely annoying to deal with, as it liked to
throw exceptions if certain metadata wasn't provided that no other
formatter required. Its legacy also means we have this silly convention
of using empty-string rather than boolean true, annoying restrictions on
keys (leading to things that should be hashes being arrays of key-value
object instead), '*' used as a key all over the place, and so on.
So, changes here:
* ApiResult is no longer an ApiBase or a ContextSource.
* Wherever sensible, ApiResult provides a static method working on an
arrayref and a non-static method working on internal data.
* Metadata is now always added to ApiResult's internal data structure.
Formatters are responsible for stripping it if necessary. "raw mode"
is deprecated.
* New metadata to replace the '*' key, solve the array() => '[]' vs '{}'
question, and so on.
* New class for formatting warnings and errors using i18n messages, and
support for multiple errors and a more machine-readable format for
warnings. For the moment, though, the actual output will not be changing
yet (see T47843 for future plans).
* New formatversion parameter for format=json and format=php, to select
between BC mode and the modern output.
* In BC mode, booleans will be converted to empty-string presence style;
modules currently returning booleans will need to use
ApiResult::META_BC_BOOLS to preserve their current output.
Actual changes to the API modules' output (e.g. actually returning
booleans for the new formatversion) beyond the use of
ApiResult::setContentValue() are left for a future change.
Bug: T76728
Bug: T57371
Bug: T33629
Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678f
2014-12-03 22:14:22 +00:00
|
|
|
'ApiSerializable' => __DIR__ . '/includes/api/ApiSerializable.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiSetNotificationTimestamp' => __DIR__ . '/includes/api/ApiSetNotificationTimestamp.php',
|
2017-01-04 00:51:24 +00:00
|
|
|
'ApiSetPageLanguage' => __DIR__ . '/includes/api/ApiSetPageLanguage.php',
|
2014-11-20 00:33:51 +00:00
|
|
|
'ApiStashEdit' => __DIR__ . '/includes/api/ApiStashEdit.php',
|
2015-04-15 01:33:08 +00:00
|
|
|
'ApiTag' => __DIR__ . '/includes/api/ApiTag.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiTokens' => __DIR__ . '/includes/api/ApiTokens.php',
|
|
|
|
|
'ApiUnblock' => __DIR__ . '/includes/api/ApiUnblock.php',
|
|
|
|
|
'ApiUndelete' => __DIR__ . '/includes/api/ApiUndelete.php',
|
|
|
|
|
'ApiUpload' => __DIR__ . '/includes/api/ApiUpload.php',
|
2016-10-19 16:54:25 +00:00
|
|
|
'ApiUsageException' => __DIR__ . '/includes/api/ApiUsageException.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiUserrights' => __DIR__ . '/includes/api/ApiUserrights.php',
|
2016-12-01 22:29:29 +00:00
|
|
|
'ApiValidatePassword' => __DIR__ . '/includes/api/ApiValidatePassword.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ApiWatch' => __DIR__ . '/includes/api/ApiWatch.php',
|
|
|
|
|
'ArchivedFile' => __DIR__ . '/includes/filerepo/file/ArchivedFile.php',
|
2018-12-04 07:46:38 +00:00
|
|
|
'Argon2Password' => __DIR__ . '/includes/password/Argon2Password.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ArrayDiffFormatter' => __DIR__ . '/includes/diff/ArrayDiffFormatter.php',
|
|
|
|
|
'ArrayUtils' => __DIR__ . '/includes/libs/ArrayUtils.php',
|
|
|
|
|
'Article' => __DIR__ . '/includes/page/Article.php',
|
|
|
|
|
'AssembleUploadChunksJob' => __DIR__ . '/includes/jobqueue/jobs/AssembleUploadChunksJob.php',
|
2019-04-13 22:56:06 +00:00
|
|
|
'AtomFeed' => __DIR__ . '/includes/changes/AtomFeed.php',
|
2016-01-13 16:54:48 +00:00
|
|
|
'AtomicSectionUpdate' => __DIR__ . '/includes/deferred/AtomicSectionUpdate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'AttachLatest' => __DIR__ . '/maintenance/attachLatest.php',
|
2016-04-26 22:19:58 +00:00
|
|
|
'AugmentPageProps' => __DIR__ . '/includes/search/AugmentPageProps.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'AuthManagerSpecialPage' => __DIR__ . '/includes/specialpage/AuthManagerSpecialPage.php',
|
2016-07-19 20:43:17 +00:00
|
|
|
'AutoCommitUpdate' => __DIR__ . '/includes/deferred/AutoCommitUpdate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'AutoLoader' => __DIR__ . '/includes/AutoLoader.php',
|
|
|
|
|
'AutoloadGenerator' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
|
|
|
|
|
'Autopromote' => __DIR__ . '/includes/Autopromote.php',
|
Produce monolog messages through kafka+avro
This allows a logging channel to be configured to write
directly to kafka. Logs can be serialized either to json
blobs or the more compact apache avro format.
The Kafka handler for monolog needs a list of one of more
kafka servers to query cluster metadata from. This should be
able to use any monolog formatter, although some like
JsonFormatter require you to disable formatBatch as Kafka
protocol would prefer to encode each record independently in
the protocol. This requires the nmred/kafka-php library,
version >= 1.3.0.
Adds a new formatter which serializes to the apache avro
format. This is a compact binary format which uses pre-
defined schemas. This initial implementation is very simple
and takes the plain schemas as a constructor argument.
Adds a new option to MonologSpi to wrap handlers in a
BufferHandler. This doesn't flush until the request shuts
down and prevents any network requests in the logger from
adding latency to web requests.
Related mediawiki/vendor update: Ibfe4bd2036ae8e998e2973f07bd9a6f057691578
The necessary config is something like:
array(
'loggers' => array(
'CirrusSearchRequests' => array(
'handlers' => array( 'kafka' ),
),
),
'handlers' => array(
'kafka' => array(
'factory' => '\\MediaWiki\\Logger\\Monolog\\KafkaHandler::factory',
'args' => array( 'localhost:9092' ),
'formatter' => 'avro',
'buffer' => true,
),
),
'formatters' => array(
'avro' => array(
'class' => '\\MediaWiki\\Logger\\Monolog\\AvroFormatter',
'args' => array(
array(
'CirrusSearchRequests' => array(
'type' => 'record',
'name' => 'CirrusSearchRequests'
'fields' => array( ... )
),
),
),
),
),
)
Bug: T106256
Change-Id: I6ee744b3e5306af0bed70811b558a543eed22840
2015-08-04 18:02:47 +00:00
|
|
|
'AvroValidator' => __DIR__ . '/includes/utils/AvroValidator.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BacklinkCache' => __DIR__ . '/includes/cache/BacklinkCache.php',
|
|
|
|
|
'BacklinkJobUtils' => __DIR__ . '/includes/jobqueue/utils/BacklinkJobUtils.php',
|
2018-08-02 05:10:29 +00:00
|
|
|
'BackupDumper' => __DIR__ . '/maintenance/includes/BackupDumper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BackupReader' => __DIR__ . '/maintenance/importDump.php',
|
2016-05-17 21:22:05 +00:00
|
|
|
'BadRequestError' => __DIR__ . '/includes/exception/BadRequestError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BadTitleError' => __DIR__ . '/includes/exception/BadTitleError.php',
|
2015-02-25 08:22:50 +00:00
|
|
|
'BagOStuff' => __DIR__ . '/includes/libs/objectcache/BagOStuff.php',
|
2018-01-08 21:10:35 +00:00
|
|
|
'BaseDump' => __DIR__ . '/includes/export/BaseDump.php',
|
2019-07-25 12:11:06 +00:00
|
|
|
'BaseSearchResultSet' => __DIR__ . '/includes/search/BaseSearchResultSet.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BaseTemplate' => __DIR__ . '/includes/skins/BaseTemplate.php',
|
2017-04-28 04:52:49 +00:00
|
|
|
'BashkirUppercaseCollation' => __DIR__ . '/includes/collation/BashkirUppercaseCollation.php',
|
2015-07-30 22:09:11 +00:00
|
|
|
'BatchRowIterator' => __DIR__ . '/includes/utils/BatchRowIterator.php',
|
|
|
|
|
'BatchRowUpdate' => __DIR__ . '/includes/utils/BatchRowUpdate.php',
|
|
|
|
|
'BatchRowWriter' => __DIR__ . '/includes/utils/BatchRowWriter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BcryptPassword' => __DIR__ . '/includes/password/BcryptPassword.php',
|
|
|
|
|
'BenchHttpHttps' => __DIR__ . '/maintenance/benchmarks/bench_HTTP_HTTPS.php',
|
|
|
|
|
'BenchIfSwitch' => __DIR__ . '/maintenance/benchmarks/bench_if_switch.php',
|
|
|
|
|
'BenchUtf8TitleCheck' => __DIR__ . '/maintenance/benchmarks/bench_utf8_title_check.php',
|
2015-11-30 22:02:53 +00:00
|
|
|
'BenchWikimediaBaseConvert' => __DIR__ . '/maintenance/benchmarks/bench_Wikimedia_base_convert.php',
|
2017-05-04 04:00:14 +00:00
|
|
|
'BenchmarkCSSMin' => __DIR__ . '/maintenance/benchmarks/benchmarkCSSMin.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BenchmarkDeleteTruncate' => __DIR__ . '/maintenance/benchmarks/bench_delete_truncate.php',
|
|
|
|
|
'BenchmarkHooks' => __DIR__ . '/maintenance/benchmarks/benchmarkHooks.php',
|
2017-06-15 17:06:10 +00:00
|
|
|
'BenchmarkJSMinPlus' => __DIR__ . '/maintenance/benchmarks/benchmarkJSMinPlus.php',
|
2018-08-13 16:23:53 +00:00
|
|
|
'BenchmarkJavaScriptMinifier' => __DIR__ . '/maintenance/benchmarks/benchmarkJavaScriptMinifier.php',
|
benchmarks: Add benchmarks for MapCacheLRU and HashBagOStuff
Currently, HashBagOStuff leads in most benchmarks, except for
the --fill benchmark, where MapCacheLRU is faster on HHVM.
(by invoking with `PHP=hhvm mwscript maintenance/bench...`)
Run in MediaWiki-Vagrant (Debian Jessie) on MacBook Pro host.
$ benchmarkLruHash.php --count 50000 --construct
Running PHP 5.6.30-0+deb8u1:
- HashBagOStuff-construct (22% faster)
total: 446.20ms (min: 0.01ms, median: 0.01ms, max: 2.09ms)
- MapCacheLRU-construct
total: 575.31ms (min: 0.01ms, median: 0.01ms, max: 3.51ms)
Running PHP version 5.6.99-hhvm:
- HashBagOStuff-construct (13% faster)
total: 124.70ms (min: 0.00ms, median: 0.00ms, max: 1.27ms)
- MapCacheLRU-construct
total: 143.76ms (min: 0.00ms, median: 0.00ms, max: 2.01ms)
For MapCacheLRU, the main slowdown is its use of Wikimedia\Assert.
Removing that would make it faster than HashBagOStuff.
$ benchmarkLruHash.php --count 3000 --fill
Running PHP 5.6.30-0+deb8u1:
- HashBagOStuff-fill (22% faster)
total: 10196.82ms (min: 2.91ms, median: 3.24ms, max: 9.51ms)
- MapCacheLRU-fill
total: 13197.13ms (min: 3.92ms, median: 4.31ms, max: 9.90ms)
Running PHP version 5.6.99-hhvm:
- HashBagOStuff-fill
total: 5700.37ms (min: 1.71ms, median: 1.85ms, max: 8.24ms)
- MapCacheLRU-fill (11% faster)
total: 4986.90ms (min: 1.48ms, median: 1.62ms, max: 6.93ms)
Change-Id: Icd03f872dddb308f162c72674c8d2aa6092395e5
2017-07-27 21:09:41 +00:00
|
|
|
'BenchmarkLruHash' => __DIR__ . '/maintenance/benchmarks/benchmarkLruHash.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BenchmarkParse' => __DIR__ . '/maintenance/benchmarks/benchmarkParse.php',
|
|
|
|
|
'BenchmarkPurge' => __DIR__ . '/maintenance/benchmarks/benchmarkPurge.php',
|
2018-01-27 17:46:12 +00:00
|
|
|
'BenchmarkSanitizer' => __DIR__ . '/maintenance/benchmarks/benchmarkSanitizer.php',
|
2018-08-18 03:29:53 +00:00
|
|
|
'BenchmarkStringReplacement' => __DIR__ . '/maintenance/benchmarks/benchmarkStringReplacement.php',
|
2017-03-23 01:51:43 +00:00
|
|
|
'BenchmarkTidy' => __DIR__ . '/maintenance/benchmarks/benchmarkTidy.php',
|
2018-08-13 01:57:39 +00:00
|
|
|
'BenchmarkTitleValue' => __DIR__ . '/maintenance/benchmarks/benchmarkTitleValue.php',
|
2019-12-18 01:24:42 +00:00
|
|
|
'Benchmarker' => __DIR__ . '/maintenance/includes/Benchmarker.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'BitmapHandler' => __DIR__ . '/includes/media/BitmapHandler.php',
|
|
|
|
|
'BitmapHandler_ClientOnly' => __DIR__ . '/includes/media/BitmapHandler_ClientOnly.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'BitmapMetadataHandler' => __DIR__ . '/includes/media/BitmapMetadataHandler.php',
|
2016-09-14 10:11:41 +00:00
|
|
|
'Blob' => __DIR__ . '/includes/libs/rdbms/encasing/Blob.php',
|
2019-05-13 14:18:07 +00:00
|
|
|
'Block' => __DIR__ . '/includes/block/DatabaseBlock.php',
|
2016-05-06 02:56:37 +00:00
|
|
|
'BlockLevelPass' => __DIR__ . '/includes/parser/BlockLevelPass.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'BlockListPager' => __DIR__ . '/includes/specials/pagers/BlockListPager.php',
|
2014-08-04 21:12:53 +00:00
|
|
|
'BlockLogFormatter' => __DIR__ . '/includes/logging/BlockLogFormatter.php',
|
2020-02-27 22:57:39 +00:00
|
|
|
'BlockUsers' => __DIR__ . '/maintenance/blockUsers.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'BmpHandler' => __DIR__ . '/includes/media/BmpHandler.php',
|
2016-02-01 20:44:03 +00:00
|
|
|
'BotPassword' => __DIR__ . '/includes/user/BotPassword.php',
|
2016-04-02 09:22:00 +00:00
|
|
|
'BufferingStatsdDataFactory' => __DIR__ . '/includes/libs/stats/BufferingStatsdDataFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CLIParser' => __DIR__ . '/maintenance/parse.php',
|
|
|
|
|
'CSSMin' => __DIR__ . '/includes/libs/CSSMin.php',
|
2019-03-08 21:27:29 +00:00
|
|
|
'CacheDependency' => __DIR__ . '/includes/cache/dependency/CacheDependency.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CacheHelper' => __DIR__ . '/includes/cache/CacheHelper.php',
|
|
|
|
|
'CacheTime' => __DIR__ . '/includes/parser/CacheTime.php',
|
|
|
|
|
'CachedAction' => __DIR__ . '/includes/actions/CachedAction.php',
|
2016-01-30 01:09:57 +00:00
|
|
|
'CachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/CachedBagOStuff.php',
|
2015-02-06 02:00:26 +00:00
|
|
|
'CachingSiteStore' => __DIR__ . '/includes/site/CachingSiteStore.php',
|
2017-09-12 17:12:29 +00:00
|
|
|
'CannotCreateActorException' => __DIR__ . '/includes/exception/CannotCreateActorException.php',
|
2016-12-16 22:48:46 +00:00
|
|
|
'CategoriesRdf' => __DIR__ . '/includes/CategoriesRdf.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Category' => __DIR__ . '/includes/Category.php',
|
2017-08-22 00:05:53 +00:00
|
|
|
'CategoryChangesAsRdf' => __DIR__ . '/maintenance/categoryChangesAsRdf.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CategoryFinder' => __DIR__ . '/includes/CategoryFinder.php',
|
2015-09-17 09:51:25 +00:00
|
|
|
'CategoryMembershipChange' => __DIR__ . '/includes/changes/CategoryMembershipChange.php',
|
2015-11-15 02:29:37 +00:00
|
|
|
'CategoryMembershipChangeJob' => __DIR__ . '/includes/jobqueue/jobs/CategoryMembershipChangeJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CategoryPage' => __DIR__ . '/includes/page/CategoryPage.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'CategoryPager' => __DIR__ . '/includes/specials/pagers/CategoryPager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CategoryViewer' => __DIR__ . '/includes/CategoryViewer.php',
|
2015-12-09 18:05:59 +00:00
|
|
|
'CdnCacheUpdate' => __DIR__ . '/includes/deferred/CdnCacheUpdate.php',
|
2015-11-13 06:41:37 +00:00
|
|
|
'CdnPurgeJob' => __DIR__ . '/includes/jobqueue/jobs/CdnPurgeJob.php',
|
2015-11-12 23:21:19 +00:00
|
|
|
'CentralIdLookup' => __DIR__ . '/includes/user/CentralIdLookup.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CgzCopyTransaction' => __DIR__ . '/maintenance/storage/recompressTracked.php',
|
|
|
|
|
'ChangePassword' => __DIR__ . '/maintenance/changePassword.php',
|
2015-04-16 17:40:04 +00:00
|
|
|
'ChangeTags' => __DIR__ . '/includes/changetags/ChangeTags.php',
|
2015-04-15 01:31:53 +00:00
|
|
|
'ChangeTagsList' => __DIR__ . '/includes/changetags/ChangeTagsList.php',
|
|
|
|
|
'ChangeTagsLogItem' => __DIR__ . '/includes/changetags/ChangeTagsLogItem.php',
|
|
|
|
|
'ChangeTagsLogList' => __DIR__ . '/includes/changetags/ChangeTagsLogList.php',
|
|
|
|
|
'ChangeTagsRevisionItem' => __DIR__ . '/includes/changetags/ChangeTagsRevisionItem.php',
|
|
|
|
|
'ChangeTagsRevisionList' => __DIR__ . '/includes/changetags/ChangeTagsRevisionList.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ChangesFeed' => __DIR__ . '/includes/changes/ChangesFeed.php',
|
|
|
|
|
'ChangesList' => __DIR__ . '/includes/changes/ChangesList.php',
|
Back-end of new RecentChanges page, refactoring
Generate old RC, Related changes (it was already displayed and working
on 'Related changes' before this change), and Watchlist/etc. and data
for new UI from back-end.
This moves everything used for defining the old (unstructured) and new
(structured) filters into unified objects, ChangesListFilter and
ChangesListFilterGroup (and sub-classes).
This includes the query logic (see below) and logic for adding
CSS attribution classes.
This is a breaking change (for subclasses of ChangesListSpecialpage)
due to the signature (and name) change of buildMainQueryConds and
doMainQuery. An alternative that I don't think is a breaking change
would be to put the filter->DB logic in runMainQueryHook, but then it's
doing more than just running a hook.
This is because it used to only build $conds here, but it's clear from
filterOnUserExperienceLevel filters need more than this. I added all
the DB parameters from the hook, but this could be debated.
I have an checked and fixed the WMF-deployed extensions affected by
this.
Other than that, there should be full back-compat (including legacy
filters not using the new system).
* add hidepatrolled/hideunpatrolled to new UI.
* Move userExpLevel from RC to ChangesListSpecialPage. Although for
now the structured UI only displays on RC anyway, when it displays on
watchlist, it seems we'll want userExpLevel there.
Change this to make 'all' exclude unregistered users.
* Don't have front-end convert none-selected to 'all' on string_options.
* Needs the hideanons/hideliu special redirect to be done before this
is merged (T151873)
Bug: T152754
Bug: T152797
Change-Id: Iec2d82f6a830403d1c948a280efa58992e0cdee7
2017-02-14 07:55:37 +00:00
|
|
|
'ChangesListBooleanFilter' => __DIR__ . '/includes/changes/ChangesListBooleanFilter.php',
|
|
|
|
|
'ChangesListBooleanFilterGroup' => __DIR__ . '/includes/changes/ChangesListBooleanFilterGroup.php',
|
|
|
|
|
'ChangesListFilter' => __DIR__ . '/includes/changes/ChangesListFilter.php',
|
|
|
|
|
'ChangesListFilterGroup' => __DIR__ . '/includes/changes/ChangesListFilterGroup.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ChangesListSpecialPage' => __DIR__ . '/includes/specialpage/ChangesListSpecialPage.php',
|
Back-end of new RecentChanges page, refactoring
Generate old RC, Related changes (it was already displayed and working
on 'Related changes' before this change), and Watchlist/etc. and data
for new UI from back-end.
This moves everything used for defining the old (unstructured) and new
(structured) filters into unified objects, ChangesListFilter and
ChangesListFilterGroup (and sub-classes).
This includes the query logic (see below) and logic for adding
CSS attribution classes.
This is a breaking change (for subclasses of ChangesListSpecialpage)
due to the signature (and name) change of buildMainQueryConds and
doMainQuery. An alternative that I don't think is a breaking change
would be to put the filter->DB logic in runMainQueryHook, but then it's
doing more than just running a hook.
This is because it used to only build $conds here, but it's clear from
filterOnUserExperienceLevel filters need more than this. I added all
the DB parameters from the hook, but this could be debated.
I have an checked and fixed the WMF-deployed extensions affected by
this.
Other than that, there should be full back-compat (including legacy
filters not using the new system).
* add hidepatrolled/hideunpatrolled to new UI.
* Move userExpLevel from RC to ChangesListSpecialPage. Although for
now the structured UI only displays on RC anyway, when it displays on
watchlist, it seems we'll want userExpLevel there.
Change this to make 'all' exclude unregistered users.
* Don't have front-end convert none-selected to 'all' on string_options.
* Needs the hideanons/hideliu special redirect to be done before this
is merged (T151873)
Bug: T152754
Bug: T152797
Change-Id: Iec2d82f6a830403d1c948a280efa58992e0cdee7
2017-02-14 07:55:37 +00:00
|
|
|
'ChangesListStringOptionsFilter' => __DIR__ . '/includes/changes/ChangesListStringOptionsFilter.php',
|
|
|
|
|
'ChangesListStringOptionsFilterGroup' => __DIR__ . '/includes/changes/ChangesListStringOptionsFilterGroup.php',
|
2019-04-13 22:56:06 +00:00
|
|
|
'ChannelFeed' => __DIR__ . '/includes/changes/ChannelFeed.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CheckBadRedirects' => __DIR__ . '/maintenance/checkBadRedirects.php',
|
2014-12-08 20:08:52 +00:00
|
|
|
'CheckComposerLockUpToDate' => __DIR__ . '/maintenance/checkComposerLockUpToDate.php',
|
2019-04-14 10:19:12 +00:00
|
|
|
'CheckDependencies' => __DIR__ . '/maintenance/checkDependencies.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CheckImages' => __DIR__ . '/maintenance/checkImages.php',
|
|
|
|
|
'CheckLess' => __DIR__ . '/maintenance/checkLess.php',
|
|
|
|
|
'CheckStorage' => __DIR__ . '/maintenance/storage/checkStorage.php',
|
|
|
|
|
'CheckUsernames' => __DIR__ . '/maintenance/checkUsernames.php',
|
2019-04-14 15:04:32 +00:00
|
|
|
'ClassCollector' => __DIR__ . '/includes/utils/ClassCollector.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CleanupAncientTables' => __DIR__ . '/maintenance/cleanupAncientTables.php',
|
|
|
|
|
'CleanupBlocks' => __DIR__ . '/maintenance/cleanupBlocks.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'CleanupCaps' => __DIR__ . '/maintenance/cleanupCaps.php',
|
2016-07-13 15:30:37 +00:00
|
|
|
'CleanupEmptyCategories' => __DIR__ . '/maintenance/cleanupEmptyCategories.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'CleanupImages' => __DIR__ . '/maintenance/cleanupImages.php',
|
New maintenance script to clean up rows with invalid DB keys
The TitleValue constructor, used by the link cache among other things,
throws an exception for DB keys which do not satisfy a simple sanity test
(starting or ending with _, or containing a space, tab, CR or LF
character). This has broken certain special pages on a number of WMF sites;
see T99736, T146778 and T155091.
The new cleanupInvalidDbKeys.php script allows these bogus entries to be
removed from the DB, making sure these exceptions won't be thrown in the
future. It cleans the title columns of the page, archive, redirect,
logging, category, protected_titles, recentchanges, watchlist, pagelinks,
templatelinks, and categorylinks tables.
The script doesn't support batching; most wikis should have fewer than 500
broken entries in each table. If need be, the script can be run several
times.
To make the LIKE queries work properly I had to fix the broken escaping
behaviour of Database::buildLike() -- previously it had a habit of double-
escaping things. Now an ESCAPE clause is added to change the escape
character from the problematic default backslash, and tests are added to
cover the changes.
Bug: T155091
Change-Id: I908e795e884e35be91852c0eaf056d6acfda31d8
2017-03-10 13:27:27 +00:00
|
|
|
'CleanupInvalidDbKeys' => __DIR__ . '/maintenance/cleanupInvalidDbKeys.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CleanupPreferences' => __DIR__ . '/maintenance/cleanupPreferences.php',
|
|
|
|
|
'CleanupRemovedModules' => __DIR__ . '/maintenance/cleanupRemovedModules.php',
|
2019-09-10 15:24:24 +00:00
|
|
|
'CleanupRevActorPage' => __DIR__ . '/maintenance/cleanupRevActorPage.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CleanupSpam' => __DIR__ . '/maintenance/cleanupSpam.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'CleanupUploadStash' => __DIR__ . '/maintenance/cleanupUploadStash.php',
|
2017-10-25 19:26:53 +00:00
|
|
|
'CleanupUsersWithNoId' => __DIR__ . '/maintenance/cleanupUsersWithNoId.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'CleanupWatchlist' => __DIR__ . '/maintenance/cleanupWatchlist.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ClearInterwikiCache' => __DIR__ . '/maintenance/clearInterwikiCache.php',
|
2016-03-14 21:07:39 +00:00
|
|
|
'ClearUserWatchlistJob' => __DIR__ . '/includes/jobqueue/jobs/ClearUserWatchlistJob.php',
|
2018-03-02 20:42:57 +00:00
|
|
|
'ClearWatchlistNotificationsJob' => __DIR__ . '/includes/jobqueue/jobs/ClearWatchlistNotificationsJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CliInstaller' => __DIR__ . '/includes/installer/CliInstaller.php',
|
|
|
|
|
'CloneDatabase' => __DIR__ . '/includes/db/CloneDatabase.php',
|
2017-01-25 22:29:40 +00:00
|
|
|
'CodeCleanerGlobalsPass' => __DIR__ . '/maintenance/CodeCleanerGlobalsPass.inc',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CodeContentHandler' => __DIR__ . '/includes/content/CodeContentHandler.php',
|
2019-05-28 22:22:18 +00:00
|
|
|
'CollapsibleFieldsetLayout' => __DIR__ . '/includes/htmlform/CollapsibleFieldsetLayout.php',
|
2016-04-03 08:23:20 +00:00
|
|
|
'Collation' => __DIR__ . '/includes/collation/Collation.php',
|
|
|
|
|
'CollationCkb' => __DIR__ . '/includes/collation/CollationCkb.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CommandLineInc' => __DIR__ . '/maintenance/commandLine.inc',
|
|
|
|
|
'CommandLineInstaller' => __DIR__ . '/maintenance/install.php',
|
2017-06-06 17:39:14 +00:00
|
|
|
'CommentStore' => __DIR__ . '/includes/CommentStore.php',
|
|
|
|
|
'CommentStoreComment' => __DIR__ . '/includes/CommentStoreComment.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CompareParserCache' => __DIR__ . '/maintenance/compareParserCache.php',
|
|
|
|
|
'CompareParsers' => __DIR__ . '/maintenance/compareParsers.php',
|
|
|
|
|
'ComposerHookHandler' => __DIR__ . '/includes/composer/ComposerHookHandler.php',
|
2015-10-25 23:55:47 +00:00
|
|
|
'ComposerInstalled' => __DIR__ . '/includes/libs/composer/ComposerInstalled.php',
|
2014-12-08 20:08:52 +00:00
|
|
|
'ComposerJson' => __DIR__ . '/includes/libs/composer/ComposerJson.php',
|
|
|
|
|
'ComposerLock' => __DIR__ . '/includes/libs/composer/ComposerLock.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ComposerPackageModifier' => __DIR__ . '/includes/composer/ComposerPackageModifier.php',
|
2019-07-21 18:34:23 +00:00
|
|
|
'ComposerPhpunitXmlCoverageEdit' => __DIR__ . '/includes/composer/ComposerPhpunitXmlCoverageEdit.php',
|
2017-11-15 01:55:22 +00:00
|
|
|
'ComposerVendorHtaccessCreator' => __DIR__ . '/includes/composer/ComposerVendorHtaccessCreator.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ComposerVersionNormalizer' => __DIR__ . '/includes/composer/ComposerVersionNormalizer.php',
|
|
|
|
|
'CompressOld' => __DIR__ . '/maintenance/storage/compressOld.php',
|
2019-03-25 19:29:47 +00:00
|
|
|
'ConcatenatedGzipHistoryBlob' => __DIR__ . '/includes/historyblob/ConcatenatedGzipHistoryBlob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Config' => __DIR__ . '/includes/config/Config.php',
|
|
|
|
|
'ConfigException' => __DIR__ . '/includes/config/ConfigException.php',
|
|
|
|
|
'ConfigFactory' => __DIR__ . '/includes/config/ConfigFactory.php',
|
2017-08-04 15:03:20 +00:00
|
|
|
'ConfiguredReadOnlyMode' => __DIR__ . '/includes/ConfiguredReadOnlyMode.php',
|
2019-03-08 21:27:29 +00:00
|
|
|
'ConstantDependency' => __DIR__ . '/includes/cache/dependency/ConstantDependency.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Content' => __DIR__ . '/includes/content/Content.php',
|
|
|
|
|
'ContentHandler' => __DIR__ . '/includes/content/ContentHandler.php',
|
2020-01-11 23:49:41 +00:00
|
|
|
'ContentModelChange' => __DIR__ . '/includes/content/ContentModelChange.php',
|
2015-03-29 03:36:01 +00:00
|
|
|
'ContentModelLogFormatter' => __DIR__ . '/includes/logging/ContentModelLogFormatter.php',
|
Initial support for Content Security Policy, disabled by default
The primary goal here is a defense in depth measure to
stop an attacker who found a bug in the parser allowing
them to insert malicious attributes.
This wouldn't stop someone who could insert a full
script tag (since at current it can't distinguish between
malicious and legit user js). It also would not prevent
DOM-based or reflected XSS for anons, as the nonce value
is guessable for anons when receiving a response cached
by varnish. However, the limited protection of just stopping
stored XSS where the attacker only has control of attributes,
is still a big win in my opinion. (But it wouldn't prevent
someone who has that type of xss from abusing things like
data-ooui attribute).
This will likely break many gadgets. Its expected that any
sort of rollout on Wikimedia will be done very slowly, with
lots of testing and the report-only option to begin with.
This is behind feature flags that are off by default, so
merging this patch should not cause any change in default
behaviour.
This may break some extensions (The most obvious one
is charinsert (See fe648d41005), but will probably need
some testing in report-only mode to see if anything else breaks)
This uses the unsafe-eval option of CSP, in order to
support RL's local storage thingy. For better security,
we may want to remove some of the sillier uses of eval
(e.g. jquery.ui.datepicker.js).
For more info, see spec: https://www.w3.org/TR/CSP2/
Additionally see:
https://www.mediawiki.org/wiki/Requests_for_comment/Content-Security-Policy
Bug: T135963
Change-Id: I80f6f469ba4c0b608385483457df96ccb7429ae5
2016-02-29 04:13:10 +00:00
|
|
|
'ContentSecurityPolicy' => __DIR__ . '/includes/ContentSecurityPolicy.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ContextSource' => __DIR__ . '/includes/context/ContextSource.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'ContribsPager' => __DIR__ . '/includes/specials/pagers/ContribsPager.php',
|
Implement extension registration from an extension.json file
Introduces wfLoadExtension()/wfLoadSkin() which should be used in
LocalSettings.php rather than require-ing a PHP entry point.
Extensions and skins would add "extension.json" or "skin.json" files
in their root, which contains all the information typically
present in PHP entry point files (classes to autoload, special pages,
API modules, etc.) A full schema can be found at
docs/extension.schema.json, and a script to validate these to the
schema is provided. An additional script is provided to convert
typical PHP entry point files into their JSON equivalents.
The basic flow of loading an extension goes like:
* Get the ExtensionRegistry singleton instance
* ExtensionRegistry takes a filename, reads the file or tries
to get the parsed JSON from APC if possible.
* The JSON is run through a Processor instance,
which registers things with the appropriate
global settings.
* The output of the processor is cached in APC if possible.
* The extension/skin is marked as loaded in the
ExtensionRegistry and a callback function is executed
if one was specified.
For ideal performance, a batch loading method is also provided:
* The absolute path name to the JSON file is queued
in the ExtensionRegistry instance.
* When loadFromQueue() is called, it constructs a hash
unique to the members of the current queue, and sees
if the queue has been cached in APC. If not, it processes
each file individually, and combines the result of each
Processor into one giant array, which is cached in APC.
* The giant array then sets various global settings,
defines constants, and calls callbacks.
To invalidate the cached processed info, by default the mtime
of each JSON file is checked. However that can be slow if you
have a large number of extensions, so you can set $wgExtensionInfoMTime
to the mtime of one file, and `touch` it whenever you update
your extensions.
Change-Id: I7074b65d07c5c7d4e3f1fb0755d74a0b07ed4596
2014-10-15 00:31:15 +00:00
|
|
|
'ConvertExtensionToRegistration' => __DIR__ . '/maintenance/convertExtensionToRegistration.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ConvertLinks' => __DIR__ . '/maintenance/convertLinks.php',
|
|
|
|
|
'ConvertUserOptions' => __DIR__ . '/maintenance/convertUserOptions.php',
|
2019-08-25 17:55:34 +00:00
|
|
|
'ConverterRule' => __DIR__ . '/includes/language/ConverterRule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Cookie' => __DIR__ . '/includes/libs/Cookie.php',
|
2016-04-03 08:46:36 +00:00
|
|
|
'CookieJar' => __DIR__ . '/includes/libs/CookieJar.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CopyFileBackend' => __DIR__ . '/maintenance/copyFileBackend.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'CopyFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/CopyFileOp.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CopyJobQueue' => __DIR__ . '/maintenance/copyJobQueue.php',
|
2020-03-26 19:49:58 +00:00
|
|
|
'CoreMagicWords' => __DIR__ . '/includes/parser/CoreMagicWords.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CoreParserFunctions' => __DIR__ . '/includes/parser/CoreParserFunctions.php',
|
|
|
|
|
'CoreTagHooks' => __DIR__ . '/includes/parser/CoreTagHooks.php',
|
|
|
|
|
'CreateAndPromote' => __DIR__ . '/maintenance/createAndPromote.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'CreateCommonPasswordCdb' => __DIR__ . '/maintenance/createCommonPasswordCdb.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'CreateFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/CreateFileOp.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CreditsAction' => __DIR__ . '/includes/actions/CreditsAction.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'CrhConverter' => __DIR__ . '/languages/converters/CrhConverter.php',
|
2016-10-04 17:48:02 +00:00
|
|
|
'CryptHKDF' => __DIR__ . '/includes/libs/CryptHKDF.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'CssContent' => __DIR__ . '/includes/content/CssContent.php',
|
|
|
|
|
'CssContentHandler' => __DIR__ . '/includes/content/CssContentHandler.php',
|
|
|
|
|
'CsvStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
2016-10-02 05:46:07 +00:00
|
|
|
'CurlHttpRequest' => __DIR__ . '/includes/http/CurlHttpRequest.php',
|
2017-04-28 04:52:49 +00:00
|
|
|
'CustomUppercaseCollation' => __DIR__ . '/includes/collation/CustomUppercaseCollation.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DBAccessBase' => __DIR__ . '/includes/dao/DBAccessBase.php',
|
2016-09-22 19:12:01 +00:00
|
|
|
'DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBAccessError.php',
|
2015-07-14 19:11:32 +00:00
|
|
|
'DBAccessObjectUtils' => __DIR__ . '/includes/dao/DBAccessObjectUtils.php',
|
2016-09-14 10:11:41 +00:00
|
|
|
'DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php',
|
2016-09-22 19:12:01 +00:00
|
|
|
'DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBConnectionError.php',
|
2016-09-14 18:55:33 +00:00
|
|
|
'DBError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php',
|
2016-09-22 19:12:01 +00:00
|
|
|
'DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBExpectedError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DBFileJournal' => __DIR__ . '/includes/filebackend/filejournal/DBFileJournal.php',
|
2016-09-19 08:06:45 +00:00
|
|
|
'DBLockManager' => __DIR__ . '/includes/libs/lockmanager/DBLockManager.php',
|
2016-09-22 19:12:01 +00:00
|
|
|
'DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryError.php',
|
|
|
|
|
'DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyError.php',
|
|
|
|
|
'DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBReplicationWaitError.php',
|
2015-02-06 02:00:26 +00:00
|
|
|
'DBSiteStore' => __DIR__ . '/includes/site/DBSiteStore.php',
|
2016-09-22 19:12:01 +00:00
|
|
|
'DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionError.php',
|
|
|
|
|
'DBTransactionSizeError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionSizeError.php',
|
|
|
|
|
'DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBUnexpectedError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php',
|
2016-09-16 03:14:58 +00:00
|
|
|
'Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php',
|
2016-09-28 23:08:15 +00:00
|
|
|
'DatabaseBase' => __DIR__ . '/includes/libs/rdbms/database/Database.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DatabaseInstaller' => __DIR__ . '/includes/installer/DatabaseInstaller.php',
|
|
|
|
|
'DatabaseLag' => __DIR__ . '/maintenance/lag.php',
|
2019-04-14 01:05:34 +00:00
|
|
|
'DatabaseLogEntry' => __DIR__ . '/includes/logging/DatabaseLogEntry.php',
|
2016-09-16 03:56:24 +00:00
|
|
|
'DatabaseMysqlBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqlBase.php',
|
|
|
|
|
'DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php',
|
2016-09-19 17:37:57 +00:00
|
|
|
'DatabasePostgres' => __DIR__ . '/includes/libs/rdbms/database/DatabasePostgres.php',
|
2016-09-18 23:48:22 +00:00
|
|
|
'DatabaseSqlite' => __DIR__ . '/includes/libs/rdbms/database/DatabaseSqlite.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DatabaseUpdater' => __DIR__ . '/includes/installer/DatabaseUpdater.php',
|
|
|
|
|
'DateFormats' => __DIR__ . '/maintenance/language/date-formats.php',
|
|
|
|
|
'DateFormatter' => __DIR__ . '/includes/parser/DateFormatter.php',
|
Rehabilitate DateFormatter
This code is surprisingly little changed since I added the class in
November 2003, and needs some modernisation.
* Remove the "linked" option, unused since 1.21. Similarly, make the
"match-whole" option implied. This allows the regexes to be
simplified. Nothing will be broken, according to CodeSearch.
* Instead of ucfirst(), use the canonical month name from the language.
This will work with e.g. French which does not capitalise month names.
* Stop caching DateFormatter instances in APC. Caching was added
in 2005 when initialisation was being done on every request, but now
it is only needed when parsing a page with {{#formatdate}}, which is
rarely, and the constructor overhead is only 200µs after Language
object data initialisation. Instead, use an in-process cache via a
factory service.
* Add docs and extra tests.
* Remove todo note obsolete since 38 minutes after the original commit.
* Rename many variables.
* Use double-slash comments
* Don't store the Language object, just get arrays.
* Use mb_strtolower() instead of Language::lc() -- any customisation of
Language::lc() would break PCRE case-insensitive matching.
* Use named subpatterns instead of "keys"
* Remove the ISO1/ISO2 distinction, the only difference was linking.
* Use closure variables instead of temporary object members
Change-Id: I25fb1203dba2930724d7bc28ad0d51f59f88e1ea
2019-04-10 05:33:57 +00:00
|
|
|
'DateFormatterFactory' => __DIR__ . '/includes/parser/DateFormatterFactory.php',
|
2018-04-27 17:10:36 +00:00
|
|
|
'DeduplicateArchiveRevId' => __DIR__ . '/maintenance/deduplicateArchiveRevId.php',
|
2016-07-22 02:32:09 +00:00
|
|
|
'DeferrableCallback' => __DIR__ . '/includes/deferred/DeferrableCallback.php',
|
2015-11-30 22:02:53 +00:00
|
|
|
'DeferrableUpdate' => __DIR__ . '/includes/deferred/DeferrableUpdate.php',
|
2015-01-11 01:52:37 +00:00
|
|
|
'DeferredStringifier' => __DIR__ . '/includes/libs/DeferredStringifier.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DeferredUpdates' => __DIR__ . '/includes/deferred/DeferredUpdates.php',
|
2019-10-28 11:48:37 +00:00
|
|
|
'Deflate' => __DIR__ . '/includes/libs/Deflate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DeleteAction' => __DIR__ . '/includes/actions/DeleteAction.php',
|
|
|
|
|
'DeleteArchivedFiles' => __DIR__ . '/maintenance/deleteArchivedFiles.php',
|
|
|
|
|
'DeleteArchivedRevisions' => __DIR__ . '/maintenance/deleteArchivedRevisions.php',
|
2018-03-17 23:34:32 +00:00
|
|
|
'DeleteAutoPatrolLogs' => __DIR__ . '/maintenance/deleteAutoPatrolLogs.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DeleteBatch' => __DIR__ . '/maintenance/deleteBatch.php',
|
|
|
|
|
'DeleteDefaultMessages' => __DIR__ . '/maintenance/deleteDefaultMessages.php',
|
|
|
|
|
'DeleteEqualMessages' => __DIR__ . '/maintenance/deleteEqualMessages.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'DeleteFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/DeleteFileOp.php',
|
2015-09-22 19:07:05 +00:00
|
|
|
'DeleteLinksJob' => __DIR__ . '/includes/jobqueue/jobs/DeleteLinksJob.php',
|
2018-06-10 23:05:59 +00:00
|
|
|
'DeleteLocalPasswords' => __DIR__ . '/maintenance/includes/DeleteLocalPasswords.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DeleteLogFormatter' => __DIR__ . '/includes/logging/DeleteLogFormatter.php',
|
|
|
|
|
'DeleteOldRevisions' => __DIR__ . '/maintenance/deleteOldRevisions.php',
|
|
|
|
|
'DeleteOrphanedRevisions' => __DIR__ . '/maintenance/deleteOrphanedRevisions.php',
|
2018-08-28 22:01:48 +00:00
|
|
|
'DeletePageJob' => __DIR__ . '/includes/jobqueue/jobs/DeletePageJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DeleteSelfExternals' => __DIR__ . '/maintenance/deleteSelfExternals.php',
|
2019-10-14 07:36:51 +00:00
|
|
|
'DeleteTag' => __DIR__ . '/maintenance/deleteTag.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'DeletedContribsPager' => __DIR__ . '/includes/specials/pagers/DeletedContribsPager.php',
|
2019-03-08 21:27:29 +00:00
|
|
|
'DependencyWrapper' => __DIR__ . '/includes/cache/dependency/DependencyWrapper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DeprecatedGlobal' => __DIR__ . '/includes/DeprecatedGlobal.php',
|
2015-12-21 10:32:48 +00:00
|
|
|
'DeprecatedInterfaceFinder' => __DIR__ . '/maintenance/findDeprecated.php',
|
2018-07-11 17:34:26 +00:00
|
|
|
'DeprecationHelper' => __DIR__ . '/includes/debug/DeprecationHelper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DerivativeContext' => __DIR__ . '/includes/context/DerivativeContext.php',
|
2016-01-04 13:55:15 +00:00
|
|
|
'DerivativeRequest' => __DIR__ . '/includes/DerivativeRequest.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DerivativeResourceLoaderContext' => __DIR__ . '/includes/resourceloader/DerivativeResourceLoaderContext.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'DescribeFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/DescribeFileOp.php',
|
2019-04-14 22:13:01 +00:00
|
|
|
'Diff' => __DIR__ . '/includes/diff/Diff.php',
|
2016-04-26 22:59:21 +00:00
|
|
|
'DiffEngine' => __DIR__ . '/includes/diff/DiffEngine.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DiffFormatter' => __DIR__ . '/includes/diff/DiffFormatter.php',
|
2019-03-25 19:29:47 +00:00
|
|
|
'DiffHistoryBlob' => __DIR__ . '/includes/historyblob/DiffHistoryBlob.php',
|
2019-04-14 22:13:01 +00:00
|
|
|
'DiffOp' => __DIR__ . '/includes/diff/DiffOp.php',
|
|
|
|
|
'DiffOpAdd' => __DIR__ . '/includes/diff/DiffOpAdd.php',
|
|
|
|
|
'DiffOpChange' => __DIR__ . '/includes/diff/DiffOpChange.php',
|
|
|
|
|
'DiffOpCopy' => __DIR__ . '/includes/diff/DiffOpCopy.php',
|
|
|
|
|
'DiffOpDelete' => __DIR__ . '/includes/diff/DiffOpDelete.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DifferenceEngine' => __DIR__ . '/includes/diff/DifferenceEngine.php',
|
[MCR] Render multi-slot diffs
Move logic for rendering a diff between two content objects out of
DifferenceEngine, into a new SlotDiffRenderer class. Make
DifferenceEngine use multiple SlotDiffRenderers, one per slot.
This separates the class tree for changing high-level diff properties
such as the header or the revision selection method (same as before:
subclass DifferenceEngine and override ContentHandler::getDiffEngineClass
or implement GetDifferenceEngine) and the one for changing the actual
diff rendering for a given content type (subclass SlotDiffRenderer and
override ContentHandler::getSlotDiffRenderer or implement
GetSlotDiffRenderer). To keep B/C, when SlotDiffRenderer is not overridden
for a given content type but DifferenceEngine is, that DifferenceEngine
will be used instead.
The weak point of the scheme is overriding the DifferenceEngine methods
passing control to the SlotDiffRenderers (the ones calling
getDifferenceEngines), without calling the parent. These are:
showDiffStyle, getDiffBody, getDiffBodyCacheKeyParams. Extensions doing
that will probably break in unpredictable ways (most likely, only
showing the main slot diff). Nothing in gerrit does it, at least.
A new GetSlotDiffRenderer hook is added to modify rendering for content
models not owned by the extension, much like how GetDifferenceEngine
works.
Also deprecates public access to mNewRev/mOldRev and creates public
getters instead. DifferenceEngine never supported external changes to
those properties, this just acknowledges it.
Bug: T194731
Change-Id: I2f8a9dbebd2290b7feafb20e2bb2a2693e18ba11
Depends-On: I04e885a33bfce5bccc807b9bcfe1eaa577a9fd47
Depends-On: I203d8895bf436b7fee53fe4718dede8a3b1768bc
2018-07-11 09:24:07 +00:00
|
|
|
'DifferenceEngineSlotDiffRenderer' => __DIR__ . '/includes/diff/DifferenceEngineSlotDiffRenderer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Digit2Html' => __DIR__ . '/maintenance/language/digit2html.php',
|
2018-11-16 02:22:26 +00:00
|
|
|
'DisabledSpecialPage' => __DIR__ . '/includes/specialpage/DisabledSpecialPage.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'DjVuHandler' => __DIR__ . '/includes/media/DjVuHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DjVuImage' => __DIR__ . '/includes/media/DjVuImage.php',
|
2017-03-29 18:06:32 +00:00
|
|
|
'DnsSrvDiscoverer' => __DIR__ . '/includes/libs/DnsSrvDiscoverer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DoubleRedirectJob' => __DIR__ . '/includes/jobqueue/jobs/DoubleRedirectJob.php',
|
2016-04-20 07:48:48 +00:00
|
|
|
'DummyLinker' => __DIR__ . '/includes/DummyLinker.php',
|
2016-08-09 17:22:09 +00:00
|
|
|
'DummySearchIndexFieldDefinition' => __DIR__ . '/includes/search/DummySearchIndexFieldDefinition.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DummyTermColorer' => __DIR__ . '/maintenance/term/MWTerm.php',
|
2015-12-28 22:23:22 +00:00
|
|
|
'Dump7ZipOutput' => __DIR__ . '/includes/export/Dump7ZipOutput.php',
|
|
|
|
|
'DumpBZip2Output' => __DIR__ . '/includes/export/DumpBZip2Output.php',
|
2015-12-31 09:46:54 +00:00
|
|
|
'DumpBackup' => __DIR__ . '/maintenance/dumpBackup.php',
|
2016-12-16 22:48:46 +00:00
|
|
|
'DumpCategoriesAsRdf' => __DIR__ . '/maintenance/dumpCategoriesAsRdf.php',
|
2015-12-31 09:46:54 +00:00
|
|
|
'DumpDBZip2Output' => __DIR__ . '/includes/export/DumpDBZip2Output.php',
|
2015-12-28 22:23:22 +00:00
|
|
|
'DumpFileOutput' => __DIR__ . '/includes/export/DumpFileOutput.php',
|
|
|
|
|
'DumpFilter' => __DIR__ . '/includes/export/DumpFilter.php',
|
|
|
|
|
'DumpGZipOutput' => __DIR__ . '/includes/export/DumpGZipOutput.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DumpIterator' => __DIR__ . '/maintenance/dumpIterator.php',
|
2019-03-20 05:25:06 +00:00
|
|
|
'DumpLBZip2Output' => __DIR__ . '/includes/export/DumpLBZip2Output.php',
|
2015-12-28 22:23:22 +00:00
|
|
|
'DumpLatestFilter' => __DIR__ . '/includes/export/DumpLatestFilter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DumpLinks' => __DIR__ . '/maintenance/dumpLinks.php',
|
|
|
|
|
'DumpMessages' => __DIR__ . '/maintenance/language/dumpMessages.php',
|
2015-12-28 22:23:22 +00:00
|
|
|
'DumpMultiWriter' => __DIR__ . '/includes/export/DumpMultiWriter.php',
|
|
|
|
|
'DumpNamespaceFilter' => __DIR__ . '/includes/export/DumpNamespaceFilter.php',
|
|
|
|
|
'DumpNotalkFilter' => __DIR__ . '/includes/export/DumpNotalkFilter.php',
|
|
|
|
|
'DumpOutput' => __DIR__ . '/includes/export/DumpOutput.php',
|
|
|
|
|
'DumpPipeOutput' => __DIR__ . '/includes/export/DumpPipeOutput.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DumpRenderer' => __DIR__ . '/maintenance/renderDump.php',
|
|
|
|
|
'DumpRev' => __DIR__ . '/maintenance/storage/dumpRev.php',
|
2016-07-08 20:22:27 +00:00
|
|
|
'DumpStringOutput' => __DIR__ . '/includes/export/DumpStringOutput.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'DumpUploads' => __DIR__ . '/maintenance/dumpUploads.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'DuplicateJob' => __DIR__ . '/includes/jobqueue/jobs/DuplicateJob.php',
|
2019-10-28 11:48:37 +00:00
|
|
|
'EasyDeflate' => __DIR__ . '/includes/libs/Deflate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'EditAction' => __DIR__ . '/includes/actions/EditAction.php',
|
|
|
|
|
'EditCLI' => __DIR__ . '/maintenance/edit.php',
|
|
|
|
|
'EditPage' => __DIR__ . '/includes/EditPage.php',
|
2017-09-12 21:03:26 +00:00
|
|
|
'EditWatchlistCheckboxSeriesField' => __DIR__ . '/includes/specials/formfields/EditWatchlistCheckboxSeriesField.php',
|
|
|
|
|
'EditWatchlistNormalHTMLForm' => __DIR__ . '/includes/specials/forms/EditWatchlistNormalHTMLForm.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'EmailNotification' => __DIR__ . '/includes/mail/EmailNotification.php',
|
|
|
|
|
'EmaillingJob' => __DIR__ . '/includes/jobqueue/jobs/EmaillingJob.php',
|
2015-02-25 08:22:50 +00:00
|
|
|
'EmptyBagOStuff' => __DIR__ . '/includes/libs/objectcache/EmptyBagOStuff.php',
|
2018-07-29 02:42:42 +00:00
|
|
|
'EmptyUserGroup' => __DIR__ . '/maintenance/emptyUserGroup.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'EnConverter' => __DIR__ . '/languages/converters/EnConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'EncryptedPassword' => __DIR__ . '/includes/password/EncryptedPassword.php',
|
|
|
|
|
'EnhancedChangesList' => __DIR__ . '/includes/changes/EnhancedChangesList.php',
|
|
|
|
|
'EnotifNotifyJob' => __DIR__ . '/includes/jobqueue/jobs/EnotifNotifyJob.php',
|
2015-03-04 21:53:40 +00:00
|
|
|
'EnqueueJob' => __DIR__ . '/includes/jobqueue/jobs/EnqueueJob.php',
|
2016-08-23 04:20:49 +00:00
|
|
|
'EnqueueableDataUpdate' => __DIR__ . '/includes/deferred/EnqueueableDataUpdate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'EraseArchivedFile' => __DIR__ . '/maintenance/eraseArchivedFile.php',
|
|
|
|
|
'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
|
2017-03-21 18:47:52 +00:00
|
|
|
'EtcdConfig' => __DIR__ . '/includes/config/EtcdConfig.php',
|
2017-09-01 01:53:18 +00:00
|
|
|
'EtcdConfigParseError' => __DIR__ . '/includes/config/EtcdConfigParseError.php',
|
2015-04-27 19:35:58 +00:00
|
|
|
'EventRelayer' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
|
2015-12-29 19:45:23 +00:00
|
|
|
'EventRelayerGroup' => __DIR__ . '/includes/EventRelayerGroup.php',
|
2016-04-15 21:01:23 +00:00
|
|
|
'EventRelayerKafka' => __DIR__ . '/includes/libs/eventrelayer/EventRelayerKafka.php',
|
2016-04-03 08:47:52 +00:00
|
|
|
'EventRelayerNull' => __DIR__ . '/includes/libs/eventrelayer/EventRelayerNull.php',
|
2017-10-20 07:36:03 +00:00
|
|
|
'ExecutableFinder' => __DIR__ . '/includes/utils/ExecutableFinder.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Exif' => __DIR__ . '/includes/media/Exif.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmapHandler.php',
|
2015-01-29 04:59:50 +00:00
|
|
|
'ExplodeIterator' => __DIR__ . '/includes/libs/ExplodeIterator.php',
|
2017-12-13 16:59:45 +00:00
|
|
|
'ExportProgressFilter' => __DIR__ . '/includes/export/ExportProgressFilter.php',
|
2015-02-25 18:16:13 +00:00
|
|
|
'ExportSites' => __DIR__ . '/maintenance/exportSites.php',
|
2018-04-08 23:26:01 +00:00
|
|
|
'ExtensionDependencyError' => __DIR__ . '/includes/registration/ExtensionDependencyError.php',
|
2016-12-01 07:04:27 +00:00
|
|
|
'ExtensionJsonValidationError' => __DIR__ . '/includes/registration/ExtensionJsonValidationError.php',
|
|
|
|
|
'ExtensionJsonValidator' => __DIR__ . '/includes/registration/ExtensionJsonValidator.php',
|
Implement extension registration from an extension.json file
Introduces wfLoadExtension()/wfLoadSkin() which should be used in
LocalSettings.php rather than require-ing a PHP entry point.
Extensions and skins would add "extension.json" or "skin.json" files
in their root, which contains all the information typically
present in PHP entry point files (classes to autoload, special pages,
API modules, etc.) A full schema can be found at
docs/extension.schema.json, and a script to validate these to the
schema is provided. An additional script is provided to convert
typical PHP entry point files into their JSON equivalents.
The basic flow of loading an extension goes like:
* Get the ExtensionRegistry singleton instance
* ExtensionRegistry takes a filename, reads the file or tries
to get the parsed JSON from APC if possible.
* The JSON is run through a Processor instance,
which registers things with the appropriate
global settings.
* The output of the processor is cached in APC if possible.
* The extension/skin is marked as loaded in the
ExtensionRegistry and a callback function is executed
if one was specified.
For ideal performance, a batch loading method is also provided:
* The absolute path name to the JSON file is queued
in the ExtensionRegistry instance.
* When loadFromQueue() is called, it constructs a hash
unique to the members of the current queue, and sees
if the queue has been cached in APC. If not, it processes
each file individually, and combines the result of each
Processor into one giant array, which is cached in APC.
* The giant array then sets various global settings,
defines constants, and calls callbacks.
To invalidate the cached processed info, by default the mtime
of each JSON file is checked. However that can be slow if you
have a large number of extensions, so you can set $wgExtensionInfoMTime
to the mtime of one file, and `touch` it whenever you update
your extensions.
Change-Id: I7074b65d07c5c7d4e3f1fb0755d74a0b07ed4596
2014-10-15 00:31:15 +00:00
|
|
|
'ExtensionProcessor' => __DIR__ . '/includes/registration/ExtensionProcessor.php',
|
|
|
|
|
'ExtensionRegistry' => __DIR__ . '/includes/registration/ExtensionRegistry.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ExternalStore' => __DIR__ . '/includes/externalstore/ExternalStore.php',
|
2018-02-27 06:24:46 +00:00
|
|
|
'ExternalStoreAccess' => __DIR__ . '/includes/externalstore/ExternalStoreAccess.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ExternalStoreDB' => __DIR__ . '/includes/externalstore/ExternalStoreDB.php',
|
2018-02-27 06:24:46 +00:00
|
|
|
'ExternalStoreException' => __DIR__ . '/includes/externalstore/ExternalStoreException.php',
|
2017-11-14 11:17:34 +00:00
|
|
|
'ExternalStoreFactory' => __DIR__ . '/includes/externalstore/ExternalStoreFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ExternalStoreHttp' => __DIR__ . '/includes/externalstore/ExternalStoreHttp.php',
|
|
|
|
|
'ExternalStoreMedium' => __DIR__ . '/includes/externalstore/ExternalStoreMedium.php',
|
2018-02-27 06:24:46 +00:00
|
|
|
'ExternalStoreMemory' => __DIR__ . '/includes/externalstore/ExternalStoreMemory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ExternalStoreMwstore' => __DIR__ . '/includes/externalstore/ExternalStoreMwstore.php',
|
2018-01-11 12:20:35 +00:00
|
|
|
'ExternalUserNames' => __DIR__ . '/includes/user/ExternalUserNames.php',
|
2016-10-18 22:36:24 +00:00
|
|
|
'FSFile' => __DIR__ . '/includes/libs/filebackend/fsfile/FSFile.php',
|
2016-09-21 22:36:16 +00:00
|
|
|
'FSFileBackend' => __DIR__ . '/includes/libs/filebackend/FSFileBackend.php',
|
2019-04-15 09:30:24 +00:00
|
|
|
'FSFileBackendDirList' => __DIR__ . '/includes/libs/filebackend/fileiteration/FSFileBackendDirList.php',
|
|
|
|
|
'FSFileBackendFileList' => __DIR__ . '/includes/libs/filebackend/fileiteration/FSFileBackendFileList.php',
|
|
|
|
|
'FSFileBackendList' => __DIR__ . '/includes/libs/filebackend/fileiteration/FSFileBackendList.php',
|
|
|
|
|
'FSFileOpHandle' => __DIR__ . '/includes/libs/filebackend/fileophandle/FSFileOpHandle.php',
|
2016-09-18 04:42:56 +00:00
|
|
|
'FSLockManager' => __DIR__ . '/includes/libs/lockmanager/FSLockManager.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'FakeConverter' => __DIR__ . '/languages/TrivialLanguageConverter.php',
|
2020-03-03 14:33:54 +00:00
|
|
|
'FakeMaintenance' => __DIR__ . '/maintenance/includes/FakeMaintenance.php',
|
2016-09-14 10:11:41 +00:00
|
|
|
'FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FatalError' => __DIR__ . '/includes/exception/FatalError.php',
|
2016-01-04 13:55:15 +00:00
|
|
|
'FauxRequest' => __DIR__ . '/includes/FauxRequest.php',
|
2019-02-15 19:11:49 +00:00
|
|
|
'FauxResponse' => __DIR__ . '/includes/FauxResponse.php',
|
2019-10-07 14:29:09 +00:00
|
|
|
'FauxSearchResult' => __DIR__ . '/includes/search/FauxSearchResult.php',
|
|
|
|
|
'FauxSearchResultSet' => __DIR__ . '/includes/search/FauxSearchResultSet.php',
|
2019-04-13 22:56:06 +00:00
|
|
|
'FeedItem' => __DIR__ . '/includes/changes/FeedItem.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FeedUtils' => __DIR__ . '/includes/FeedUtils.php',
|
|
|
|
|
'FetchText' => __DIR__ . '/maintenance/fetchText.php',
|
2016-09-14 10:11:41 +00:00
|
|
|
'Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'File' => __DIR__ . '/includes/filerepo/file/File.php',
|
2015-12-21 10:32:48 +00:00
|
|
|
'FileAwareNodeVisitor' => __DIR__ . '/maintenance/findDeprecated.php',
|
2016-09-18 07:54:54 +00:00
|
|
|
'FileBackend' => __DIR__ . '/includes/libs/filebackend/FileBackend.php',
|
2015-03-10 13:26:14 +00:00
|
|
|
'FileBackendDBRepoWrapper' => __DIR__ . '/includes/filerepo/FileBackendDBRepoWrapper.php',
|
2019-04-15 09:30:24 +00:00
|
|
|
'FileBackendError' => __DIR__ . '/includes/libs/filebackend/exception/FileBackendError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FileBackendGroup' => __DIR__ . '/includes/filebackend/FileBackendGroup.php',
|
2016-09-23 04:54:49 +00:00
|
|
|
'FileBackendMultiWrite' => __DIR__ . '/includes/libs/filebackend/FileBackendMultiWrite.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'FileBackendStore' => __DIR__ . '/includes/libs/filebackend/FileBackendStore.php',
|
2019-04-15 09:30:24 +00:00
|
|
|
'FileBackendStoreOpHandle' => __DIR__ . '/includes/libs/filebackend/fileophandle/FileBackendStoreOpHandle.php',
|
|
|
|
|
'FileBackendStoreShardDirIterator' => __DIR__ . '/includes/libs/filebackend/fileiteration/FileBackendStoreShardDirIterator.php',
|
|
|
|
|
'FileBackendStoreShardFileIterator' => __DIR__ . '/includes/libs/filebackend/fileiteration/FileBackendStoreShardFileIterator.php',
|
|
|
|
|
'FileBackendStoreShardListIterator' => __DIR__ . '/includes/libs/filebackend/fileiteration/FileBackendStoreShardListIterator.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FileCacheBase' => __DIR__ . '/includes/cache/FileCacheBase.php',
|
2016-09-14 00:52:33 +00:00
|
|
|
'FileContentHandler' => __DIR__ . '/includes/content/FileContentHandler.php',
|
2015-09-25 01:27:28 +00:00
|
|
|
'FileContentsHasher' => __DIR__ . '/includes/utils/FileContentsHasher.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FileDeleteForm' => __DIR__ . '/includes/FileDeleteForm.php',
|
2019-03-08 21:27:29 +00:00
|
|
|
'FileDependency' => __DIR__ . '/includes/cache/dependency/FileDependency.php',
|
2016-09-18 07:54:54 +00:00
|
|
|
'FileJournal' => __DIR__ . '/includes/libs/filebackend/filejournal/FileJournal.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'FileOp' => __DIR__ . '/includes/libs/filebackend/fileop/FileOp.php',
|
|
|
|
|
'FileOpBatch' => __DIR__ . '/includes/libs/filebackend/FileOpBatch.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'FileOpPerfTest' => __DIR__ . '/maintenance/fileOpPerfTest.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FileRepo' => __DIR__ . '/includes/filerepo/FileRepo.php',
|
2020-03-30 20:20:27 +00:00
|
|
|
'FindBadBlobs' => __DIR__ . '/maintenance/findBadBlobs.php',
|
2015-12-21 10:32:48 +00:00
|
|
|
'FindDeprecated' => __DIR__ . '/maintenance/findDeprecated.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FindHooks' => __DIR__ . '/maintenance/findHooks.php',
|
|
|
|
|
'FindMissingFiles' => __DIR__ . '/maintenance/findMissingFiles.php',
|
2015-10-28 20:01:50 +00:00
|
|
|
'FindOrphanedFiles' => __DIR__ . '/maintenance/findOrphanedFiles.php',
|
2015-10-21 05:44:33 +00:00
|
|
|
'FixDefaultJsonContentPages' => __DIR__ . '/maintenance/fixDefaultJsonContentPages.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FixDoubleRedirects' => __DIR__ . '/maintenance/fixDoubleRedirects.php',
|
|
|
|
|
'FixExtLinksProtocolRelative' => __DIR__ . '/maintenance/fixExtLinksProtocolRelative.php',
|
|
|
|
|
'FixTimestamps' => __DIR__ . '/maintenance/fixTimestamps.php',
|
|
|
|
|
'FixUserRegistration' => __DIR__ . '/maintenance/fixUserRegistration.php',
|
|
|
|
|
'ForeignAPIFile' => __DIR__ . '/includes/filerepo/file/ForeignAPIFile.php',
|
|
|
|
|
'ForeignAPIRepo' => __DIR__ . '/includes/filerepo/ForeignAPIRepo.php',
|
|
|
|
|
'ForeignDBFile' => __DIR__ . '/includes/filerepo/file/ForeignDBFile.php',
|
|
|
|
|
'ForeignDBRepo' => __DIR__ . '/includes/filerepo/ForeignDBRepo.php',
|
|
|
|
|
'ForeignDBViaLBRepo' => __DIR__ . '/includes/filerepo/ForeignDBViaLBRepo.php',
|
2018-10-15 01:56:46 +00:00
|
|
|
'ForeignResourceManager' => __DIR__ . '/includes/ForeignResourceManager.php',
|
2014-12-10 11:24:47 +00:00
|
|
|
'ForeignTitle' => __DIR__ . '/includes/title/ForeignTitle.php',
|
|
|
|
|
'ForeignTitleFactory' => __DIR__ . '/includes/title/ForeignTitleFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ForkController' => __DIR__ . '/includes/ForkController.php',
|
|
|
|
|
'FormAction' => __DIR__ . '/includes/actions/FormAction.php',
|
|
|
|
|
'FormOptions' => __DIR__ . '/includes/FormOptions.php',
|
|
|
|
|
'FormSpecialPage' => __DIR__ . '/includes/specialpage/FormSpecialPage.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'FormatInstallDoc' => __DIR__ . '/maintenance/formatInstallDoc.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FormatJson' => __DIR__ . '/includes/json/FormatJson.php',
|
|
|
|
|
'FormatMetadata' => __DIR__ . '/includes/media/FormatMetadata.php',
|
Refactor RCFeed configuration (backwards compatible)
Previously:
* Engines had to be registered in $wgRCEngines.
* The RCFeedEngine classes took no constructor arguments and
were expected to send whatever text is previously formatted
without any information about it. This generic design was
flexible in allowing one to use any formatter with any engine
with minimal configuration and no need for additional classes.
* Each feed configured their destination by setting a 'uri'
option that encodes the name of the engine in PHP as the uri
scheme. Other uri components had to be used for any other
parameters to the engine (host, port, path). While fairly
limited, it was sufficient for the default engines in core.
Changes:
* Allow feed classes to be directly associated with a feed in $wgRCFeeds
via a new 'class' option - without the indirection of 'uri' and
$wgRCEngines. All options are passed to the given class constructor.
This matches the design used elsewhere in MediaWiki. (ObjectCache,
FileRepo, FileBackend, JobQueue, LBFactory, etc.)
This means we no longer enforce a 1:1 mapping of internet protocols
to a specific feed engine, and it allows settings to be passed
without being encoded as a URI neccecarily.
Main use case for this refactor is EventBus (see I7edc4d57fa),
Interestingly, this matches the (then incorrect) documentation
written for $wgRCFeeds in 2961884b43 (which mentions an 'engine'
property that would do the same thing).
* Move the default 'omit' filters and unrestricted 'formatter' handling
to a new FormattedRCFeed class, which remains the default.
* Deprecate RecentChange::getEngine() in favour of RCFeed::factory().
* Document wgRCEngines as "@since 1.22". Follows 2961884b43, ffc71cb6af.
Change-Id: I8be497c623c5d928762e3d3406a388f4d91add9a
2017-01-06 01:27:43 +00:00
|
|
|
'FormattedRCFeed' => __DIR__ . '/includes/rcfeed/FormattedRCFeed.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'FormlessAction' => __DIR__ . '/includes/actions/FormlessAction.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'GIFHandler' => __DIR__ . '/includes/media/GIFHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GIFMetadataExtractor' => __DIR__ . '/includes/media/GIFMetadataExtractor.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'GanConverter' => __DIR__ . '/languages/converters/GanConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GenderCache' => __DIR__ . '/includes/cache/GenderCache.php',
|
|
|
|
|
'GenerateCollationData' => __DIR__ . '/maintenance/language/generateCollationData.php',
|
|
|
|
|
'GenerateJsonI18n' => __DIR__ . '/maintenance/generateJsonI18n.php',
|
|
|
|
|
'GenerateNormalizerDataAr' => __DIR__ . '/maintenance/language/generateNormalizerDataAr.php',
|
|
|
|
|
'GenerateNormalizerDataMl' => __DIR__ . '/maintenance/language/generateNormalizerDataMl.php',
|
2019-04-10 13:46:32 +00:00
|
|
|
'GeneratePhpCharToUpperMappings' => __DIR__ . '/maintenance/mediawiki.Title/generatePhpCharToUpperMappings.php',
|
2020-01-18 19:10:13 +00:00
|
|
|
'GenerateSchemaSql' => __DIR__ . '/maintenance/generateSchemaSql.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GenerateSitemap' => __DIR__ . '/maintenance/generateSitemap.php',
|
2019-04-09 17:02:03 +00:00
|
|
|
'GenerateUcfirstOverrides' => __DIR__ . '/maintenance/language/generateUcfirstOverrides.php',
|
|
|
|
|
'GenerateUpperCharTable' => __DIR__ . '/maintenance/language/generateUpperCharTable.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GenericArrayObject' => __DIR__ . '/includes/libs/GenericArrayObject.php',
|
2019-03-30 06:07:48 +00:00
|
|
|
'GenericParameterJob' => __DIR__ . '/includes/jobqueue/GenericParameterJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GetConfiguration' => __DIR__ . '/maintenance/getConfiguration.php',
|
|
|
|
|
'GetLagTimes' => __DIR__ . '/maintenance/getLagTimes.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'GetReplicaServer' => __DIR__ . '/maintenance/getReplicaServer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GetTextMaint' => __DIR__ . '/maintenance/getText.php',
|
|
|
|
|
'GitInfo' => __DIR__ . '/includes/GitInfo.php',
|
2019-03-08 21:27:29 +00:00
|
|
|
'GlobalDependency' => __DIR__ . '/includes/cache/dependency/GlobalDependency.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'GlobalVarConfig' => __DIR__ . '/includes/config/GlobalVarConfig.php',
|
2018-08-17 14:53:59 +00:00
|
|
|
'GuzzleHttpRequest' => __DIR__ . '/includes/http/GuzzleHttpRequest.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLApiField' => __DIR__ . '/includes/htmlform/fields/HTMLApiField.php',
|
|
|
|
|
'HTMLAutoCompleteSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLAutoCompleteSelectField.php',
|
|
|
|
|
'HTMLButtonField' => __DIR__ . '/includes/htmlform/fields/HTMLButtonField.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HTMLCacheUpdate' => __DIR__ . '/includes/deferred/HTMLCacheUpdate.php',
|
|
|
|
|
'HTMLCacheUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/HTMLCacheUpdateJob.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLCheckField' => __DIR__ . '/includes/htmlform/fields/HTMLCheckField.php',
|
|
|
|
|
'HTMLCheckMatrix' => __DIR__ . '/includes/htmlform/fields/HTMLCheckMatrix.php',
|
|
|
|
|
'HTMLComboboxField' => __DIR__ . '/includes/htmlform/fields/HTMLComboboxField.php',
|
2016-09-22 17:28:29 +00:00
|
|
|
'HTMLDateTimeField' => __DIR__ . '/includes/htmlform/fields/HTMLDateTimeField.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLEditTools' => __DIR__ . '/includes/htmlform/fields/HTMLEditTools.php',
|
2018-03-22 05:15:16 +00:00
|
|
|
'HTMLExpiryField' => __DIR__ . '/includes/htmlform/fields/HTMLExpiryField.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HTMLFileCache' => __DIR__ . '/includes/cache/HTMLFileCache.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLFloatField' => __DIR__ . '/includes/htmlform/fields/HTMLFloatField.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HTMLForm' => __DIR__ . '/includes/htmlform/HTMLForm.php',
|
2019-04-14 02:40:03 +00:00
|
|
|
'HTMLFormActionFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormActionFieldLayout.php',
|
2016-07-30 23:19:26 +00:00
|
|
|
'HTMLFormElement' => __DIR__ . '/includes/htmlform/HTMLFormElement.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HTMLFormField' => __DIR__ . '/includes/htmlform/HTMLFormField.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLFormFieldCloner' => __DIR__ . '/includes/htmlform/fields/HTMLFormFieldCloner.php',
|
2019-04-14 02:40:03 +00:00
|
|
|
'HTMLFormFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormFieldLayout.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HTMLFormFieldRequiredOptionsException' => __DIR__ . '/includes/htmlform/HTMLFormFieldRequiredOptionsException.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLFormFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLFormFieldWithButton.php',
|
|
|
|
|
'HTMLHiddenField' => __DIR__ . '/includes/htmlform/fields/HTMLHiddenField.php',
|
|
|
|
|
'HTMLInfoField' => __DIR__ . '/includes/htmlform/fields/HTMLInfoField.php',
|
|
|
|
|
'HTMLIntField' => __DIR__ . '/includes/htmlform/fields/HTMLIntField.php',
|
|
|
|
|
'HTMLMultiSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLMultiSelectField.php',
|
2018-12-14 17:55:01 +00:00
|
|
|
'HTMLNamespacesMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLNamespacesMultiselectField.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HTMLNestedFilterable' => __DIR__ . '/includes/htmlform/HTMLNestedFilterable.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLRadioField' => __DIR__ . '/includes/htmlform/fields/HTMLRadioField.php',
|
2016-09-21 01:33:26 +00:00
|
|
|
'HTMLRestrictionsField' => __DIR__ . '/includes/htmlform/fields/HTMLRestrictionsField.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLSelectAndOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectAndOtherField.php',
|
|
|
|
|
'HTMLSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectField.php',
|
2019-01-22 03:35:32 +00:00
|
|
|
'HTMLSelectLanguageField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLanguageField.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLimitField.php',
|
|
|
|
|
'HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespace.php',
|
|
|
|
|
'HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespaceWithButton.php',
|
|
|
|
|
'HTMLSelectOrOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectOrOtherField.php',
|
2016-10-27 01:23:18 +00:00
|
|
|
'HTMLSizeFilterField' => __DIR__ . '/includes/htmlform/fields/HTMLSizeFilterField.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLSubmitField' => __DIR__ . '/includes/htmlform/fields/HTMLSubmitField.php',
|
|
|
|
|
'HTMLTagFilter' => __DIR__ . '/includes/htmlform/fields/HTMLTagFilter.php',
|
|
|
|
|
'HTMLTextAreaField' => __DIR__ . '/includes/htmlform/fields/HTMLTextAreaField.php',
|
|
|
|
|
'HTMLTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTextField.php',
|
|
|
|
|
'HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLTextFieldWithButton.php',
|
|
|
|
|
'HTMLTitleTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTitleTextField.php',
|
2018-08-30 00:33:32 +00:00
|
|
|
'HTMLTitlesMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLTitlesMultiselectField.php',
|
2016-07-30 21:59:24 +00:00
|
|
|
'HTMLUserTextField' => __DIR__ . '/includes/htmlform/fields/HTMLUserTextField.php',
|
2017-01-08 02:37:29 +00:00
|
|
|
'HTMLUsersMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLUsersMultiselectField.php',
|
2016-09-18 22:49:34 +00:00
|
|
|
'HTTPFileStreamer' => __DIR__ . '/includes/libs/filebackend/HTTPFileStreamer.php',
|
2015-02-25 08:22:50 +00:00
|
|
|
'HashBagOStuff' => __DIR__ . '/includes/libs/objectcache/HashBagOStuff.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HashConfig' => __DIR__ . '/includes/config/HashConfig.php',
|
|
|
|
|
'HashRing' => __DIR__ . '/includes/libs/HashRing.php',
|
2015-02-26 14:53:08 +00:00
|
|
|
'HashSiteStore' => __DIR__ . '/includes/site/HashSiteStore.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HistoryAction' => __DIR__ . '/includes/actions/HistoryAction.php',
|
2019-03-25 19:29:47 +00:00
|
|
|
'HistoryBlob' => __DIR__ . '/includes/historyblob/HistoryBlob.php',
|
|
|
|
|
'HistoryBlobCurStub' => __DIR__ . '/includes/historyblob/HistoryBlobCurStub.php',
|
|
|
|
|
'HistoryBlobStub' => __DIR__ . '/includes/historyblob/HistoryBlobStub.php',
|
2019-03-08 20:56:38 +00:00
|
|
|
'HistoryPager' => __DIR__ . '/includes/actions/pagers/HistoryPager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Hooks' => __DIR__ . '/includes/Hooks.php',
|
|
|
|
|
'Html' => __DIR__ . '/includes/Html.php',
|
Add LinkRenderer (rewrite of Linker::link())
This is a rewrite of Linker::link() to a non-static, LinkTarget-based
interface. Users of plain Linker::link() with no options can use the
LinkRenderer instance provided by MediaWikiServices. Others that
have specific options should create and configure their own instance,
which can be used to create as many links as necessary.
The main entrypoints for making links are:
* ->makeLink( $target, $text, $attribs, $query );
* ->makeKnownLink( $target, $text, $attribs, $query );
* ->makeBrokenLink( $target, $text, $attribs, $query );
The order of the parameters are the same as Linker::link(), except
$options are now part of the LinkRenderer instance, and
known/broken status requires calling the function explicitly.
Additionally, instead of passing in raw $html for the link text, the
$text parameter will automatically be escaped unless it is specially
marked as safe HTML using the MediaWiki\Linker\HtmlArmor class.
The LinkBegin and LinkEnd hooks are now deprecated, but still function
for backwards-compatability. Clients should migrate to the nearly-
equivalent LinkRendererBegin and LinkRendererEnd hooks.
The main differences between the hooks are:
* Passing HtmlPageLinkRenderer object instead of deprecated DummyLinker
* Using LinkTarget instead of Title
* Begin hook can no longer change known/broken status of link. Use the
TitleIsAlwaysKnown hook for that.
* $options are no longer passed, they can be read (but shouldn't be
modified!) from the LinkRenderer object.
Bug: T469
Change-Id: I057cc86ae6404a080aa3c8e0e956ecbb10a897d5
2016-04-21 20:13:21 +00:00
|
|
|
'HtmlArmor' => __DIR__ . '/includes/libs/HtmlArmor.php',
|
2019-03-15 00:23:26 +00:00
|
|
|
'HtmlCacheUpdater' => __DIR__ . '/includes/cache/HtmlCacheUpdater.php',
|
|
|
|
|
'HtmlFileCacheUpdate' => __DIR__ . '/includes/deferred/HtmlFileCacheUpdate.php',
|
2016-10-02 05:46:07 +00:00
|
|
|
'Http' => __DIR__ . '/includes/http/Http.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'HttpError' => __DIR__ . '/includes/exception/HttpError.php',
|
|
|
|
|
'HttpStatus' => __DIR__ . '/includes/libs/HttpStatus.php',
|
2018-05-25 00:59:49 +00:00
|
|
|
'IApiMessage' => __DIR__ . '/includes/api/IApiMessage.php',
|
2017-07-08 00:19:39 +00:00
|
|
|
'IBufferingStatsdDataFactory' => __DIR__ . '/includes/libs/stats/IBufferingStatsdDataFactory.php',
|
2019-02-05 19:04:12 +00:00
|
|
|
'ICacheHelper' => __DIR__ . '/includes/cache/ICacheHelper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'IContextSource' => __DIR__ . '/includes/context/IContextSource.php',
|
|
|
|
|
'IDBAccessObject' => __DIR__ . '/includes/dao/IDBAccessObject.php',
|
2016-09-14 07:19:30 +00:00
|
|
|
'IDatabase' => __DIR__ . '/includes/libs/rdbms/database/IDatabase.php',
|
2016-09-22 04:57:13 +00:00
|
|
|
'IEContentAnalyzer' => __DIR__ . '/includes/libs/mime/IEContentAnalyzer.php',
|
2020-01-09 22:10:08 +00:00
|
|
|
'IExpiringStore' => __DIR__ . '/includes/libs/objectcache/utils/IExpiringStore.php',
|
2019-02-04 20:00:06 +00:00
|
|
|
'IJobSpecification' => __DIR__ . '/includes/jobqueue/IJobSpecification.php',
|
2020-02-10 14:08:01 +00:00
|
|
|
'ILanguageConverter' => __DIR__ . '/includes/language/ILanguageConverter.php',
|
2019-02-01 19:05:30 +00:00
|
|
|
'ILocalizedException' => __DIR__ . '/includes/exception/ILocalizedException.php',
|
2016-09-23 03:46:16 +00:00
|
|
|
'IMaintainableDatabase' => __DIR__ . '/includes/libs/rdbms/database/IMaintainableDatabase.php',
|
2019-12-18 18:45:25 +00:00
|
|
|
'IP' => __DIR__ . '/includes/compat/IP.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'IPTC' => __DIR__ . '/includes/media/IPTC.php',
|
|
|
|
|
'IRCColourfulRCFeedFormatter' => __DIR__ . '/includes/rcfeed/IRCColourfulRCFeedFormatter.php',
|
2019-07-22 15:28:48 +00:00
|
|
|
'ISearchResultSet' => __DIR__ . '/includes/search/ISearchResultSet.php',
|
2019-07-08 19:12:16 +00:00
|
|
|
'IStoreKeyEncoder' => __DIR__ . '/includes/libs/objectcache/IStoreKeyEncoder.php',
|
2016-04-03 08:23:20 +00:00
|
|
|
'IcuCollation' => __DIR__ . '/includes/collation/IcuCollation.php',
|
|
|
|
|
'IdentityCollation' => __DIR__ . '/includes/collation/IdentityCollation.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ImageBuilder' => __DIR__ . '/maintenance/rebuildImages.php',
|
|
|
|
|
'ImageGalleryBase' => __DIR__ . '/includes/gallery/ImageGalleryBase.php',
|
|
|
|
|
'ImageHandler' => __DIR__ . '/includes/media/ImageHandler.php',
|
2016-02-03 12:26:01 +00:00
|
|
|
'ImageHistoryList' => __DIR__ . '/includes/page/ImageHistoryList.php',
|
|
|
|
|
'ImageHistoryPseudoPager' => __DIR__ . '/includes/page/ImageHistoryPseudoPager.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'ImageListPager' => __DIR__ . '/includes/specials/pagers/ImageListPager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ImagePage' => __DIR__ . '/includes/page/ImagePage.php',
|
|
|
|
|
'ImageQueryPage' => __DIR__ . '/includes/specialpage/ImageQueryPage.php',
|
2016-12-16 22:45:20 +00:00
|
|
|
'ImportImages' => __DIR__ . '/maintenance/importImages.php',
|
2015-11-10 18:56:19 +00:00
|
|
|
'ImportLogFormatter' => __DIR__ . '/includes/logging/ImportLogFormatter.php',
|
2017-09-12 21:03:26 +00:00
|
|
|
'ImportReporter' => __DIR__ . '/includes/specials/helpers/ImportReporter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ImportSiteScripts' => __DIR__ . '/maintenance/importSiteScripts.php',
|
2015-02-25 18:16:13 +00:00
|
|
|
'ImportSites' => __DIR__ . '/maintenance/importSites.php',
|
2015-12-28 22:27:48 +00:00
|
|
|
'ImportSource' => __DIR__ . '/includes/import/ImportSource.php',
|
|
|
|
|
'ImportStreamSource' => __DIR__ . '/includes/import/ImportStreamSource.php',
|
|
|
|
|
'ImportStringSource' => __DIR__ . '/includes/import/ImportStringSource.php',
|
2016-01-07 03:09:47 +00:00
|
|
|
'ImportTextFiles' => __DIR__ . '/maintenance/importTextFiles.php',
|
2014-12-10 11:24:47 +00:00
|
|
|
'ImportTitleFactory' => __DIR__ . '/includes/title/ImportTitleFactory.php',
|
2017-07-04 21:46:46 +00:00
|
|
|
'ImportableOldRevision' => __DIR__ . '/includes/import/ImportableOldRevision.php',
|
|
|
|
|
'ImportableOldRevisionImporter' => __DIR__ . '/includes/import/ImportableOldRevisionImporter.php',
|
2017-07-04 21:07:04 +00:00
|
|
|
'ImportableUploadRevision' => __DIR__ . '/includes/import/ImportableUploadRevision.php',
|
|
|
|
|
'ImportableUploadRevisionImporter' => __DIR__ . '/includes/import/ImportableUploadRevisionImporter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'IncludableSpecialPage' => __DIR__ . '/includes/specialpage/IncludableSpecialPage.php',
|
|
|
|
|
'IndexPager' => __DIR__ . '/includes/pager/IndexPager.php',
|
|
|
|
|
'InfoAction' => __DIR__ . '/includes/actions/InfoAction.php',
|
|
|
|
|
'InitEditCount' => __DIR__ . '/maintenance/initEditCount.php',
|
|
|
|
|
'InitSiteStats' => __DIR__ . '/maintenance/initSiteStats.php',
|
2017-03-02 21:21:43 +00:00
|
|
|
'InitUserPreference' => __DIR__ . '/maintenance/initUserPreference.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'InstallDocFormatter' => __DIR__ . '/includes/installer/InstallDocFormatter.php',
|
|
|
|
|
'Installer' => __DIR__ . '/includes/installer/Installer.php',
|
2016-05-19 00:40:56 +00:00
|
|
|
'InstallerOverrides' => __DIR__ . '/includes/installer/InstallerOverrides.php',
|
2016-02-10 10:04:28 +00:00
|
|
|
'InstallerSessionProvider' => __DIR__ . '/includes/installer/InstallerSessionProvider.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Interwiki' => __DIR__ . '/includes/interwiki/Interwiki.php',
|
|
|
|
|
'InvalidPassword' => __DIR__ . '/includes/password/InvalidPassword.php',
|
2016-06-29 11:35:24 +00:00
|
|
|
'InvalidateUserSesssions' => __DIR__ . '/maintenance/invalidateUserSessions.php',
|
2016-10-04 17:56:35 +00:00
|
|
|
'IteratorDecorator' => __DIR__ . '/includes/libs/iterators/IteratorDecorator.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'IuConverter' => __DIR__ . '/languages/converters/IuConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'JSCompilerContext' => __DIR__ . '/includes/libs/jsminplus.php',
|
|
|
|
|
'JSMinPlus' => __DIR__ . '/includes/libs/jsminplus.php',
|
|
|
|
|
'JSNode' => __DIR__ . '/includes/libs/jsminplus.php',
|
|
|
|
|
'JSONRCFeedFormatter' => __DIR__ . '/includes/rcfeed/JSONRCFeedFormatter.php',
|
|
|
|
|
'JSParseHelper' => __DIR__ . '/maintenance/jsparse.php',
|
|
|
|
|
'JSParser' => __DIR__ . '/includes/libs/jsminplus.php',
|
|
|
|
|
'JSToken' => __DIR__ . '/includes/libs/jsminplus.php',
|
|
|
|
|
'JSTokenizer' => __DIR__ . '/includes/libs/jsminplus.php',
|
|
|
|
|
'JavaScriptContent' => __DIR__ . '/includes/content/JavaScriptContent.php',
|
|
|
|
|
'JavaScriptContentHandler' => __DIR__ . '/includes/content/JavaScriptContentHandler.php',
|
|
|
|
|
'JavaScriptMinifier' => __DIR__ . '/includes/libs/JavaScriptMinifier.php',
|
|
|
|
|
'Job' => __DIR__ . '/includes/jobqueue/Job.php',
|
|
|
|
|
'JobQueue' => __DIR__ . '/includes/jobqueue/JobQueue.php',
|
2019-02-06 18:39:20 +00:00
|
|
|
'JobQueueConnectionError' => __DIR__ . '/includes/jobqueue/exception/JobQueueConnectionError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'JobQueueDB' => __DIR__ . '/includes/jobqueue/JobQueueDB.php',
|
2018-10-24 19:28:02 +00:00
|
|
|
'JobQueueEnqueueUpdate' => __DIR__ . '/includes/deferred/JobQueueEnqueueUpdate.php',
|
2019-02-06 18:39:20 +00:00
|
|
|
'JobQueueError' => __DIR__ . '/includes/jobqueue/exception/JobQueueError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'JobQueueFederated' => __DIR__ . '/includes/jobqueue/JobQueueFederated.php',
|
|
|
|
|
'JobQueueGroup' => __DIR__ . '/includes/jobqueue/JobQueueGroup.php',
|
2016-01-13 05:51:09 +00:00
|
|
|
'JobQueueMemory' => __DIR__ . '/includes/jobqueue/JobQueueMemory.php',
|
2019-02-06 18:39:20 +00:00
|
|
|
'JobQueueReadOnlyError' => __DIR__ . '/includes/jobqueue/exception/JobQueueReadOnlyError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'JobQueueRedis' => __DIR__ . '/includes/jobqueue/JobQueueRedis.php',
|
|
|
|
|
'JobRunner' => __DIR__ . '/includes/jobqueue/JobRunner.php',
|
|
|
|
|
'JobSpecification' => __DIR__ . '/includes/jobqueue/JobSpecification.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'JpegHandler' => __DIR__ . '/includes/media/JpegHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'JpegMetadataExtractor' => __DIR__ . '/includes/media/JpegMetadataExtractor.php',
|
|
|
|
|
'JsonContent' => __DIR__ . '/includes/content/JsonContent.php',
|
|
|
|
|
'JsonContentHandler' => __DIR__ . '/includes/content/JsonContentHandler.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'KkConverter' => __DIR__ . '/languages/converters/KkConverter.php',
|
|
|
|
|
'KuConverter' => __DIR__ . '/languages/converters/KuConverter.php',
|
2016-03-21 11:51:16 +00:00
|
|
|
'LCStore' => __DIR__ . '/includes/cache/localisation/LCStore.php',
|
|
|
|
|
'LCStoreCDB' => __DIR__ . '/includes/cache/localisation/LCStoreCDB.php',
|
|
|
|
|
'LCStoreDB' => __DIR__ . '/includes/cache/localisation/LCStoreDB.php',
|
|
|
|
|
'LCStoreNull' => __DIR__ . '/includes/cache/localisation/LCStoreNull.php',
|
|
|
|
|
'LCStoreStaticArray' => __DIR__ . '/includes/cache/localisation/LCStoreStaticArray.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LangMemUsage' => __DIR__ . '/maintenance/language/langmemusage.php',
|
|
|
|
|
'Language' => __DIR__ . '/languages/Language.php',
|
|
|
|
|
'LanguageAr' => __DIR__ . '/languages/classes/LanguageAr.php',
|
|
|
|
|
'LanguageAz' => __DIR__ . '/languages/classes/LanguageAz.php',
|
|
|
|
|
'LanguageBe_tarask' => __DIR__ . '/languages/classes/LanguageBe_tarask.php',
|
|
|
|
|
'LanguageBs' => __DIR__ . '/languages/classes/LanguageBs.php',
|
2019-06-13 21:02:36 +00:00
|
|
|
'LanguageCode' => __DIR__ . '/includes/language/LanguageCode.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LanguageConverter' => __DIR__ . '/languages/LanguageConverter.php',
|
|
|
|
|
'LanguageCu' => __DIR__ . '/languages/classes/LanguageCu.php',
|
|
|
|
|
'LanguageDsb' => __DIR__ . '/languages/classes/LanguageDsb.php',
|
2013-07-27 23:01:54 +00:00
|
|
|
'LanguageEn' => __DIR__ . '/languages/classes/LanguageEn.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LanguageFi' => __DIR__ . '/languages/classes/LanguageFi.php',
|
|
|
|
|
'LanguageGa' => __DIR__ . '/languages/classes/LanguageGa.php',
|
|
|
|
|
'LanguageGan' => __DIR__ . '/languages/classes/LanguageGan.php',
|
|
|
|
|
'LanguageHsb' => __DIR__ . '/languages/classes/LanguageHsb.php',
|
|
|
|
|
'LanguageHu' => __DIR__ . '/languages/classes/LanguageHu.php',
|
|
|
|
|
'LanguageHy' => __DIR__ . '/languages/classes/LanguageHy.php',
|
|
|
|
|
'LanguageJa' => __DIR__ . '/languages/classes/LanguageJa.php',
|
|
|
|
|
'LanguageKaa' => __DIR__ . '/languages/classes/LanguageKaa.php',
|
|
|
|
|
'LanguageKk' => __DIR__ . '/languages/classes/LanguageKk.php',
|
|
|
|
|
'LanguageKk_cyrl' => __DIR__ . '/languages/classes/LanguageKk_cyrl.php',
|
|
|
|
|
'LanguageKm' => __DIR__ . '/languages/classes/LanguageKm.php',
|
|
|
|
|
'LanguageKsh' => __DIR__ . '/languages/classes/LanguageKsh.php',
|
|
|
|
|
'LanguageLa' => __DIR__ . '/languages/classes/LanguageLa.php',
|
|
|
|
|
'LanguageMl' => __DIR__ . '/languages/classes/LanguageMl.php',
|
|
|
|
|
'LanguageMy' => __DIR__ . '/languages/classes/LanguageMy.php',
|
|
|
|
|
'LanguageOs' => __DIR__ . '/languages/classes/LanguageOs.php',
|
|
|
|
|
'LanguageQqx' => __DIR__ . '/languages/classes/LanguageQqx.php',
|
|
|
|
|
'LanguageSl' => __DIR__ . '/languages/classes/LanguageSl.php',
|
|
|
|
|
'LanguageTr' => __DIR__ . '/languages/classes/LanguageTr.php',
|
|
|
|
|
'LanguageTyv' => __DIR__ . '/languages/classes/LanguageTyv.php',
|
|
|
|
|
'LanguageWa' => __DIR__ . '/languages/classes/LanguageWa.php',
|
|
|
|
|
'LanguageYue' => __DIR__ . '/languages/classes/LanguageYue.php',
|
|
|
|
|
'LanguageZh' => __DIR__ . '/languages/classes/LanguageZh.php',
|
|
|
|
|
'LanguageZh_hans' => __DIR__ . '/languages/classes/LanguageZh_hans.php',
|
|
|
|
|
'LayeredParameterizedPassword' => __DIR__ . '/includes/password/LayeredParameterizedPassword.php',
|
2019-04-14 01:05:34 +00:00
|
|
|
'LegacyLogFormatter' => __DIR__ . '/includes/logging/LegacyLogFormatter.php',
|
2017-09-12 21:03:26 +00:00
|
|
|
'License' => __DIR__ . '/includes/specials/helpers/License.php',
|
|
|
|
|
'Licenses' => __DIR__ . '/includes/specials/formfields/Licenses.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LinkBatch' => __DIR__ . '/includes/cache/LinkBatch.php',
|
|
|
|
|
'LinkCache' => __DIR__ . '/includes/cache/LinkCache.php',
|
|
|
|
|
'LinkFilter' => __DIR__ . '/includes/LinkFilter.php',
|
|
|
|
|
'LinkHolderArray' => __DIR__ . '/includes/parser/LinkHolderArray.php',
|
|
|
|
|
'Linker' => __DIR__ . '/includes/Linker.php',
|
2015-09-22 18:07:47 +00:00
|
|
|
'LinksDeletionUpdate' => __DIR__ . '/includes/deferred/LinksDeletionUpdate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LinksUpdate' => __DIR__ . '/includes/deferred/LinksUpdate.php',
|
2016-01-19 01:42:14 +00:00
|
|
|
'ListToggle' => __DIR__ . '/includes/ListToggle.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ListVariants' => __DIR__ . '/maintenance/language/listVariants.php',
|
2016-09-14 09:40:29 +00:00
|
|
|
'LoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancer.php',
|
2016-09-18 02:00:01 +00:00
|
|
|
'LoadBalancerSingle' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LocalFile' => __DIR__ . '/includes/filerepo/file/LocalFile.php',
|
2019-04-06 10:02:26 +00:00
|
|
|
'LocalFileDeleteBatch' => __DIR__ . '/includes/filerepo/file/LocalFileDeleteBatch.php',
|
|
|
|
|
'LocalFileLockError' => __DIR__ . '/includes/filerepo/file/LocalFileLockError.php',
|
|
|
|
|
'LocalFileMoveBatch' => __DIR__ . '/includes/filerepo/file/LocalFileMoveBatch.php',
|
|
|
|
|
'LocalFileRestoreBatch' => __DIR__ . '/includes/filerepo/file/LocalFileRestoreBatch.php',
|
2015-11-12 23:21:19 +00:00
|
|
|
'LocalIdLookup' => __DIR__ . '/includes/user/LocalIdLookup.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LocalRepo' => __DIR__ . '/includes/filerepo/LocalRepo.php',
|
|
|
|
|
'LocalSettingsGenerator' => __DIR__ . '/includes/installer/LocalSettingsGenerator.php',
|
2016-03-21 11:51:16 +00:00
|
|
|
'LocalisationCache' => __DIR__ . '/includes/cache/localisation/LocalisationCache.php',
|
2016-04-04 03:27:50 +00:00
|
|
|
'LocalisationCacheBulkLoad' => __DIR__ . '/includes/cache/localisation/LocalisationCacheBulkLoad.php',
|
2016-12-08 18:38:45 +00:00
|
|
|
'LocalizedException' => __DIR__ . '/includes/exception/LocalizedException.php',
|
2016-09-18 04:42:56 +00:00
|
|
|
'LockManager' => __DIR__ . '/includes/libs/lockmanager/LockManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LockManagerGroup' => __DIR__ . '/includes/filebackend/lockmanager/LockManagerGroup.php',
|
|
|
|
|
'LogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
|
2019-04-14 01:05:34 +00:00
|
|
|
'LogEntryBase' => __DIR__ . '/includes/logging/LogEntryBase.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'LogEventsList' => __DIR__ . '/includes/logging/LogEventsList.php',
|
|
|
|
|
'LogFormatter' => __DIR__ . '/includes/logging/LogFormatter.php',
|
|
|
|
|
'LogPage' => __DIR__ . '/includes/logging/LogPage.php',
|
|
|
|
|
'LogPager' => __DIR__ . '/includes/logging/LogPager.php',
|
2016-02-01 20:44:03 +00:00
|
|
|
'LoggedOutEditToken' => __DIR__ . '/includes/user/LoggedOutEditToken.php',
|
2020-03-03 14:33:54 +00:00
|
|
|
'LoggedUpdateMaintenance' => __DIR__ . '/maintenance/includes/LoggedUpdateMaintenance.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'LoginHelper' => __DIR__ . '/includes/specials/helpers/LoginHelper.php',
|
|
|
|
|
'LoginSignupSpecialPage' => __DIR__ . '/includes/specialpage/LoginSignupSpecialPage.php',
|
2019-01-15 03:15:18 +00:00
|
|
|
'MSCompoundFileReader' => __DIR__ . '/includes/libs/mime/MSCompoundFileReader.php',
|
2016-07-26 10:42:57 +00:00
|
|
|
'MWCallableUpdate' => __DIR__ . '/includes/deferred/MWCallableUpdate.php',
|
2019-01-02 22:16:44 +00:00
|
|
|
'MWCallbackStream' => __DIR__ . '/includes/http/MWCallbackStream.php',
|
2016-12-24 11:58:38 +00:00
|
|
|
'MWContentSerializationException' => __DIR__ . '/includes/exception/MWContentSerializationException.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MWCryptHKDF' => __DIR__ . '/includes/utils/MWCryptHKDF.php',
|
2016-10-02 06:19:28 +00:00
|
|
|
'MWCryptHash' => __DIR__ . '/includes/libs/MWCryptHash.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MWCryptRand' => __DIR__ . '/includes/utils/MWCryptRand.php',
|
|
|
|
|
'MWDebug' => __DIR__ . '/includes/debug/MWDebug.php',
|
|
|
|
|
'MWDocGen' => __DIR__ . '/maintenance/mwdocgen.php',
|
2019-09-05 16:58:07 +00:00
|
|
|
'MWDoxygenFilter' => __DIR__ . '/maintenance/includes/MWDoxygenFilter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MWException' => __DIR__ . '/includes/exception/MWException.php',
|
|
|
|
|
'MWExceptionHandler' => __DIR__ . '/includes/exception/MWExceptionHandler.php',
|
2016-09-14 03:57:54 +00:00
|
|
|
'MWExceptionRenderer' => __DIR__ . '/includes/exception/MWExceptionRenderer.php',
|
2016-09-19 01:39:59 +00:00
|
|
|
'MWFileProps' => __DIR__ . '/includes/utils/MWFileProps.php',
|
2016-10-04 17:53:10 +00:00
|
|
|
'MWGrants' => __DIR__ . '/includes/MWGrants.php',
|
2016-10-02 05:46:07 +00:00
|
|
|
'MWHttpRequest' => __DIR__ . '/includes/http/MWHttpRequest.php',
|
2016-09-30 21:06:02 +00:00
|
|
|
'MWLBFactory' => __DIR__ . '/includes/db/MWLBFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MWNamespace' => __DIR__ . '/includes/MWNamespace.php',
|
|
|
|
|
'MWOldPassword' => __DIR__ . '/includes/password/MWOldPassword.php',
|
2015-12-02 17:10:26 +00:00
|
|
|
'MWRestrictions' => __DIR__ . '/includes/utils/MWRestrictions.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MWSaltedPassword' => __DIR__ . '/includes/password/MWSaltedPassword.php',
|
|
|
|
|
'MWTidy' => __DIR__ . '/includes/parser/MWTidy.php',
|
|
|
|
|
'MWTimestamp' => __DIR__ . '/includes/MWTimestamp.php',
|
2016-12-24 11:58:38 +00:00
|
|
|
'MWUnknownContentModelException' => __DIR__ . '/includes/exception/MWUnknownContentModelException.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MachineReadableRCFeedFormatter' => __DIR__ . '/includes/rcfeed/MachineReadableRCFeedFormatter.php',
|
|
|
|
|
'MagicWord' => __DIR__ . '/includes/MagicWord.php',
|
2016-03-01 10:49:29 +00:00
|
|
|
'MagicWordArray' => __DIR__ . '/includes/MagicWordArray.php',
|
2018-07-24 16:44:09 +00:00
|
|
|
'MagicWordFactory' => __DIR__ . '/includes/MagicWordFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MailAddress' => __DIR__ . '/includes/mail/MailAddress.php',
|
2019-03-08 21:27:29 +00:00
|
|
|
'MainConfigDependency' => __DIR__ . '/includes/cache/dependency/MainConfigDependency.php',
|
2016-11-28 18:26:14 +00:00
|
|
|
'MaintainableDBConnRef' => __DIR__ . '/includes/libs/rdbms/database/MaintainableDBConnRef.php',
|
2020-03-03 14:33:54 +00:00
|
|
|
'Maintenance' => __DIR__ . '/maintenance/includes/Maintenance.php',
|
2015-12-18 22:33:55 +00:00
|
|
|
'MakeTestEdits' => __DIR__ . '/maintenance/makeTestEdits.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MalformedTitleException' => __DIR__ . '/includes/title/MalformedTitleException.php',
|
2019-03-22 20:34:37 +00:00
|
|
|
'ManageForeignResources' => __DIR__ . '/maintenance/manageForeignResources.php',
|
2017-01-19 00:02:16 +00:00
|
|
|
'ManageJobs' => __DIR__ . '/maintenance/manageJobs.php',
|
2019-04-14 01:05:34 +00:00
|
|
|
'ManualLogEntry' => __DIR__ . '/includes/logging/ManualLogEntry.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MapCacheLRU' => __DIR__ . '/includes/libs/MapCacheLRU.php',
|
|
|
|
|
'MappedIterator' => __DIR__ . '/includes/libs/MappedIterator.php',
|
|
|
|
|
'MarkpatrolledAction' => __DIR__ . '/includes/actions/MarkpatrolledAction.php',
|
|
|
|
|
'McTest' => __DIR__ . '/maintenance/mctest.php',
|
2018-09-18 15:36:59 +00:00
|
|
|
'McrRestoreAction' => __DIR__ . '/includes/actions/McrRestoreAction.php',
|
2018-07-17 19:23:25 +00:00
|
|
|
'McrUndoAction' => __DIR__ . '/includes/actions/McrUndoAction.php',
|
2019-11-18 15:13:45 +00:00
|
|
|
'MediaFileTrait' => __DIR__ . '/includes/filerepo/file/MediaFileTrait.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MediaHandler' => __DIR__ . '/includes/media/MediaHandler.php',
|
2016-07-26 02:19:25 +00:00
|
|
|
'MediaHandlerFactory' => __DIR__ . '/includes/media/MediaHandlerFactory.php',
|
2019-03-30 11:16:51 +00:00
|
|
|
'MediaTransformError' => __DIR__ . '/includes/media/MediaTransformError.php',
|
2015-02-05 02:16:06 +00:00
|
|
|
'MediaTransformInvalidParametersException' => __DIR__ . '/includes/media/MediaTransformInvalidParametersException.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MediaTransformOutput' => __DIR__ . '/includes/media/MediaTransformOutput.php',
|
|
|
|
|
'MediaWiki' => __DIR__ . '/includes/MediaWiki.php',
|
2017-01-25 22:29:40 +00:00
|
|
|
'MediaWikiShell' => __DIR__ . '/maintenance/shell.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php',
|
|
|
|
|
'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php',
|
|
|
|
|
'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php',
|
2019-08-16 10:00:15 +00:00
|
|
|
'MediaWiki\\FileBackend\\FSFile\\TempFSFileFactory' => __DIR__ . '/includes/libs/filebackend/fsfile/TempFSFileFactory.php',
|
2020-03-03 22:50:34 +00:00
|
|
|
'MediaWiki\\Hook\\AbortEmailNotificationHook' => __DIR__ . '/includes/changes/Hook/AbortEmailNotificationHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\AbortTalkPageEmailNotificationHook' => __DIR__ . '/includes/mail/Hook/AbortTalkPageEmailNotificationHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ActionBeforeFormDisplayHook' => __DIR__ . '/includes/actions/Hook/ActionBeforeFormDisplayHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ActionModifyFormFieldsHook' => __DIR__ . '/includes/actions/Hook/ActionModifyFormFieldsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\AddNewAccountHook' => __DIR__ . '/includes/specials/Hook/AddNewAccountHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\AfterImportPageHook' => __DIR__ . '/includes/import/Hook/AfterImportPageHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\AfterParserFetchFileAndTitleHook' => __DIR__ . '/includes/parser/Hook/AfterParserFetchFileAndTitleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\AlternateUserMailerHook' => __DIR__ . '/includes/mail/Hook/AlternateUserMailerHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\AncientPagesQueryHook' => __DIR__ . '/includes/specials/Hook/AncientPagesQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ArticleRevisionVisibilitySetHook' => __DIR__ . '/includes/revisiondelete/Hook/ArticleRevisionVisibilitySetHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BaseTemplateAfterPortletHook' => __DIR__ . '/includes/skins/Hook/BaseTemplateAfterPortletHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BaseTemplateToolboxHook' => __DIR__ . '/includes/skins/Hook/BaseTemplateToolboxHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BeforeParserFetchFileAndTitleHook' => __DIR__ . '/includes/parser/Hook/BeforeParserFetchFileAndTitleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BeforeParserFetchTemplateAndtitleHook' => __DIR__ . '/includes/parser/Hook/BeforeParserFetchTemplateAndtitleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BeforeParserrenderImageGalleryHook' => __DIR__ . '/includes/parser/Hook/BeforeParserrenderImageGalleryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BeforeResetNotificationTimestampHook' => __DIR__ . '/includes/watcheditem/Hook/BeforeResetNotificationTimestampHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BeforeWelcomeCreationHook' => __DIR__ . '/includes/specials/Hook/BeforeWelcomeCreationHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BitmapHandlerCheckImageAreaHook' => __DIR__ . '/includes/media/Hook/BitmapHandlerCheckImageAreaHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BitmapHandlerTransformHook' => __DIR__ . '/includes/media/Hook/BitmapHandlerTransformHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BlockIpCompleteHook' => __DIR__ . '/includes/specials/Hook/BlockIpCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BlockIpHook' => __DIR__ . '/includes/specials/Hook/BlockIpHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\BookInformationHook' => __DIR__ . '/includes/specials/Hook/BookInformationHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\CanonicalNamespacesHook' => __DIR__ . '/includes/title/Hook/CanonicalNamespacesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ChangeUserGroupsHook' => __DIR__ . '/includes/specials/Hook/ChangeUserGroupsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ChangesListInitRowsHook' => __DIR__ . '/includes/changes/Hook/ChangesListInitRowsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ChangesListInsertArticleLinkHook' => __DIR__ . '/includes/changes/Hook/ChangesListInsertArticleLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\Collation__factoryHook' => __DIR__ . '/includes/collation/Hook/Collation__factoryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ContribsPager__getQueryInfoHook' => __DIR__ . '/includes/specials/Hook/ContribsPager__getQueryInfoHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ContribsPager__reallyDoQueryHook' => __DIR__ . '/includes/specials/Hook/ContribsPager__reallyDoQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ContributionsLineEndingHook' => __DIR__ . '/includes/specials/Hook/ContributionsLineEndingHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ContributionsToolLinksHook' => __DIR__ . '/includes/specials/Hook/ContributionsToolLinksHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\CustomEditorHook' => __DIR__ . '/includes/actions/Hook/CustomEditorHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\DeletedContribsPager__reallyDoQueryHook' => __DIR__ . '/includes/specials/Hook/DeletedContribsPager__reallyDoQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\DeletedContributionsLineEndingHook' => __DIR__ . '/includes/specials/Hook/DeletedContributionsLineEndingHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EmailUserCCHook' => __DIR__ . '/includes/specials/Hook/EmailUserCCHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EmailUserCompleteHook' => __DIR__ . '/includes/specials/Hook/EmailUserCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EmailUserFormHook' => __DIR__ . '/includes/specials/Hook/EmailUserFormHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EmailUserHook' => __DIR__ . '/includes/specials/Hook/EmailUserHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EmailUserPermissionsErrorsHook' => __DIR__ . '/includes/specials/Hook/EmailUserPermissionsErrorsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EnhancedChangesListModifyBlockLineDataHook' => __DIR__ . '/includes/changes/Hook/EnhancedChangesListModifyBlockLineDataHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EnhancedChangesListModifyLineDataHook' => __DIR__ . '/includes/changes/Hook/EnhancedChangesListModifyLineDataHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\EnhancedChangesList__getLogTextHook' => __DIR__ . '/includes/changes/Hook/EnhancedChangesList__getLogTextHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ExtensionTypesHook' => __DIR__ . '/includes/specials/Hook/ExtensionTypesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\FetchChangesListHook' => __DIR__ . '/includes/changes/Hook/FetchChangesListHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\FileTransformedHook' => __DIR__ . '/includes/filerepo/Hook/FileTransformedHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\FileUndeleteCompleteHook' => __DIR__ . '/includes/specials/Hook/FileUndeleteCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\FileUploadHook' => __DIR__ . '/includes/filerepo/Hook/FileUploadHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GalleryGetModesHook' => __DIR__ . '/includes/gallery/Hook/GalleryGetModesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetExtendedMetadataHook' => __DIR__ . '/includes/media/Hook/GetExtendedMetadataHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetHumanTimestampHook' => __DIR__ . '/languages/Hook/GetHumanTimestampHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetLangPreferredVariantHook' => __DIR__ . '/languages/Hook/GetLangPreferredVariantHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetLinkColoursHook' => __DIR__ . '/includes/parser/Hook/GetLinkColoursHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetLogTypesOnUserHook' => __DIR__ . '/includes/specials/Hook/GetLogTypesOnUserHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetMetadataVersionHook' => __DIR__ . '/includes/media/Hook/GetMetadataVersionHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\GetNewMessagesAlertHook' => __DIR__ . '/includes/skins/Hook/GetNewMessagesAlertHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\HistoryPageToolLinksHook' => __DIR__ . '/includes/actions/Hook/HistoryPageToolLinksHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\HistoryRevisionToolsHook' => __DIR__ . '/includes/actions/Hook/HistoryRevisionToolsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\IRCLineURLHook' => __DIR__ . '/includes/rcfeed/Hook/IRCLineURLHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportHandleLogItemXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleLogItemXMLTagHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportHandlePageXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandlePageXMLTagHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportHandleRevisionXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleRevisionXMLTagHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportHandleToplevelXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleToplevelXMLTagHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportHandleUploadXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleUploadXMLTagHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportLogInterwikiLinkHook' => __DIR__ . '/includes/specials/Hook/ImportLogInterwikiLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ImportSourcesHook' => __DIR__ . '/includes/specials/Hook/ImportSourcesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\InfoActionHook' => __DIR__ . '/includes/actions/Hook/InfoActionHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\InternalParseBeforeLinksHook' => __DIR__ . '/includes/parser/Hook/InternalParseBeforeLinksHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\InternalParseBeforeSanitizeHook' => __DIR__ . '/includes/parser/Hook/InternalParseBeforeSanitizeHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\IsUploadAllowedFromUrlHook' => __DIR__ . '/includes/upload/Hook/IsUploadAllowedFromUrlHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\IsValidEmailAddrHook' => __DIR__ . '/includes/parser/Hook/IsValidEmailAddrHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LanguageGetNamespacesHook' => __DIR__ . '/languages/Hook/LanguageGetNamespacesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LanguageSelectorHook' => __DIR__ . '/includes/specials/Hook/LanguageSelectorHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LinksUpdateAfterInsertHook' => __DIR__ . '/includes/deferred/Hook/LinksUpdateAfterInsertHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LinksUpdateCompleteHook' => __DIR__ . '/includes/deferred/Hook/LinksUpdateCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LinksUpdateConstructedHook' => __DIR__ . '/includes/deferred/Hook/LinksUpdateConstructedHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LinksUpdateHook' => __DIR__ . '/includes/deferred/Hook/LinksUpdateHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LocalFilePurgeThumbnailsHook' => __DIR__ . '/includes/filerepo/Hook/LocalFilePurgeThumbnailsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LocalFile__getHistoryHook' => __DIR__ . '/includes/filerepo/Hook/LocalFile__getHistoryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LocalisationCacheRecacheFallbackHook' => __DIR__ . '/includes/cache/localisation/Hook/LocalisationCacheRecacheFallbackHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LocalisationCacheRecacheHook' => __DIR__ . '/includes/cache/localisation/Hook/LocalisationCacheRecacheHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LogEventsListGetExtraInputsHook' => __DIR__ . '/includes/logging/Hook/LogEventsListGetExtraInputsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LogEventsListLineEndingHook' => __DIR__ . '/includes/logging/Hook/LogEventsListLineEndingHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LogEventsListShowLogExtractHook' => __DIR__ . '/includes/logging/Hook/LogEventsListShowLogExtractHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LogExceptionHook' => __DIR__ . '/includes/exception/Hook/LogExceptionHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LogLineHook' => __DIR__ . '/includes/logging/Hook/LogLineHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LoginFormValidErrorMessagesHook' => __DIR__ . '/includes/specials/Hook/LoginFormValidErrorMessagesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\LonelyPagesQueryHook' => __DIR__ . '/includes/specials/Hook/LonelyPagesQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ManualLogEntryBeforePublishHook' => __DIR__ . '/includes/logging/Hook/ManualLogEntryBeforePublishHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\MarkPatrolledCompleteHook' => __DIR__ . '/includes/changes/Hook/MarkPatrolledCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\MarkPatrolledHook' => __DIR__ . '/includes/changes/Hook/MarkPatrolledHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ModifyExportQueryHook' => __DIR__ . '/includes/export/Hook/ModifyExportQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\NamespaceIsMovableHook' => __DIR__ . '/includes/title/Hook/NamespaceIsMovableHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\NewPagesLineEndingHook' => __DIR__ . '/includes/specials/Hook/NewPagesLineEndingHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\OldChangesListRecentChangesLineHook' => __DIR__ . '/includes/changes/Hook/OldChangesListRecentChangesLineHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\OtherAutoblockLogLinkHook' => __DIR__ . '/includes/specials/Hook/OtherAutoblockLogLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\OtherBlockLogLinkHook' => __DIR__ . '/includes/specials/Hook/OtherBlockLogLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PageHistoryBeforeListHook' => __DIR__ . '/includes/actions/Hook/PageHistoryBeforeListHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PageHistoryLineEndingHook' => __DIR__ . '/includes/actions/Hook/PageHistoryLineEndingHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PageHistoryPager__doBatchLookupsHook' => __DIR__ . '/includes/actions/Hook/PageHistoryPager__doBatchLookupsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PageHistoryPager__getQueryInfoHook' => __DIR__ . '/includes/actions/Hook/PageHistoryPager__getQueryInfoHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PageRenderingHashHook' => __DIR__ . '/includes/parser/Hook/PageRenderingHashHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserAfterParseHook' => __DIR__ . '/includes/parser/Hook/ParserAfterParseHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserAfterStripHook' => __DIR__ . '/includes/parser/Hook/ParserAfterStripHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserAfterTidyHook' => __DIR__ . '/includes/parser/Hook/ParserAfterTidyHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserBeforeInternalParseHook' => __DIR__ . '/includes/parser/Hook/ParserBeforeInternalParseHook.php',
|
2020-04-15 06:38:58 +00:00
|
|
|
'MediaWiki\\Hook\\ParserBeforePreprocessHook' => __DIR__ . '/includes/parser/Hook/ParserBeforePreprocessHook.php',
|
2020-03-03 22:50:34 +00:00
|
|
|
'MediaWiki\\Hook\\ParserBeforeStripHook' => __DIR__ . '/includes/parser/Hook/ParserBeforeStripHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserBeforeTidyHook' => __DIR__ . '/includes/parser/Hook/ParserBeforeTidyHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserCacheSaveCompleteHook' => __DIR__ . '/includes/parser/Hook/ParserCacheSaveCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserClearStateHook' => __DIR__ . '/includes/parser/Hook/ParserClearStateHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserClonedHook' => __DIR__ . '/includes/parser/Hook/ParserClonedHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserFetchTemplateHook' => __DIR__ . '/includes/parser/Hook/ParserFetchTemplateHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserFirstCallInitHook' => __DIR__ . '/includes/parser/Hook/ParserFirstCallInitHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserGetVariableValueSwitchHook' => __DIR__ . '/includes/parser/Hook/ParserGetVariableValueSwitchHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserGetVariableValueTsHook' => __DIR__ . '/includes/parser/Hook/ParserGetVariableValueTsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserGetVariableValueVarCacheHook' => __DIR__ . '/includes/parser/Hook/ParserGetVariableValueVarCacheHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserLimitReportFormatHook' => __DIR__ . '/includes/parser/Hook/ParserLimitReportFormatHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserLimitReportPrepareHook' => __DIR__ . '/includes/parser/Hook/ParserLimitReportPrepareHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserMakeImageParamsHook' => __DIR__ . '/includes/parser/Hook/ParserMakeImageParamsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserOptionsRegisterHook' => __DIR__ . '/includes/parser/Hook/ParserOptionsRegisterHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserOutputPostCacheTransformHook' => __DIR__ . '/includes/parser/Hook/ParserOutputPostCacheTransformHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserPreSaveTransformCompleteHook' => __DIR__ . '/includes/parser/Hook/ParserPreSaveTransformCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ParserSectionCreateHook' => __DIR__ . '/includes/parser/Hook/ParserSectionCreateHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PasswordPoliciesForUserHook' => __DIR__ . '/includes/password/Hook/PasswordPoliciesForUserHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PersonalUrlsHook' => __DIR__ . '/includes/skins/Hook/PersonalUrlsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PostLoginRedirectHook' => __DIR__ . '/includes/specials/Hook/PostLoginRedirectHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PreferencesGetLegendHook' => __DIR__ . '/includes/specials/Hook/PreferencesGetLegendHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\PrefsEmailAuditHook' => __DIR__ . '/includes/specials/Hook/PrefsEmailAuditHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\RandomPageQueryHook' => __DIR__ . '/includes/specials/Hook/RandomPageQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\RawPageViewBeforeOutputHook' => __DIR__ . '/includes/actions/Hook/RawPageViewBeforeOutputHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\RecentChange_saveHook' => __DIR__ . '/includes/changes/Hook/RecentChange_saveHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\RecentChangesPurgeRowsHook' => __DIR__ . '/includes/jobqueue/jobs/Hook/RecentChangesPurgeRowsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\RejectParserCacheValueHook' => __DIR__ . '/includes/parser/Hook/RejectParserCacheValueHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\RequestContextCreateSkinHook' => __DIR__ . '/includes/context/Hook/RequestContextCreateSkinHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SendWatchlistEmailNotificationHook' => __DIR__ . '/includes/mail/Hook/SendWatchlistEmailNotificationHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ShortPagesQueryHook' => __DIR__ . '/includes/specials/Hook/ShortPagesQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SidebarBeforeOutputHook' => __DIR__ . '/includes/skins/Hook/SidebarBeforeOutputHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SiteNoticeAfterHook' => __DIR__ . '/includes/skins/Hook/SiteNoticeAfterHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SiteNoticeBeforeHook' => __DIR__ . '/includes/skins/Hook/SiteNoticeBeforeHook.php',
|
2020-05-18 01:09:16 +00:00
|
|
|
'MediaWiki\\Hook\\SkinAddFooterLinksHook' => __DIR__ . '/includes/skins/Hook/SkinAddFooterLinksHook.php',
|
2020-03-03 22:50:34 +00:00
|
|
|
'MediaWiki\\Hook\\SkinAfterBottomScriptsHook' => __DIR__ . '/includes/skins/Hook/SkinAfterBottomScriptsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinAfterContentHook' => __DIR__ . '/includes/skins/Hook/SkinAfterContentHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinBuildSidebarHook' => __DIR__ . '/includes/skins/Hook/SkinBuildSidebarHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinCopyrightFooterHook' => __DIR__ . '/includes/skins/Hook/SkinCopyrightFooterHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinEditSectionLinksHook' => __DIR__ . '/includes/skins/Hook/SkinEditSectionLinksHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinGetPoweredByHook' => __DIR__ . '/includes/skins/Hook/SkinGetPoweredByHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinPreloadExistenceHook' => __DIR__ . '/includes/skins/Hook/SkinPreloadExistenceHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinSubPageSubtitleHook' => __DIR__ . '/includes/skins/Hook/SkinSubPageSubtitleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateBuildNavUrlsNav_urlsAfterPermalinkHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateBuildNavUrlsNav_urlsAfterPermalinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateGetLanguageLinkHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateGetLanguageLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateNavigationHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateNavigationHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateNavigation__SpecialPageHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateNavigation__SpecialPageHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateNavigation__UniversalHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateNavigation__UniversalHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateOutputPageBeforeExecHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateOutputPageBeforeExecHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplatePreventOtherActiveTabsHook' => __DIR__ . '/includes/skins/Hook/SkinTemplatePreventOtherActiveTabsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateTabActionHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateTabActionHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SkinTemplateToolboxEndHook' => __DIR__ . '/includes/skins/Hook/SkinTemplateToolboxEndHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SoftwareInfoHook' => __DIR__ . '/includes/specials/Hook/SoftwareInfoHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialBlockModifyFormFieldsHook' => __DIR__ . '/includes/specials/Hook/SpecialBlockModifyFormFieldsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialContributionsBeforeMainOutputHook' => __DIR__ . '/includes/specials/Hook/SpecialContributionsBeforeMainOutputHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialContributions__formatRow__flagsHook' => __DIR__ . '/includes/specials/Hook/SpecialContributions__formatRow__flagsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialContributions__getForm__filtersHook' => __DIR__ . '/includes/specials/Hook/SpecialContributions__getForm__filtersHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialListusersDefaultQueryHook' => __DIR__ . '/includes/specials/Hook/SpecialListusersDefaultQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialListusersFormatRowHook' => __DIR__ . '/includes/specials/Hook/SpecialListusersFormatRowHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialListusersHeaderFormHook' => __DIR__ . '/includes/specials/Hook/SpecialListusersHeaderFormHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialListusersHeaderHook' => __DIR__ . '/includes/specials/Hook/SpecialListusersHeaderHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialListusersQueryInfoHook' => __DIR__ . '/includes/specials/Hook/SpecialListusersQueryInfoHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialLogAddLogSearchRelationsHook' => __DIR__ . '/includes/specials/Hook/SpecialLogAddLogSearchRelationsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialMovepageAfterMoveHook' => __DIR__ . '/includes/specials/Hook/SpecialMovepageAfterMoveHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialMuteModifyFormFieldsHook' => __DIR__ . '/includes/specials/Hook/SpecialMuteModifyFormFieldsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialMuteSubmitHook' => __DIR__ . '/includes/specials/Hook/SpecialMuteSubmitHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialNewPagesFiltersHook' => __DIR__ . '/includes/specials/Hook/SpecialNewPagesFiltersHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialNewpagesConditionsHook' => __DIR__ . '/includes/specials/Hook/SpecialNewpagesConditionsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialRandomGetRandomTitleHook' => __DIR__ . '/includes/specials/Hook/SpecialRandomGetRandomTitleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialRecentChangesPanelHook' => __DIR__ . '/includes/specials/Hook/SpecialRecentChangesPanelHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialResetTokensTokensHook' => __DIR__ . '/includes/specials/Hook/SpecialResetTokensTokensHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchCreateLinkHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchCreateLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchGoResultHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchGoResultHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchNogomatchHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchNogomatchHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchProfilesHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchProfilesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchResultsAppendHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchResultsAppendHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchResultsHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchResultsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchResultsPrependHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchResultsPrependHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialSearchSetupEngineHook' => __DIR__ . '/includes/specials/Hook/SpecialSearchSetupEngineHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialStatsAddExtraHook' => __DIR__ . '/includes/specials/Hook/SpecialStatsAddExtraHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialTrackingCategories__generateCatLinkHook' => __DIR__ . '/includes/specials/Hook/SpecialTrackingCategories__generateCatLinkHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialTrackingCategories__preprocessHook' => __DIR__ . '/includes/specials/Hook/SpecialTrackingCategories__preprocessHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialUploadCompleteHook' => __DIR__ . '/includes/specials/Hook/SpecialUploadCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialVersionVersionUrlHook' => __DIR__ . '/includes/specials/Hook/SpecialVersionVersionUrlHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\SpecialWatchlistGetNonRevisionTypesHook' => __DIR__ . '/includes/specials/Hook/SpecialWatchlistGetNonRevisionTypesHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ThumbnailBeforeProduceHTMLHook' => __DIR__ . '/includes/media/Hook/ThumbnailBeforeProduceHTMLHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UnblockUserCompleteHook' => __DIR__ . '/includes/specials/Hook/UnblockUserCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UnblockUserHook' => __DIR__ . '/includes/specials/Hook/UnblockUserHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UndeleteForm__showHistoryHook' => __DIR__ . '/includes/specials/Hook/UndeleteForm__showHistoryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UndeleteForm__showRevisionHook' => __DIR__ . '/includes/specials/Hook/UndeleteForm__showRevisionHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UndeleteForm__undeleteHook' => __DIR__ . '/includes/specials/Hook/UndeleteForm__undeleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UndeletePageToolLinksHook' => __DIR__ . '/includes/skins/Hook/UndeletePageToolLinksHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UndeleteShowRevisionHook' => __DIR__ . '/includes/specials/Hook/UndeleteShowRevisionHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UnwatchArticleCompleteHook' => __DIR__ . '/includes/actions/Hook/UnwatchArticleCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UnwatchArticleHook' => __DIR__ . '/includes/actions/Hook/UnwatchArticleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UpdateUserMailerFormattedPageStatusHook' => __DIR__ . '/includes/mail/Hook/UpdateUserMailerFormattedPageStatusHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadCompleteHook' => __DIR__ . '/includes/upload/Hook/UploadCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadCreateFromRequestHook' => __DIR__ . '/includes/upload/Hook/UploadCreateFromRequestHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadFormInitDescriptorHook' => __DIR__ . '/includes/specials/Hook/UploadFormInitDescriptorHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadFormSourceDescriptorsHook' => __DIR__ . '/includes/specials/Hook/UploadFormSourceDescriptorsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadForm_BeforeProcessingHook' => __DIR__ . '/includes/specials/Hook/UploadForm_BeforeProcessingHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadForm_getInitialPageTextHook' => __DIR__ . '/includes/specials/Hook/UploadForm_getInitialPageTextHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadForm_initialHook' => __DIR__ . '/includes/specials/Hook/UploadForm_initialHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadStashFileHook' => __DIR__ . '/includes/upload/Hook/UploadStashFileHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadVerifyFileHook' => __DIR__ . '/includes/upload/Hook/UploadVerifyFileHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UploadVerifyUploadHook' => __DIR__ . '/includes/upload/Hook/UploadVerifyUploadHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserGetLanguageObjectHook' => __DIR__ . '/includes/context/Hook/UserGetLanguageObjectHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserLoginCompleteHook' => __DIR__ . '/includes/specials/Hook/UserLoginCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserLogoutCompleteHook' => __DIR__ . '/includes/specials/Hook/UserLogoutCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserMailerChangeReturnPathHook' => __DIR__ . '/includes/mail/Hook/UserMailerChangeReturnPathHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserMailerSplitToHook' => __DIR__ . '/includes/mail/Hook/UserMailerSplitToHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserMailerTransformContentHook' => __DIR__ . '/includes/mail/Hook/UserMailerTransformContentHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UserMailerTransformMessageHook' => __DIR__ . '/includes/mail/Hook/UserMailerTransformMessageHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\UsersPagerDoBatchLookupsHook' => __DIR__ . '/includes/specials/Hook/UsersPagerDoBatchLookupsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\ValidateExtendedMetadataCacheHook' => __DIR__ . '/includes/media/Hook/ValidateExtendedMetadataCacheHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WantedPages__getQueryInfoHook' => __DIR__ . '/includes/specials/Hook/WantedPages__getQueryInfoHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WatchArticleCompleteHook' => __DIR__ . '/includes/actions/Hook/WatchArticleCompleteHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WatchArticleHook' => __DIR__ . '/includes/actions/Hook/WatchArticleHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WatchedItemQueryServiceExtensionsHook' => __DIR__ . '/includes/watcheditem/Hook/WatchedItemQueryServiceExtensionsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WatchlistEditorBeforeFormRenderHook' => __DIR__ . '/includes/specials/Hook/WatchlistEditorBeforeFormRenderHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WatchlistEditorBuildRemoveLineHook' => __DIR__ . '/includes/specials/Hook/WatchlistEditorBuildRemoveLineHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WhatLinksHerePropsHook' => __DIR__ . '/includes/specials/Hook/WhatLinksHerePropsHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\WikiExporter__dumpStableQueryHook' => __DIR__ . '/includes/export/Hook/WikiExporter__dumpStableQueryHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\XmlDumpWriterOpenPageHook' => __DIR__ . '/includes/export/Hook/XmlDumpWriterOpenPageHook.php',
|
|
|
|
|
'MediaWiki\\Hook\\XmlDumpWriterWriteRevisionHook' => __DIR__ . '/includes/export/Hook/XmlDumpWriterWriteRevisionHook.php',
|
2017-07-31 22:35:39 +00:00
|
|
|
'MediaWiki\\Languages\\Data\\CrhExceptions' => __DIR__ . '/languages/data/CrhExceptions.php',
|
2016-01-29 05:19:58 +00:00
|
|
|
'MediaWiki\\Languages\\Data\\Names' => __DIR__ . '/languages/data/Names.php',
|
|
|
|
|
'MediaWiki\\Languages\\Data\\ZhConversion' => __DIR__ . '/languages/data/ZhConversion.php',
|
2020-03-03 22:50:34 +00:00
|
|
|
'MediaWiki\\Languages\\Hook\\LanguageGetTranslatedLanguageNamesHook' => __DIR__ . '/includes/language/Hook/LanguageGetTranslatedLanguageNamesHook.php',
|
|
|
|
|
'MediaWiki\\Languages\\Hook\\Language__getMessagesFileNameHook' => __DIR__ . '/includes/language/Hook/Language__getMessagesFileNameHook.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'MediaWiki\\Languages\\LanguageConverterFactory' => __DIR__ . '/languages/LanguageConverterFactory.php',
|
2018-08-07 13:17:16 +00:00
|
|
|
'MediaWiki\\Languages\\LanguageFactory' => __DIR__ . '/includes/language/LanguageFactory.php',
|
2019-08-22 15:39:26 +00:00
|
|
|
'MediaWiki\\Languages\\LanguageFallback' => __DIR__ . '/includes/language/LanguageFallback.php',
|
2019-05-02 14:23:42 +00:00
|
|
|
'MediaWiki\\Languages\\LanguageNameUtils' => __DIR__ . '/includes/language/LanguageNameUtils.php',
|
2020-03-09 11:00:28 +00:00
|
|
|
'MediaWiki\\Mail\\Emailer' => __DIR__ . '/includes/mail/Emailer.php',
|
|
|
|
|
'MediaWiki\\Mail\\IEmailer' => __DIR__ . '/includes/mail/IEmailer.php',
|
2016-11-03 00:27:15 +00:00
|
|
|
'MediaWiki\\ProcOpenError' => __DIR__ . '/includes/exception/ProcOpenError.php',
|
|
|
|
|
'MediaWiki\\ShellDisabledError' => __DIR__ . '/includes/exception/ShellDisabledError.php',
|
2018-08-07 10:58:31 +00:00
|
|
|
'MediaWiki\\Special\\SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory.php',
|
2018-09-20 17:29:04 +00:00
|
|
|
'MediaWiki\\Storage\\IncompleteRevisionException' => __DIR__ . '/includes/Revision/IncompleteRevisionException.php',
|
|
|
|
|
'MediaWiki\\Storage\\MutableRevisionRecord' => __DIR__ . '/includes/Revision/MutableRevisionRecord.php',
|
|
|
|
|
'MediaWiki\\Storage\\MutableRevisionSlots' => __DIR__ . '/includes/Revision/MutableRevisionSlots.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionAccessException' => __DIR__ . '/includes/Revision/RevisionAccessException.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionArchiveRecord' => __DIR__ . '/includes/Revision/RevisionArchiveRecord.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionFactory' => __DIR__ . '/includes/Revision/RevisionFactory.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionLookup' => __DIR__ . '/includes/Revision/RevisionLookup.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionRecord' => __DIR__ . '/includes/Revision/RevisionRecord.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionSlots' => __DIR__ . '/includes/Revision/RevisionSlots.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionStore' => __DIR__ . '/includes/Revision/RevisionStore.php',
|
|
|
|
|
'MediaWiki\\Storage\\RevisionStoreRecord' => __DIR__ . '/includes/Revision/RevisionStoreRecord.php',
|
|
|
|
|
'MediaWiki\\Storage\\SlotRecord' => __DIR__ . '/includes/Revision/SlotRecord.php',
|
|
|
|
|
'MediaWiki\\Storage\\SuppressedDataException' => __DIR__ . '/includes/Revision/SuppressedDataException.php',
|
2019-07-11 12:35:07 +00:00
|
|
|
'MediumSpecificBagOStuff' => __DIR__ . '/includes/libs/objectcache/MediumSpecificBagOStuff.php',
|
2016-09-30 12:47:26 +00:00
|
|
|
'MemcLockManager' => __DIR__ . '/includes/libs/lockmanager/MemcLockManager.php',
|
2015-10-24 21:54:10 +00:00
|
|
|
'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php',
|
2019-08-10 01:14:32 +00:00
|
|
|
'MemcachedClient' => __DIR__ . '/includes/libs/objectcache/utils/MemcachedClient.php',
|
2016-09-08 05:47:37 +00:00
|
|
|
'MemcachedPeclBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPeclBagOStuff.php',
|
2015-10-24 21:54:10 +00:00
|
|
|
'MemcachedPhpBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPhpBagOStuff.php',
|
2015-10-05 23:10:56 +00:00
|
|
|
'MemoizedCallable' => __DIR__ . '/includes/libs/MemoizedCallable.php',
|
2016-09-21 22:36:16 +00:00
|
|
|
'MemoryFileBackend' => __DIR__ . '/includes/libs/filebackend/MemoryFileBackend.php',
|
2015-12-30 04:53:34 +00:00
|
|
|
'MergeHistory' => __DIR__ . '/includes/MergeHistory.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'MergeHistoryPager' => __DIR__ . '/includes/specials/pagers/MergeHistoryPager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MergeLogFormatter' => __DIR__ . '/includes/logging/MergeLogFormatter.php',
|
|
|
|
|
'MergeMessageFileList' => __DIR__ . '/maintenance/mergeMessageFileList.php',
|
2015-11-30 23:26:45 +00:00
|
|
|
'MergeableUpdate' => __DIR__ . '/includes/deferred/MergeableUpdate.php',
|
2019-06-13 21:02:36 +00:00
|
|
|
'Message' => __DIR__ . '/includes/language/Message.php',
|
2019-03-27 20:23:02 +00:00
|
|
|
'MessageBlobStore' => __DIR__ . '/includes/resourceloader/MessageBlobStore.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MessageCache' => __DIR__ . '/includes/cache/MessageCache.php',
|
2018-10-04 20:14:32 +00:00
|
|
|
'MessageCacheUpdate' => __DIR__ . '/includes/deferred/MessageCacheUpdate.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MessageContent' => __DIR__ . '/includes/content/MessageContent.php',
|
2019-06-13 21:02:36 +00:00
|
|
|
'MessageLocalizer' => __DIR__ . '/includes/language/MessageLocalizer.php',
|
2015-01-21 01:23:21 +00:00
|
|
|
'MessageSpecifier' => __DIR__ . '/includes/libs/MessageSpecifier.php',
|
2019-02-09 10:30:34 +00:00
|
|
|
'MigrateActors' => __DIR__ . '/maintenance/includes/MigrateActors.php',
|
2017-11-28 21:13:09 +00:00
|
|
|
'MigrateArchiveText' => __DIR__ . '/maintenance/migrateArchiveText.php',
|
2017-06-06 17:39:14 +00:00
|
|
|
'MigrateComments' => __DIR__ . '/maintenance/migrateComments.php',
|
2015-03-10 13:26:14 +00:00
|
|
|
'MigrateFileRepoLayout' => __DIR__ . '/maintenance/migrateFileRepoLayout.php',
|
2018-03-07 16:40:56 +00:00
|
|
|
'MigrateImageCommentTemp' => __DIR__ . '/maintenance/migrateImageCommentTemp.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MigrateUserGroup' => __DIR__ . '/maintenance/migrateUserGroup.php',
|
2016-09-22 04:57:13 +00:00
|
|
|
'MimeAnalyzer' => __DIR__ . '/includes/libs/mime/MimeAnalyzer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MinifyScript' => __DIR__ . '/maintenance/minify.php',
|
|
|
|
|
'MostimagesPage' => __DIR__ . '/includes/specials/SpecialMostimages.php',
|
|
|
|
|
'MoveBatch' => __DIR__ . '/maintenance/moveBatch.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'MoveFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/MoveFileOp.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MoveLogFormatter' => __DIR__ . '/includes/logging/MoveLogFormatter.php',
|
|
|
|
|
'MovePage' => __DIR__ . '/includes/MovePage.php',
|
|
|
|
|
'MovePageForm' => __DIR__ . '/includes/specials/SpecialMovepage.php',
|
|
|
|
|
'MultiConfig' => __DIR__ . '/includes/config/MultiConfig.php',
|
2019-07-01 20:47:57 +00:00
|
|
|
'MultiHttpClient' => __DIR__ . '/includes/libs/http/MultiHttpClient.php',
|
2015-10-24 07:48:40 +00:00
|
|
|
'MultiWriteBagOStuff' => __DIR__ . '/includes/libs/objectcache/MultiWriteBagOStuff.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MutableConfig' => __DIR__ . '/includes/config/MutableConfig.php',
|
2014-07-21 09:13:23 +00:00
|
|
|
'MutableContext' => __DIR__ . '/includes/context/MutableContext.php',
|
2020-04-08 01:41:11 +00:00
|
|
|
'MwSql' => __DIR__ . '/maintenance/sql.php',
|
2016-08-20 17:26:01 +00:00
|
|
|
'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MySqlLockManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MysqlInstaller' => __DIR__ . '/includes/installer/MysqlInstaller.php',
|
2018-05-20 14:50:41 +00:00
|
|
|
'MysqlMaintenance' => __DIR__ . '/maintenance/mysql.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'MysqlUpdater' => __DIR__ . '/includes/installer/MysqlUpdater.php',
|
2014-12-10 11:24:47 +00:00
|
|
|
'NaiveForeignTitleFactory' => __DIR__ . '/includes/title/NaiveForeignTitleFactory.php',
|
|
|
|
|
'NaiveImportTitleFactory' => __DIR__ . '/includes/title/NaiveImportTitleFactory.php',
|
|
|
|
|
'NamespaceAwareForeignTitleFactory' => __DIR__ . '/includes/title/NamespaceAwareForeignTitleFactory.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'NamespaceDupes' => __DIR__ . '/maintenance/namespaceDupes.php',
|
2014-12-10 11:24:47 +00:00
|
|
|
'NamespaceImportTitleFactory' => __DIR__ . '/includes/title/NamespaceImportTitleFactory.php',
|
2018-08-05 08:36:32 +00:00
|
|
|
'NamespaceInfo' => __DIR__ . '/includes/title/NamespaceInfo.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'NewFilesPager' => __DIR__ . '/includes/specials/pagers/NewFilesPager.php',
|
|
|
|
|
'NewPagesPager' => __DIR__ . '/includes/specials/pagers/NewPagesPager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'NewUsersLogFormatter' => __DIR__ . '/includes/logging/NewUsersLogFormatter.php',
|
2017-03-20 13:18:22 +00:00
|
|
|
'NoWriteWatchedItemStore' => __DIR__ . '/includes/watcheditem/NoWriteWatchedItemStore.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'NolinesImageGallery' => __DIR__ . '/includes/gallery/NolinesImageGallery.php',
|
2016-10-04 17:56:35 +00:00
|
|
|
'NotRecursiveIterator' => __DIR__ . '/includes/libs/iterators/NotRecursiveIterator.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'NukeNS' => __DIR__ . '/maintenance/nukeNS.php',
|
|
|
|
|
'NukePage' => __DIR__ . '/maintenance/nukePage.php',
|
2016-09-18 07:54:54 +00:00
|
|
|
'NullFileJournal' => __DIR__ . '/includes/libs/filebackend/filejournal/NullFileJournal.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'NullFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/NullFileOp.php',
|
2016-05-13 00:10:52 +00:00
|
|
|
'NullIndexField' => __DIR__ . '/includes/search/NullIndexField.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'NullJob' => __DIR__ . '/includes/jobqueue/jobs/NullJob.php',
|
2016-09-18 04:42:56 +00:00
|
|
|
'NullLockManager' => __DIR__ . '/includes/libs/lockmanager/NullLockManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'NullRepo' => __DIR__ . '/includes/filerepo/NullRepo.php',
|
2016-04-02 09:22:00 +00:00
|
|
|
'NullStatsdDataFactory' => __DIR__ . '/includes/libs/stats/NullStatsdDataFactory.php',
|
2016-07-27 14:43:01 +00:00
|
|
|
'NumericUppercaseCollation' => __DIR__ . '/includes/collation/NumericUppercaseCollation.php',
|
2015-06-08 05:27:24 +00:00
|
|
|
'OOUIHTMLForm' => __DIR__ . '/includes/htmlform/OOUIHTMLForm.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ObjectCache' => __DIR__ . '/includes/objectcache/ObjectCache.php',
|
|
|
|
|
'OldChangesList' => __DIR__ . '/includes/changes/OldChangesList.php',
|
|
|
|
|
'OldLocalFile' => __DIR__ . '/includes/filerepo/file/OldLocalFile.php',
|
2017-07-04 21:46:46 +00:00
|
|
|
'OldRevisionImporter' => __DIR__ . '/includes/import/OldRevisionImporter.php',
|
2017-09-01 22:50:59 +00:00
|
|
|
'OrderedStreamingForkController' => __DIR__ . '/includes/OrderedStreamingForkController.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'OrphanStats' => __DIR__ . '/maintenance/storage/orphanStats.php',
|
|
|
|
|
'Orphans' => __DIR__ . '/maintenance/orphans.php',
|
|
|
|
|
'OutputPage' => __DIR__ . '/includes/OutputPage.php',
|
2016-09-13 15:45:36 +00:00
|
|
|
'PHPVersionCheck' => __DIR__ . '/includes/PHPVersionCheck.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'PNGHandler' => __DIR__ . '/includes/media/PNGHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PNGMetadataExtractor' => __DIR__ . '/includes/media/PNGMetadataExtractor.php',
|
2019-04-20 23:34:48 +00:00
|
|
|
'PPCustomFrame_Hash' => __DIR__ . '/includes/parser/PPCustomFrame_Hash.php',
|
|
|
|
|
'PPDPart' => __DIR__ . '/includes/parser/PPDPart.php',
|
|
|
|
|
'PPDPart_Hash' => __DIR__ . '/includes/parser/PPDPart_Hash.php',
|
|
|
|
|
'PPDStack' => __DIR__ . '/includes/parser/PPDStack.php',
|
|
|
|
|
'PPDStackElement' => __DIR__ . '/includes/parser/PPDStackElement.php',
|
|
|
|
|
'PPDStackElement_Hash' => __DIR__ . '/includes/parser/PPDStackElement_Hash.php',
|
|
|
|
|
'PPDStack_Hash' => __DIR__ . '/includes/parser/PPDStack_Hash.php',
|
|
|
|
|
'PPFrame' => __DIR__ . '/includes/parser/PPFrame.php',
|
|
|
|
|
'PPFrame_Hash' => __DIR__ . '/includes/parser/PPFrame_Hash.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PPFuzzTest' => __DIR__ . '/maintenance/preprocessorFuzzTest.php',
|
|
|
|
|
'PPFuzzTester' => __DIR__ . '/maintenance/preprocessorFuzzTest.php',
|
|
|
|
|
'PPFuzzUser' => __DIR__ . '/maintenance/preprocessorFuzzTest.php',
|
2019-04-20 23:34:48 +00:00
|
|
|
'PPNode' => __DIR__ . '/includes/parser/PPNode.php',
|
|
|
|
|
'PPNode_Hash_Array' => __DIR__ . '/includes/parser/PPNode_Hash_Array.php',
|
|
|
|
|
'PPNode_Hash_Attr' => __DIR__ . '/includes/parser/PPNode_Hash_Attr.php',
|
|
|
|
|
'PPNode_Hash_Text' => __DIR__ . '/includes/parser/PPNode_Hash_Text.php',
|
|
|
|
|
'PPNode_Hash_Tree' => __DIR__ . '/includes/parser/PPNode_Hash_Tree.php',
|
|
|
|
|
'PPTemplateFrame_Hash' => __DIR__ . '/includes/parser/PPTemplateFrame_Hash.php',
|
2019-04-06 12:12:02 +00:00
|
|
|
'PackedHoverImageGallery' => __DIR__ . '/includes/gallery/PackedHoverImageGallery.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PackedImageGallery' => __DIR__ . '/includes/gallery/PackedImageGallery.php',
|
|
|
|
|
'PackedOverlayImageGallery' => __DIR__ . '/includes/gallery/PackedOverlayImageGallery.php',
|
2016-04-02 13:35:20 +00:00
|
|
|
'Page' => __DIR__ . '/includes/page/Page.php',
|
2017-03-06 20:25:23 +00:00
|
|
|
'PageArchive' => __DIR__ . '/includes/page/PageArchive.php',
|
2017-06-01 15:39:21 +00:00
|
|
|
'PageDataRequestHandler' => __DIR__ . '/includes/linkeddata/PageDataRequestHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PageExists' => __DIR__ . '/maintenance/pageExists.php',
|
|
|
|
|
'PageLangLogFormatter' => __DIR__ . '/includes/logging/PageLangLogFormatter.php',
|
2016-01-12 04:29:48 +00:00
|
|
|
'PageProps' => __DIR__ . '/includes/PageProps.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PageQueryPage' => __DIR__ . '/includes/specialpage/PageQueryPage.php',
|
|
|
|
|
'Pager' => __DIR__ . '/includes/pager/Pager.php',
|
2017-12-19 22:19:49 +00:00
|
|
|
'PaginatingSearchEngine' => __DIR__ . '/includes/search/PaginatingSearchEngine.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ParameterizedPassword' => __DIR__ . '/includes/password/ParameterizedPassword.php',
|
|
|
|
|
'Parser' => __DIR__ . '/includes/parser/Parser.php',
|
|
|
|
|
'ParserCache' => __DIR__ . '/includes/parser/ParserCache.php',
|
2018-08-03 08:25:15 +00:00
|
|
|
'ParserFactory' => __DIR__ . '/includes/parser/ParserFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ParserOptions' => __DIR__ . '/includes/parser/ParserOptions.php',
|
|
|
|
|
'ParserOutput' => __DIR__ . '/includes/parser/ParserOutput.php',
|
2014-12-24 00:18:40 +00:00
|
|
|
'ParsoidVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/ParsoidVirtualRESTService.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Password' => __DIR__ . '/includes/password/Password.php',
|
|
|
|
|
'PasswordError' => __DIR__ . '/includes/password/PasswordError.php',
|
|
|
|
|
'PasswordFactory' => __DIR__ . '/includes/password/PasswordFactory.php',
|
2015-04-23 01:48:48 +00:00
|
|
|
'PasswordPolicyChecks' => __DIR__ . '/includes/password/PasswordPolicyChecks.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'PasswordReset' => __DIR__ . '/includes/user/PasswordReset.php',
|
2020-04-08 01:41:11 +00:00
|
|
|
'PatchSql' => __DIR__ . '/maintenance/patchSql.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PathRouter' => __DIR__ . '/includes/PathRouter.php',
|
|
|
|
|
'PatrolLog' => __DIR__ . '/includes/logging/PatrolLog.php',
|
|
|
|
|
'PatrolLogFormatter' => __DIR__ . '/includes/logging/PatrolLogFormatter.php',
|
|
|
|
|
'Pbkdf2Password' => __DIR__ . '/includes/password/Pbkdf2Password.php',
|
2016-04-26 22:19:58 +00:00
|
|
|
'PerRowAugmentor' => __DIR__ . '/includes/search/PerRowAugmentor.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PermissionsError' => __DIR__ . '/includes/exception/PermissionsError.php',
|
2016-10-02 05:46:07 +00:00
|
|
|
'PhpHttpRequest' => __DIR__ . '/includes/http/PhpHttpRequest.php',
|
2016-06-30 09:29:10 +00:00
|
|
|
'Pingback' => __DIR__ . '/includes/Pingback.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PoolCounter' => __DIR__ . '/includes/poolcounter/PoolCounter.php',
|
2019-03-24 21:44:46 +00:00
|
|
|
'PoolCounterNull' => __DIR__ . '/includes/poolcounter/PoolCounterNull.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PoolCounterRedis' => __DIR__ . '/includes/poolcounter/PoolCounterRedis.php',
|
|
|
|
|
'PoolCounterWork' => __DIR__ . '/includes/poolcounter/PoolCounterWork.php',
|
|
|
|
|
'PoolCounterWorkViaCallback' => __DIR__ . '/includes/poolcounter/PoolCounterWorkViaCallback.php',
|
|
|
|
|
'PoolWorkArticleView' => __DIR__ . '/includes/poolcounter/PoolWorkArticleView.php',
|
2018-01-04 19:35:13 +00:00
|
|
|
'PopulateArchiveRevId' => __DIR__ . '/maintenance/populateArchiveRevId.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PopulateBacklinkNamespace' => __DIR__ . '/maintenance/populateBacklinkNamespace.php',
|
|
|
|
|
'PopulateCategory' => __DIR__ . '/maintenance/populateCategory.php',
|
2018-06-05 22:59:11 +00:00
|
|
|
'PopulateChangeTagDef' => __DIR__ . '/maintenance/populateChangeTagDef.php',
|
2015-07-01 20:23:54 +00:00
|
|
|
'PopulateContentModel' => __DIR__ . '/maintenance/populateContentModel.php',
|
2018-01-12 00:56:20 +00:00
|
|
|
'PopulateContentTables' => __DIR__ . '/maintenance/populateContentTables.php',
|
2016-11-18 20:42:11 +00:00
|
|
|
'PopulateExternallinksIndex60' => __DIR__ . '/maintenance/populateExternallinksIndex60.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PopulateFilearchiveSha1' => __DIR__ . '/maintenance/populateFilearchiveSha1.php',
|
|
|
|
|
'PopulateImageSha1' => __DIR__ . '/maintenance/populateImageSha1.php',
|
2016-04-28 21:22:12 +00:00
|
|
|
'PopulateInterwiki' => __DIR__ . '/maintenance/populateInterwiki.php',
|
2017-04-21 16:17:59 +00:00
|
|
|
'PopulateIpChanges' => __DIR__ . '/maintenance/populateIpChanges.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PopulateLogSearch' => __DIR__ . '/maintenance/populateLogSearch.php',
|
|
|
|
|
'PopulateLogUsertext' => __DIR__ . '/maintenance/populateLogUsertext.php',
|
2017-05-24 21:00:08 +00:00
|
|
|
'PopulatePPSortKey' => __DIR__ . '/maintenance/populatePPSortKey.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PopulateParentId' => __DIR__ . '/maintenance/populateParentId.php',
|
|
|
|
|
'PopulateRecentChangesSource' => __DIR__ . '/maintenance/populateRecentChangesSource.php',
|
|
|
|
|
'PopulateRevisionLength' => __DIR__ . '/maintenance/populateRevisionLength.php',
|
|
|
|
|
'PopulateRevisionSha1' => __DIR__ . '/maintenance/populateRevisionSha1.php',
|
2016-09-19 08:06:45 +00:00
|
|
|
'PostgreSqlLockManager' => __DIR__ . '/includes/libs/lockmanager/PostgreSqlLockManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PostgresInstaller' => __DIR__ . '/includes/installer/PostgresInstaller.php',
|
|
|
|
|
'PostgresUpdater' => __DIR__ . '/includes/installer/PostgresUpdater.php',
|
2018-05-01 13:59:29 +00:00
|
|
|
'PreferencesFormOOUI' => __DIR__ . '/includes/specials/forms/PreferencesFormOOUI.php',
|
2019-03-27 20:40:33 +00:00
|
|
|
'PrefixSearch' => __DIR__ . '/includes/search/PrefixSearch.php',
|
2018-08-18 10:22:38 +00:00
|
|
|
'PrefixingStatsdDataFactoryProxy' => __DIR__ . '/includes/libs/stats/PrefixingStatsdDataFactoryProxy.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PreprocessDump' => __DIR__ . '/maintenance/preprocessDump.php',
|
|
|
|
|
'Preprocessor' => __DIR__ . '/includes/parser/Preprocessor.php',
|
|
|
|
|
'Preprocessor_Hash' => __DIR__ . '/includes/parser/Preprocessor_Hash.php',
|
|
|
|
|
'ProcessCacheLRU' => __DIR__ . '/includes/libs/ProcessCacheLRU.php',
|
Implement extension registration from an extension.json file
Introduces wfLoadExtension()/wfLoadSkin() which should be used in
LocalSettings.php rather than require-ing a PHP entry point.
Extensions and skins would add "extension.json" or "skin.json" files
in their root, which contains all the information typically
present in PHP entry point files (classes to autoload, special pages,
API modules, etc.) A full schema can be found at
docs/extension.schema.json, and a script to validate these to the
schema is provided. An additional script is provided to convert
typical PHP entry point files into their JSON equivalents.
The basic flow of loading an extension goes like:
* Get the ExtensionRegistry singleton instance
* ExtensionRegistry takes a filename, reads the file or tries
to get the parsed JSON from APC if possible.
* The JSON is run through a Processor instance,
which registers things with the appropriate
global settings.
* The output of the processor is cached in APC if possible.
* The extension/skin is marked as loaded in the
ExtensionRegistry and a callback function is executed
if one was specified.
For ideal performance, a batch loading method is also provided:
* The absolute path name to the JSON file is queued
in the ExtensionRegistry instance.
* When loadFromQueue() is called, it constructs a hash
unique to the members of the current queue, and sees
if the queue has been cached in APC. If not, it processes
each file individually, and combines the result of each
Processor into one giant array, which is cached in APC.
* The giant array then sets various global settings,
defines constants, and calls callbacks.
To invalidate the cached processed info, by default the mtime
of each JSON file is checked. However that can be slow if you
have a large number of extensions, so you can set $wgExtensionInfoMTime
to the mtime of one file, and `touch` it whenever you update
your extensions.
Change-Id: I7074b65d07c5c7d4e3f1fb0755d74a0b07ed4596
2014-10-15 00:31:15 +00:00
|
|
|
'Processor' => __DIR__ . '/includes/registration/Processor.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Profiler' => __DIR__ . '/includes/profiler/Profiler.php',
|
2018-11-28 03:36:22 +00:00
|
|
|
'ProfilerExcimer' => __DIR__ . '/includes/profiler/ProfilerExcimer.php',
|
2014-11-14 18:58:07 +00:00
|
|
|
'ProfilerOutput' => __DIR__ . '/includes/profiler/output/ProfilerOutput.php',
|
2015-03-03 23:17:02 +00:00
|
|
|
'ProfilerOutputDump' => __DIR__ . '/includes/profiler/output/ProfilerOutputDump.php',
|
2015-04-01 23:30:16 +00:00
|
|
|
'ProfilerOutputStats' => __DIR__ . '/includes/profiler/output/ProfilerOutputStats.php',
|
2014-11-14 18:58:07 +00:00
|
|
|
'ProfilerOutputText' => __DIR__ . '/includes/profiler/output/ProfilerOutputText.php',
|
2015-01-08 10:10:02 +00:00
|
|
|
'ProfilerSectionOnly' => __DIR__ . '/includes/profiler/ProfilerSectionOnly.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ProfilerStub' => __DIR__ . '/includes/profiler/ProfilerStub.php',
|
|
|
|
|
'ProfilerXhprof' => __DIR__ . '/includes/profiler/ProfilerXhprof.php',
|
|
|
|
|
'Protect' => __DIR__ . '/maintenance/protect.php',
|
|
|
|
|
'ProtectAction' => __DIR__ . '/includes/actions/ProtectAction.php',
|
2015-07-07 20:36:41 +00:00
|
|
|
'ProtectLogFormatter' => __DIR__ . '/includes/logging/ProtectLogFormatter.php',
|
2017-03-02 18:00:48 +00:00
|
|
|
'ProtectedPagesPager' => __DIR__ . '/includes/specials/pagers/ProtectedPagesPager.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'ProtectedTitlesPager' => __DIR__ . '/includes/specials/pagers/ProtectedTitlesPager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ProtectionForm' => __DIR__ . '/includes/ProtectionForm.php',
|
2016-09-22 02:52:06 +00:00
|
|
|
'ProxyLookup' => __DIR__ . '/includes/ProxyLookup.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PruneFileCache' => __DIR__ . '/maintenance/pruneFileCache.php',
|
|
|
|
|
'PublishStashedFileJob' => __DIR__ . '/includes/jobqueue/jobs/PublishStashedFileJob.php',
|
|
|
|
|
'PurgeAction' => __DIR__ . '/includes/actions/PurgeAction.php',
|
|
|
|
|
'PurgeChangedFiles' => __DIR__ . '/maintenance/purgeChangedFiles.php',
|
|
|
|
|
'PurgeChangedPages' => __DIR__ . '/maintenance/purgeChangedPages.php',
|
2017-10-04 19:55:59 +00:00
|
|
|
'PurgeExpiredUserrights' => __DIR__ . '/maintenance/purgeExpiredUserrights.php',
|
2020-02-14 05:55:07 +00:00
|
|
|
'PurgeExpiredWatchlistItems' => __DIR__ . '/maintenance/purgeExpiredWatchlistItems.php',
|
2016-08-23 00:13:33 +00:00
|
|
|
'PurgeJobUtils' => __DIR__ . '/includes/jobqueue/utils/PurgeJobUtils.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PurgeList' => __DIR__ . '/maintenance/purgeList.php',
|
2017-02-24 22:56:31 +00:00
|
|
|
'PurgeModuleDeps' => __DIR__ . '/maintenance/purgeModuleDeps.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PurgeOldText' => __DIR__ . '/maintenance/purgeOldText.php',
|
2017-06-30 10:23:02 +00:00
|
|
|
'PurgePage' => __DIR__ . '/maintenance/purgePage.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'PurgeParserCache' => __DIR__ . '/maintenance/purgeParserCache.php',
|
|
|
|
|
'QueryPage' => __DIR__ . '/includes/specialpage/QueryPage.php',
|
|
|
|
|
'QuickTemplate' => __DIR__ . '/includes/skins/QuickTemplate.php',
|
2016-09-18 04:42:56 +00:00
|
|
|
'QuorumLockManager' => __DIR__ . '/includes/libs/lockmanager/QuorumLockManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RCCacheEntry' => __DIR__ . '/includes/changes/RCCacheEntry.php',
|
|
|
|
|
'RCCacheEntryFactory' => __DIR__ . '/includes/changes/RCCacheEntryFactory.php',
|
2019-04-14 01:05:34 +00:00
|
|
|
'RCDatabaseLogEntry' => __DIR__ . '/includes/logging/RCDatabaseLogEntry.php',
|
Refactor RCFeed configuration (backwards compatible)
Previously:
* Engines had to be registered in $wgRCEngines.
* The RCFeedEngine classes took no constructor arguments and
were expected to send whatever text is previously formatted
without any information about it. This generic design was
flexible in allowing one to use any formatter with any engine
with minimal configuration and no need for additional classes.
* Each feed configured their destination by setting a 'uri'
option that encodes the name of the engine in PHP as the uri
scheme. Other uri components had to be used for any other
parameters to the engine (host, port, path). While fairly
limited, it was sufficient for the default engines in core.
Changes:
* Allow feed classes to be directly associated with a feed in $wgRCFeeds
via a new 'class' option - without the indirection of 'uri' and
$wgRCEngines. All options are passed to the given class constructor.
This matches the design used elsewhere in MediaWiki. (ObjectCache,
FileRepo, FileBackend, JobQueue, LBFactory, etc.)
This means we no longer enforce a 1:1 mapping of internet protocols
to a specific feed engine, and it allows settings to be passed
without being encoded as a URI neccecarily.
Main use case for this refactor is EventBus (see I7edc4d57fa),
Interestingly, this matches the (then incorrect) documentation
written for $wgRCFeeds in 2961884b43 (which mentions an 'engine'
property that would do the same thing).
* Move the default 'omit' filters and unrestricted 'formatter' handling
to a new FormattedRCFeed class, which remains the default.
* Deprecate RecentChange::getEngine() in favour of RCFeed::factory().
* Document wgRCEngines as "@since 1.22". Follows 2961884b43, ffc71cb6af.
Change-Id: I8be497c623c5d928762e3d3406a388f4d91add9a
2017-01-06 01:27:43 +00:00
|
|
|
'RCFeed' => __DIR__ . '/includes/rcfeed/RCFeed.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RCFeedEngine' => __DIR__ . '/includes/rcfeed/RCFeedEngine.php',
|
|
|
|
|
'RCFeedFormatter' => __DIR__ . '/includes/rcfeed/RCFeedFormatter.php',
|
2016-06-09 19:38:05 +00:00
|
|
|
'RESTBagOStuff' => __DIR__ . '/includes/libs/objectcache/RESTBagOStuff.php',
|
2019-04-13 22:56:06 +00:00
|
|
|
'RSSFeed' => __DIR__ . '/includes/changes/RSSFeed.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RandomPage' => __DIR__ . '/includes/specials/SpecialRandompage.php',
|
2016-12-12 14:23:54 +00:00
|
|
|
'RangeChronologicalPager' => __DIR__ . '/includes/pager/RangeChronologicalPager.php',
|
2019-03-08 22:29:14 +00:00
|
|
|
'RangeDifference' => __DIR__ . '/includes/diff/RangeDifference.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RawAction' => __DIR__ . '/includes/actions/RawAction.php',
|
2017-08-14 16:31:39 +00:00
|
|
|
'RawMessage' => __DIR__ . '/includes/RawMessage.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ReadOnlyError' => __DIR__ . '/includes/exception/ReadOnlyError.php',
|
2017-04-10 05:34:30 +00:00
|
|
|
'ReadOnlyMode' => __DIR__ . '/includes/ReadOnlyMode.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ReassignEdits' => __DIR__ . '/maintenance/reassignEdits.php',
|
|
|
|
|
'RebuildAll' => __DIR__ . '/maintenance/rebuildall.php',
|
|
|
|
|
'RebuildFileCache' => __DIR__ . '/maintenance/rebuildFileCache.php',
|
|
|
|
|
'RebuildLocalisationCache' => __DIR__ . '/maintenance/rebuildLocalisationCache.php',
|
|
|
|
|
'RebuildMessages' => __DIR__ . '/maintenance/rebuildmessages.php',
|
|
|
|
|
'RebuildRecentchanges' => __DIR__ . '/maintenance/rebuildrecentchanges.php',
|
|
|
|
|
'RebuildTextIndex' => __DIR__ . '/maintenance/rebuildtextindex.php',
|
|
|
|
|
'RecentChange' => __DIR__ . '/includes/changes/RecentChange.php',
|
2015-01-17 01:02:10 +00:00
|
|
|
'RecentChangesUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/RecentChangesUpdateJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RecompressTracked' => __DIR__ . '/maintenance/storage/recompressTracked.php',
|
2017-01-26 11:39:30 +00:00
|
|
|
'RecountCategories' => __DIR__ . '/maintenance/recountCategories.php',
|
2019-02-08 18:05:27 +00:00
|
|
|
'RedirectSpecialArticle' => __DIR__ . '/includes/specialpage/RedirectSpecialArticle.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RedirectSpecialPage' => __DIR__ . '/includes/specialpage/RedirectSpecialPage.php',
|
2016-09-24 03:13:36 +00:00
|
|
|
'RedisBagOStuff' => __DIR__ . '/includes/libs/objectcache/RedisBagOStuff.php',
|
2016-09-23 07:20:19 +00:00
|
|
|
'RedisConnRef' => __DIR__ . '/includes/libs/redis/RedisConnRef.php',
|
|
|
|
|
'RedisConnectionPool' => __DIR__ . '/includes/libs/redis/RedisConnectionPool.php',
|
2016-09-23 07:30:31 +00:00
|
|
|
'RedisLockManager' => __DIR__ . '/includes/libs/lockmanager/RedisLockManager.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RedisPubSubFeedEngine' => __DIR__ . '/includes/rcfeed/RedisPubSubFeedEngine.php',
|
2016-11-19 00:50:43 +00:00
|
|
|
'RefreshExternallinksIndex' => __DIR__ . '/maintenance/refreshExternallinksIndex.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RefreshFileHeaders' => __DIR__ . '/maintenance/refreshFileHeaders.php',
|
|
|
|
|
'RefreshImageMetadata' => __DIR__ . '/maintenance/refreshImageMetadata.php',
|
|
|
|
|
'RefreshLinks' => __DIR__ . '/maintenance/refreshLinks.php',
|
|
|
|
|
'RefreshLinksJob' => __DIR__ . '/includes/jobqueue/jobs/RefreshLinksJob.php',
|
2019-03-19 16:03:36 +00:00
|
|
|
'RefreshSecondaryDataUpdate' => __DIR__ . '/includes/deferred/RefreshSecondaryDataUpdate.php',
|
2017-11-14 22:22:31 +00:00
|
|
|
'RemexStripTagHandler' => __DIR__ . '/includes/parser/RemexStripTagHandler.php',
|
2014-12-04 19:08:45 +00:00
|
|
|
'RemoveInvalidEmails' => __DIR__ . '/maintenance/removeInvalidEmails.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RemoveUnusedAccounts' => __DIR__ . '/maintenance/removeUnusedAccounts.php',
|
|
|
|
|
'RenameDbPrefix' => __DIR__ . '/maintenance/renameDbPrefix.php',
|
2019-11-03 13:50:06 +00:00
|
|
|
'RenameRestrictions' => __DIR__ . '/maintenance/renameRestrictions.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RenderAction' => __DIR__ . '/includes/actions/RenderAction.php',
|
2015-01-29 05:21:46 +00:00
|
|
|
'ReplacementArray' => __DIR__ . '/includes/libs/ReplacementArray.php',
|
2015-04-30 03:02:14 +00:00
|
|
|
'ReplicatedBagOStuff' => __DIR__ . '/includes/libs/objectcache/ReplicatedBagOStuff.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RepoGroup' => __DIR__ . '/includes/filerepo/RepoGroup.php',
|
|
|
|
|
'RequestContext' => __DIR__ . '/includes/context/RequestContext.php',
|
2018-05-28 16:25:36 +00:00
|
|
|
'ResetAuthenticationThrottle' => __DIR__ . '/maintenance/resetAuthenticationThrottle.php',
|
2018-11-08 23:45:47 +00:00
|
|
|
'ResetPageRandom' => __DIR__ . '/maintenance/resetPageRandom.php',
|
2016-01-30 21:45:35 +00:00
|
|
|
'ResetUserEmail' => __DIR__ . '/maintenance/resetUserEmail.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResetUserTokens' => __DIR__ . '/maintenance/resetUserTokens.php',
|
|
|
|
|
'ResourceFileCache' => __DIR__ . '/includes/cache/ResourceFileCache.php',
|
|
|
|
|
'ResourceLoader' => __DIR__ . '/includes/resourceloader/ResourceLoader.php',
|
2019-05-22 18:29:32 +00:00
|
|
|
'ResourceLoaderCircularDependencyError' => __DIR__ . '/includes/resourceloader/ResourceLoaderCircularDependencyError.php',
|
resourceloader: Move queue formatting out of OutputPage
HTML formatting of the queue was distributed over several OutputPage methods.
Each method demanding a snippet of HTML by calling makeResourceLoaderLink()
with a limited amount of information. As such, makeResourceLoaderLink() was
unable to provide the client with the proper state information.
Centralising it also allows it to better reduce duplication in HTML output
and maintain a more accurate state.
Problems fixed by centralising:
1. The 'user' module is special (due to per-user 'version' and 'user' params).
It is manually requested via script-src. To avoid a separate (and wrong)
request from something that requires it, we set state=loading directly.
However, because the module is in the bottom, the old HTML formatter could
only put state=loading in the bottom also. This sometimes caused a wrong
request to be fired for modules=user if something in the top queue
triggered a requirement for it.
2. Since a464d1d4 (T87871) we track states of page-style modules, with purpose
of allowing dependencies on style modules without risking duplicate loading
on pages where the styles are loaded already. This didn't work, because the
state information about page-style modules is output near the stylesheet,
which is after the script tag with mw.loader.load(). That runs first, and
mw.loader would still make a duplicate request before it learns the state.
Changes:
* Document reasons for style/script tag order in getHeadHtml (per 09537e83).
* Pass $type from getModuleStyles() to getAllowedModules(). This wasn't needed
before since a duplicate check in makeResourceLoaderLink() verified the
origin a second time.
* Declare explicit position 'top' on 'user.options' and 'user.tokens' module.
Previously, OutputPage hardcoded them in the top. The new formatter doesn't.
* Remove getHeadScripts().
* Remove getInlineHeadScripts().
* Remove getExternalHeadScripts().
* Remove buildCssLinks().
* Remove getScriptsForBottomQueue().
* Change where Skin::setupSkinUserCss() is called. This methods lets the skin
add modules to the queue. Previously it was called from buildCssLinks(),
via headElement(), via prepareQuickTemplate(), via OutputPage::output().
It's now in OutputPage::output() directly (slightly earlier). This is needed
because prepareQuickTemplate() calls bottomScripts() before headElement().
And bottomScript() would lazy-initialise the queue and lock it before
setupSkinUserCss() is called from headElement().
This makes execution order more predictable instead of being dependent on
the arbitrary order of data extraction in prepareQuickTemplate (which varies
from one skin to another).
* Compute isUserModulePreview() and isKnownEmpty() for the 'user' module early
on so. This avoids wrongful loading and fixes problem 1.
Effective changes in output:
* mw.loader.state() is now before mw.loader.load(). This fixes problem 2.
* mw.loader.state() now sets 'user.options' and 'user.tokens' to "loading".
* mw.loader.state() now sets 'user' (as "loading" or "ready"). Fixes problem 1.
* The <script async src> tag for 'startup' changed position (slightly).
Previously it was after all inline scripts and stylesheets. It's still after
all inline scripts and after most stylesheets, but before any user styles.
Since the queue is now formatted outside OutputPage, it can't inject the
meta-ResourceLoaderDynamicStyles tag and user-stylesheet hack in the middle
of existing output. This shouldn't have any noticable impact.
Bug: T87871
Change-Id: I605b8cd1e1fc009b4662a0edbc54d09dd65ee1df
2016-07-15 14:13:09 +00:00
|
|
|
'ResourceLoaderClientHtml' => __DIR__ . '/includes/resourceloader/ResourceLoaderClientHtml.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderContext' => __DIR__ . '/includes/resourceloader/ResourceLoaderContext.php',
|
|
|
|
|
'ResourceLoaderFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderFileModule.php',
|
|
|
|
|
'ResourceLoaderFilePath' => __DIR__ . '/includes/resourceloader/ResourceLoaderFilePath.php',
|
2015-08-14 23:17:49 +00:00
|
|
|
'ResourceLoaderForeignApiModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderForeignApiModule.php',
|
2014-11-11 19:50:44 +00:00
|
|
|
'ResourceLoaderImage' => __DIR__ . '/includes/resourceloader/ResourceLoaderImage.php',
|
|
|
|
|
'ResourceLoaderImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderImageModule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderLanguageDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageDataModule.php',
|
2018-04-20 18:42:41 +00:00
|
|
|
'ResourceLoaderLessVarFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLessVarFileModule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderModule.php',
|
2020-02-23 22:39:52 +00:00
|
|
|
'ResourceLoaderMwUrlModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderMwUrlModule.php',
|
2017-03-17 01:32:59 +00:00
|
|
|
'ResourceLoaderOOUIFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIFileModule.php',
|
2018-02-12 19:41:44 +00:00
|
|
|
'ResourceLoaderOOUIIconPackModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIIconPackModule.php',
|
2015-06-08 05:27:24 +00:00
|
|
|
'ResourceLoaderOOUIImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIImageModule.php',
|
2017-03-17 01:32:59 +00:00
|
|
|
'ResourceLoaderOOUIModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIModule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderSiteModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteModule.php',
|
2016-06-06 18:12:49 +00:00
|
|
|
'ResourceLoaderSiteStylesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteStylesModule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderSkinModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSkinModule.php',
|
|
|
|
|
'ResourceLoaderStartUpModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderStartUpModule.php',
|
2014-12-09 21:57:31 +00:00
|
|
|
'ResourceLoaderUserDefaultsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserDefaultsModule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderUserModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserModule.php',
|
|
|
|
|
'ResourceLoaderUserOptionsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserOptionsModule.php',
|
2016-07-26 23:54:30 +00:00
|
|
|
'ResourceLoaderUserStylesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserStylesModule.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ResourceLoaderWikiModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderWikiModule.php',
|
2015-03-02 14:35:21 +00:00
|
|
|
'RestbaseVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/RestbaseVirtualRESTService.php',
|
2016-04-26 22:19:58 +00:00
|
|
|
'ResultAugmentor' => __DIR__ . '/includes/search/ResultAugmentor.php',
|
|
|
|
|
'ResultSetAugmentor' => __DIR__ . '/includes/search/ResultSetAugmentor.php',
|
2016-09-14 10:11:41 +00:00
|
|
|
'ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RevDelArchiveItem' => __DIR__ . '/includes/revisiondelete/RevDelArchiveItem.php',
|
|
|
|
|
'RevDelArchiveList' => __DIR__ . '/includes/revisiondelete/RevDelArchiveList.php',
|
|
|
|
|
'RevDelArchivedFileItem' => __DIR__ . '/includes/revisiondelete/RevDelArchivedFileItem.php',
|
|
|
|
|
'RevDelArchivedFileList' => __DIR__ . '/includes/revisiondelete/RevDelArchivedFileList.php',
|
|
|
|
|
'RevDelArchivedRevisionItem' => __DIR__ . '/includes/revisiondelete/RevDelArchivedRevisionItem.php',
|
|
|
|
|
'RevDelFileItem' => __DIR__ . '/includes/revisiondelete/RevDelFileItem.php',
|
|
|
|
|
'RevDelFileList' => __DIR__ . '/includes/revisiondelete/RevDelFileList.php',
|
|
|
|
|
'RevDelItem' => __DIR__ . '/includes/revisiondelete/RevDelItem.php',
|
|
|
|
|
'RevDelList' => __DIR__ . '/includes/revisiondelete/RevDelList.php',
|
|
|
|
|
'RevDelLogItem' => __DIR__ . '/includes/revisiondelete/RevDelLogItem.php',
|
|
|
|
|
'RevDelLogList' => __DIR__ . '/includes/revisiondelete/RevDelLogList.php',
|
|
|
|
|
'RevDelRevisionItem' => __DIR__ . '/includes/revisiondelete/RevDelRevisionItem.php',
|
|
|
|
|
'RevDelRevisionList' => __DIR__ . '/includes/revisiondelete/RevDelRevisionList.php',
|
2016-03-15 19:13:43 +00:00
|
|
|
'ReverseArrayIterator' => __DIR__ . '/includes/libs/ReverseArrayIterator.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ReverseChronologicalPager' => __DIR__ . '/includes/pager/ReverseChronologicalPager.php',
|
|
|
|
|
'RevertAction' => __DIR__ . '/includes/actions/RevertAction.php',
|
|
|
|
|
'Revision' => __DIR__ . '/includes/Revision.php',
|
|
|
|
|
'RevisionDeleteUser' => __DIR__ . '/includes/revisiondelete/RevisionDeleteUser.php',
|
|
|
|
|
'RevisionDeleter' => __DIR__ . '/includes/revisiondelete/RevisionDeleter.php',
|
2019-03-14 18:50:40 +00:00
|
|
|
'RevisionItem' => __DIR__ . '/includes/revisionlist/RevisionItem.php',
|
|
|
|
|
'RevisionItemBase' => __DIR__ . '/includes/revisionlist/RevisionItemBase.php',
|
|
|
|
|
'RevisionList' => __DIR__ . '/includes/revisionlist/RevisionList.php',
|
|
|
|
|
'RevisionListBase' => __DIR__ . '/includes/revisionlist/RevisionListBase.php',
|
2019-08-01 20:38:46 +00:00
|
|
|
'RevisionSearchResult' => __DIR__ . '/includes/search/RevisionSearchResult.php',
|
|
|
|
|
'RevisionSearchResultTrait' => __DIR__ . '/includes/search/RevisionSearchResultTrait.php',
|
2013-11-17 16:43:27 +00:00
|
|
|
'RiffExtractor' => __DIR__ . '/includes/libs/RiffExtractor.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RightsLogFormatter' => __DIR__ . '/includes/logging/RightsLogFormatter.php',
|
|
|
|
|
'RollbackAction' => __DIR__ . '/includes/actions/RollbackAction.php',
|
|
|
|
|
'RollbackEdits' => __DIR__ . '/maintenance/rollbackEdits.php',
|
2015-07-30 22:09:11 +00:00
|
|
|
'RowUpdateGenerator' => __DIR__ . '/includes/utils/RowUpdateGenerator.php',
|
2018-05-24 01:34:01 +00:00
|
|
|
'RunBatchedQuery' => __DIR__ . '/maintenance/runBatchedQuery.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'RunJobs' => __DIR__ . '/maintenance/runJobs.php',
|
2019-03-30 06:07:48 +00:00
|
|
|
'RunnableJob' => __DIR__ . '/includes/jobqueue/RunnableJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SVGMetadataExtractor' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
|
2019-04-14 00:07:50 +00:00
|
|
|
'SVGReader' => __DIR__ . '/includes/media/SVGReader.php',
|
2016-09-21 07:47:55 +00:00
|
|
|
'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php',
|
2017-11-15 20:44:48 +00:00
|
|
|
'Sanitizer' => __DIR__ . '/includes/parser/Sanitizer.php',
|
2016-09-18 07:54:54 +00:00
|
|
|
'ScopedLock' => __DIR__ . '/includes/libs/lockmanager/ScopedLock.php',
|
2016-03-31 09:13:21 +00:00
|
|
|
'SearchApi' => __DIR__ . '/includes/api/SearchApi.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SearchDatabase' => __DIR__ . '/includes/search/SearchDatabase.php',
|
|
|
|
|
'SearchDump' => __DIR__ . '/maintenance/dumpIterator.php',
|
|
|
|
|
'SearchEngine' => __DIR__ . '/includes/search/SearchEngine.php',
|
2016-04-03 08:37:11 +00:00
|
|
|
'SearchEngineConfig' => __DIR__ . '/includes/search/SearchEngineConfig.php',
|
2019-03-29 19:35:35 +00:00
|
|
|
'SearchEngineDummy' => __DIR__ . '/includes/search/SearchEngineDummy.php',
|
2016-04-03 08:37:11 +00:00
|
|
|
'SearchEngineFactory' => __DIR__ . '/includes/search/SearchEngineFactory.php',
|
2015-09-11 15:32:15 +00:00
|
|
|
'SearchExactMatchRescorer' => __DIR__ . '/includes/search/SearchExactMatchRescorer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SearchHighlighter' => __DIR__ . '/includes/search/SearchHighlighter.php',
|
2016-05-13 00:10:52 +00:00
|
|
|
'SearchIndexField' => __DIR__ . '/includes/search/SearchIndexField.php',
|
|
|
|
|
'SearchIndexFieldDefinition' => __DIR__ . '/includes/search/SearchIndexFieldDefinition.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SearchMySQL' => __DIR__ . '/includes/search/SearchMySQL.php',
|
2016-01-03 23:10:32 +00:00
|
|
|
'SearchNearMatchResultSet' => __DIR__ . '/includes/search/SearchNearMatchResultSet.php',
|
2016-04-03 08:37:11 +00:00
|
|
|
'SearchNearMatcher' => __DIR__ . '/includes/search/SearchNearMatcher.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SearchPostgres' => __DIR__ . '/includes/search/SearchPostgres.php',
|
|
|
|
|
'SearchResult' => __DIR__ . '/includes/search/SearchResult.php',
|
|
|
|
|
'SearchResultSet' => __DIR__ . '/includes/search/SearchResultSet.php',
|
2019-07-25 13:48:34 +00:00
|
|
|
'SearchResultSetTrait' => __DIR__ . '/includes/search/SearchResultSetTrait.php',
|
2019-08-01 17:27:29 +00:00
|
|
|
'SearchResultTrait' => __DIR__ . '/includes/search/SearchResultTrait.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SearchSqlite' => __DIR__ . '/includes/search/SearchSqlite.php',
|
2016-01-26 21:18:27 +00:00
|
|
|
'SearchSuggestion' => __DIR__ . '/includes/search/SearchSuggestion.php',
|
|
|
|
|
'SearchSuggestionSet' => __DIR__ . '/includes/search/SearchSuggestionSet.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SearchUpdate' => __DIR__ . '/includes/deferred/SearchUpdate.php',
|
2019-04-14 15:02:53 +00:00
|
|
|
'SectionProfileCallback' => __DIR__ . '/includes/profiler/SectionProfileCallback.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SectionProfiler' => __DIR__ . '/includes/profiler/SectionProfiler.php',
|
2020-04-08 00:13:54 +00:00
|
|
|
'SendPasswordResetEmailUpdate' => __DIR__ . '/includes/deferred/SendPasswordResetEmailUpdate.php',
|
2019-03-08 01:53:39 +00:00
|
|
|
'SerializedValueContainer' => __DIR__ . '/includes/libs/objectcache/serialized/SerializedValueContainer.php',
|
2019-05-13 10:38:37 +00:00
|
|
|
'SevenZipStream' => __DIR__ . '/maintenance/includes/SevenZipStream.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'ShiConverter' => __DIR__ . '/languages/converters/ShiConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ShowJobs' => __DIR__ . '/maintenance/showJobs.php',
|
|
|
|
|
'ShowSiteStats' => __DIR__ . '/maintenance/showSiteStats.php',
|
|
|
|
|
'Site' => __DIR__ . '/includes/site/Site.php',
|
|
|
|
|
'SiteConfiguration' => __DIR__ . '/includes/SiteConfiguration.php',
|
2015-02-02 10:58:14 +00:00
|
|
|
'SiteExporter' => __DIR__ . '/includes/site/SiteExporter.php',
|
2014-12-22 10:30:03 +00:00
|
|
|
'SiteImporter' => __DIR__ . '/includes/site/SiteImporter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SiteList' => __DIR__ . '/includes/site/SiteList.php',
|
2015-02-06 02:00:26 +00:00
|
|
|
'SiteLookup' => __DIR__ . '/includes/site/SiteLookup.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SiteStats' => __DIR__ . '/includes/SiteStats.php',
|
2018-02-11 18:27:35 +00:00
|
|
|
'SiteStatsInit' => __DIR__ . '/includes/SiteStatsInit.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SiteStatsUpdate' => __DIR__ . '/includes/deferred/SiteStatsUpdate.php',
|
|
|
|
|
'SiteStore' => __DIR__ . '/includes/site/SiteStore.php',
|
|
|
|
|
'Skin' => __DIR__ . '/includes/skins/Skin.php',
|
|
|
|
|
'SkinApi' => __DIR__ . '/includes/skins/SkinApi.php',
|
|
|
|
|
'SkinApiTemplate' => __DIR__ . '/includes/skins/SkinApiTemplate.php',
|
|
|
|
|
'SkinException' => __DIR__ . '/includes/skins/SkinException.php',
|
|
|
|
|
'SkinFactory' => __DIR__ . '/includes/skins/SkinFactory.php',
|
|
|
|
|
'SkinFallback' => __DIR__ . '/includes/skins/SkinFallback.php',
|
|
|
|
|
'SkinFallbackTemplate' => __DIR__ . '/includes/skins/SkinFallbackTemplate.php',
|
|
|
|
|
'SkinTemplate' => __DIR__ . '/includes/skins/SkinTemplate.php',
|
2016-07-12 13:48:58 +00:00
|
|
|
'SlideshowImageGallery' => __DIR__ . '/includes/gallery/SlideshowImageGallery.php',
|
[MCR] Render multi-slot diffs
Move logic for rendering a diff between two content objects out of
DifferenceEngine, into a new SlotDiffRenderer class. Make
DifferenceEngine use multiple SlotDiffRenderers, one per slot.
This separates the class tree for changing high-level diff properties
such as the header or the revision selection method (same as before:
subclass DifferenceEngine and override ContentHandler::getDiffEngineClass
or implement GetDifferenceEngine) and the one for changing the actual
diff rendering for a given content type (subclass SlotDiffRenderer and
override ContentHandler::getSlotDiffRenderer or implement
GetSlotDiffRenderer). To keep B/C, when SlotDiffRenderer is not overridden
for a given content type but DifferenceEngine is, that DifferenceEngine
will be used instead.
The weak point of the scheme is overriding the DifferenceEngine methods
passing control to the SlotDiffRenderers (the ones calling
getDifferenceEngines), without calling the parent. These are:
showDiffStyle, getDiffBody, getDiffBodyCacheKeyParams. Extensions doing
that will probably break in unpredictable ways (most likely, only
showing the main slot diff). Nothing in gerrit does it, at least.
A new GetSlotDiffRenderer hook is added to modify rendering for content
models not owned by the extension, much like how GetDifferenceEngine
works.
Also deprecates public access to mNewRev/mOldRev and creates public
getters instead. DifferenceEngine never supported external changes to
those properties, this just acknowledges it.
Bug: T194731
Change-Id: I2f8a9dbebd2290b7feafb20e2bb2a2693e18ba11
Depends-On: I04e885a33bfce5bccc807b9bcfe1eaa577a9fd47
Depends-On: I203d8895bf436b7fee53fe4718dede8a3b1768bc
2018-07-11 09:24:07 +00:00
|
|
|
'SlotDiffRenderer' => __DIR__ . '/includes/diff/SlotDiffRenderer.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialActiveUsers' => __DIR__ . '/includes/specials/SpecialActiveUsers.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialAllMessages' => __DIR__ . '/includes/specials/SpecialAllMessages.php',
|
2019-02-08 18:05:27 +00:00
|
|
|
'SpecialAllMyUploads' => __DIR__ . '/includes/specials/redirects/SpecialAllMyUploads.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialAllPages' => __DIR__ . '/includes/specials/SpecialAllPages.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialAncientPages' => __DIR__ . '/includes/specials/SpecialAncientPages.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialApiHelp' => __DIR__ . '/includes/specials/SpecialApiHelp.php',
|
2015-05-07 17:11:09 +00:00
|
|
|
'SpecialApiSandbox' => __DIR__ . '/includes/specials/SpecialApiSandbox.php',
|
2017-03-06 20:09:36 +00:00
|
|
|
'SpecialAutoblockList' => __DIR__ . '/includes/specials/SpecialAutoblockList.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialBlankpage' => __DIR__ . '/includes/specials/SpecialBlankpage.php',
|
|
|
|
|
'SpecialBlock' => __DIR__ . '/includes/specials/SpecialBlock.php',
|
|
|
|
|
'SpecialBlockList' => __DIR__ . '/includes/specials/SpecialBlockList.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialBookSources' => __DIR__ . '/includes/specials/SpecialBookSources.php',
|
2016-02-01 20:44:03 +00:00
|
|
|
'SpecialBotPasswords' => __DIR__ . '/includes/specials/SpecialBotPasswords.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialBrokenRedirects' => __DIR__ . '/includes/specials/SpecialBrokenRedirects.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialCachedPage' => __DIR__ . '/includes/specials/SpecialCachedPage.php',
|
|
|
|
|
'SpecialCategories' => __DIR__ . '/includes/specials/SpecialCategories.php',
|
2015-03-29 03:36:01 +00:00
|
|
|
'SpecialChangeContentModel' => __DIR__ . '/includes/specials/SpecialChangeContentModel.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'SpecialChangeCredentials' => __DIR__ . '/includes/specials/SpecialChangeCredentials.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialChangeEmail' => __DIR__ . '/includes/specials/SpecialChangeEmail.php',
|
|
|
|
|
'SpecialChangePassword' => __DIR__ . '/includes/specials/SpecialChangePassword.php',
|
|
|
|
|
'SpecialComparePages' => __DIR__ . '/includes/specials/SpecialComparePages.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialConfirmEmail' => __DIR__ . '/includes/specials/SpecialConfirmEmail.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialContributions' => __DIR__ . '/includes/specials/SpecialContributions.php',
|
|
|
|
|
'SpecialCreateAccount' => __DIR__ . '/includes/specials/SpecialCreateAccount.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialDeadendPages' => __DIR__ . '/includes/specials/SpecialDeadendPages.php',
|
|
|
|
|
'SpecialDeletedContributions' => __DIR__ . '/includes/specials/SpecialDeletedContributions.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialDiff' => __DIR__ . '/includes/specials/SpecialDiff.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialDoubleRedirects' => __DIR__ . '/includes/specials/SpecialDoubleRedirects.php',
|
2019-08-24 00:19:20 +00:00
|
|
|
'SpecialEditPage' => __DIR__ . '/includes/specials/SpecialEditPage.php',
|
2015-04-15 01:31:53 +00:00
|
|
|
'SpecialEditTags' => __DIR__ . '/includes/specials/SpecialEditTags.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialEditWatchlist' => __DIR__ . '/includes/specials/SpecialEditWatchlist.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialEmailInvalidate' => __DIR__ . '/includes/specials/SpecialEmailInvalidate.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialEmailUser' => __DIR__ . '/includes/specials/SpecialEmailUser.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialExpandTemplates' => __DIR__ . '/includes/specials/SpecialExpandTemplates.php',
|
|
|
|
|
'SpecialExport' => __DIR__ . '/includes/specials/SpecialExport.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialFewestRevisions' => __DIR__ . '/includes/specials/SpecialFewestRevisions.php',
|
|
|
|
|
'SpecialFileDuplicateSearch' => __DIR__ . '/includes/specials/SpecialFileDuplicateSearch.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialFilepath' => __DIR__ . '/includes/specials/SpecialFilepath.php',
|
2016-02-07 13:07:20 +00:00
|
|
|
'SpecialGoToInterwiki' => __DIR__ . '/includes/specials/SpecialGoToInterwiki.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialImport' => __DIR__ . '/includes/specials/SpecialImport.php',
|
|
|
|
|
'SpecialJavaScriptTest' => __DIR__ . '/includes/specials/SpecialJavaScriptTest.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'SpecialLinkAccounts' => __DIR__ . '/includes/specials/SpecialLinkAccounts.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialLinkSearch' => __DIR__ . '/includes/specials/SpecialLinkSearch.php',
|
2019-02-08 18:05:27 +00:00
|
|
|
'SpecialListAdmins' => __DIR__ . '/includes/specials/redirects/SpecialListAdmins.php',
|
|
|
|
|
'SpecialListBots' => __DIR__ . '/includes/specials/redirects/SpecialListBots.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialListDuplicatedFiles' => __DIR__ . '/includes/specials/SpecialListDuplicatedFiles.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialListFiles' => __DIR__ . '/includes/specials/SpecialListFiles.php',
|
|
|
|
|
'SpecialListGrants' => __DIR__ . '/includes/specials/SpecialListGrants.php',
|
|
|
|
|
'SpecialListGroupRights' => __DIR__ . '/includes/specials/SpecialListGroupRights.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialListRedirects' => __DIR__ . '/includes/specials/SpecialListRedirects.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialListUsers' => __DIR__ . '/includes/specials/SpecialListUsers.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialLockdb' => __DIR__ . '/includes/specials/SpecialLockdb.php',
|
|
|
|
|
'SpecialLog' => __DIR__ . '/includes/specials/SpecialLog.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialLonelyPages' => __DIR__ . '/includes/specials/SpecialLonelyPages.php',
|
|
|
|
|
'SpecialLongPages' => __DIR__ . '/includes/specials/SpecialLongPages.php',
|
|
|
|
|
'SpecialMIMESearch' => __DIR__ . '/includes/specials/SpecialMIMESearch.php',
|
|
|
|
|
'SpecialMediaStatistics' => __DIR__ . '/includes/specials/SpecialMediaStatistics.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialMergeHistory' => __DIR__ . '/includes/specials/SpecialMergeHistory.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialMostCategories' => __DIR__ . '/includes/specials/SpecialMostCategories.php',
|
|
|
|
|
'SpecialMostInterwikis' => __DIR__ . '/includes/specials/SpecialMostInterwikis.php',
|
|
|
|
|
'SpecialMostLinked' => __DIR__ . '/includes/specials/SpecialMostLinked.php',
|
|
|
|
|
'SpecialMostLinkedCategories' => __DIR__ . '/includes/specials/SpecialMostLinkedCategories.php',
|
|
|
|
|
'SpecialMostLinkedTemplates' => __DIR__ . '/includes/specials/SpecialMostLinkedTemplates.php',
|
|
|
|
|
'SpecialMostRevisions' => __DIR__ . '/includes/specials/SpecialMostRevisions.php',
|
2019-05-07 14:55:48 +00:00
|
|
|
'SpecialMute' => __DIR__ . '/includes/specials/SpecialMute.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialMyLanguage' => __DIR__ . '/includes/specials/SpecialMyLanguage.php',
|
2019-02-08 18:05:27 +00:00
|
|
|
'SpecialMycontributions' => __DIR__ . '/includes/specials/redirects/SpecialMycontributions.php',
|
|
|
|
|
'SpecialMypage' => __DIR__ . '/includes/specials/redirects/SpecialMypage.php',
|
|
|
|
|
'SpecialMytalk' => __DIR__ . '/includes/specials/redirects/SpecialMytalk.php',
|
|
|
|
|
'SpecialMyuploads' => __DIR__ . '/includes/specials/redirects/SpecialMyuploads.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialNewFiles' => __DIR__ . '/includes/specials/SpecialNewFiles.php',
|
2019-06-23 02:17:38 +00:00
|
|
|
'SpecialNewSection' => __DIR__ . '/includes/specials/SpecialNewSection.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialNewpages' => __DIR__ . '/includes/specials/SpecialNewpages.php',
|
|
|
|
|
'SpecialPage' => __DIR__ . '/includes/specialpage/SpecialPage.php',
|
2015-04-15 01:31:53 +00:00
|
|
|
'SpecialPageAction' => __DIR__ . '/includes/actions/SpecialPageAction.php',
|
2017-06-01 15:39:21 +00:00
|
|
|
'SpecialPageData' => __DIR__ . '/includes/specials/SpecialPageData.php',
|
2018-08-07 10:58:31 +00:00
|
|
|
'SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory_deprecated.php',
|
2019-08-24 00:19:20 +00:00
|
|
|
'SpecialPageHistory' => __DIR__ . '/includes/specials/SpecialPageHistory.php',
|
|
|
|
|
'SpecialPageInfo' => __DIR__ . '/includes/specials/SpecialPageInfo.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialPageLanguage' => __DIR__ . '/includes/specials/SpecialPageLanguage.php',
|
|
|
|
|
'SpecialPagesWithProp' => __DIR__ . '/includes/specials/SpecialPagesWithProp.php',
|
2017-11-18 21:59:47 +00:00
|
|
|
'SpecialPasswordPolicies' => __DIR__ . '/includes/specials/SpecialPasswordPolicies.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialPasswordReset' => __DIR__ . '/includes/specials/SpecialPasswordReset.php',
|
|
|
|
|
'SpecialPermanentLink' => __DIR__ . '/includes/specials/SpecialPermanentLink.php',
|
|
|
|
|
'SpecialPreferences' => __DIR__ . '/includes/specials/SpecialPreferences.php',
|
|
|
|
|
'SpecialPrefixindex' => __DIR__ . '/includes/specials/SpecialPrefixindex.php',
|
|
|
|
|
'SpecialProtectedpages' => __DIR__ . '/includes/specials/SpecialProtectedpages.php',
|
|
|
|
|
'SpecialProtectedtitles' => __DIR__ . '/includes/specials/SpecialProtectedtitles.php',
|
2019-08-24 00:19:20 +00:00
|
|
|
'SpecialPurge' => __DIR__ . '/includes/specials/SpecialPurge.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialRandomInCategory' => __DIR__ . '/includes/specials/SpecialRandomInCategory.php',
|
|
|
|
|
'SpecialRandomredirect' => __DIR__ . '/includes/specials/SpecialRandomredirect.php',
|
2016-01-15 23:17:05 +00:00
|
|
|
'SpecialRandomrootpage' => __DIR__ . '/includes/specials/SpecialRandomrootpage.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialRecentChanges' => __DIR__ . '/includes/specials/SpecialRecentChanges.php',
|
|
|
|
|
'SpecialRecentChangesLinked' => __DIR__ . '/includes/specials/SpecialRecentChangesLinked.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialRedirect' => __DIR__ . '/includes/specials/SpecialRedirect.php',
|
2019-02-08 18:05:27 +00:00
|
|
|
'SpecialRedirectToSpecial' => __DIR__ . '/includes/specialpage/SpecialRedirectToSpecial.php',
|
2019-08-24 00:19:20 +00:00
|
|
|
'SpecialRedirectWithAction' => __DIR__ . '/includes/specialpage/SpecialRedirectWithAction.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'SpecialRemoveCredentials' => __DIR__ . '/includes/specials/SpecialRemoveCredentials.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialResetTokens' => __DIR__ . '/includes/specials/SpecialResetTokens.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialRevisionDelete' => __DIR__ . '/includes/specials/SpecialRevisionDelete.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialRunJobs' => __DIR__ . '/includes/specials/SpecialRunJobs.php',
|
|
|
|
|
'SpecialSearch' => __DIR__ . '/includes/specials/SpecialSearch.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialShortPages' => __DIR__ . '/includes/specials/SpecialShortPages.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialSpecialpages' => __DIR__ . '/includes/specials/SpecialSpecialpages.php',
|
|
|
|
|
'SpecialStatistics' => __DIR__ . '/includes/specials/SpecialStatistics.php',
|
|
|
|
|
'SpecialTags' => __DIR__ . '/includes/specials/SpecialTags.php',
|
|
|
|
|
'SpecialTrackingCategories' => __DIR__ . '/includes/specials/SpecialTrackingCategories.php',
|
|
|
|
|
'SpecialUnblock' => __DIR__ . '/includes/specials/SpecialUnblock.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialUncategorizedCategories' => __DIR__ . '/includes/specials/SpecialUncategorizedCategories.php',
|
|
|
|
|
'SpecialUncategorizedImages' => __DIR__ . '/includes/specials/SpecialUncategorizedImages.php',
|
|
|
|
|
'SpecialUncategorizedPages' => __DIR__ . '/includes/specials/SpecialUncategorizedPages.php',
|
|
|
|
|
'SpecialUncategorizedTemplates' => __DIR__ . '/includes/specials/SpecialUncategorizedTemplates.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialUndelete' => __DIR__ . '/includes/specials/SpecialUndelete.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'SpecialUnlinkAccounts' => __DIR__ . '/includes/specials/SpecialUnlinkAccounts.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialUnlockdb' => __DIR__ . '/includes/specials/SpecialUnlockdb.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialUnusedCategories' => __DIR__ . '/includes/specials/SpecialUnusedCategories.php',
|
|
|
|
|
'SpecialUnusedImages' => __DIR__ . '/includes/specials/SpecialUnusedImages.php',
|
|
|
|
|
'SpecialUnusedTemplates' => __DIR__ . '/includes/specials/SpecialUnusedTemplates.php',
|
|
|
|
|
'SpecialUnwatchedPages' => __DIR__ . '/includes/specials/SpecialUnwatchedPages.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialUpload' => __DIR__ . '/includes/specials/SpecialUpload.php',
|
|
|
|
|
'SpecialUploadStash' => __DIR__ . '/includes/specials/SpecialUploadStash.php',
|
2019-02-06 21:22:01 +00:00
|
|
|
'SpecialUploadStashTooLargeException' => __DIR__ . '/includes/specials/exception/SpecialUploadStashTooLargeException.php',
|
Use AuthManager on special pages
Rewrite authentication-related special pages to use AuthManager.
All the changes mentioned below only take effect when
$wgDisableAuthManager is false.
LoginForm is rewritten to use HTMLForm and split into UserLogin
and CreateAccount; ChangePassword and PasswordReset are rewritten;
ChangeEmail and Preferences are updated. Four new special pages
are added to handle the new capabilities of AuthManager (linked
accounts, secondary authentication providers): LinkAccounts,
UnlinkAccounts, ChangeCredentials, RemoveCredentials.
The old form-based hooks (ChangePasswordForm, UserCreateForm,
UserLoginForm) are deprecated. A new, more generic hook is
available to alter the forms (AuthChangeFormFields);
form changes that involve new fields should be done via
$wgAuthManagerConfig.
UserLoginComplete is limited to web-based login; for more
generic functionality UserLoggedIn can be used instead.
Hooks that assume password-based login (PrefsPasswordAudit,
AbortChangePassword) are removed; the first functionality
is replaced by ChangeAuthenticationDataAudit, the second is
handled by AuthManager. LoginPasswordResetMessage is removed,
the functionality can be recreated via authentication providers.
There are several smaller backwards incompatible changes:
* Adding fields to the login/signup forms by manipulating the
template via the extraInput/extrafields parameters is not
supported anymore. Depending on the authn configuration the
login/signup process might be multistep and it would be
complicated to ensure that extensions can access the data
at the right moment. Instead, you can create an
AuthenticationProvider which can define its own fields and
process them when the authentication is over.
(There is B/C support for a transitional period that works with
the default login form, but might break with configurations that
require multiple steps or redirects.)
* Removed cookie redirect check. This was added in 2003 in 9ead07fe9
for the benefit of bots, but with MediaWiki having an API these days
there is little reason to keep it. Same for the wpSkipCookieCheck
flag (added in 2008 in 29c73e8265).
* Instead of embedding a password field on sensitive special pages
such as ChangeEmail, such pages rely on AuthManager for elevated
security (which typically involves requiring the user to log in again
unless their last login was more than a few minutes ago).
Accordingly, wgRequirePasswordforEmailChange is removed.
* Special:ChangePassword requires login now.
* Special:ResetPassword now sends a separate email to each user when called
with a shared email address.
* the Reason field had a message with 'prefsectiontip' class
which was sorta broken but used in extensions for formatting.
HTMLForm does not support that, so this commit turns it into a help message
which will break formatting. See https://gerrit.wikimedia.org/r/#/c/231884
Bug: T110277
Change-Id: I8b52ec8ddf494f23941807638f149f15b5e46b0c
Depends-On: If4e0dfb6ee6674f0dace80a01850e2d0cbbdb47a
2015-09-22 22:50:04 +00:00
|
|
|
'SpecialUserLogin' => __DIR__ . '/includes/specials/SpecialUserLogin.php',
|
|
|
|
|
'SpecialUserLogout' => __DIR__ . '/includes/specials/SpecialUserLogout.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialVersion' => __DIR__ . '/includes/specials/SpecialVersion.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialWantedCategories' => __DIR__ . '/includes/specials/SpecialWantedCategories.php',
|
|
|
|
|
'SpecialWantedTemplates' => __DIR__ . '/includes/specials/SpecialWantedTemplates.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SpecialWatchlist' => __DIR__ . '/includes/specials/SpecialWatchlist.php',
|
2019-04-14 12:32:59 +00:00
|
|
|
'SpecialWhatLinksHere' => __DIR__ . '/includes/specials/SpecialWhatLinksHere.php',
|
2019-04-14 15:14:22 +00:00
|
|
|
'SpecialWithoutInterwiki' => __DIR__ . '/includes/specials/SpecialWithoutInterwiki.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SqlBagOStuff' => __DIR__ . '/includes/objectcache/SqlBagOStuff.php',
|
2019-06-12 09:02:10 +00:00
|
|
|
'SqlSearchResult' => __DIR__ . '/includes/search/SqlSearchResult.php',
|
2016-01-03 23:10:32 +00:00
|
|
|
'SqlSearchResultSet' => __DIR__ . '/includes/search/SqlSearchResultSet.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Sqlite' => __DIR__ . '/maintenance/sqlite.inc',
|
|
|
|
|
'SqliteInstaller' => __DIR__ . '/includes/installer/SqliteInstaller.php',
|
|
|
|
|
'SqliteMaintenance' => __DIR__ . '/maintenance/sqlite.php',
|
|
|
|
|
'SqliteUpdater' => __DIR__ . '/includes/installer/SqliteUpdater.php',
|
2015-10-08 07:36:22 +00:00
|
|
|
'SquidPurgeClient' => __DIR__ . '/includes/clientpool/SquidPurgeClient.php',
|
|
|
|
|
'SquidPurgeClientPool' => __DIR__ . '/includes/clientpool/SquidPurgeClientPool.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'SrConverter' => __DIR__ . '/languages/converters/SrConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'StatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
2016-04-04 03:27:50 +00:00
|
|
|
'StatsdAwareInterface' => __DIR__ . '/includes/libs/stats/StatsdAwareInterface.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Status' => __DIR__ . '/includes/Status.php',
|
2015-01-21 01:23:21 +00:00
|
|
|
'StatusValue' => __DIR__ . '/includes/libs/StatusValue.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'StorageTypeStats' => __DIR__ . '/maintenance/storage/storageTypeStats.php',
|
2016-09-18 23:25:41 +00:00
|
|
|
'StoreFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/StoreFileOp.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'StreamFile' => __DIR__ . '/includes/StreamFile.php',
|
2019-03-27 20:40:33 +00:00
|
|
|
'StringPrefixSearch' => __DIR__ . '/includes/search/StringPrefixSearch.php',
|
2015-01-29 18:30:57 +00:00
|
|
|
'StringUtils' => __DIR__ . '/includes/libs/StringUtils.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'StripState' => __DIR__ . '/includes/parser/StripState.php',
|
|
|
|
|
'StubObject' => __DIR__ . '/includes/StubObject.php',
|
2019-04-14 10:15:06 +00:00
|
|
|
'StubUserLang' => __DIR__ . '/includes/StubUserLang.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SubmitAction' => __DIR__ . '/includes/actions/SubmitAction.php',
|
2014-12-10 11:24:47 +00:00
|
|
|
'SubpageImportTitleFactory' => __DIR__ . '/includes/title/SubpageImportTitleFactory.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'SvgHandler' => __DIR__ . '/includes/media/SvgHandler.php',
|
2016-09-21 23:13:14 +00:00
|
|
|
'SwiftFileBackend' => __DIR__ . '/includes/libs/filebackend/SwiftFileBackend.php',
|
2019-04-15 09:30:24 +00:00
|
|
|
'SwiftFileBackendDirList' => __DIR__ . '/includes/libs/filebackend/fileiteration/SwiftFileBackendDirList.php',
|
|
|
|
|
'SwiftFileBackendFileList' => __DIR__ . '/includes/libs/filebackend/fileiteration/SwiftFileBackendFileList.php',
|
|
|
|
|
'SwiftFileBackendList' => __DIR__ . '/includes/libs/filebackend/fileiteration/SwiftFileBackendList.php',
|
|
|
|
|
'SwiftFileOpHandle' => __DIR__ . '/includes/libs/filebackend/fileophandle/SwiftFileOpHandle.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'SwiftVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/SwiftVirtualRESTService.php',
|
|
|
|
|
'SyncFileBackend' => __DIR__ . '/maintenance/syncFileBackend.php',
|
|
|
|
|
'TableCleanup' => __DIR__ . '/maintenance/cleanupTable.inc',
|
|
|
|
|
'TableDiffFormatter' => __DIR__ . '/includes/diff/TableDiffFormatter.php',
|
|
|
|
|
'TablePager' => __DIR__ . '/includes/pager/TablePager.php',
|
2015-04-15 01:33:08 +00:00
|
|
|
'TagLogFormatter' => __DIR__ . '/includes/logging/TagLogFormatter.php',
|
2016-10-18 22:36:24 +00:00
|
|
|
'TempFSFile' => __DIR__ . '/includes/libs/filebackend/fsfile/TempFSFile.php',
|
2016-12-17 09:12:32 +00:00
|
|
|
'TempFileRepo' => __DIR__ . '/includes/filerepo/TempFileRepo.php',
|
2015-01-30 19:31:44 +00:00
|
|
|
'TemplateParser' => __DIR__ . '/includes/TemplateParser.php',
|
2016-09-09 05:56:07 +00:00
|
|
|
'TemplatesOnThisPageFormatter' => __DIR__ . '/includes/TemplatesOnThisPageFormatter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'TextContent' => __DIR__ . '/includes/content/TextContent.php',
|
|
|
|
|
'TextContentHandler' => __DIR__ . '/includes/content/TextContentHandler.php',
|
2018-02-11 10:37:41 +00:00
|
|
|
'TextPassDumper' => __DIR__ . '/maintenance/includes/TextPassDumper.php',
|
[MCR] Render multi-slot diffs
Move logic for rendering a diff between two content objects out of
DifferenceEngine, into a new SlotDiffRenderer class. Make
DifferenceEngine use multiple SlotDiffRenderers, one per slot.
This separates the class tree for changing high-level diff properties
such as the header or the revision selection method (same as before:
subclass DifferenceEngine and override ContentHandler::getDiffEngineClass
or implement GetDifferenceEngine) and the one for changing the actual
diff rendering for a given content type (subclass SlotDiffRenderer and
override ContentHandler::getSlotDiffRenderer or implement
GetSlotDiffRenderer). To keep B/C, when SlotDiffRenderer is not overridden
for a given content type but DifferenceEngine is, that DifferenceEngine
will be used instead.
The weak point of the scheme is overriding the DifferenceEngine methods
passing control to the SlotDiffRenderers (the ones calling
getDifferenceEngines), without calling the parent. These are:
showDiffStyle, getDiffBody, getDiffBodyCacheKeyParams. Extensions doing
that will probably break in unpredictable ways (most likely, only
showing the main slot diff). Nothing in gerrit does it, at least.
A new GetSlotDiffRenderer hook is added to modify rendering for content
models not owned by the extension, much like how GetDifferenceEngine
works.
Also deprecates public access to mNewRev/mOldRev and creates public
getters instead. DifferenceEngine never supported external changes to
those properties, this just acknowledges it.
Bug: T194731
Change-Id: I2f8a9dbebd2290b7feafb20e2bb2a2693e18ba11
Depends-On: I04e885a33bfce5bccc807b9bcfe1eaa577a9fd47
Depends-On: I203d8895bf436b7fee53fe4718dede8a3b1768bc
2018-07-11 09:24:07 +00:00
|
|
|
'TextSlotDiffRenderer' => __DIR__ . '/includes/diff/TextSlotDiffRenderer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'TextStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'TgConverter' => __DIR__ . '/languages/converters/TgConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ThrottledError' => __DIR__ . '/includes/exception/ThrottledError.php',
|
2019-03-30 11:16:51 +00:00
|
|
|
'ThumbnailImage' => __DIR__ . '/includes/media/ThumbnailImage.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ThumbnailRenderJob' => __DIR__ . '/includes/jobqueue/jobs/ThumbnailRenderJob.php',
|
2018-08-18 15:32:48 +00:00
|
|
|
'TidyUpT39714' => __DIR__ . '/maintenance/tidyUpT39714.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'TiffHandler' => __DIR__ . '/includes/media/TiffHandler.php',
|
2015-11-03 02:26:07 +00:00
|
|
|
'Timing' => __DIR__ . '/includes/libs/Timing.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'Title' => __DIR__ . '/includes/Title.php',
|
|
|
|
|
'TitleArray' => __DIR__ . '/includes/TitleArray.php',
|
|
|
|
|
'TitleArrayFromResult' => __DIR__ . '/includes/TitleArrayFromResult.php',
|
|
|
|
|
'TitleCleanup' => __DIR__ . '/maintenance/cleanupTitles.php',
|
2019-10-17 16:48:39 +00:00
|
|
|
'TitleFactory' => __DIR__ . '/includes/TitleFactory.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'TitleFormatter' => __DIR__ . '/includes/title/TitleFormatter.php',
|
|
|
|
|
'TitleParser' => __DIR__ . '/includes/title/TitleParser.php',
|
2019-03-27 20:40:33 +00:00
|
|
|
'TitlePrefixSearch' => __DIR__ . '/includes/search/TitlePrefixSearch.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'TitleValue' => __DIR__ . '/includes/title/TitleValue.php',
|
|
|
|
|
'TrackBlobs' => __DIR__ . '/maintenance/storage/trackBlobs.php',
|
2016-11-29 23:04:07 +00:00
|
|
|
'TrackingCategories' => __DIR__ . '/includes/TrackingCategories.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'TraditionalImageGallery' => __DIR__ . '/includes/gallery/TraditionalImageGallery.php',
|
2019-05-21 21:52:57 +00:00
|
|
|
'TransactionRoundAwareUpdate' => __DIR__ . '/includes/deferred/TransactionRoundAwareUpdate.php',
|
2017-10-12 20:19:56 +00:00
|
|
|
'TransactionRoundDefiningUpdate' => __DIR__ . '/includes/deferred/TransactionRoundDefiningUpdate.php',
|
2019-03-30 11:16:51 +00:00
|
|
|
'TransformParameterError' => __DIR__ . '/includes/media/TransformParameterError.php',
|
|
|
|
|
'TransformTooBigImageAreaError' => __DIR__ . '/includes/media/TransformTooBigImageAreaError.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'TransformationalImageHandler' => __DIR__ . '/includes/media/TransformationalImageHandler.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'TrivialLanguageConverter' => __DIR__ . '/languages/TrivialLanguageConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UDPRCFeedEngine' => __DIR__ . '/includes/rcfeed/UDPRCFeedEngine.php',
|
2014-12-15 22:05:13 +00:00
|
|
|
'UDPTransport' => __DIR__ . '/includes/libs/UDPTransport.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UIDGenerator' => __DIR__ . '/includes/utils/UIDGenerator.php',
|
|
|
|
|
'UcdXmlReader' => __DIR__ . '/maintenance/language/generateCollationData.php',
|
|
|
|
|
'Undelete' => __DIR__ . '/maintenance/undelete.php',
|
|
|
|
|
'UnifiedDiffFormatter' => __DIR__ . '/includes/diff/UnifiedDiffFormatter.php',
|
2019-08-21 15:51:10 +00:00
|
|
|
'UnknownContent' => __DIR__ . '/includes/content/UnknownContent.php',
|
|
|
|
|
'UnknownContentHandler' => __DIR__ . '/includes/content/UnknownContentHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UnlistedSpecialPage' => __DIR__ . '/includes/specialpage/UnlistedSpecialPage.php',
|
|
|
|
|
'UnprotectAction' => __DIR__ . '/includes/actions/UnprotectAction.php',
|
|
|
|
|
'UnregisteredLocalFile' => __DIR__ . '/includes/filerepo/file/UnregisteredLocalFile.php',
|
2019-08-21 15:51:10 +00:00
|
|
|
'UnsupportedSlotDiffRenderer' => __DIR__ . '/includes/diff/UnsupportedSlotDiffRenderer.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UnwatchAction' => __DIR__ . '/includes/actions/UnwatchAction.php',
|
|
|
|
|
'UpdateArticleCount' => __DIR__ . '/maintenance/updateArticleCount.php',
|
|
|
|
|
'UpdateCollation' => __DIR__ . '/maintenance/updateCollation.php',
|
|
|
|
|
'UpdateDoubleWidthSearch' => __DIR__ . '/maintenance/updateDoubleWidthSearch.php',
|
2016-07-18 22:20:40 +00:00
|
|
|
'UpdateExtensionJsonSchema' => __DIR__ . '/maintenance/updateExtensionJsonSchema.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UpdateLogging' => __DIR__ . '/maintenance/archives/upgradeLogging.php',
|
|
|
|
|
'UpdateMediaWiki' => __DIR__ . '/maintenance/update.php',
|
|
|
|
|
'UpdateRestrictions' => __DIR__ . '/maintenance/updateRestrictions.php',
|
|
|
|
|
'UpdateSearchIndex' => __DIR__ . '/maintenance/updateSearchIndex.php',
|
|
|
|
|
'UpdateSpecialPages' => __DIR__ . '/maintenance/updateSpecialPages.php',
|
|
|
|
|
'UploadBase' => __DIR__ . '/includes/upload/UploadBase.php',
|
2019-02-06 21:22:01 +00:00
|
|
|
'UploadChunkFileException' => __DIR__ . '/includes/upload/exception/UploadChunkFileException.php',
|
|
|
|
|
'UploadChunkVerificationException' => __DIR__ . '/includes/upload/exception/UploadChunkVerificationException.php',
|
|
|
|
|
'UploadChunkZeroLengthFileException' => __DIR__ . '/includes/upload/exception/UploadChunkZeroLengthFileException.php',
|
2017-09-12 21:03:26 +00:00
|
|
|
'UploadForm' => __DIR__ . '/includes/specials/forms/UploadForm.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UploadFromChunks' => __DIR__ . '/includes/upload/UploadFromChunks.php',
|
|
|
|
|
'UploadFromFile' => __DIR__ . '/includes/upload/UploadFromFile.php',
|
|
|
|
|
'UploadFromStash' => __DIR__ . '/includes/upload/UploadFromStash.php',
|
|
|
|
|
'UploadFromUrl' => __DIR__ . '/includes/upload/UploadFromUrl.php',
|
2014-08-10 10:25:29 +00:00
|
|
|
'UploadLogFormatter' => __DIR__ . '/includes/logging/UploadLogFormatter.php',
|
2017-07-04 21:07:04 +00:00
|
|
|
'UploadRevisionImporter' => __DIR__ . '/includes/import/UploadRevisionImporter.php',
|
2015-12-28 22:27:48 +00:00
|
|
|
'UploadSourceAdapter' => __DIR__ . '/includes/import/UploadSourceAdapter.php',
|
2017-09-12 21:03:26 +00:00
|
|
|
'UploadSourceField' => __DIR__ . '/includes/specials/formfields/UploadSourceField.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UploadStash' => __DIR__ . '/includes/upload/UploadStash.php',
|
2019-02-06 21:22:01 +00:00
|
|
|
'UploadStashBadPathException' => __DIR__ . '/includes/upload/exception/UploadStashBadPathException.php',
|
|
|
|
|
'UploadStashException' => __DIR__ . '/includes/upload/exception/UploadStashException.php',
|
2019-04-14 02:50:59 +00:00
|
|
|
'UploadStashFile' => __DIR__ . '/includes/upload/UploadStashFile.php',
|
2019-02-06 21:22:01 +00:00
|
|
|
'UploadStashFileException' => __DIR__ . '/includes/upload/exception/UploadStashFileException.php',
|
|
|
|
|
'UploadStashFileNotFoundException' => __DIR__ . '/includes/upload/exception/UploadStashFileNotFoundException.php',
|
|
|
|
|
'UploadStashNoSuchKeyException' => __DIR__ . '/includes/upload/exception/UploadStashNoSuchKeyException.php',
|
|
|
|
|
'UploadStashNotLoggedInException' => __DIR__ . '/includes/upload/exception/UploadStashNotLoggedInException.php',
|
|
|
|
|
'UploadStashWrongOwnerException' => __DIR__ . '/includes/upload/exception/UploadStashWrongOwnerException.php',
|
|
|
|
|
'UploadStashZeroLengthFileException' => __DIR__ . '/includes/upload/exception/UploadStashZeroLengthFileException.php',
|
2016-04-03 08:23:20 +00:00
|
|
|
'UppercaseCollation' => __DIR__ . '/includes/collation/UppercaseCollation.php',
|
2019-04-30 15:33:06 +00:00
|
|
|
'UppercaseTitlesForUnicodeTransition' => __DIR__ . '/maintenance/uppercaseTitlesForUnicodeTransition.php',
|
2015-11-12 23:21:19 +00:00
|
|
|
'User' => __DIR__ . '/includes/user/User.php',
|
|
|
|
|
'UserArray' => __DIR__ . '/includes/user/UserArray.php',
|
|
|
|
|
'UserArrayFromResult' => __DIR__ . '/includes/user/UserArrayFromResult.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UserBlockedError' => __DIR__ . '/includes/exception/UserBlockedError.php',
|
|
|
|
|
'UserCache' => __DIR__ . '/includes/cache/UserCache.php',
|
|
|
|
|
'UserDupes' => __DIR__ . '/maintenance/userDupes.inc',
|
2018-10-22 22:58:02 +00:00
|
|
|
'UserEditCountUpdate' => __DIR__ . '/includes/deferred/UserEditCountUpdate.php',
|
2017-10-15 22:36:40 +00:00
|
|
|
'UserGroupExpiryJob' => __DIR__ . '/includes/jobqueue/jobs/UserGroupExpiryJob.php',
|
User group memberships that expire
This patch adds an ug_expiry column to the user_groups table, a timestamp
giving a date when the user group expires. A new UserGroupMembership class,
based on the Block class, manages entries in this table.
When the expiry date passes, the row in user_groups is ignored, and will
eventually be purged from the DB when UserGroupMembership::insert is next
called. Old, expired user group memberships are not kept; instead, the log
entries are available to find the history of these memberships, similar
to the way it has always worked for blocks and protections.
Anyone getting user group info through the User object will get correct
information. However, code that reads the user_groups table directly will
now need to skip over rows with ug_expiry < wfTimestampNow(). See
UsersPager for an example of how to do this.
NULL is used to represent infinite (no) expiry, rather than a string
'infinity' or similar (except in the API). This allows existing user group
assignments and log entries, which are all infinite in duration, to be
treated the same as new, infinite-length memberships, without special
casing everything.
The whole thing is behind the temporary feature flag
$wgDisableUserGroupExpiry, in accordance with the WMF schema change policy.
The opportunity has been taken to refactor some static user-group-related
functions out of User into UserGroupMembership, and also to add a primary
key (ug_user, ug_group) to the user_groups table.
There are a few breaking changes:
- UserRightsProxy-like objects are now required to have a
getGroupMemberships() function.
- $user->mGroups (on a User object) is no longer present.
- Some protected functions in UsersPager are altered or removed.
- The UsersPagerDoBatchLookups hook (unused in any Wikimedia Git-hosted
extension) has a change of parameter.
Bug: T12493
Depends-On: Ia9616e1e35184fed9058d2d39afbe1038f56d7fa
Depends-On: I86eb1d5619347ce54a5f33a591417742ebe5d6f8
Change-Id: I93c955dc7a970f78e32aa503c01c67da30971d1a
2017-01-12 06:07:56 +00:00
|
|
|
'UserGroupMembership' => __DIR__ . '/includes/user/UserGroupMembership.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UserMailer' => __DIR__ . '/includes/mail/UserMailer.php',
|
2015-12-03 20:08:31 +00:00
|
|
|
'UserNamePrefixSearch' => __DIR__ . '/includes/user/UserNamePrefixSearch.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UserNotLoggedIn' => __DIR__ . '/includes/exception/UserNotLoggedIn.php',
|
2017-10-06 01:53:57 +00:00
|
|
|
'UserOptionsMaintenance' => __DIR__ . '/maintenance/userOptions.php',
|
2019-03-29 07:17:09 +00:00
|
|
|
'UserOptionsUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/UserOptionsUpdateJob.php',
|
2015-04-23 01:48:48 +00:00
|
|
|
'UserPasswordPolicy' => __DIR__ . '/includes/password/UserPasswordPolicy.php',
|
2015-11-12 23:21:19 +00:00
|
|
|
'UserRightsProxy' => __DIR__ . '/includes/user/UserRightsProxy.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'UserrightsPage' => __DIR__ . '/includes/specials/SpecialUserrights.php',
|
2016-03-24 11:25:40 +00:00
|
|
|
'UsersPager' => __DIR__ . '/includes/specials/pagers/UsersPager.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'UzConverter' => __DIR__ . '/languages/converters/UzConverter.php',
|
2014-12-24 17:21:32 +00:00
|
|
|
'VFormHTMLForm' => __DIR__ . '/includes/htmlform/VFormHTMLForm.php',
|
Implement extension registration from an extension.json file
Introduces wfLoadExtension()/wfLoadSkin() which should be used in
LocalSettings.php rather than require-ing a PHP entry point.
Extensions and skins would add "extension.json" or "skin.json" files
in their root, which contains all the information typically
present in PHP entry point files (classes to autoload, special pages,
API modules, etc.) A full schema can be found at
docs/extension.schema.json, and a script to validate these to the
schema is provided. An additional script is provided to convert
typical PHP entry point files into their JSON equivalents.
The basic flow of loading an extension goes like:
* Get the ExtensionRegistry singleton instance
* ExtensionRegistry takes a filename, reads the file or tries
to get the parsed JSON from APC if possible.
* The JSON is run through a Processor instance,
which registers things with the appropriate
global settings.
* The output of the processor is cached in APC if possible.
* The extension/skin is marked as loaded in the
ExtensionRegistry and a callback function is executed
if one was specified.
For ideal performance, a batch loading method is also provided:
* The absolute path name to the JSON file is queued
in the ExtensionRegistry instance.
* When loadFromQueue() is called, it constructs a hash
unique to the members of the current queue, and sees
if the queue has been cached in APC. If not, it processes
each file individually, and combines the result of each
Processor into one giant array, which is cached in APC.
* The giant array then sets various global settings,
defines constants, and calls callbacks.
To invalidate the cached processed info, by default the mtime
of each JSON file is checked. However that can be slow if you
have a large number of extensions, so you can set $wgExtensionInfoMTime
to the mtime of one file, and `touch` it whenever you update
your extensions.
Change-Id: I7074b65d07c5c7d4e3f1fb0755d74a0b07ed4596
2014-10-15 00:31:15 +00:00
|
|
|
'ValidateRegistrationFile' => __DIR__ . '/maintenance/validateRegistrationFile.php',
|
2016-12-03 18:06:46 +00:00
|
|
|
'VersionChecker' => __DIR__ . '/includes/registration/VersionChecker.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ViewAction' => __DIR__ . '/includes/actions/ViewAction.php',
|
2016-11-23 12:19:50 +00:00
|
|
|
'ViewCLI' => __DIR__ . '/maintenance/view.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'VirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTService.php',
|
|
|
|
|
'VirtualRESTServiceClient' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTServiceClient.php',
|
2020-02-04 01:42:03 +00:00
|
|
|
'VueComponentParser' => __DIR__ . '/includes/resourceloader/VueComponentParser.php',
|
2016-09-03 04:43:16 +00:00
|
|
|
'WANCacheReapUpdate' => __DIR__ . '/includes/deferred/WANCacheReapUpdate.php',
|
2019-08-02 22:01:53 +00:00
|
|
|
'WANObjectCache' => __DIR__ . '/includes/libs/objectcache/wancache/WANObjectCache.php',
|
2019-08-02 03:06:27 +00:00
|
|
|
'WANObjectCacheReaper' => __DIR__ . '/includes/libs/objectcache/wancache/WANObjectCacheReaper.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WantedFilesPage' => __DIR__ . '/includes/specials/SpecialWantedfiles.php',
|
|
|
|
|
'WantedPagesPage' => __DIR__ . '/includes/specials/SpecialWantedpages.php',
|
|
|
|
|
'WantedQueryPage' => __DIR__ . '/includes/specialpage/WantedQueryPage.php',
|
|
|
|
|
'WatchAction' => __DIR__ . '/includes/actions/WatchAction.php',
|
2017-03-20 12:41:16 +00:00
|
|
|
'WatchedItem' => __DIR__ . '/includes/watcheditem/WatchedItem.php',
|
|
|
|
|
'WatchedItemQueryService' => __DIR__ . '/includes/watcheditem/WatchedItemQueryService.php',
|
|
|
|
|
'WatchedItemQueryServiceExtension' => __DIR__ . '/includes/watcheditem/WatchedItemQueryServiceExtension.php',
|
|
|
|
|
'WatchedItemStore' => __DIR__ . '/includes/watcheditem/WatchedItemStore.php',
|
2017-03-20 12:57:37 +00:00
|
|
|
'WatchedItemStoreInterface' => __DIR__ . '/includes/watcheditem/WatchedItemStoreInterface.php',
|
2020-02-14 05:55:07 +00:00
|
|
|
'WatchlistExpiryJob' => __DIR__ . '/includes/jobqueue/jobs/WatchlistExpiryJob.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WebInstaller' => __DIR__ . '/includes/installer/WebInstaller.php',
|
2016-01-05 20:48:25 +00:00
|
|
|
'WebInstallerComplete' => __DIR__ . '/includes/installer/WebInstallerComplete.php',
|
|
|
|
|
'WebInstallerCopying' => __DIR__ . '/includes/installer/WebInstallerCopying.php',
|
|
|
|
|
'WebInstallerDBConnect' => __DIR__ . '/includes/installer/WebInstallerDBConnect.php',
|
|
|
|
|
'WebInstallerDBSettings' => __DIR__ . '/includes/installer/WebInstallerDBSettings.php',
|
|
|
|
|
'WebInstallerDocument' => __DIR__ . '/includes/installer/WebInstallerDocument.php',
|
|
|
|
|
'WebInstallerExistingWiki' => __DIR__ . '/includes/installer/WebInstallerExistingWiki.php',
|
|
|
|
|
'WebInstallerInstall' => __DIR__ . '/includes/installer/WebInstallerInstall.php',
|
|
|
|
|
'WebInstallerLanguage' => __DIR__ . '/includes/installer/WebInstallerLanguage.php',
|
|
|
|
|
'WebInstallerName' => __DIR__ . '/includes/installer/WebInstallerName.php',
|
|
|
|
|
'WebInstallerOptions' => __DIR__ . '/includes/installer/WebInstallerOptions.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WebInstallerOutput' => __DIR__ . '/includes/installer/WebInstallerOutput.php',
|
|
|
|
|
'WebInstallerPage' => __DIR__ . '/includes/installer/WebInstallerPage.php',
|
2016-01-05 20:48:25 +00:00
|
|
|
'WebInstallerReadme' => __DIR__ . '/includes/installer/WebInstallerReadme.php',
|
|
|
|
|
'WebInstallerReleaseNotes' => __DIR__ . '/includes/installer/WebInstallerReleaseNotes.php',
|
|
|
|
|
'WebInstallerRestart' => __DIR__ . '/includes/installer/WebInstallerRestart.php',
|
|
|
|
|
'WebInstallerUpgrade' => __DIR__ . '/includes/installer/WebInstallerUpgrade.php',
|
|
|
|
|
'WebInstallerUpgradeDoc' => __DIR__ . '/includes/installer/WebInstallerUpgradeDoc.php',
|
|
|
|
|
'WebInstallerWelcome' => __DIR__ . '/includes/installer/WebInstallerWelcome.php',
|
2018-04-28 01:05:23 +00:00
|
|
|
'WebPHandler' => __DIR__ . '/includes/media/WebPHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WebRequest' => __DIR__ . '/includes/WebRequest.php',
|
2015-10-07 02:24:58 +00:00
|
|
|
'WebRequestUpload' => __DIR__ . '/includes/WebRequestUpload.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WebResponse' => __DIR__ . '/includes/WebResponse.php',
|
|
|
|
|
'WikiCategoryPage' => __DIR__ . '/includes/page/WikiCategoryPage.php',
|
2015-12-28 22:23:22 +00:00
|
|
|
'WikiExporter' => __DIR__ . '/includes/export/WikiExporter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WikiFilePage' => __DIR__ . '/includes/page/WikiFilePage.php',
|
2015-12-28 22:27:48 +00:00
|
|
|
'WikiImporter' => __DIR__ . '/includes/import/WikiImporter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WikiMap' => __DIR__ . '/includes/WikiMap.php',
|
|
|
|
|
'WikiPage' => __DIR__ . '/includes/page/WikiPage.php',
|
2017-05-21 12:23:31 +00:00
|
|
|
'WikiReference' => __DIR__ . '/includes/WikiReference.php',
|
2015-12-28 22:27:48 +00:00
|
|
|
'WikiRevision' => __DIR__ . '/includes/import/WikiRevision.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WikiStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
|
2016-05-16 20:24:10 +00:00
|
|
|
'WikiTextStructure' => __DIR__ . '/includes/content/WikiTextStructure.php',
|
2019-06-29 04:50:31 +00:00
|
|
|
'Wikimedia\\DependencyStore\\DependencyStore' => __DIR__ . '/includes/resourceloader/dependencystore/DependencyStore.php',
|
|
|
|
|
'Wikimedia\\DependencyStore\\DependencyStoreException' => __DIR__ . '/includes/resourceloader/dependencystore/DependencyStoreException.php',
|
|
|
|
|
'Wikimedia\\DependencyStore\\KeyValueDependencyStore' => __DIR__ . '/includes/resourceloader/dependencystore/KeyValueDependencyStore.php',
|
|
|
|
|
'Wikimedia\\DependencyStore\\SqlModuleDependencyStore' => __DIR__ . '/includes/resourceloader/dependencystore/SqlModuleDependencyStore.php',
|
2020-01-09 22:10:08 +00:00
|
|
|
'Wikimedia\\LightweightObjectStore\\ExpirationAwareness' => __DIR__ . '/includes/libs/objectcache/utils/ExpirationAwareness.php',
|
|
|
|
|
'Wikimedia\\LightweightObjectStore\\StorageAwareness' => __DIR__ . '/includes/libs/objectcache/utils/StorageAwareness.php',
|
mime: Convert built-in MIME mappings to PHP arrays
Currently, MimeAnalyzer builds the internal mappings of MIME types <=> file
extensions by concatenating several string buffers in mime.type format into a
giant string, and then parsing it. The mapping of MIME types to internal
media types is built up in a similar way, except we use a dubious homegrown
format with undocumented conventions. It's a mess, and an expensive one --
~1.5% of api.php CPU time on the WMF cluster is spent building these buffers
and parsing them. Converting the mappings to PHP associative arrays makes
them much cheaper to load and easier to maintain.
Doing this without breaking compatibility with existing behaviors requires
some delicate footwork. The current mime.types buffer is made up of the
following fragments, in order:
1) MimeAnalyzer::$wellKnownTypes
2) If $wgMimeTypeFile == 'includes/mime.types' (sic!):
the contents of includes/libs/mime/mime.types.
If $wgMimeTypeFile is another file path (e.g., '/etc/mime.types'):
the contents of that file.
If !wg$MimeTypeFile, this fragment is blank.
3) MimeAnalyzer::$extraTypes (populated by extensions via hook).
The mime.info buffer is built up in the exact same way, except it's
MimeAnalyzer::$wellKnownInfo, $wgMimeInfoFile, and MimeAnalyzer::$extraInfo.
What this means in effect is that some built-in MediaWiki MIME mappings are
"baked in" (anything in MimeAnalyzer::$wellKnown*), and others can be
overridden (anything in includes/libs/mime/mime.*).
To avoid breaking backward compatibility, we have to preserve the
distinction. Thus this change has two MIME mappings, encapsulated in two
classes: 'MimeMapMinimal', which contains just the baked-in mappings, and
'MimeMap' which contains both the baked-in and overridable mappings. We also
have to keep the code for parsing mime.types and the ad-hoc mime.info format,
at least for now.
In a FUTURE change (i.e., not here), I think we can:
* Deprecate $wgMimeTypeFile in favor of a new config var,
$wgExtraMimeTypeFile. $wgMimeTypeFile is evil because if you are using to
add support for additional MIME types, you can end up unwittingly dropping
support for other types that exist in MediaWiki's mime.types but not your
file. The new $wgExtraMimeTypeFile would only be used to add new MIME
mappings on top of the standard MimeMappings, which was probably the
original intent for $wgMimeTypeFile.
* Deprecate $wgMimeInfoFile. I don't think we need to provide a replacement,
because extensions can use the hook, and I doubt anyone is using the config
var. But if we wanted to provide an alternative, we could have a
$wgExtraMimeInfoMap that has an array of extra mappings.
* Deprecate MimeAnalyzer::addExtraTypes and MimeAnalyzer::addExtraInfo, and
provide alternative interfaces that take structured input instead of string
blobs.
I tested this by dumping the internal state of MimeAnalyzer before and after
this CL using the script in Ib856a69fe, using both default and custom values
for $wgMimeInfo(File|Type).
Bug: T252228
Change-Id: I9b2979d3c9c0dee96bb19e0290f680724e718891
2020-05-12 19:42:35 +00:00
|
|
|
'Wikimedia\\Mime\\MimeMap' => __DIR__ . '/includes/libs/mime/MimeMap.php',
|
|
|
|
|
'Wikimedia\\Mime\\MimeMapMinimal' => __DIR__ . '/includes/libs/mime/MimeMapMinimal.php',
|
2019-03-26 05:39:24 +00:00
|
|
|
'Wikimedia\\Rdbms\\AtomicSectionIdentifier' => __DIR__ . '/includes/libs/rdbms/database/utils/AtomicSectionIdentifier.php',
|
2017-02-07 17:36:12 +00:00
|
|
|
'Wikimedia\\Rdbms\\Blob' => __DIR__ . '/includes/libs/rdbms/encasing/Blob.php',
|
2017-01-26 17:42:38 +00:00
|
|
|
'Wikimedia\\Rdbms\\ChronologyProtector' => __DIR__ . '/includes/libs/rdbms/ChronologyProtector.php',
|
2016-11-21 13:26:07 +00:00
|
|
|
'Wikimedia\\Rdbms\\ConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/ConnectionManager.php',
|
2017-02-24 16:17:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBAccessError' => __DIR__ . '/includes/libs/rdbms/exception/DBAccessError.php',
|
2017-03-29 16:15:50 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBConnRef' => __DIR__ . '/includes/libs/rdbms/database/DBConnRef.php',
|
2017-02-24 16:17:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBConnectionError' => __DIR__ . '/includes/libs/rdbms/exception/DBConnectionError.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DBError' => __DIR__ . '/includes/libs/rdbms/exception/DBError.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DBExpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBExpectedError.php',
|
2017-02-08 06:48:30 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/DBMasterPos.php',
|
2019-05-07 00:01:03 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBQueryDisconnectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryDisconnectedError.php',
|
2017-02-24 16:17:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBQueryError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryError.php',
|
2017-09-18 11:38:59 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBQueryTimeoutError' => __DIR__ . '/includes/libs/rdbms/exception/DBQueryTimeoutError.php',
|
2017-02-24 16:17:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBReadOnlyError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyError.php',
|
2019-03-21 16:10:23 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBReadOnlyRoleError' => __DIR__ . '/includes/libs/rdbms/exception/DBReadOnlyRoleError.php',
|
2017-02-24 16:17:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBReplicationWaitError' => __DIR__ . '/includes/libs/rdbms/exception/DBReplicationWaitError.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DBTransactionError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionError.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DBTransactionSizeError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionSizeError.php',
|
2018-03-23 09:57:21 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBTransactionStateError' => __DIR__ . '/includes/libs/rdbms/exception/DBTransactionStateError.php',
|
2017-02-24 16:17:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\DBUnexpectedError' => __DIR__ . '/includes/libs/rdbms/exception/DBUnexpectedError.php',
|
2017-02-07 04:49:57 +00:00
|
|
|
'Wikimedia\\Rdbms\\Database' => __DIR__ . '/includes/libs/rdbms/database/Database.php',
|
2019-03-26 05:39:24 +00:00
|
|
|
'Wikimedia\\Rdbms\\DatabaseDomain' => __DIR__ . '/includes/libs/rdbms/database/domain/DatabaseDomain.php',
|
2017-02-07 04:49:57 +00:00
|
|
|
'Wikimedia\\Rdbms\\DatabaseMysqlBase' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqlBase.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DatabasePostgres' => __DIR__ . '/includes/libs/rdbms/database/DatabasePostgres.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DatabaseSqlite' => __DIR__ . '/includes/libs/rdbms/database/DatabaseSqlite.php',
|
2019-10-03 11:49:28 +00:00
|
|
|
'Wikimedia\\Rdbms\\DoctrineSchemaBuilder' => __DIR__ . '/includes/libs/rdbms/database/DoctrineSchemaBuilder.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\DoctrineSchemaBuilderFactory' => __DIR__ . '/includes/libs/rdbms/database/DoctrineSchemaBuilderFactory.php',
|
2017-02-19 05:03:13 +00:00
|
|
|
'Wikimedia\\Rdbms\\FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
|
2017-02-08 07:10:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php',
|
2019-05-07 00:01:03 +00:00
|
|
|
'Wikimedia\\Rdbms\\GeneralizedSql' => __DIR__ . '/includes/libs/rdbms/database/utils/GeneralizedSql.php',
|
2017-02-07 17:36:12 +00:00
|
|
|
'Wikimedia\\Rdbms\\IBlob' => __DIR__ . '/includes/libs/rdbms/encasing/IBlob.php',
|
2017-02-10 18:09:05 +00:00
|
|
|
'Wikimedia\\Rdbms\\IDatabase' => __DIR__ . '/includes/libs/rdbms/database/IDatabase.php',
|
2017-01-26 18:27:37 +00:00
|
|
|
'Wikimedia\\Rdbms\\ILBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/ILBFactory.php',
|
2017-02-06 21:53:13 +00:00
|
|
|
'Wikimedia\\Rdbms\\ILoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/ILoadBalancer.php',
|
2017-01-26 17:59:18 +00:00
|
|
|
'Wikimedia\\Rdbms\\ILoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/ILoadMonitor.php',
|
2017-02-10 18:09:05 +00:00
|
|
|
'Wikimedia\\Rdbms\\IMaintainableDatabase' => __DIR__ . '/includes/libs/rdbms/database/IMaintainableDatabase.php',
|
2017-02-08 07:53:03 +00:00
|
|
|
'Wikimedia\\Rdbms\\IResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/IResultWrapper.php',
|
2020-01-16 04:31:35 +00:00
|
|
|
'Wikimedia\\Rdbms\\JoinGroup' => __DIR__ . '/includes/libs/rdbms/querybuilder/JoinGroup.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\JoinGroupBase' => __DIR__ . '/includes/libs/rdbms/querybuilder/JoinGroupBase.php',
|
2017-01-26 18:27:37 +00:00
|
|
|
'Wikimedia\\Rdbms\\LBFactory' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactory.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\LBFactoryMulti' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactoryMulti.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\LBFactorySimple' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySimple.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\LBFactorySingle' => __DIR__ . '/includes/libs/rdbms/lbfactory/LBFactorySingle.php',
|
2017-02-07 05:20:39 +00:00
|
|
|
'Wikimedia\\Rdbms\\LikeMatch' => __DIR__ . '/includes/libs/rdbms/encasing/LikeMatch.php',
|
2017-02-18 00:26:47 +00:00
|
|
|
'Wikimedia\\Rdbms\\LoadBalancer' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancer.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\LoadBalancerSingle' => __DIR__ . '/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php',
|
2017-01-26 17:59:18 +00:00
|
|
|
'Wikimedia\\Rdbms\\LoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitor.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\LoadMonitorMySQL' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php',
|
|
|
|
|
'Wikimedia\\Rdbms\\LoadMonitorNull' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorNull.php',
|
2017-03-29 16:15:50 +00:00
|
|
|
'Wikimedia\\Rdbms\\MaintainableDBConnRef' => __DIR__ . '/includes/libs/rdbms/database/MaintainableDBConnRef.php',
|
2017-02-08 07:10:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\MySQLField' => __DIR__ . '/includes/libs/rdbms/field/MySQLField.php',
|
2017-02-08 06:48:30 +00:00
|
|
|
'Wikimedia\\Rdbms\\MySQLMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/MySQLMasterPos.php',
|
2017-08-31 00:27:51 +00:00
|
|
|
'Wikimedia\\Rdbms\\NextSequenceValue' => __DIR__ . '/includes/libs/rdbms/database/utils/NextSequenceValue.php',
|
2017-02-07 17:36:12 +00:00
|
|
|
'Wikimedia\\Rdbms\\PostgresBlob' => __DIR__ . '/includes/libs/rdbms/encasing/PostgresBlob.php',
|
2017-02-08 07:10:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\PostgresField' => __DIR__ . '/includes/libs/rdbms/field/PostgresField.php',
|
2017-02-19 05:03:13 +00:00
|
|
|
'Wikimedia\\Rdbms\\ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php',
|
2017-02-08 07:10:16 +00:00
|
|
|
'Wikimedia\\Rdbms\\SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php',
|
2019-10-03 11:49:28 +00:00
|
|
|
'Wikimedia\\Rdbms\\SchemaBuilder' => __DIR__ . '/includes/libs/rdbms/database/SchemaBuilder.php',
|
2020-01-16 04:31:35 +00:00
|
|
|
'Wikimedia\\Rdbms\\SelectQueryBuilder' => __DIR__ . '/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php',
|
2016-11-21 13:26:07 +00:00
|
|
|
'Wikimedia\\Rdbms\\SessionConsistentConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/SessionConsistentConnectionManager.php',
|
2018-02-15 03:46:04 +00:00
|
|
|
'Wikimedia\\Rdbms\\Subquery' => __DIR__ . '/includes/libs/rdbms/encasing/Subquery.php',
|
2017-01-26 17:42:38 +00:00
|
|
|
'Wikimedia\\Rdbms\\TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php',
|
|
|
|
|
'WikitextContentHandler' => __DIR__ . '/includes/content/WikitextContentHandler.php',
|
2018-02-25 00:19:31 +00:00
|
|
|
'WikitextLogFormatter' => __DIR__ . '/includes/logging/WikitextLogFormatter.php',
|
2019-08-02 22:01:53 +00:00
|
|
|
'WinCacheBagOStuff' => __DIR__ . '/includes/libs/objectcache/WinCacheBagOStuff.php',
|
2016-04-26 18:57:44 +00:00
|
|
|
'WordLevelDiff' => __DIR__ . '/includes/diff/WordLevelDiff.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'WrapOldPasswords' => __DIR__ . '/maintenance/wrapOldPasswords.php',
|
2019-01-30 05:35:11 +00:00
|
|
|
'XCFHandler' => __DIR__ . '/includes/media/XCFHandler.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'XMLRCFeedFormatter' => __DIR__ . '/includes/rcfeed/XMLRCFeedFormatter.php',
|
|
|
|
|
'Xhprof' => __DIR__ . '/includes/libs/Xhprof.php',
|
Decouple Xhprof profiling from profiling data processing
The motivation for this patch came from trying to use xhprof to profile the
unit tests. I was able to profile specific test suites, but if I tried to
profile a complete PHPUnit run, I ended up with empty profiling data. My
initial suspicion was that this was due to some Xhprof buffer getting
exhausted. The actual reason ended up being much simpler: the XhprofTest suite
indirectly called xhprof_enable() / xhprof_disable(), which stopped xhprof and
cleared out the data, so that when I was calling xhprof_disable() at the end of
the run, there was no profiling data to return, because xhprof was not running.
For the most part the XhprofTest was already doing the right thing by trying to
avoid having side-effects or relying on xhprof. Wherever possible, test fixture
profiling data was used in lieu of actually running xhprof. But this was not
totally successful because the Xhprof class coupled the collection of data to
the processing of data. Xhprof::__construct() called xhprof_enable(), so there
was no real way around that.
I think that the right way to fix that is to decouple profiling from profiling
data analysis. Thus I renamed 'Xhprof' to 'XhprofData', and modified the class
so that it expects to be fed profiling data rather than going out and
collecting it on its own. As a result, it is now possible to profile a full
phpunit run with xhprof, and the work that went into writing fixtures for the
Xhprof unit tests pays off: the class and the tests no longer have a hard
dependency on the xhprof extension, and the tests do not have to be skipped
when it is not installed. And the tests are really testing the system under
test, rather than the xhprof extension.
Finally, I added a new Xhprof class, which really is just an extremely thin
wrapper around xhprof_enable() / xhprof_disable(). The only extra functionality
it provides is the ability to check whether xhprof is running, via
Xhprof::isEnabled(). Calling Xhprof::enable() when it is already enabled will
cause an exception to be thrown. This should help us avoid running into
situations where two components contend for control of the profiler without
realizing it. A unit test tests this behavior.
The only part of this change that is not covered by tests is the change to
ProfilerXhprof. I tested it manually and it works.
Change-Id: Ica96beded68f04083abaf48ef1ae8c726eb60fa6
2016-05-12 18:10:39 +00:00
|
|
|
'XhprofData' => __DIR__ . '/includes/libs/XhprofData.php',
|
2020-03-19 07:14:37 +00:00
|
|
|
'Xml' => __DIR__ . '/includes/xml/Xml.php',
|
2015-12-28 22:23:22 +00:00
|
|
|
'XmlDumpWriter' => __DIR__ . '/includes/export/XmlDumpWriter.php',
|
2020-03-19 07:14:37 +00:00
|
|
|
'XmlJsCode' => __DIR__ . '/includes/xml/XmlJsCode.php',
|
|
|
|
|
'XmlSelect' => __DIR__ . '/includes/xml/XmlSelect.php',
|
2016-09-22 04:57:13 +00:00
|
|
|
'XmlTypeCheck' => __DIR__ . '/includes/libs/mime/XmlTypeCheck.php',
|
2020-01-23 18:39:23 +00:00
|
|
|
'ZhConverter' => __DIR__ . '/languages/converters/ZhConverter.php',
|
2014-11-14 18:18:09 +00:00
|
|
|
'ZipDirectoryReader' => __DIR__ . '/includes/utils/ZipDirectoryReader.php',
|
2017-05-21 12:23:31 +00:00
|
|
|
'ZipDirectoryReaderError' => __DIR__ . '/includes/utils/ZipDirectoryReaderError.php',
|
2019-03-25 19:29:47 +00:00
|
|
|
'concatenatedgziphistoryblob' => __DIR__ . '/includes/historyblob/ConcatenatedGzipHistoryBlob.php',
|
|
|
|
|
'historyblobcurstub' => __DIR__ . '/includes/historyblob/HistoryBlobCurStub.php',
|
|
|
|
|
'historyblobstub' => __DIR__ . '/includes/historyblob/HistoryBlobStub.php',
|
2016-02-17 21:08:07 +00:00
|
|
|
];
|