lhc/web/wiklou.git
7 years agoRename OpenSearch qiprofile parameter back to profile
Erik Bernhardson [Thu, 28 Jul 2016 17:15:07 +0000 (10:15 -0700)]
Rename OpenSearch qiprofile parameter back to profile

In I6f987db this parameter was inadvertantly renamed to qiprofile. The
qiprofile is something different, and is also a BC break. The BC break is
pretty minor, for a randomly chosen day this looks to be used 157 times
out of 28.7M requests, but since this really isn't a qiprofile rename
it back to what it was.

Change-Id: I1cc07945888c15ea4b4c9596eea447b706606fae

7 years agoUse isset in WikiPage prepareContentForEdit for newContent
addshore [Thu, 28 Jul 2016 16:22:05 +0000 (17:22 +0100)]
Use isset in WikiPage prepareContentForEdit for newContent

This will stop the following:

Undefined property: stdClass::$newContent in
includes/page/WikiPage.php on line 2056

Bug: T75474
Change-Id: I1bc840faff1b4dc1444434b4edec223950bc6eb1

7 years agoMerge "Fix Undefined variable issue in ApiQueryUserContributions"
jenkins-bot [Thu, 28 Jul 2016 13:37:09 +0000 (13:37 +0000)]
Merge "Fix Undefined variable issue in ApiQueryUserContributions"

7 years agoMerge "Remove missed WatchedItem::resetNotificationTimestamp in test"
jenkins-bot [Thu, 28 Jul 2016 10:22:59 +0000 (10:22 +0000)]
Merge "Remove missed WatchedItem::resetNotificationTimestamp in test"

7 years agoRemove missed WatchedItem::resetNotificationTimestamp in test
addshore [Thu, 28 Jul 2016 08:56:05 +0000 (09:56 +0100)]
Remove missed WatchedItem::resetNotificationTimestamp in test

Change-Id: I3ece74fecd55f248025d9c10aaf1960d5cd3fd7a

7 years agoMerge "Use display name in category page subheadings if provided"
jenkins-bot [Thu, 28 Jul 2016 03:30:55 +0000 (03:30 +0000)]
Merge "Use display name in category page subheadings if provided"

7 years agoFix Undefined variable issue in ApiQueryUserContributions
Sébastien Santoro [Thu, 28 Jul 2016 00:17:33 +0000 (00:17 +0000)]
Fix Undefined variable issue in ApiQueryUserContributions

Some ApiQueryUserContributions::prepareQuery code paths don't define
the $index array, but try to use it anyway.

That raises the following notice:
     Undefined variable: index
     in …/includes/api/ApiQueryUserContributions.php on line 340

This commit ensures we only try to use the variable when needed.

Bug: T141497
Change-Id: Ib9c038b84219bc1886139cb079a33aba74bc5220

7 years agoMerge "Improve WikiMap::getWikiReferenceFromWgConf()"
jenkins-bot [Wed, 27 Jul 2016 23:33:27 +0000 (23:33 +0000)]
Merge "Improve WikiMap::getWikiReferenceFromWgConf()"

