Kunal Mehta [Fri, 13 May 2016 06:27:38 +0000 (23:27 -0700)]
LinkHolderArray: Title::makeTitle() does not return null
Change-Id: I587a34459d4bcc1bae33631561fa6d4a91dfa4a5
Kunal Mehta [Fri, 13 May 2016 06:27:24 +0000 (23:27 -0700)]
LinkHolderArray: Use LinkBatch for generating WHERE in query
The entire query could be replaced with LinkBatch, but that will require
further refactoring.
Change-Id: I87cf2a391486e36e73a13baac65d243fc9196b5c
Kunal Mehta [Thu, 12 May 2016 23:05:19 +0000 (16:05 -0700)]
Remove now-unused LinkCache::$instance
Follows-up
449084ec4.
Change-Id: Ia43344beba0f1e5f98210d0e4e51e53e138495d1
Kunal Mehta [Thu, 12 May 2016 22:44:33 +0000 (15:44 -0700)]
Add LinkCache to MediaWikiServices
LinkCache::singleton() is now deprecated, and the destroySingleton() and
setSingleton() methods were removed. They were not used in extensions,
and the usage in core was updated to use MediaWikiServices.
Change-Id: I08bb4f7913b03f71331ff683d0197c948aad6790
jenkins-bot [Thu, 12 May 2016 21:53:41 +0000 (21:53 +0000)]
Merge "Revert "Split editcascadeprotected permission from protect permission""
Legoktm [Thu, 12 May 2016 21:43:06 +0000 (21:43 +0000)]
Revert "Split editcascadeprotected permission from protect permission"
This doesn't make sense because 'editcascadeprotected'
effectively gives you 'protect' rights.
Furthermore, no actual usecase was provided except for a testwiki.
This reverts commit
da3464badaf9c067a4c3d98448ca72a8324e1e19.
Change-Id: I655c1af8f418369c9551db86f24fb6b66c25afdd
MGChecker [Sat, 30 Apr 2016 17:01:04 +0000 (19:01 +0200)]
Split off permission to delete tags from managechangetags permission
Every permission included in managechangetags is really harmless and can be reverted
in short time, except of the permission to irriversibly delete tags. That's why
this should be excluded in an additional permission that other wikis can restrict
deletechangetags more than other tag management actions.
Bug: T133811
Change-Id: Ieb9199f2c6997316ae3468ff5a92b2d2456c012f
jenkins-bot [Thu, 12 May 2016 20:51:57 +0000 (20:51 +0000)]
Merge "Allow the signature button wikitext to be overridden locally"
jenkins-bot [Thu, 12 May 2016 20:37:00 +0000 (20:37 +0000)]
Merge "Split editcascadeprotected permission from protect permission"
jenkins-bot [Thu, 12 May 2016 20:33:25 +0000 (20:33 +0000)]
Merge "Parser tests: Also register namespace 101 to accompany 100"
jenkins-bot [Thu, 12 May 2016 20:33:21 +0000 (20:33 +0000)]
Merge "LinkCache: Use LinkTarget instead of Title"
jenkins-bot [Thu, 12 May 2016 20:33:14 +0000 (20:33 +0000)]
Merge "TitleFormatter: Match Title behavior for non-existent namespaces"
Paladox [Mon, 14 Dec 2015 19:57:39 +0000 (19:57 +0000)]
Allow the signature button wikitext to be overridden locally
Related change in wikieditor: I43f5bbaee007bbd038f2e118b3ffb8690753afb8
Bug: T26191
Change-Id: I33de58e9729a51ae73a13853ffcfcbb2d2305111
Translation updater bot [Thu, 12 May 2016 19:52:56 +0000 (21:52 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I96105a757969f20b5ae7449773862dc92fa542cc
jenkins-bot [Thu, 12 May 2016 19:44:17 +0000 (19:44 +0000)]
Merge "Document WAN cache FLD_* constants"
jenkins-bot [Thu, 12 May 2016 19:30:12 +0000 (19:30 +0000)]
Merge "objectcache: Inject current time into WANObjectCache::wrap()"
jenkins-bot [Thu, 12 May 2016 19:24:32 +0000 (19:24 +0000)]
Merge "Add tests for Title::getPrefixedText()"
jenkins-bot [Thu, 12 May 2016 19:22:27 +0000 (19:22 +0000)]
Merge "registration: Handle $wgSessionProviders in ExtensionProcessor"
jenkins-bot [Thu, 12 May 2016 19:20:34 +0000 (19:20 +0000)]
Merge "Add wfDeprecated calls to WatchedItem"
jenkins-bot [Thu, 12 May 2016 19:10:31 +0000 (19:10 +0000)]
Merge "Re add @access protected on Title::__construct"
jenkins-bot [Thu, 12 May 2016 19:10:25 +0000 (19:10 +0000)]
Merge "wfTempDir try harder to get a tmp dir on Windows"
Gergő Tisza [Wed, 11 May 2016 21:41:42 +0000 (21:41 +0000)]
registration: Handle $wgSessionProviders in ExtensionProcessor
See https://www.mediawiki.org/wiki/Manual:$wgSessionProviders
Change-Id: Ic9daf9898a0c044d1e2611ca0276d7904a3372ce
Aaron Schulz [Thu, 12 May 2016 04:48:04 +0000 (21:48 -0700)]
objectcache: Inject current time into WANObjectCache::wrap()
Change-Id: Iaba8e09b904e12c0f6883cf6f10211e82a7d75db
Kunal Mehta [Thu, 12 May 2016 18:35:20 +0000 (11:35 -0700)]
Parser tests: Also register namespace 101 to accompany 100
It is expected that namespaces (except for NS_SPECIAL) will have a
paired subject and talk namespace. While not having the accompanying
talk namespace mostly works, it can cause unexpected issues when some
code paths (e.g. WikiPage::onArticleCreate()) expect it to exist.
Change-Id: I8f02fd886d0256679dfc10e1743204da4c6678b7
Kunal Mehta [Wed, 27 Apr 2016 21:52:50 +0000 (14:52 -0700)]
LinkCache: Use LinkTarget instead of Title
Change-Id: I9ed5a095fc50334a3c41fd52f6d05611dadbaf68
Kunal Mehta [Thu, 12 May 2016 18:25:51 +0000 (11:25 -0700)]
TitleFormatter: Match Title behavior for non-existent namespaces
In TitleFormatter::getPrefixedDBkey(), match the
Title::getPrefixedDBkey() behavior for non-existent namespaces by using
an empty string for the namespace and including a leading colon.
Change-Id: I195c36df69963c7409711dd97bece078f61faf77
Kunal Mehta [Thu, 12 May 2016 18:14:47 +0000 (11:14 -0700)]
Add tests for Title::getPrefixedText()
Change-Id: I2afd7ef8b6fd733dd2928a82e89b158fc6fab56d
jenkins-bot [Thu, 12 May 2016 11:47:08 +0000 (11:47 +0000)]
Merge "Make updateCollation wait for slaves every 500 (instead of 2000)"
jenkins-bot [Thu, 12 May 2016 11:38:49 +0000 (11:38 +0000)]
Merge "collation: Refactor getFirstLetterData() cache handling"
jenkins-bot [Thu, 12 May 2016 11:25:46 +0000 (11:25 +0000)]
Merge "resourceloader: Remove false return from Context::getUserObj()"
Brian Wolff [Thu, 12 May 2016 10:32:47 +0000 (06:32 -0400)]
Make updateCollation wait for slaves every 500 (instead of 2000)
2000 writes per wfWaitForSlaves() seems a bit high. There was a
report of this script causing some slave lag when being run.
Note that, the amount of time between wfWaitForSlaves() was
previously increased in r97146.
Bug: T58041
Change-Id: I07a29499775a17255865f25e6b9f1058f898193b
jenkins-bot [Thu, 12 May 2016 08:39:10 +0000 (08:39 +0000)]
Merge "Add LinkTarget::inNamespace() helper function"
jenkins-bot [Thu, 12 May 2016 08:31:22 +0000 (08:31 +0000)]
Merge "Add tests for 'LinkBegin' hook"
Kunal Mehta [Wed, 11 May 2016 21:01:48 +0000 (14:01 -0700)]
Add LinkTarget::inNamespace() helper function
And implementation for TitleValue, plus tests
Change-Id: I42c301e28938dcd55580e20b7c1ddefcbf5a2bef
jenkins-bot [Thu, 12 May 2016 04:21:18 +0000 (04:21 +0000)]
Merge "RedisBagOStuff: Fix unserialization of negative numbers"
Brad Jorsch [Thu, 12 May 2016 03:49:21 +0000 (20:49 -0700)]
RedisBagOStuff: Fix unserialization of negative numbers
ctype_digit( $data ) doesn't return true if $data is
a negative integer.
Bug: T134923
Change-Id: Ie8a23fc6354a15210e010062e3da3058f4c463bb
Aaron Schulz [Thu, 12 May 2016 03:25:14 +0000 (20:25 -0700)]
Document WAN cache FLD_* constants
Change-Id: Ie6a19ae2c5ab6f60a3c6818eb1c9016402bc86c9
Cblair91 [Sat, 30 Apr 2016 10:32:25 +0000 (10:32 +0000)]
Better JavaScript handling for return method
The length selector can be reduced to just find the child of $tbody, as it will check to see if both $tbody and the child .collapsible exist.
Change-Id: If927a5ca79d12f4654a1af9bad97c9274cb501e9
Kunal Mehta [Wed, 11 May 2016 22:50:29 +0000 (15:50 -0700)]
Add tests for 'LinkBegin' hook
Change-Id: I663c25377fb899ea97ef959efac82dc836a9940a
jenkins-bot [Wed, 11 May 2016 21:49:21 +0000 (21:49 +0000)]
Merge "mw.widgets.CategoryCapsuleItemWidget: Handle non-English foreign wikis"
Translation updater bot [Wed, 11 May 2016 19:53:14 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I7c6a49b3cc4f8a87eee1fa48bfd0b44c69f457c7
jenkins-bot [Wed, 11 May 2016 19:31:48 +0000 (19:31 +0000)]
Merge "Fix ApiBase::getErrorFromStatus() and ApiMessages"
Brad Jorsch [Wed, 11 May 2016 18:21:08 +0000 (14:21 -0400)]
Fix ApiBase::getErrorFromStatus() and ApiMessages
When the code was written, $status->getErrorsArray() would return the
Message objects unchanged. But I0deaa988 broke that and apparently
didn't bother fixing callers.
Now that I'm trying to actually use it for something, I find it's
broken, so I fixed it.
Change-Id: I763729c5bdd63448b50229774ef1f9d12cfb795d
Kunal Mehta [Wed, 27 Apr 2016 23:18:15 +0000 (16:18 -0700)]
Add TitleFormatter::getPrefixedDBkey() and implementation
Matches the expected result of Title::getPrefixedDBkey(), and will be
used in LinkCache.
Change-Id: I5ca65d07e2ae28778d060208e2bfe3fc0529992a
jenkins-bot [Wed, 11 May 2016 17:47:09 +0000 (17:47 +0000)]
Merge "Add tests for 'LinkEnd' hook functionality"
jenkins-bot [Wed, 11 May 2016 17:47:04 +0000 (17:47 +0000)]
Merge "Add TitleParser and TitleFormatter to MediaWikiServices"
Kunal Mehta [Wed, 11 May 2016 04:39:22 +0000 (21:39 -0700)]
Add tests for 'LinkEnd' hook functionality
Change-Id: I5bd353756c0631b3dd1c214f814040d82d7c361f
Kunal Mehta [Mon, 25 Apr 2016 05:41:32 +0000 (22:41 -0700)]
Add TitleParser and TitleFormatter to MediaWikiServices
Depends-On: Ibfd0a7f98f50506cd8402f966682f320bf715c8a
Change-Id: I81d48616afd1ab2bde1a5f1d12f4aefb1c866d43
jenkins-bot [Wed, 11 May 2016 17:06:05 +0000 (17:06 +0000)]
Merge "use slave for row estimate in updateCollation.php"
jenkins-bot [Wed, 11 May 2016 17:04:27 +0000 (17:04 +0000)]
Merge "Use STRAIGHT_JOIN on updateCollation.php per jcrespo"
jenkins-bot [Wed, 11 May 2016 15:21:23 +0000 (15:21 +0000)]
Merge "resourceloader: Remove unused Module::setOrigin() method"
jenkins-bot [Wed, 11 May 2016 15:16:48 +0000 (15:16 +0000)]
Merge "Add SessionInfo force-use flag"
jenkins-bot [Wed, 11 May 2016 14:03:34 +0000 (14:03 +0000)]
Merge "Add SessionManager::invalidateSessionsForUser"
jenkins-bot [Wed, 11 May 2016 11:42:41 +0000 (11:42 +0000)]
Merge "Add WebRequest methods for determining "safe" requests"
jenkins-bot [Wed, 11 May 2016 04:37:22 +0000 (04:37 +0000)]
Merge "Pass the OutputPage object to the OutputPageCheckLastModified hook"
Roan Kattouw [Wed, 11 May 2016 00:13:47 +0000 (17:13 -0700)]
Pass the OutputPage object to the OutputPageCheckLastModified hook
So that the hook function has a ContextSource.
Change-Id: I044a5920b703a2d61a74c2d83d184b77caebb8f3
jenkins-bot [Wed, 11 May 2016 00:59:53 +0000 (00:59 +0000)]
Merge "Add User::isBot() method"
Aaron Schulz [Sun, 8 May 2016 09:11:14 +0000 (02:11 -0700)]
Add User::isBot() method
Global group and other extensions can hook into the hook
to flag global bots and the like.
Change-Id: I1290932fccb62508d2a8b7f94f056badadf6fdfc
jenkins-bot [Wed, 11 May 2016 00:25:42 +0000 (00:25 +0000)]
Merge "Make GenderCache use MediaWikiServices"
James D. Forrester [Tue, 10 May 2016 23:06:27 +0000 (16:06 -0700)]
Update OOjs UI to v0.17.2
Release notes:
https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/History.md;v0.17.2
Change-Id: I8e8101e3284c69f8fa6edf142f4cf84efff65e09
jenkins-bot [Tue, 10 May 2016 22:29:43 +0000 (22:29 +0000)]
Merge "Update default hash storage settings"
Brad Jorsch [Tue, 10 May 2016 20:40:46 +0000 (16:40 -0400)]
Add SessionManager::invalidateSessionsForUser
Most of the time calling User::setToken() is enough, but CentralAuth
needs to be able to call CentralAuthUser::resetAuthToken() on command.
Change-Id: Iad2ae914a81481f040e047b550f3fd3437277626
jenkins-bot [Tue, 10 May 2016 20:09:02 +0000 (20:09 +0000)]
Merge "Convert Special:WhatLinksHere from XML form to OOUI form"
Translation updater bot [Tue, 10 May 2016 19:59:57 +0000 (19:59 +0000)]
Merge "Localisation updates from https://translatewiki.net."
Brad Jorsch [Tue, 10 May 2016 19:25:39 +0000 (15:25 -0400)]
Add SessionInfo force-use flag
A provider that uses SessionProvider::hashToSessionId() will likely have
issues if something such as a call to $user->setToken() causes
SessionManager::loadSessionInfoFromStore() to fail, since the provider
can't just arbitrarily change the session ID it returns.
The two solutions to this problem are:
* Somehow include everything that could cause loadSessionInfoFromStore
to fail in the data hashed by hashToSessionId.
* Flag the SessionInfo so that, if stored data and the SessionInfo
conflict, it should delete the stored data instead of discarding the
SessionInfo.
Since the second is less complexity overall due to the lack of need to
define "everything", this patch takes that approach.
Change-Id: I8c6fab2ec295e71242bbcb19d0ee5ade6bd655df
Ajayrahul P [Sat, 12 Mar 2016 13:43:04 +0000 (19:13 +0530)]
Convert Special:WhatLinksHere from XML form to OOUI form
Bug: T117754
Change-Id: I902269c4dbf4147d291c98e61dbdad1d99bd3732
jenkins-bot [Tue, 10 May 2016 19:58:28 +0000 (19:58 +0000)]
Merge "Convert Special:MergeHistory to use OOUI."
Translation updater bot [Tue, 10 May 2016 19:57:33 +0000 (21:57 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ic9f08416c57ebe67a3ebdac74c273f2b2a4abd4b
Sethakill [Sun, 8 May 2016 10:03:29 +0000 (12:03 +0200)]
Convert Special:MergeHistory to use OOUI.
Bug: T134675
Change-Id: I8234632daff04902f317b5d8c84207e30b845358
Timo Tijhof [Tue, 10 May 2016 19:37:46 +0000 (20:37 +0100)]
resourceloader: Remove false return from Context::getUserObj()
Most code paths already wrongly assume this behaviour.
This patch removes the now-redundant check from the two modules
that did account for it.
Change-Id: Ic85258f184db8aa68e19d8e667e396d08ee5de0c
Brian Wolff [Tue, 10 May 2016 19:38:27 +0000 (15:38 -0400)]
use slave for row estimate in updateCollation.php
jcrespo reported a lag spike at the very beginning of running this
script. I'm guessing that's due to counting how many rows in
categorylinks to give the progress bar. Since we only need a
rough estimate for the progress meter, make that query run on
a slave. Also add a wfWaitForSlaves() immediately after it for
good measure.
Bug: T58041
Change-Id: I3cba392f0013fcb2ef86803632e2d9b1b88b3b29
Brian Wolff [Tue, 10 May 2016 19:30:03 +0000 (15:30 -0400)]
Use STRAIGHT_JOIN on updateCollation.php per jcrespo
Was not using the right index on ruwiktionary
Bug: T58041
Change-Id: Ib55a2cdd7807a96df7076a1b54457dd4f74912ce
Aaron Schulz [Fri, 6 May 2016 22:25:36 +0000 (15:25 -0700)]
Add WebRequest methods for determining "safe" requests
* This is useful for logic that decides what DB (master/slave) to use
based on the nature of the web request. It could also be used to
enforce clear read/write distinctions via exceptions if DB_MASTER
is misused.
* Also fixed two IDEA errors while editing this class.
Bug: T134608
Change-Id: I43f4bc06c19d823d7d1ffd9cee8bbe60563c7f82
Timo Tijhof [Tue, 10 May 2016 18:13:29 +0000 (19:13 +0100)]
resourceloader: Remove unused Module::setOrigin() method
Follows-up
da36f65433d which added this method with intent to use in
ResourceLoader::register(). However, the feature was redesigned to
not need this and the method was left behind.
Change-Id: I5ebc93805d0df6605bec94094bcd4eb2b70ff18d
jenkins-bot [Tue, 10 May 2016 13:19:44 +0000 (13:19 +0000)]
Merge "Avoid master queries on GET in ProtectionForm"
jenkins-bot [Tue, 10 May 2016 13:06:14 +0000 (13:06 +0000)]
Merge "Remove DELETE_SOURCE flag from FileRepo store()/storeBatch()"
jenkins-bot [Tue, 10 May 2016 12:59:42 +0000 (12:59 +0000)]
Merge "Make recent changes update jobs use configurable $wgUpdateRowsPerQuery"
jenkins-bot [Tue, 10 May 2016 12:38:52 +0000 (12:38 +0000)]
Merge "Fix executeTiming statsd metrics"
jenkins-bot [Tue, 10 May 2016 12:38:38 +0000 (12:38 +0000)]
Merge "Add Czech aliases to most special pages"
jenkins-bot [Tue, 10 May 2016 12:33:23 +0000 (12:33 +0000)]
Merge "Avoid spamming the duplicate key fetch log in BagOStuff::merge()"
jenkins-bot [Tue, 10 May 2016 12:26:55 +0000 (12:26 +0000)]
Merge "Remove wfDebug() from Revision::loadText()"
jenkins-bot [Tue, 10 May 2016 12:26:51 +0000 (12:26 +0000)]
Merge "Remove wfDebug() from getInterwikiCacheEntry()"
matejsuchanek [Fri, 22 Apr 2016 07:08:15 +0000 (09:08 +0200)]
Add Czech aliases to most special pages
Change-Id: Ie3ea6eb24ca26fc59009bc52676d504a8252533a
addshore [Wed, 4 May 2016 16:14:24 +0000 (17:14 +0100)]
Add wfDeprecated calls to WatchedItem
Depends-On: Ifd6d46596ea273da73c3097aaff1487860bd6424
Depends-On: Ib9502202be3c73f9d3f253b310f35901e1c88cd4
Depends-On: I69d40b48ad3ab126e01b1103ec82b531f2674ced
Change-Id: Ib26ecd3a5f2d98472da78f2cd382153f27cb350b
Aaron Schulz [Tue, 10 May 2016 05:42:07 +0000 (22:42 -0700)]
Remove a wfDebug() from File::transform()
This is uses a fair amount of time according to flamegraphs.
Change-Id: Iff31fb942b9589f91ec7c0501a248e63bc643d8c
Aaron Schulz [Tue, 10 May 2016 05:40:31 +0000 (22:40 -0700)]
Remove wfDebug() from getInterwikiCacheEntry()
This is uses a fair amount of time according to flamegraphs.
Change-Id: I178a590ab5de2f6fb9366ad59434d8b27dad710d
Aaron Schulz [Tue, 10 May 2016 05:37:50 +0000 (22:37 -0700)]
Remove wfDebug() from Revision::loadText()
This is uses a fair amount of time according to flamegraphs.
Change-Id: I598f98dd0e2232ac9741585c14096e763dcab91e
Aaron Schulz [Tue, 10 May 2016 05:12:38 +0000 (22:12 -0700)]
Avoid master queries on GET in ProtectionForm
Bug: T92357
Change-Id: I58c5e793164faaafeea45ec5e986edcc7537ccab
jenkins-bot [Tue, 10 May 2016 04:13:13 +0000 (04:13 +0000)]
Merge "BlockLevelPass: minor changes due to initial code review"
jenkins-bot [Tue, 10 May 2016 04:10:11 +0000 (04:10 +0000)]
Merge "Split out doBlockLevels() into its own class"
jenkins-bot [Tue, 10 May 2016 00:15:58 +0000 (00:15 +0000)]
Merge "Include type in hashKeyIntoSlots()"
Aaron Schulz [Tue, 3 May 2016 10:53:06 +0000 (03:53 -0700)]
Include type in hashKeyIntoSlots()
Otherwise, all pool types that use slots will collide
due to the slotted keys not using a type prefix.
Bug: T134144
Change-Id: Ib367fedf2cfb7fecc290206e69e0d105276e96e6
Bartosz Dziewoński [Mon, 9 May 2016 22:04:15 +0000 (00:04 +0200)]
mw.widgets.CategoryCapsuleItemWidget: Handle non-English foreign wikis
To be precise: when the language of the foreign wiki is different than
the language of the local wiki, and it's not English, things go bad
when we're checking for page existence (to display blue/red link).
Just assume that any namespace-like prefix is the 'Category' namespace.
This is a horrible hack, but it's better than throwing exceptions.
This doesn't fix the fact that suggestions in mw.widgets.CategorySelector
are missing, but that isn't causing exceptions, so it can wait.
Change-Id: I3ed11a9d7a1d87c0f43c0a988fe4a8db5b8a907c
jenkins-bot [Mon, 9 May 2016 20:31:52 +0000 (20:31 +0000)]
Merge "Add tests for ApiQueryWatchlist"
Translation updater bot [Mon, 9 May 2016 19:54:07 +0000 (21:54 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ia71d910e0558caf3db8e82c06e9c0555c721a440
Timo Tijhof [Tue, 19 Apr 2016 21:27:22 +0000 (22:27 +0100)]
collation: Refactor getFirstLetterData() cache handling
* Factor out fetchFirstLetterData() as a separate method.
* Move 'version' into the key instead of checking afterwards.
* Use getWithSetCallback() for the cache handling.
(Depends on version being in the key).
Change-Id: I15bddf5d1dabcdcef47a938447ba59436bd8a294
jenkins-bot [Mon, 9 May 2016 16:04:29 +0000 (16:04 +0000)]
Merge "mediawiki.api: Make the result promise of #postWithToken abortable"
jenkins-bot [Mon, 9 May 2016 15:22:06 +0000 (15:22 +0000)]
Merge "Use better styles for fake button in installer"
Leszek Manicki [Thu, 31 Mar 2016 14:01:53 +0000 (16:01 +0200)]
Add tests for ApiQueryWatchlist
Note: This change does not add tests for deleted revision/log data
(comment, action, user). These should be added in a follow up.
Change-Id: Ia76c39134564c477aa46ccb7b6595173410b0251
jenkins-bot [Sun, 8 May 2016 23:01:08 +0000 (23:01 +0000)]
Merge "Convert Special:Activeusers to use OOUI"