jenkins-bot [Fri, 29 Mar 2019 17:32:06 +0000 (17:32 +0000)]
Merge "objectcache: remove messy inheritence from APCBagOStuff in APCUBagOStuff"
jenkins-bot [Fri, 29 Mar 2019 16:33:55 +0000 (16:33 +0000)]
Merge "Allow extensions to add params to the update.php maintenance script"
jenkins-bot [Fri, 29 Mar 2019 15:58:50 +0000 (15:58 +0000)]
Merge "RecentChanges style modules should be "skinnable""
jdlrobson [Wed, 27 Mar 2019 22:52:29 +0000 (15:52 -0700)]
Restore #mw-history-search id on history action fieldset
Change-Id: I3551667b1f64a3cd9227b07df2a215ccb701ea5d
jenkins-bot [Fri, 29 Mar 2019 14:53:28 +0000 (14:53 +0000)]
Merge "Fix flaky rollback browser test"
tzhelyazkova [Fri, 29 Mar 2019 14:30:31 +0000 (15:30 +0100)]
Fix flaky rollback browser test
Bug: T219440
Change-Id: I58c21494201d4fea738a9e9e007faf272e89c6e5
Bartosz Dziewoński [Fri, 29 Mar 2019 12:26:30 +0000 (13:26 +0100)]
HistoryAction: Fix double-escaping
Change-Id: I8a1da7c07e1d90098868122904afa584d4df3d26
Thiemo Kreuz [Thu, 28 Feb 2019 11:13:49 +0000 (12:13 +0100)]
maintenance: Deprecate Maintenance::hasArg/getArg with no param
Benefit of keeping the parameter optional:
- In maintenance scripts that really only have one parameter, it's a
little more convenient to be able to ask for *the* parameter via an
empty getArg().
Disadvantages:
- It's unclear what getArg() means when there is no indication *which*
argument the code asks for. This might as well return the last
argument, or an array of all arguments.
- In scripts with two or more arguments, it's confusing to see
getArg( 1 ) next to an empty getArg().
- The methods are more complex and a bit more complicated to use with
the extra feature of this parameter being optional. Users need to
look up what the default is to be able to use it safely.
Change-Id: I22a43bfdfc0f0c9ffdb468c13aba73b888d1f15e
Aaron Schulz [Fri, 29 Mar 2019 08:22:22 +0000 (01:22 -0700)]
filerepo: only trigger maybeUpgradeRow() on action=purge
Bug: T179760
Change-Id: I36ca7517702d0c2dfbcedd4d2c132cebdce7442c
jenkins-bot [Fri, 29 Mar 2019 08:31:24 +0000 (08:31 +0000)]
Merge "Reword 'right-purge'"
Aaron Schulz [Fri, 29 Mar 2019 03:47:09 +0000 (20:47 -0700)]
Update DeferredUpdates::enqueueUpdates() to look for the DB domain
Change-Id: I2c786eba61ff36a9e0e2d605aa3108c9c8569063
jenkins-bot [Fri, 29 Mar 2019 03:35:38 +0000 (03:35 +0000)]
Merge "resourceloader: Improve test cases for ClientHtml"
jenkins-bot [Fri, 29 Mar 2019 03:34:12 +0000 (03:34 +0000)]
Merge "resourceloader: Move registering of custom sources to ServiceWiring"
jenkins-bot [Fri, 29 Mar 2019 02:57:03 +0000 (02:57 +0000)]
Merge "rdbms: add another null db/schema sanity check to DatabaseDomain"
Aaron Schulz [Fri, 29 Mar 2019 02:39:03 +0000 (19:39 -0700)]
objectcache: Remove hacky testMerge_fork() method in BagOStuffTest
This method easily fails due to use of the same resource in each
thread after calling pcntl_fork(). This can cause thread-safety
problems like mysqli errors, which in turn make tests fail.
Change-Id: I4ff3657940c1d1cdad58bafb7449bdd0182cbe56
Aaron Schulz [Fri, 29 Mar 2019 02:38:13 +0000 (19:38 -0700)]
objectcache: remove messy inheritence from APCBagOStuff in APCUBagOStuff
Also make sure they always use PHP serialization to avoid CAS token problems
and bugs in the custom pecl extension serializers.
Change-Id: I43cef97ca4ac0f0cc21b65ba73d1887ed92e157f
Aaron Schulz [Thu, 28 Mar 2019 23:04:59 +0000 (16:04 -0700)]
rdbms: add another null db/schema sanity check to DatabaseDomain
Change-Id: Id75a47a3dee97b43c586faf06208dffcc30c9e6e
Aaron Schulz [Fri, 29 Mar 2019 01:54:29 +0000 (18:54 -0700)]
Make Job::hasExecutionFlag() actually work
Change-Id: I7d32edd5913e12a3380ca9f7f5a318e1682725bf
Timo Tijhof [Fri, 29 Mar 2019 01:45:33 +0000 (01:45 +0000)]
resourceloader: Improve test cases for ClientHtml
Change-Id: Ia10f212267d881ff4dec3eca3119f4bd9090c7de
Timo Tijhof [Fri, 29 Mar 2019 01:21:18 +0000 (01:21 +0000)]
resourceloader: Move registering of custom sources to ServiceWiring
Remove the now-redundant mocking of this configuration from various
test classes.
Bug: T32956
Change-Id: If90a10a76b8289c4ba707382ac915441c17d831f
Aaron Schulz [Fri, 29 Mar 2019 01:06:59 +0000 (18:06 -0700)]
Avoid calling setTransactionTicket() on a non-DataUpdate for sanity
Change-Id: Idbdb8bb2b8d065c8c86308ef8964e64fcd8dc7fb
jenkins-bot [Fri, 29 Mar 2019 00:23:47 +0000 (00:23 +0000)]
Merge "DateInputWidget: Remove focus reflow"
jenkins-bot [Fri, 29 Mar 2019 00:12:14 +0000 (00:12 +0000)]
Merge "DRY up rev link generation in History and Contributions"
jenkins-bot [Fri, 29 Mar 2019 00:11:32 +0000 (00:11 +0000)]
Merge "Compare selected revisions on history page is marked with a class"
jenkins-bot [Thu, 28 Mar 2019 23:51:03 +0000 (23:51 +0000)]
Merge "rdbms: move some files under rdbms/database to subfolders"
jenkins-bot [Thu, 28 Mar 2019 23:50:54 +0000 (23:50 +0000)]
Merge "Make HistoryAction form use OOUI"
jdlrobson [Thu, 28 Mar 2019 23:45:33 +0000 (16:45 -0700)]
RecentChanges style modules should be "skinnable"
We will need more control in skins like Minerva with these styles
prior to enabling RecentChanges in mobile.
Setting them as default skin styles is backwards compatible but
allows skins to customise these as needed
Change-Id: I5f63ade024bf03e9b470393b6d8a166a9bd41845
jenkins-bot [Thu, 28 Mar 2019 23:35:11 +0000 (23:35 +0000)]
Merge "HISTORY: Add MediaWiki 1.2 post-release change notes"
jenkins-bot [Thu, 28 Mar 2019 23:35:03 +0000 (23:35 +0000)]
Merge "HISTORY: Add MediaWiki 1.1 post-release change notes"
jdlrobson [Tue, 26 Mar 2019 16:47:08 +0000 (09:47 -0700)]
DRY up rev link generation in History and Contributions
ContribsPager and HistoryPager both duplicate efforts.
Instead move this code into a new static function inside
ChangesList that is shared between the two.
Bug: T216420
Change-Id: I0025d2e515d086b60670bd3f37307caac8d662a2
Aaron Schulz [Tue, 26 Mar 2019 05:39:24 +0000 (22:39 -0700)]
rdbms: move some files under rdbms/database to subfolders
Change-Id: I627398d2cfe9fda93a16f94a94e75cf5f8833613
Volker E [Thu, 28 Mar 2019 23:08:22 +0000 (16:08 -0700)]
DateInputWidget: Remove focus reflow
Also removing unnecessary properties already inherited from
TextInputWidget or obsolete top and bottom `margin`s.
Change-Id: I1b5beee6553a4b16c777c36155526a8fea170d47
jenkins-bot [Thu, 28 Mar 2019 22:45:54 +0000 (22:45 +0000)]
Merge "Recalculate user default options for each test"
Nikita Rana [Thu, 28 Mar 2019 18:54:11 +0000 (00:24 +0530)]
HISTORY: Add MediaWiki 1.2 post-release change notes
Add MediaWiki 1.2 post-release change notes, sourced from
https://www.mediawiki.org/wiki/Release_notes/1.2
Bug: T213714
Change-Id: I3a2cfdd9942832f9f708d428ffc88a9d50b935a2
Nikita Rana [Thu, 28 Mar 2019 19:03:51 +0000 (00:33 +0530)]
HISTORY: Add MediaWiki 1.1 post-release change notes
Add MediaWiki 1.1 post-release change notes, sourced from
https://www.mediawiki.org/wiki/Release_notes/1.1
Bug: T213714
Change-Id: If443cbd6ee67f5e6e311fd6a7c8899b9874061f2
jenkins-bot [Thu, 28 Mar 2019 22:34:14 +0000 (22:34 +0000)]
Merge "HISTORY: Add pre-MediaWiki 1.1.0 post-release change notes"
jenkins-bot [Thu, 28 Mar 2019 22:30:17 +0000 (22:30 +0000)]
Merge "Enable mediawiki.checkboxtoggle on mobile"
jdlrobson [Thu, 28 Mar 2019 22:07:36 +0000 (15:07 -0700)]
Enable mediawiki.checkboxtoggle on mobile
There is no reason for this to be excluded by the targets
system and it is needed for the history page on mobile
Change-Id: I3edd053372c0754d684ed3091ca43d40cee26165
jdlrobson [Thu, 28 Mar 2019 22:04:24 +0000 (15:04 -0700)]
Compare selected revisions on history page is marked with a class
Help distinguish the controls for comparing revisions from the rest
of the content in the history page.
Change-Id: Ief8eb8a414c0ff2876f576f296145a94c5636962
jdlrobson [Tue, 26 Mar 2019 22:52:13 +0000 (15:52 -0700)]
Make HistoryAction form use OOUI
The newly OOUI-ified form now gives editors more control over
their date range, allowing them to search before a given day
as well as month and year by using the DateTimeInputWidget.
Changes of note:
Previously the fieldset element had id `#mw-history-search` applied,
but this is no longer the case.
Bug: T107069
Change-Id: Iccf728c159c169f6c623eb76b45f54be30660c0b
jenkins-bot [Thu, 28 Mar 2019 21:42:50 +0000 (21:42 +0000)]
Merge "Move PrefixSearch classes to own files"
jenkins-bot [Thu, 28 Mar 2019 21:17:09 +0000 (21:17 +0000)]
Merge "Map WikiMap treat a schema of "dbo" similar to "mediawiki" to account for mssql""
Krinkle [Thu, 28 Mar 2019 20:37:42 +0000 (20:37 +0000)]
Merge "resourceloader: Improve test cases for MessageBlobStore"
jenkins-bot [Thu, 28 Mar 2019 20:36:29 +0000 (20:36 +0000)]
Merge "Subtitle is wrapped in a DIV"
jdlrobson [Thu, 28 Mar 2019 20:14:49 +0000 (13:14 -0700)]
Subtitle is wrapped in a DIV
Skins should be able to style this as they wish. This wraps the
link and text in an element so it can be styled as a component
of the page.
Change-Id: I34bd361e0384f6b127ca0ac1e06d3298a2a2c457
jenkins-bot [Thu, 28 Mar 2019 20:12:38 +0000 (20:12 +0000)]
Merge "Change 'mediawiki.Title' to use 'packageFiles'"
jenkins-bot [Thu, 28 Mar 2019 19:51:22 +0000 (19:51 +0000)]
Merge "Remove deprecated wfSplitWikiID() function"
Bartosz Dziewoński [Thu, 28 Mar 2019 19:40:47 +0000 (20:40 +0100)]
Change 'mediawiki.Title' to use 'packageFiles'
Seems neater.
Change-Id: Ib9a64f1b2efcc224e2d6eaf306eefa9527b6a2dd
jenkins-bot [Thu, 28 Mar 2019 19:40:39 +0000 (19:40 +0000)]
Merge "Remove jquery.ui.spinner"
jenkins-bot [Thu, 28 Mar 2019 19:40:20 +0000 (19:40 +0000)]
Merge "rdbms: add IDatabase::UNION_* constants for readability"
jenkins-bot [Thu, 28 Mar 2019 19:20:22 +0000 (19:20 +0000)]
Merge "Title: Add scripts for generating/updating phpCharToUpper.js"
jenkins-bot [Thu, 28 Mar 2019 19:20:14 +0000 (19:20 +0000)]
Merge "History styles marked as available on mobile"
Aaron Schulz [Tue, 26 Mar 2019 22:03:45 +0000 (15:03 -0700)]
Remove deprecated wfSplitWikiID() function
Change-Id: I87c5532effde9d433aef537228aa804f6d751f9b
Nikita Rana [Thu, 28 Mar 2019 19:17:36 +0000 (00:47 +0530)]
HISTORY: Add pre-MediaWiki 1.1.0 post-release change notes
Add pre-MediaWiki 1.1.0 post-release change notes, sourced from
https://www.mediawiki.org/wiki/Release_notes/pre-1.1.0
Bug: T213714
Change-Id: I72f7cfd7f35ded969da6e65108a52db682570ed6
jenkins-bot [Thu, 28 Mar 2019 18:58:50 +0000 (18:58 +0000)]
Merge "Separate content from presentation for user tools list"
Ed Sanders [Wed, 27 Mar 2019 15:03:55 +0000 (15:03 +0000)]
Remove jquery.ui.spinner
Bug: T219403
Change-Id: Ifed9074cb49d146b4cd7e366bfc028854daf027b
Aaron Schulz [Thu, 28 Mar 2019 18:41:47 +0000 (11:41 -0700)]
Map WikiMap treat a schema of "dbo" similar to "mediawiki" to account for mssql"
Change-Id: I07ae057dffc2c7203cde2c24ebb27067338b5096
jenkins-bot [Thu, 28 Mar 2019 18:38:12 +0000 (18:38 +0000)]
Merge "HISTORY: Add MediaWiki 1.3 post-release change notes"
Erik Bernhardson [Wed, 27 Mar 2019 23:55:09 +0000 (16:55 -0700)]
Recalculate user default options for each test
Statically caching the default user options means tests that change
the inputs, and expect to see the result in their code, are foiled
and the reasons shrowded in mystery. Recalculate default user options
on a per test basis.
Change-Id: I9075cc9c05546a857850e8b4b4dea9f51873451b
jenkins-bot [Thu, 28 Mar 2019 18:07:15 +0000 (18:07 +0000)]
Merge "Make ApiStashEdit::pruneExcessStashedEntries use user name"
Aaron Schulz [Thu, 28 Mar 2019 17:58:42 +0000 (10:58 -0700)]
rdbms: add IDatabase::UNION_* constants for readability
Change-Id: I0d39242d1c4bd8c2236f0b0cd21eb3f604b7d2bd
jenkins-bot [Thu, 28 Mar 2019 17:57:46 +0000 (17:57 +0000)]
Merge "objectcache: remove some unneeded code from BagOStuff::mergeViaCas"
jenkins-bot [Thu, 28 Mar 2019 17:56:14 +0000 (17:56 +0000)]
Merge "objectcache: rename SET_DELAY_HIGH_SEC => SET_DELAY_HIGH_MS and lower it"
jdlrobson [Thu, 28 Mar 2019 17:54:59 +0000 (10:54 -0700)]
History styles marked as available on mobile
The history page is currently overriden on the mobile site but
this will soon change. Making this module accessible is going to
be important!
Bug: T219349
Change-Id: Ia4232060325daeb16a867d9a55a3a6044088a1fb
jenkins-bot [Thu, 28 Mar 2019 17:37:09 +0000 (17:37 +0000)]
Merge "objectcache: make WANObjectCache prefer ADD over GET/CAS for misses"
jdlrobson [Wed, 27 Mar 2019 20:16:59 +0000 (13:16 -0700)]
Separate content from presentation for user tools list
Change-Id: Iec2cf0a4a9a0384fa01e2421a0b6f6ee58a3e8d3
jenkins-bot [Thu, 28 Mar 2019 17:05:56 +0000 (17:05 +0000)]
Merge "specials: Fix incomplete documentation of execute() param"
jenkins-bot [Thu, 28 Mar 2019 17:05:11 +0000 (17:05 +0000)]
Merge "Replace strlen() calls with strict string comparisons"
Nikita Rana [Thu, 28 Mar 2019 08:27:02 +0000 (13:57 +0530)]
HISTORY: Add MediaWiki 1.3 post-release change notes
Add MediaWiki 1.3 post-release change notes, sourced from
https://www.mediawiki.org/wiki/Release_notes/1.3
Bug: T213714
Change-Id: I197d52a7b7a685b6fcb9e751983a5c11d9ed96ad
Thiemo Kreuz [Thu, 28 Mar 2019 11:24:26 +0000 (12:24 +0100)]
specials: Fix incomplete documentation of execute() param
The parameter passed to the execute() method of each special page can
be null, and usually is. In some of these files this fact was already
mentioned in the comment, but not listed as a type.
In this patch I also remove comments that do not explain much. Saying
that the execute() method of a special page "executes a special page" or
is the "main entry point to a special page" is not super helpful. That's
usually what the documentation in the parent class shoudl explain.
We can add @inheritDoc tags in all these cases if you prefer. Please
tell me.
Change-Id: I1d811ab0c6d5c956e36f6a74120a425abc4332e6
James D. Forrester [Thu, 28 Mar 2019 14:52:00 +0000 (07:52 -0700)]
resources: Allow mediawiki.action.edit.editWarning on mobile target
Bug: T219476
Change-Id: Ifa745d937b954647dfde2b185064cd86a3cc8320
Thiemo Kreuz [Wed, 27 Mar 2019 10:36:51 +0000 (11:36 +0100)]
languages: Replace loop with array_pad()
Change-Id: Ia5159b44653f033d3db79094e46a0d94e1b1d01e
jenkins-bot [Thu, 28 Mar 2019 11:54:16 +0000 (11:54 +0000)]
Merge "profileinfo: Remove unused constructor call parameter"
jenkins-bot [Thu, 28 Mar 2019 11:40:37 +0000 (11:40 +0000)]
Merge "title: Rewrite Title::getBaseText() for performance/readability"
Thiemo Kreuz [Wed, 27 Mar 2019 10:13:08 +0000 (11:13 +0100)]
Replace strlen() calls with strict string comparisons
Note there is an important difference between the two ways to express
this: strlen() does a string cast, but the `=== ''` and `!== ''`
comparisons will only detect empty strings, but not null, false, or any
other falsy value that becomes an empty string when cast to be one.
I am only touching code where I'm sure the variable is guaranteed to be
a string.
This change is done because I find the strict comparisons much more
readable. The code does exactly one thing now, and no magic casts any
more.
Change-Id: I3e908a0c7c7b6c29b0e5a1414f2ba9062a215b93
Aaron Schulz [Thu, 28 Mar 2019 10:59:43 +0000 (03:59 -0700)]
objectcache: rename SET_DELAY_HIGH_SEC => SET_DELAY_HIGH_MS and lower it
Change-Id: I92a1e9a713f60288eb02bdea4881d104bdf7d0f5
jenkins-bot [Thu, 28 Mar 2019 10:55:48 +0000 (10:55 +0000)]
Merge "Move HistoryBlob classes to own files"
Aaron Schulz [Thu, 28 Mar 2019 03:09:06 +0000 (20:09 -0700)]
objectcache: make WANObjectCache prefer ADD over GET/CAS for misses
This avoids an extra cache query and also avoids I/O if another thread
already saved the value in the meantime, bloating the GET response.
Bug: T203786
Change-Id: I05539873f55d3254e2b9ecad0df158db1e6a1a1a
jenkins-bot [Thu, 28 Mar 2019 09:28:12 +0000 (09:28 +0000)]
Merge "Remove temporary rollback confirmation toggle"
jenkins-bot [Thu, 28 Mar 2019 06:04:53 +0000 (06:04 +0000)]
Merge "mw.widgets.DateInputWidget: Deactivate after blurring if focus was on calendar"
jenkins-bot [Thu, 28 Mar 2019 04:00:53 +0000 (04:00 +0000)]
Merge "Only show config-install-success on command line installer where it makes sense"
jenkins-bot [Thu, 28 Mar 2019 03:56:20 +0000 (03:56 +0000)]
Merge "Deprecate Block::isValid method"
jenkins-bot [Thu, 28 Mar 2019 03:31:17 +0000 (03:31 +0000)]
Merge "resourceloader: Improve test cases for DerivativeResourceLoaderContext"
jenkins-bot [Thu, 28 Mar 2019 03:13:38 +0000 (03:13 +0000)]
Merge "Change name of main page in Sardinian (sc)"
jenkins-bot [Thu, 28 Mar 2019 03:13:29 +0000 (03:13 +0000)]
Merge "Revert "Provide direct deprecation message for jquery.ui.spinner""
jenkins-bot [Thu, 28 Mar 2019 03:08:57 +0000 (03:08 +0000)]
Merge "Add namespace translation for N'Ko"
Jforrester [Tue, 26 Mar 2019 20:49:40 +0000 (20:49 +0000)]
Revert "Provide direct deprecation message for jquery.ui.spinner"
This reverts commit
5b812305da96b4acfade7feab5885580886bb0d3.
Reason for revert:
Everything about jQuery UI is terrible, including the naming of modules.
Change-Id: Ide2bb589a4af3b166c46bcd163e6269a80b6d5c0
Aaron Schulz [Thu, 28 Mar 2019 02:11:17 +0000 (19:11 -0700)]
objectcache: remove some unneeded code from BagOStuff::mergeViaCas
Change-Id: Ib92090fe4e1b1eb2c4f9e031f8476b24189392c8
Aaron Schulz [Thu, 28 Mar 2019 01:25:46 +0000 (18:25 -0700)]
Make ApiStashEdit::pruneExcessStashedEntries use user name
Follow up to
c334883309778
Change-Id: I35213d83a00b50bb469aab5bf8fbeb52239cff5e
jenkins-bot [Thu, 28 Mar 2019 00:46:55 +0000 (00:46 +0000)]
Merge "Annotate different parts of the contributions UI with classes"
jenkins-bot [Thu, 28 Mar 2019 00:43:22 +0000 (00:43 +0000)]
Merge "objectcache: fix changeTTL() in RedisBagOStuff for edge cases"
jdlrobson [Wed, 27 Mar 2019 18:31:39 +0000 (11:31 -0700)]
Annotate different parts of the contributions UI with classes
Distinguish the user tools (talk, block, block log etc)
from the pager navigation navigation bar so that skins can style
them.
Change-Id: I32950aa452347aabb8a37253bafc5f20d518c110
jenkins-bot [Thu, 28 Mar 2019 00:11:46 +0000 (00:11 +0000)]
Merge "objectcache: improve "version" documentation for WANObjectCache::getWithSetCallback()"
Aaron Schulz [Tue, 26 Mar 2019 22:54:31 +0000 (15:54 -0700)]
objectcache: fix changeTTL() in RedisBagOStuff for edge cases
Change-Id: I2bb4bf843c8de8cefaf4188a8866ae51a28bbf71
Timo Tijhof [Wed, 27 Mar 2019 20:23:02 +0000 (20:23 +0000)]
resourceloader: Improve test cases for MessageBlobStore
Move source code to includes/resourceloader to match
test case. This is part of ResourceLoader and not meant
to be used elsewhere.
Merge two similar test cases for getting blobs and fetching
messages which were doing the same thing.
Rewrite the test names to be a better reflection of the stories
they test, add comments for why, and re-order them to put related
tests together.
Move test-utilities to the bottom and make them actually private.
Change-Id: I7a437eebf3ba6a722e286dfe77c2f9fe49ad222f
jenkins-bot [Wed, 27 Mar 2019 23:19:22 +0000 (23:19 +0000)]
Merge "Make LinksDeletionUpdate a subclass of LinksUpdate"
jenkins-bot [Wed, 27 Mar 2019 23:09:41 +0000 (23:09 +0000)]
Merge "SpecialPreferences: Use real OOUI PHP layouts"
Thalia [Wed, 27 Mar 2019 16:36:30 +0000 (16:36 +0000)]
Deprecate Block::isValid method
Block::isValid checks whether the block target equals null. It seems to
have been unused since commit
40a926ab2c566052eefd08c36f246d6b5321afc5.
It was called from Block::newFromDB, which was removed in favour of
Block::newFromTarget, which has its own logic for checking the target.
Since the method is public, it should be deprecated before removal.
Change-Id: Ibcfb377a382f55e80933836960be7e3589908390
daniel [Tue, 5 Mar 2019 21:07:13 +0000 (22:07 +0100)]
Make LinksDeletionUpdate a subclass of LinksUpdate
This is proposed as an alternative to I0b636dc144f34bb.
The idea is to ensure that page deletion causes the exact same
database updates to be performed, and the exact same hooks to
be fired, as a page edit.
Bug: T216249
Change-Id: I665320e27da8edc2867b47d181cc0f324e75d102
Ed Sanders [Fri, 22 Mar 2019 15:11:17 +0000 (15:11 +0000)]
SpecialPreferences: Use real OOUI PHP layouts
Change-Id: Id8c798c0d5be07afd1c4d6584af22c54c3465621