7 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 27 Jul 2016 20:10:57 +0000 (22:10 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ia932678049b7bcd615d9c1e74490f6014e92738b

7 years agoMerge "Remove AutoLoader::loadClass()"
jenkins-bot [Wed, 27 Jul 2016 18:24:41 +0000 (18:24 +0000)]
Merge "Remove AutoLoader::loadClass()"

7 years agoMerge "Don't run the non-Tidy "bug 2702" hack unless Tidy is really missing"
jenkins-bot [Wed, 27 Jul 2016 18:10:33 +0000 (18:10 +0000)]
Merge "Don't run the non-Tidy "bug 2702" hack unless Tidy is really missing"

7 years agoMerge "Adding support for numeric collation when using UCA collations"
jenkins-bot [Wed, 27 Jul 2016 14:54:48 +0000 (14:54 +0000)]
Merge "Adding support for numeric collation when using UCA collations"

7 years agoMerge "Push common search api parameters into SearchApi class"
jenkins-bot [Wed, 27 Jul 2016 09:18:33 +0000 (09:18 +0000)]
Merge "Push common search api parameters into SearchApi class"

7 years agoDon't run the non-Tidy "bug 2702" hack unless Tidy is really missing
Tim Starling [Thu, 7 Jul 2016 23:42:50 +0000 (09:42 +1000)]
Don't run the non-Tidy "bug 2702" hack unless Tidy is really missing

We have two hacks which are used when Tidy is not available: one in
Sanitizer::removeHTMLtags(), and the second here as a late Parser pass
equivalent to Tidy itself. But the Sanitizer one was enabled only if
MWTidy::isEnabled() returned false, whereas the Parser one was enabled
also when tidy was disabled in ParserOptions. This patch makes them both
consistent, it enables the bug 2702 hack only when MWTidy::isEnabled()
returns false, and when Tidy is disabled in parser options, the output
is simply passed through.

This allows tidying to be done separately on the ParserOutput, as is
required by the proposed ParserMigration extension (I24d0776a933fa3f).

Eventually the bug 2702 hack will be removed in favour of a pure-PHP
HTML 5 parser, but it looks like it is too early for that.

Change-Id: I94be6c9dec531c23ef80cb36732243bd6858bf22

7 years agoRemove web-request usages of deadlockLoop()
Aaron Schulz [Wed, 27 Jul 2016 01:44:41 +0000 (18:44 -0700)]
Remove web-request usages of deadlockLoop()

Add comment discouraging use of the method. There are no problems
with deadlocks/timeouts in these code paths according to WMF logs.

Change-Id: I5b21cc423df584efa881361063000e01932cc2ea

7 years agoMerge "Make revision deletion acquire file locks to avoid races"
jenkins-bot [Wed, 27 Jul 2016 00:47:03 +0000 (00:47 +0000)]
Merge "Make revision deletion acquire file locks to avoid races"

7 years agoMerge "Make onTransactionIdle() safer for multi-DB commits"
jenkins-bot [Wed, 27 Jul 2016 00:46:59 +0000 (00:46 +0000)]
Merge "Make onTransactionIdle() safer for multi-DB commits"

7 years agoMerge "Only pretty-print the parser report JS vars"
jenkins-bot [Wed, 27 Jul 2016 00:37:23 +0000 (00:37 +0000)]
Merge "Only pretty-print the parser report JS vars"

7 years agoAdding support for numeric collation when using UCA collations
Kaldari [Fri, 15 Jul 2016 03:47:52 +0000 (20:47 -0700)]
Adding support for numeric collation when using UCA collations

To use, add '-u-kn' to the end of a collation name and set it as
the value for $wgCategoryCollation.

Bug: T8948
Change-Id: Ica7908daf80624fa2648127114d01665e96234c0

7 years agoOnly pretty-print the parser report JS vars
Aaron Schulz [Tue, 26 Jul 2016 20:29:17 +0000 (13:29 -0700)]
Only pretty-print the parser report JS vars

Follow-up to b7c4c8717f9.

Change-Id: I3030df4ed890d9d20daca31fbd33c6d9db91b94c

7 years agoMake revision deletion acquire file locks to avoid races
Aaron Schulz [Thu, 21 Jul 2016 17:33:26 +0000 (10:33 -0700)]
Make revision deletion acquire file locks to avoid races

Also made RevisionListBase an Iterator to avoid ugly loops here

Change-Id: I40d2d8cf63df95c59d0e1275e3ec45aff238e1cb

7 years agoMake onTransactionIdle() safer for multi-DB commits
Aaron Schulz [Sat, 23 Jul 2016 05:37:13 +0000 (22:37 -0700)]
Make onTransactionIdle() safer for multi-DB commits

* For DBs managed by LBFactory, they will trigger after the COMMIT
  step finishes for all DBs.
* Make commitAll() respect the same logic as commitMasterChanges().
* Add LoadBalancer::forEachOpenMasterConnection() convenience method.
* Rename logMultiDbTransaction() to less confusing logIfMultiDbTransaction().
* Various other small code cleanups.

Change-Id: I6c9b40ba8b9e7600cce774f26b9c401e60fa8803

7 years agoMerge "Add comment to ChangesList::showCharacterDifference"
jenkins-bot [Tue, 26 Jul 2016 21:47:57 +0000 (21:47 +0000)]
Merge "Add comment to ChangesList::showCharacterDifference"

7 years agoClean up forEachOpenConnection() loop and use the method more
Aaron Schulz [Tue, 26 Jul 2016 02:39:26 +0000 (19:39 -0700)]
Clean up forEachOpenConnection() loop and use the method more

Change-Id: I431b68c763970101804e09ea6634480e1ba79cda

7 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 26 Jul 2016 20:21:21 +0000 (22:21 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I288d171b23b6376328c90c95409801c76147acf1

7 years agoMove NewPP limit report HTML comments to JS variables
Aaron Schulz [Mon, 18 Jul 2016 19:52:10 +0000 (12:52 -0700)]
Move NewPP limit report HTML comments to JS variables

* Instead of having messy code to create a hidden HTML
  comment of English strings at the bottom of the page,
  expose the structured data of the parse information
  to JS so tools can use it.
* Make makeConfigSetScript() use pretty output so these
  variables are also easy to read in "view source".
* Remove ParserLimitReportFormat hook, since the data
  is not formatted to HTML anymore.

Bug: T110763
Change-Id: I2783c46c6d80f828f9ecf5e71fc8f35910454582

7 years agoPush common search api parameters into SearchApi class
Erik Bernhardson [Thu, 2 Jun 2016 20:32:59 +0000 (13:32 -0700)]
Push common search api parameters into SearchApi class

We have a number of parameters that are pretty much the same between
these different search api's. Lets make them actually the same by
sharing the definitions, and then letting individual classes tweak them
as needed by removing the offset, or adjusting the max limits as
necessary.

Change-Id: I6f987db8ecb63dc943b4d2518bfe3703c677448e

7 years agoMerge "Don't magically make MediaWiki\Widget classes infusable"
jenkins-bot [Tue, 26 Jul 2016 15:22:12 +0000 (15:22 +0000)]
Merge "Don't magically make MediaWiki\Widget classes infusable"

7 years agoMark Linker::link() as @deprecated
Kunal Mehta [Tue, 12 Jul 2016 22:26:53 +0000 (15:26 -0700)]
Mark Linker::link() as @deprecated

...and add a link to the on-wiki LinkRenderer documentation to the
class. Actual wfDeprecated and replacements in all the uses to come in
follow-up patches.

Change-Id: I2fefb6c38153028d2cc68c13bc62434d3df69cd2

7 years agoMerge "Apply $wgMaxArticleSize more exactly"
jenkins-bot [Tue, 26 Jul 2016 12:34:18 +0000 (12:34 +0000)]
Merge "Apply $wgMaxArticleSize more exactly"

7 years agoMerge "API: Use rev_user when possible for list=usercontribs"
jenkins-bot [Tue, 26 Jul 2016 12:33:54 +0000 (12:33 +0000)]
Merge "API: Use rev_user when possible for list=usercontribs"

7 years agoMerge "Make importTextFiles.php work with wildcards on the Windows shell"
jenkins-bot [Tue, 26 Jul 2016 12:30:21 +0000 (12:30 +0000)]
Merge "Make importTextFiles.php work with wildcards on the Windows shell"

7 years agoMerge "WebRequest::getText(): Update more of the doc comment"
jenkins-bot [Tue, 26 Jul 2016 12:26:39 +0000 (12:26 +0000)]
Merge "WebRequest::getText(): Update more of the doc comment"

7 years agoMerge "mediawiki.htmlform: Remove deprecated $.fn.liveAndTestAtStart"
jenkins-bot [Tue, 26 Jul 2016 12:23:43 +0000 (12:23 +0000)]
Merge "mediawiki.htmlform: Remove deprecated $.fn.liveAndTestAtStart"

7 years agoMerge "syncFileBackend.php: ellapsed => elapsed"
jenkins-bot [Tue, 26 Jul 2016 12:20:25 +0000 (12:20 +0000)]
Merge "syncFileBackend.php: ellapsed => elapsed"

7 years agoMerge "SectionProfiler: Remove $profileOutCallback"
jenkins-bot [Tue, 26 Jul 2016 12:16:09 +0000 (12:16 +0000)]
Merge "SectionProfiler: Remove $profileOutCallback"

7 years agoMerge "Remove modulemessages from ApiParse and Output (deprecated in 1.26)"
jenkins-bot [Tue, 26 Jul 2016 12:15:22 +0000 (12:15 +0000)]
Merge "Remove modulemessages from ApiParse and Output (deprecated in 1.26)"

7 years agoMerge "Add MWTidy::factory()"
jenkins-bot [Tue, 26 Jul 2016 12:10:37 +0000 (12:10 +0000)]
Merge "Add MWTidy::factory()"

7 years agoDon't magically make MediaWiki\Widget classes infusable
Bartosz Dziewoński [Tue, 26 Jul 2016 11:56:47 +0000 (13:56 +0200)]
Don't magically make MediaWiki\Widget classes infusable

For consistency with how normal OOjs UI widgets behave.
Only one usage outside of HTMLForm needed updating. There
are no usages in extensions in Gerrit.

Change-Id: I9b5de86307a13ca7355b7541e8683e4d6a10431f

7 years agoRemove unused deprecated WatchedItem methods
addshore [Thu, 14 Jul 2016 12:48:10 +0000 (13:48 +0100)]
Remove unused deprecated WatchedItem methods

Not used in core or in any extensions on Gerrit

Change-Id: I10f0e98f52189f60480f5adb824a5cca9820d5f5

7 years agoRenamed MWCallableUpdate class file to match the class
Aaron Schulz [Tue, 26 Jul 2016 10:42:57 +0000 (03:42 -0700)]
Renamed MWCallableUpdate class file to match the class

Change-Id: Ia595cee94a696b83b00fe9f2a91b49bce51c08dd

7 years agoAdd MWTidy::factory()
Tim Starling [Tue, 26 Jul 2016 05:10:42 +0000 (15:10 +1000)]
Add MWTidy::factory()

A convenient factory function to eliminate code duplication in
ParserMigration's MigrationEditPage::tidyParserOutput().

Change-Id: I058912885025e7a9402912236c65c44e32ef036e

7 years agoMerge "Convert onTransactionIdle() callers to DeferredUpdate subclasses"
jenkins-bot [Tue, 26 Jul 2016 00:52:16 +0000 (00:52 +0000)]
Merge "Convert onTransactionIdle() callers to DeferredUpdate subclasses"

7 years agoMediaHandler: Fix @return for getHandler()
Kunal Mehta [Tue, 26 Jul 2016 00:27:24 +0000 (17:27 -0700)]
MediaHandler: Fix @return for getHandler()

Change-Id: I9373501e0055d0cddcb6c5bf72f5496ed22133c3

7 years agoConvert onTransactionIdle() callers to DeferredUpdate subclasses
Aaron Schulz [Thu, 21 Jul 2016 19:43:26 +0000 (12:43 -0700)]
Convert onTransactionIdle() callers to DeferredUpdate subclasses

* This puts the complex logic here after the commit step for
  all DBs, making the main multi-DB transaction more likely
  to be atomic. Previously, the idle callbacks could be hit
  bewteen DB commits.
* Enforce transactionality via AtomicSectionUpdate.
* Use $this instead of $that hacks for old PHP versions.

Change-Id: Idf7d54fdac6487f86907099680f5c1c4f5530b4e

7 years agoMerge "Update justinrainbow/json-schema in require-dev to ~1.6"
jenkins-bot [Mon, 25 Jul 2016 23:42:05 +0000 (23:42 +0000)]
Merge "Update justinrainbow/json-schema in require-dev to ~1.6"

7 years agoRemove modulemessages from ApiParse and Output (deprecated in 1.26)
Timo Tijhof [Mon, 25 Jul 2016 20:51:57 +0000 (21:51 +0100)]
Remove modulemessages from ApiParse and Output (deprecated in 1.26)

No uses of 'modulemessages', getModuleMessages() or addModuleMessages()
anywhere in Wikimedia Git.

Change-Id: I59420880f3545d1aabf9bcbea1e34b1475697d26

7 years agoMerge "Avoid use of DB rollback() in LocalFileMoveBatch"
jenkins-bot [Mon, 25 Jul 2016 22:59:17 +0000 (22:59 +0000)]
Merge "Avoid use of DB rollback() in LocalFileMoveBatch"

7 years agoregistration: Fix "config" schema validation
Kunal Mehta [Mon, 25 Jul 2016 22:36:12 +0000 (15:36 -0700)]
registration: Fix "config" schema validation

The "properties" field is only interpreted if the value is an object,
which was not being required. Add that missing type in, so
manifest_version 1 type config entries should fail.

Bug: T141289
Change-Id: Iffb084eb7a81a398a74370a1f9561198a88f5779

7 years agoAvoid use of DB rollback() in LocalFileMoveBatch
Aaron Schulz [Thu, 21 Jul 2016 06:17:25 +0000 (23:17 -0700)]
Avoid use of DB rollback() in LocalFileMoveBatch

* Verify the DB updates and bail before doing anything instead
  of relying on rollback() if something does not match up.
* Do the file copying before updating the DB so that there is
  nothing to rollback if they fail.
* Improved failCount in case the current version is missing.
  It should also reflect all the missing old versions.

Change-Id: Ie2d316548d8e5584cc69bb9f1425db108b05be5c

7 years agoCount edit conflicts for each namespace separately
addshore [Thu, 14 Jul 2016 15:23:14 +0000 (16:23 +0100)]
Count edit conflicts for each namespace separately

Bug: T140368
Change-Id: I5591f53063db32b2c74a2f74751d4af0ef5424d7

7 years agoAdd addition of 'maxarticlesize' in ApiQuerySiteinfo to RELEASE-NOTES
Florian [Sun, 3 Jul 2016 12:05:42 +0000 (14:05 +0200)]
Add addition of 'maxarticlesize' in ApiQuerySiteinfo to RELEASE-NOTES

Follows-up I25a4c1b9013f98e5b0a263a637c8b006dccfd5ad.

Change-Id: If3ffa6635e18e53a642ebaa0b93c4c265612299f

7 years agoMerge "Make onTransactionPreCommitOrIdle() atomic when immediate"
jenkins-bot [Mon, 25 Jul 2016 20:31:00 +0000 (20:31 +0000)]
Merge "Make onTransactionPreCommitOrIdle() atomic when immediate"

7 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 25 Jul 2016 19:58:15 +0000 (21:58 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Iea286077578232c907a4bddf4516c3fe9994397f

7 years agoMerge "objectcache: Disable RedisBagOStuff constructor in unit test"
jenkins-bot [Mon, 25 Jul 2016 19:42:18 +0000 (19:42 +0000)]
Merge "objectcache: Disable RedisBagOStuff constructor in unit test"

7 years agoMake onTransactionPreCommitOrIdle() atomic when immediate
Aaron Schulz [Sun, 24 Jul 2016 18:22:59 +0000 (11:22 -0700)]
Make onTransactionPreCommitOrIdle() atomic when immediate

One of the main uses of this method is to tack on some DB
updates to the end of atomic transactions to reduce lock
contention problems. In this case, multiple updates in the
callback are atomic. However, if no transaction is active,
then such updates were previously not atomic. Wrap them in
transactions now.

Change-Id: I18c56e65063a61000c4dfd1979bf972800b173ac

7 years agoMerge "objectcache: Add callable doc comments for WANObjectCache"
jenkins-bot [Mon, 25 Jul 2016 18:47:44 +0000 (18:47 +0000)]
Merge "objectcache: Add callable doc comments for WANObjectCache"

7 years agoobjectcache: Add callable doc comments for WANObjectCache
Aaron Schulz [Mon, 25 Jul 2016 05:33:06 +0000 (22:33 -0700)]
objectcache: Add callable doc comments for WANObjectCache

Change-Id: I28a705ae12e065dc8a3921e33c873f9a7fbb7490

7 years agoMW_DIFF_VERSION is globally defined, drop MW_ prefix when used as
Reedy [Mon, 25 Jul 2016 16:36:35 +0000 (17:36 +0100)]
MW_DIFF_VERSION is globally defined, drop MW_ prefix when used as
the class constant

Bug: T141272
Change-Id: I0a9e9037b2259515df6366184cc781ecb78f424c

7 years agoobjectcache: Disable RedisBagOStuff constructor in unit test
Timo Tijhof [Mon, 25 Jul 2016 15:53:03 +0000 (16:53 +0100)]
objectcache: Disable RedisBagOStuff constructor in unit test

Follows-up c4e698dc2. The tests are failing on Travis CI because
php5-redis isn't installed by default. These tests shouldn't need
that to be installed (and even then, we should skip gracefully as
it is an optional dependency).

> RedisBagOStuffTest::testUnserialize with data set #0
> Exception: RedisConnectionPool requires a Redis client library.
> ./mediawiki/includes/clientpool/RedisConnectionPool.php:86

Fixed by using a mock and disabling the original constructor.

Change-Id: Icced7c30a75516c2118489ad29eac2aa5cff80ad

7 years agosyncFileBackend.php: ellapsed => elapsed
Kevin Israel [Mon, 25 Jul 2016 02:55:20 +0000 (22:55 -0400)]
syncFileBackend.php: ellapsed => elapsed

As in c099155a17d26f03 for copyFileBackend.php.

Change-Id: Ifbc0673ee092f782de654eeca636d3b1ec061ae7

7 years agoMerge "Revert "mediawiki.special.userlogin.signup: Remove unnecessary field hiding...
jenkins-bot [Mon, 25 Jul 2016 14:25:19 +0000 (14:25 +0000)]
Merge "Revert "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code""

7 years agoRevert "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code"
Bartosz Dziewoński [Mon, 25 Jul 2016 13:55:20 +0000 (13:55 +0000)]
Revert "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code"

Whoops, we actually still have the option to bring back the old
custom HTML login forms ($wgDisableAuthManager). Too early.

This reverts commit 23e5bcb767c57d3a3f90b9fc597b87c8706a4027.

Change-Id: Ifb3ab1bf27ba2190177b65f5442dde74d20140e9

7 years agoSectionProfiler: Remove $profileOutCallback
Kevin Israel [Mon, 25 Jul 2016 03:02:49 +0000 (23:02 -0400)]
SectionProfiler: Remove $profileOutCallback

Unused since 626aede99bf83733.

Change-Id: I12c0d7900cd81d8b33b1a5a8dbe866ddd9664083

7 years agoMerge "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code"
jenkins-bot [Mon, 25 Jul 2016 11:17:43 +0000 (11:17 +0000)]
Merge "mediawiki.special.userlogin.signup: Remove unnecessary field hiding code"

7 years agomediawiki.htmlform: Remove deprecated $.fn.liveAndTestAtStart
Bartosz Dziewoński [Mon, 25 Jul 2016 11:07:57 +0000 (13:07 +0200)]
mediawiki.htmlform: Remove deprecated $.fn.liveAndTestAtStart

I don't think anybody ever used it anywhere outside of this file.

Change-Id: I19ad0e81c0cb262a03fa10d45eaa951cdcc9848a

7 years agomediawiki.special.userlogin.signup: Remove unnecessary field hiding code
Bartosz Dziewoński [Mon, 25 Jul 2016 10:59:28 +0000 (12:59 +0200)]
mediawiki.special.userlogin.signup: Remove unnecessary field hiding code

We now use HTMLForm, which implements a generic method to do this
using 'hide-if' parameters. We already use it for the signup form too.
This is just dead code.

Change-Id: I35cfc31aae714f3be8aa0d044de1119c279e3d34

7 years agoMerge "Allow providing 'notices' for OOUI HTMLForm fields"
jenkins-bot [Mon, 25 Jul 2016 10:58:45 +0000 (10:58 +0000)]
Merge "Allow providing 'notices' for OOUI HTMLForm fields"

7 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 24 Jul 2016 19:53:44 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ie72f1651a43be65682e451a1ee1c44fc14f31f67

7 years agoMinor transaction callback cleanups
Aaron Schulz [Fri, 22 Jul 2016 23:56:10 +0000 (16:56 -0700)]
Minor transaction callback cleanups

* Give the flush commit() in close() a chance to handle callbacks.
  Also detect onTransactionResolution() callbacks when an error is
  thrown.
* Avoid resetting callbacks redundantly, as they already get
  cleared when they actually run.
* Fix a few doc comments.

Change-Id: I5c62262661b97a6c28ce0ab0949307dc119953ca

7 years agoUpdate justinrainbow/json-schema in require-dev to ~1.6
Reedy [Sun, 24 Jul 2016 15:46:59 +0000 (16:46 +0100)]
Update justinrainbow/json-schema in require-dev to ~1.6

This matches the version that Kartographer is tracking, and hence
the committed vendor repo

Change-Id: I92bc1d03e62482bf9de4903ac14f79a4340ed1f2

7 years agoregistration: Support config setings that are relative paths
Kunal Mehta [Fri, 22 Jul 2016 22:08:21 +0000 (15:08 -0700)]
registration: Support config setings that are relative paths

Add support for configuration settings that are relative paths to the
extension directory. The most common use-case for this is where the
extension ships a generic default file, but sysadmins or packagers may
want to override it. Setting `"path": true` on the config definition
will make the value be interpreted as a relative path.

And add tests!

Bug: T100956
Change-Id: Ia87ced25b35be7a314ee2937e0ccc63f9acc5bb5

7 years agoMerge "Session: Improvements to encryption functionality"
jenkins-bot [Sun, 24 Jul 2016 13:56:29 +0000 (13:56 +0000)]
Merge "Session: Improvements to encryption functionality"

7 years agoregistration: Fix merge_strategy in manifest_version 2
Kunal Mehta [Fri, 22 Jul 2016 21:59:07 +0000 (14:59 -0700)]
registration: Fix merge_strategy in manifest_version 2

merge_strategy is set in $data, which is the definition of the config
setting, not the default value of it ($value).

Change-Id: I12ee95892b2c157bb0beb97cf2cd5ef920b7d52e

7 years agoregistration: Update conversion script for manifest_version 2
Kunal Mehta [Fri, 22 Jul 2016 21:57:28 +0000 (14:57 -0700)]
registration: Update conversion script for manifest_version 2

Config settings are now an object, with the value set as the 'value'
key.

Change-Id: Iba3999fdfc8994d50331825c9a416334db602e46

7 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 23 Jul 2016 19:55:14 +0000 (21:55 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I7912884168f4cae479c1e6f674961feedbb261e6

7 years agoMerge "Use current content model for blank page content (not title default)"
jenkins-bot [Sat, 23 Jul 2016 00:57:15 +0000 (00:57 +0000)]
Merge "Use current content model for blank page content (not title default)"

7 years agoMerge "filebackend: Fix DBLockManager IDEA warnings"
jenkins-bot [Fri, 22 Jul 2016 23:44:02 +0000 (23:44 +0000)]
Merge "filebackend: Fix DBLockManager IDEA warnings"

7 years agofilebackend: Fix DBLockManager IDEA warnings
Aaron Schulz [Fri, 22 Jul 2016 22:38:05 +0000 (15:38 -0700)]
filebackend: Fix DBLockManager IDEA warnings

Change-Id: I5e671bcee0915f65082c139be8f42aafad6413f1

7 years agoMerge "Make statsd counts for MWCallableUpdate actually useful"
jenkins-bot [Fri, 22 Jul 2016 23:30:27 +0000 (23:30 +0000)]
Merge "Make statsd counts for MWCallableUpdate actually useful"

7 years agoobjectcache: Add "busyValue" option to WANObjectCache::getWithSetCallback
Aaron Schulz [Fri, 22 Jul 2016 05:15:21 +0000 (22:15 -0700)]
objectcache: Add "busyValue" option to WANObjectCache::getWithSetCallback

This is useful for avoiding stampedes in the one case that lockTSE
does not alone cover, which is when the key does not exist or is
tombstoned.

Also avoid saving interim values unless the key is tombstoned
since there is no point in doing that otherwise.

Change-Id: I70997e90217a0979e0589afa7a5107b0e623c7cf

7 years agoMerge "Pingback: Show exactly what data is being sent during the installer"
jenkins-bot [Fri, 22 Jul 2016 22:19:42 +0000 (22:19 +0000)]
Merge "Pingback: Show exactly what data is being sent during the installer"

7 years agoMerge "Unbreak the DB updater by removing transaction from doUpdates()"
jenkins-bot [Fri, 22 Jul 2016 22:03:11 +0000 (22:03 +0000)]
Merge "Unbreak the DB updater by removing transaction from doUpdates()"

7 years agoPingback: Show exactly what data is being sent during the installer
Kunal Mehta [Fri, 22 Jul 2016 21:08:14 +0000 (14:08 -0700)]
Pingback: Show exactly what data is being sent during the installer

We have access to all the information that will be transmitted, so for
full transparency, display the actual JSON blob that will be sent.

Change-Id: I7dcc7bafb42619a8d49a27649fd7ac981efcd960

7 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 22 Jul 2016 19:54:08 +0000 (21:54 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I9a2afba022af74a48775b62abbc2f589447ed974

7 years agoHTMLForm: Allow distinguishing between form views and submission attempts
Bartosz Dziewoński [Mon, 30 May 2016 21:11:33 +0000 (23:11 +0200)]
HTMLForm: Allow distinguishing between form views and submission attempts

Calling HTMLForm::setFormIdentifier() will set an internal identifier
for this form. It will be submitted as a hidden form field, allowing
HTMLForm to determine whether the form was submitted (or just viewed).
Setting this serves two purposes:

* If you use two or more forms on one page, it allows HTMLForm to
  identify which of the forms was submitted, and not attempt to
  validate the other ones. (T102114)
* If you use checkbox or multiselect fields inside a form using the
  GET method, it allows HTMLForm to distinguish between the initial
  page view and a form submission with all checkboxes or select
  options unchecked. (T29676)

Bug: T102114
Bug: T29676
Change-Id: Ib6ce3fd8941be86211cff5c6932b5e84982490fa

7 years agoMerge "DifferenceEngine: Move MW_DIFF_VERSION to class constant DIFF_VERSION"
jenkins-bot [Fri, 22 Jul 2016 17:51:03 +0000 (17:51 +0000)]
Merge "DifferenceEngine: Move MW_DIFF_VERSION to class constant DIFF_VERSION"

7 years agoMerge "Avoid calling rollback() in setVisibility() when nothing changed"
jenkins-bot [Fri, 22 Jul 2016 17:40:59 +0000 (17:40 +0000)]
Merge "Avoid calling rollback() in setVisibility() when nothing changed"

7 years agoDifferenceEngine: Move MW_DIFF_VERSION to class constant DIFF_VERSION
Chad Horohoe [Wed, 20 Jul 2016 21:10:02 +0000 (14:10 -0700)]
DifferenceEngine: Move MW_DIFF_VERSION to class constant DIFF_VERSION

Deprecated the former. It's only used in 2 extensions (both active),
so we can probably get rid of this within a single release cycle.

Change-Id: I39bef62556f8f0625a5741d54f9f84d15b50610d

7 years agoRemove AutoLoader::loadClass()
Chad Horohoe [Thu, 21 Jul 2016 18:56:11 +0000 (11:56 -0700)]
Remove AutoLoader::loadClass()

A poor design decision if I ever made one. Luckily nobody uses it.

Change-Id: Ia6482cce2e17046346c1f8ea196f9510008faebd

7 years agoMake statsd counts for MWCallableUpdate actually useful
Aaron Schulz [Fri, 22 Jul 2016 02:32:09 +0000 (19:32 -0700)]
Make statsd counts for MWCallableUpdate actually useful

Include the method that made the callback in the key.

Change-Id: Ifc7c486ee5c8d57b2516456569bb724cf7dc2b99

7 years agoMerge "Avoid the use of DB rollback() in LocalFileDeleteBatch"
jenkins-bot [Fri, 22 Jul 2016 05:34:20 +0000 (05:34 +0000)]
Merge "Avoid the use of DB rollback() in LocalFileDeleteBatch"

7 years agoPreprocessor_Hash: use child arrays instead of linked lists
Tim Starling [Mon, 18 Jul 2016 02:05:13 +0000 (12:05 +1000)]
Preprocessor_Hash: use child arrays instead of linked lists

The singly-linked list data structure of Preprocessor_Hash was causing
stack exhaustion due to the need for a recursion depth proportional to
the number of children of a given PPNode, in serialize() and on
object destruction. So, switch to array-based storage. PPNode_* becomes
a temporary proxy around the underlying storage, which avoids circular
references and keeps the storage very compact. Preprocessor_DOM uses
similar temporary PPNode objects, so the fact that

  $node->getFirstChild() !== $node->getFirstChild()

should not cause any new problems.

* Increment cache version
* Use JSON serialization of the store array instead of serialize(),
  since JSON is more compact, even after gzipping.
* For efficiency, make $accum a plain array, and use it as an array
  where possible, instead of using helper functions.

Performance and memory usage for typical input are slightly improved:
something like 4% faster for the whole parse, and 20% less memory for
the tree.

Bug: T73486
Change-Id: I0d6c162b790d6dc1ddb0352aba6e4753854f4c56

7 years agoAvoid the use of DB rollback() in LocalFileDeleteBatch
Aaron Schulz [Thu, 21 Jul 2016 05:16:20 +0000 (22:16 -0700)]
Avoid the use of DB rollback() in LocalFileDeleteBatch

Race conditions are already handled by LockManager now.

Change-Id: Idb9ac511d565db4920aff7faa6ff291e05079798

7 years agoMerge "Allow 'data-*' attributes in personal tools links"
jenkins-bot [Fri, 22 Jul 2016 03:36:51 +0000 (03:36 +0000)]
Merge "Allow 'data-*' attributes in personal tools links"

7 years agoMerge "Improve database endAtomic() error messages"
jenkins-bot [Fri, 22 Jul 2016 02:12:28 +0000 (02:12 +0000)]
Merge "Improve database endAtomic() error messages"

7 years agoAllow 'data-*' attributes in personal tools links
Moriel Schottlender [Wed, 20 Jul 2016 21:15:01 +0000 (14:15 -0700)]
Allow 'data-*' attributes in personal tools links

We are limiting the attributes that are read and rendered for the
personal toolbar, but there are cases -- especially as tools get
more and more complex -- for needing to supply and read more information.

The use case that led to this change is the need to style Notification
badges with values in ::before and ::after pseudo-elements; these
elements need to display some prefixed content, and the best (only)
way to do that in no-js mode, is to set it up in CSS to be read
out of an attribute (using attr( xxx ); ).

This means that we need to read a specific attribute from the element,
but the only attributes allowed were insufficient. Allowing for data-*
attributes seemed not only a good solution for this specific case,
but a good idea in general for future tools that are added and
manipulate the personal toolbar links - allowing for storing information
without polluting the DOM.

Bug: T115845
Change-Id: Ic666540d70de52f337f839da0518cb83a990f5fd

7 years agoMerge "Make non-exception rollback() calls safer"
jenkins-bot [Fri, 22 Jul 2016 02:08:26 +0000 (02:08 +0000)]
Merge "Make non-exception rollback() calls safer"

7 years agoAvoid calling rollback() in setVisibility() when nothing changed
Aaron Schulz [Thu, 21 Jul 2016 01:06:46 +0000 (18:06 -0700)]
Avoid calling rollback() in setVisibility() when nothing changed

Change-Id: I7fde64fe1e6c9553447bcb9e62a1a9530f9e52ce

7 years agoMerge "OutputPage: Fix blank line between <html> and <head>"
jenkins-bot [Fri, 22 Jul 2016 00:01:21 +0000 (00:01 +0000)]
Merge "OutputPage: Fix blank line between <html> and <head>"