lhc/web/wiklou.git
5 years agoDeclare LogFormatter::$parsedParameters property
Kunal Mehta [Tue, 6 Feb 2018 22:25:07 +0000 (14:25 -0800)]
Declare LogFormatter::$parsedParameters property

And rework LogFormatterTest so it doesn't need to access that property.

Change-Id: I4d429430efe74dc083019a1a8bb07257785484b9

5 years agoMerge "Cleanup the element matches in doBlockLevels a bit"
jenkins-bot [Tue, 1 May 2018 21:50:54 +0000 (21:50 +0000)]
Merge "Cleanup the element matches in doBlockLevels a bit"

5 years agoMerge "mediawiki.api: Check that query exists in api.getToken() response"
jenkins-bot [Tue, 1 May 2018 20:50:56 +0000 (20:50 +0000)]
Merge "mediawiki.api: Check that query exists in api.getToken() response"

5 years agoMerge "rdbms: improve log warnings in runMasterPostTrxCallbacks()"
jenkins-bot [Tue, 1 May 2018 20:45:00 +0000 (20:45 +0000)]
Merge "rdbms: improve log warnings in runMasterPostTrxCallbacks()"

5 years agomediawiki.api: Check that query exists in api.getToken() response
Stephen Niedzielski [Fri, 9 Mar 2018 15:30:52 +0000 (09:30 -0600)]
mediawiki.api: Check that query exists in api.getToken() response

It's possible that response.query does not exist when requesting a
token. This patch removes the assumption and handles the scenario in the
same way as a missing token.

Additionally, responses with a queryless response are now deleted from the cache.

Corresponding console warning:

> jQuery.Deferred exception: Cannot read property 'tokens' of undefined
>   at apiPromise.then.promise.abort (/w/resources/src/mediawiki/api.js)

Change-Id: Ia29e0c0d657bf4b3d94f1d463b942451eebd68b4

5 years agoMerge "Use OOUI form for 'clear' and 'raw edit' of watchlist"
jenkins-bot [Tue, 1 May 2018 20:26:41 +0000 (20:26 +0000)]
Merge "Use OOUI form for 'clear' and 'raw edit' of watchlist"

5 years agordbms: improve log warnings in runMasterPostTrxCallbacks()
Aaron Schulz [Tue, 1 May 2018 17:57:18 +0000 (10:57 -0700)]
rdbms: improve log warnings in runMasterPostTrxCallbacks()

Bug: T191282
Change-Id: Iba663c58224af920f90d7b401aab2eb21f921941

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 1 May 2018 19:53:14 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ib363fb3f98d2272ffca8954758ee4d22db0c7e14

5 years agoMerge "Fix typo in postgres patch-drop-ar_text.sql"
jenkins-bot [Tue, 1 May 2018 19:46:45 +0000 (19:46 +0000)]
Merge "Fix typo in postgres patch-drop-ar_text.sql"

5 years agoMerge "Have ClassCollector ignore PHP 7 anonymous classes"
jenkins-bot [Tue, 1 May 2018 19:44:01 +0000 (19:44 +0000)]
Merge "Have ClassCollector ignore PHP 7 anonymous classes"

5 years agoMerge "rdbms: enforce and improve LBFactory/LoadBalancer callback handling"
jenkins-bot [Tue, 1 May 2018 19:11:14 +0000 (19:11 +0000)]
Merge "rdbms: enforce and improve LBFactory/LoadBalancer callback handling"

5 years agoHave ClassCollector ignore PHP 7 anonymous classes
Brad Jorsch [Tue, 1 May 2018 17:13:37 +0000 (13:13 -0400)]
Have ClassCollector ignore PHP 7 anonymous classes

PHP 7 introduces anonymous classes with a syntax like

 $instance = new class() extends Foo { ... };

ClassCollector is incorrectly detecting this as a class named
"() extends Foo". This patch fixes that by having it ignore "new class"
in much the same way it currently ignores "::class".

Change-Id: I4d1985a9c04be71f7bea6cb7b61dcea74f44a6e2

5 years agoMerge "Make password reset & reset token buttons destructive"
jenkins-bot [Tue, 1 May 2018 14:58:50 +0000 (14:58 +0000)]
Merge "Make password reset & reset token buttons destructive"

5 years agoMerge "Revert "Remove cssclass in the favor of 'type' => 'user'""
jenkins-bot [Tue, 1 May 2018 14:44:07 +0000 (14:44 +0000)]
Merge "Revert "Remove cssclass in the favor of 'type' => 'user'""

5 years agoMerge "Fix selector to align all button types"
jenkins-bot [Tue, 1 May 2018 14:19:56 +0000 (14:19 +0000)]
Merge "Fix selector to align all button types"

5 years agoFix MySQLism in populateRevisionLength.php
Brad Jorsch [Tue, 1 May 2018 13:24:36 +0000 (09:24 -0400)]
Fix MySQLism in populateRevisionLength.php

Use addQuotes() to make a quoted string instead of MySQL's nonstandard
use of double-quotes.

Change-Id: Ie2d017a33b694417a3db140b2798a8d55f911985

5 years agoMake password reset & reset token buttons destructive
Ed Sanders [Tue, 1 May 2018 12:51:20 +0000 (13:51 +0100)]
Make password reset & reset token buttons destructive

Change-Id: I068d5bf7a8882348866c9beae7d109c28ea17b4e

5 years agoFix selector to align all button types
Ed Sanders [Tue, 1 May 2018 10:13:34 +0000 (11:13 +0100)]
Fix selector to align all button types

Bug: T193474
Change-Id: I02dbe5d880567c6e7e59c867c3ab910600c667d0

5 years agoRevert "Remove cssclass in the favor of 'type' => 'user'"
Jayprakash12345 [Tue, 1 May 2018 07:32:34 +0000 (07:32 +0000)]
Revert "Remove cssclass in the favor of 'type' => 'user'"

This reverts commit ba08a9146898a1904101209551fa7ef67a7b64e8.

Bug: T193378
Change-Id: I3ceec6d70cf12515985ee6b56458ae7132ef3d8b

5 years agomediawiki.util: Remove deprecated wikiGetlink()
Timo Tijhof [Mon, 30 Apr 2018 21:40:09 +0000 (22:40 +0100)]
mediawiki.util: Remove deprecated wikiGetlink()

* Deprecated since MediaWiki 1.22, with console warnings
  since 1.23 (released 5 years ago).
* All uses in core, tarball components, and wmf-deployed components
  have been fixed.
* All uses in sitewide and user scripts on public WMF wikis
  have been fixed (Wow!).

Bug: T57764
Change-Id: I926966a83daadfee3adbb9a32acbb5b710a29686

5 years agordbms: enforce and improve LBFactory/LoadBalancer callback handling
Aaron Schulz [Wed, 28 Mar 2018 20:01:32 +0000 (13:01 -0700)]
rdbms: enforce and improve LBFactory/LoadBalancer callback handling

* Handle the case where an onTransaction* callback for one handle
  adds more onTransaction* callbacks to a different handle. Instead
  of supporting only a short chain of such callbacks, try to resolve
  the whole chain by using a loop in LoadBalancer and LBFactory.
* Add sanity checks to enforce the proper call order of LoadBalancer
  transaction methods, such as those that execute callbacks. This is
  the order that LBFactory already uses. Use ROUND_ERROR for problems
  that can ruin the instance state. Such problems require rollback.
* Correct setTrxEndCallbackSuppression() calls in beginMasterChanges()
  that were making tests fail.
* Make Database handle callback suppression for FLUSHING_ALL_PEERS
  instead of making LoadBalancer/LBFactory have to manage it.
* Simplify finalizeMasterChanges() given that suppression does not
  actually effect runOnTransactionPreCommitCallbacks().
* Make dangling callback warning in Database::close work properly.
* Actually use $fname in flushReplicaSnapshots().
* Use DBTransactionError instead of DBExpectedError in some places
  where stages fail.
* Fix failing testGetScopedLock() unit tests so everything passes.

Add more comments to setTransactionListener and onTransactionIdle.

Change-Id: I6a25a6e4e5ba666e0da065a24846cbab7e786c7b

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 30 Apr 2018 19:56:48 +0000 (21:56 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I4c835c6dea1acf1fcd455d5ec21db551d4ebbe28

5 years agoMerge "RecentChange: Use constants for the $noudp parameter of save()"
jenkins-bot [Mon, 30 Apr 2018 19:47:24 +0000 (19:47 +0000)]
Merge "RecentChange: Use constants for the $noudp parameter of save()"

5 years agoUse OOUI form for 'clear' and 'raw edit' of watchlist
Ed Sanders [Tue, 24 Apr 2018 11:08:45 +0000 (12:08 +0100)]
Use OOUI form for 'clear' and 'raw edit' of watchlist

Change-Id: I2c53f66bc36b33d42d453b79056822b30796ea4e

5 years agoMerge "Fix PHP Notice in Special:Statistics"
jenkins-bot [Mon, 30 Apr 2018 17:37:22 +0000 (17:37 +0000)]
Merge "Fix PHP Notice in Special:Statistics"

5 years agoMerge "Fix alignment of checkbox label in feedback dialog"
jenkins-bot [Mon, 30 Apr 2018 15:06:29 +0000 (15:06 +0000)]
Merge "Fix alignment of checkbox label in feedback dialog"

5 years agoMerge "Better class documentation"
jenkins-bot [Mon, 30 Apr 2018 15:05:36 +0000 (15:05 +0000)]
Merge "Better class documentation"

5 years agoFix PHP Notice in Special:Statistics
Niklas Laxström [Mon, 30 Apr 2018 07:46:40 +0000 (09:46 +0200)]
Fix PHP Notice in Special:Statistics

Change-Id: I7a8a15537fce4b7c15e4e452fda268c395ad4d2e
Follow-up: I7736c5fb6032f1b7e8a60b49d422435a8c8e4962

5 years agoMerge "jquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse"
jenkins-bot [Mon, 30 Apr 2018 05:12:17 +0000 (05:12 +0000)]
Merge "jquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse"

5 years agoMerge "media: Rename files to match the name of the class they define"
jenkins-bot [Mon, 30 Apr 2018 04:58:41 +0000 (04:58 +0000)]
Merge "media: Rename files to match the name of the class they define"

5 years agoFix alignment of checkbox label in feedback dialog
Ed Sanders [Sun, 29 Apr 2018 21:06:16 +0000 (22:06 +0100)]
Fix alignment of checkbox label in feedback dialog

Change-Id: I2af1fc716b1921928fa210f82d1b290be64142fd

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 29 Apr 2018 19:58:14 +0000 (21:58 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I13de2b5cedae52d2b709e8a6a3e1764ce47412ac

5 years agoBetter class documentation
Kaldari [Sun, 29 Apr 2018 18:54:24 +0000 (11:54 -0700)]
Better class documentation

Change-Id: I25912f38bb483cd4636bff4ce219dc878a1046f3

5 years agoMerge "resourceloader: Use plain arrays instead of $.Callbacks() in addEmbeddedCSS"
jenkins-bot [Sun, 29 Apr 2018 17:22:15 +0000 (17:22 +0000)]
Merge "resourceloader: Use plain arrays instead of $.Callbacks() in addEmbeddedCSS"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 28 Apr 2018 19:59:14 +0000 (21:59 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I45de1a7e52aa2b6531442a9e5deeaa359c6c9efd

5 years agoMerge "mail: Refactor checks looking for PEAR libraries to be clearer"
jenkins-bot [Sat, 28 Apr 2018 19:51:10 +0000 (19:51 +0000)]
Merge "mail: Refactor checks looking for PEAR libraries to be clearer"

5 years agoMerge "Update wikimedia/html-formatter from 1.0.1 to 1.0.2"
jenkins-bot [Sat, 28 Apr 2018 17:57:43 +0000 (17:57 +0000)]
Merge "Update wikimedia/html-formatter from 1.0.1 to 1.0.2"

5 years agoAdd since tag to wfRemoveDotSegments
Reedy [Sat, 21 Apr 2018 09:46:51 +0000 (09:46 +0000)]
Add since tag to wfRemoveDotSegments

Looked it up for another commit, so might aswell make it easier to find for others :)

Change-Id: I432b13b35481cbca9ed6e7328b3b9115fdd203ea

5 years agoMerge "resourceloader: Remove mwPerformance stub and rename mwLoadStart mark"
jenkins-bot [Sat, 28 Apr 2018 12:04:30 +0000 (12:04 +0000)]
Merge "resourceloader: Remove mwPerformance stub and rename mwLoadStart mark"

5 years agoFix parameter doc type for matchEditToken
Daimona Eaytoy [Fri, 20 Apr 2018 08:16:55 +0000 (10:16 +0200)]
Fix parameter doc type for matchEditToken

I noticed it while fixing some AbuseFilter errors. matchEditToken simply
calls getEditTokenObject, which accepts string|array as $salt.

Change-Id: I36497eb8797ee60759c5109b699643635bba9174

5 years agoUpdate wikimedia/html-formatter from 1.0.1 to 1.0.2
Reedy [Sat, 28 Apr 2018 11:49:36 +0000 (12:49 +0100)]
Update wikimedia/html-formatter from 1.0.1 to 1.0.2

https://github.com/wikimedia/html-formatter/releases/tag/1.0.2
https://github.com/wikimedia/html-formatter/compare/1.0.1...1.0.2

Bug: T193318
Change-Id: I5f7a3e2300f343f675124df399cfe12909f56e14
Depends-On: Ia69102af64a0102e05b96b10f63ffcf6cbf292fa

5 years agoMerge "Change @throw to @throws"
jenkins-bot [Sat, 28 Apr 2018 09:01:26 +0000 (09:01 +0000)]
Merge "Change @throw to @throws"

5 years agoMerge "Add missing use statement"
jenkins-bot [Sat, 28 Apr 2018 08:58:24 +0000 (08:58 +0000)]
Merge "Add missing use statement"

5 years agomedia: Rename files to match the name of the class they define
Timo Tijhof [Sat, 28 Apr 2018 01:05:23 +0000 (02:05 +0100)]
media: Rename files to match the name of the class they define

This will make jumping from file to file much easier in text
editors when file name lookups will autocomplete naturally when
looking for a class by name.

Change-Id: I4b2e55a2e72674b619d5a592866c8a019a2b0224

5 years agojquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse
Timo Tijhof [Sat, 28 Apr 2018 00:16:03 +0000 (01:16 +0100)]
jquery.ui: Use on() instead of deprecated bind() in jquery.ui.mouse

Frequently seen on Beta Cluster due to indirect usage from
PageTriage extension.

Bug: T169385
Change-Id: Ia49ad6470aef1bcb1dd91c779dcd108a0a98d4dc

5 years agoMerge "Rewrite DumpRev to not always fatal out"
jenkins-bot [Fri, 27 Apr 2018 22:35:42 +0000 (22:35 +0000)]
Merge "Rewrite DumpRev to not always fatal out"

5 years agoRecentChange: Use constants for the $noudp parameter of save()
Timo Tijhof [Fri, 6 Apr 2018 15:56:07 +0000 (16:56 +0100)]
RecentChange: Use constants for the $noudp parameter of save()

It is a boolean parameter that is confusing for three reasons:

* It's a boolean parameter, given parameters are unnamed in PHP,
  these are always poor UX for call sites.

* It's negated ("noudp"). save(true) means no feeds events,
  save(false) [default] means sending events to feeds.

* To overcome this problem, typical use was to pass a free-form
  string that self-documents the intended behaviour,
  e.g. `save('pleasenoudp')`, any string casts to true.

Fix this by moving the booleans to constants and use those
instead. For compatiblity, keep the negation internally,
although it's hidden from regular usage. Also document
the string hack, deprecate it, and update callers.

Change-Id: Ia57c86b38bf50cb4ec580f42a6b1ca798fcf781a

5 years agoMerge "EditPage: Remove isOouiEnabled(), deprecated since MW 1.30"
jenkins-bot [Fri, 27 Apr 2018 22:15:26 +0000 (22:15 +0000)]
Merge "EditPage: Remove isOouiEnabled(), deprecated since MW 1.30"

5 years agoEditPage: Remove isOouiEnabled(), deprecated since MW 1.30
Bartosz Dziewoński [Tue, 5 Sep 2017 17:52:41 +0000 (19:52 +0200)]
EditPage: Remove isOouiEnabled(), deprecated since MW 1.30

Change-Id: I0ca2960ca4da5f7ec5acb254b30254809857bafa

5 years agoRewrite DumpRev to not always fatal out
Aaron Schulz [Tue, 27 Feb 2018 09:32:07 +0000 (01:32 -0800)]
Rewrite DumpRev to not always fatal out

* The method fetchBlob() is private.
* Also remove all of the code duplication.

Change-Id: Ie307a937bcfd835a3239af23fb8deeb78704e0fe

5 years agoAdd missing use statement
Umherirrender [Fri, 27 Apr 2018 21:09:55 +0000 (23:09 +0200)]
Add missing use statement

Change-Id: Id14d97b5b74edf6c6bafb29b643ac9b9357bb681

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 27 Apr 2018 19:56:04 +0000 (21:56 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I060031447212e6e82254ee570a569fc2fc9fa749

5 years agoChange @throw to @throws
Umherirrender [Fri, 27 Apr 2018 19:53:19 +0000 (21:53 +0200)]
Change @throw to @throws

Phpcs does not look at private functions

Change-Id: I9adedf1f1c488e74db7de89e97cb6a481bf7d567

5 years agoMerge "selenium: Clean up wdio.conf.js"
jenkins-bot [Fri, 27 Apr 2018 12:36:33 +0000 (12:36 +0000)]
Merge "selenium: Clean up wdio.conf.js"

5 years agoMerge "Use PRC_AUTOPATROLLED for log entries and category entries"
jenkins-bot [Fri, 27 Apr 2018 10:36:37 +0000 (10:36 +0000)]
Merge "Use PRC_AUTOPATROLLED for log entries and category entries"

5 years agoMerge "Revert "wikibits: Remove redundant stubs for document.write""
jenkins-bot [Fri, 27 Apr 2018 05:20:55 +0000 (05:20 +0000)]
Merge "Revert "wikibits: Remove redundant stubs for document.write""

5 years agoresourceloader: Use plain arrays instead of $.Callbacks() in addEmbeddedCSS
Aaron Schulz [Thu, 26 Apr 2018 21:18:43 +0000 (22:18 +0100)]
resourceloader: Use plain arrays instead of $.Callbacks() in addEmbeddedCSS

Bug: T192623
Change-Id: I00c9571d353980d853cc8e92b2b508ad7271ab87

5 years agoMerge "Fix warning "ob_end_flush(): failed to delete and flush buffer" during uploads"
jenkins-bot [Fri, 27 Apr 2018 02:37:30 +0000 (02:37 +0000)]
Merge "Fix warning "ob_end_flush(): failed to delete and flush buffer" during uploads"

5 years agoRemove bogus @throws from HTTPFileStreamer
Aaron Schulz [Fri, 27 Apr 2018 02:16:02 +0000 (19:16 -0700)]
Remove bogus @throws from HTTPFileStreamer

Change-Id: I28928a6f01b107b2aed8ab6fbeb013410a8f9718

5 years agoMerge "Skins: getDefaultStyles can now define render blocking CSS"
jenkins-bot [Thu, 26 Apr 2018 20:18:50 +0000 (20:18 +0000)]
Merge "Skins: getDefaultStyles can now define render blocking CSS"

5 years agoSkins: getDefaultStyles can now define render blocking CSS
jdlrobson [Tue, 10 Apr 2018 01:22:13 +0000 (18:22 -0700)]
Skins: getDefaultStyles can now define render blocking CSS

This optimisation attempts to minimise loading the styles in places
they are not needed.

The logic is kept inside Skin::getDefaultModules to avoid fragmentation
of where modules get defined.

Update ApiParse to avoid repetition of code.

Bug: T42792
Bug: T42812
Change-Id: I59f02a7bab3baa9d43f6bc2ef1f549d9d31d8456

5 years agoMerge "rdbms: Replace reportConnectionError() with direct throws"
jenkins-bot [Thu, 26 Apr 2018 20:00:12 +0000 (20:00 +0000)]
Merge "rdbms: Replace reportConnectionError() with direct throws"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 26 Apr 2018 19:54:33 +0000 (21:54 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I17a9d121043e13c6919378a0a88ad36d9f647ee8

5 years agoFix typo in postgres patch-drop-ar_text.sql
Brad Jorsch [Thu, 26 Apr 2018 18:52:12 +0000 (14:52 -0400)]
Fix typo in postgres patch-drop-ar_text.sql

Change-Id: I6d479d123848325b8501275ef4b98fc81cd99505

5 years agoRevert "wikibits: Remove redundant stubs for document.write"
Jforrester [Thu, 26 Apr 2018 18:23:51 +0000 (18:23 +0000)]
Revert "wikibits: Remove redundant stubs for document.write"

This reverts commit 7f2c6c401644c06b0bd30e311c6247bcaebec1bc.

Bug: T193191
Change-Id: Ia6bdc1e339fe0f6265094de6d3e0a5cea0919cd6

5 years agoUse PRC_AUTOPATROLLED for log entries and category entries
Roan Kattouw [Tue, 24 Apr 2018 19:48:35 +0000 (12:48 -0700)]
Use PRC_AUTOPATROLLED for log entries and category entries

These actions mark edits as patrolled automatically, so the
correct rc_patrolled value to use is PRC_AUTOPATROLLED rather than
PRC_PATROLLED. The code for log entries checks the autopatrol right, and
the code for category entries has a comment that says "just like log
entries".

Bug: T190408
Bug: T184791
Change-Id: Id994af8cd3833a862a09389431256aba35c2e6d9

5 years agoselenium: Clean up wdio.conf.js
Timo Tijhof [Sat, 14 Apr 2018 00:24:35 +0000 (01:24 +0100)]
selenium: Clean up wdio.conf.js

* Remove redundant user/pass for Jenkins, which is unused now
  that Jenkins jobs set it through ENV instead.
  See also T188520 and Ibb388741fee9 (integration/config).

* Use simple default operator (||) instead of elaborate
  undefined check.

* Document that the inline user/password defaults relate to
  MediaWiki vagrant.

* Set 'logPath' for Jenkins based on LOG_PATH env (from mw-set-env.sh),
  instead of assuming where it will be relative to mediawiki-core.

* Put new lines between blocks and functions.

* Document --no-sandbox hack from 4ff5652501b6cd.

Change-Id: I4c7856d260ded8c94e991a27863b80c9eea2e33e

5 years agomail: Refactor checks looking for PEAR libraries to be clearer
Kunal Mehta [Thu, 26 Apr 2018 05:24:24 +0000 (22:24 -0700)]
mail: Refactor checks looking for PEAR libraries to be clearer

I don't think this makes any difference towards the linked bug, but
it makes it more obvious that MediaWiki doesn't try to use any PEAR
classes before attempting to require them.

Bug: T186456
Change-Id: I342f41903a15f13e72e76464499351412a9afa34

5 years agoMerge "Filter autodiscovered parser tests in ConvertExtensionToRegistration"
jenkins-bot [Thu, 26 Apr 2018 05:11:56 +0000 (05:11 +0000)]
Merge "Filter autodiscovered parser tests in ConvertExtensionToRegistration"

5 years agoMerge "import: Don't try duplicate detection when the sha1 is unavailable"
jenkins-bot [Thu, 26 Apr 2018 05:06:46 +0000 (05:06 +0000)]
Merge "import: Don't try duplicate detection when the sha1 is unavailable"

5 years agordbms: Replace reportConnectionError() with direct throws
Timo Tijhof [Thu, 19 Apr 2018 23:21:51 +0000 (00:21 +0100)]
rdbms: Replace reportConnectionError() with direct throws

When reading through DatabaseMysqlBase::open(), it was not
obvious that execution would not continue after the conditional
`!$this->conn` block, given it ends in a method call, without
return or throw. I considered adding a return statement after it
for clarity, but it seems in this case it might make more sense
to throw directly given $error here has already gone through a
fallback to getLastError() a few lines up.

Replace the other three calls to reportConnectionError() as well,
which previously passed a useful string that was overwritten
with lastError(). Instead, log both. And make their call to
queryLogger->error() match the previous ones to have an 'error' as well.

This leaves reportConnectionError() as being unused, except for
a call from LoadBalancer. That call was problematic because
it was inside a conditional for IDatabase, but the method isn't
part of that interface. Replace it with a direct throw as well.

Deprecate the method as its now unused in core, and also remove its
'# New method' comment which hasn't made sense since r75341 (16cded8b32).

Change-Id: I0f2ef00ba44bf7090a3ce54edeb8c7e8e543e46a

5 years agotests: Assert that the user who deleted a page is logged as such
James D. Forrester [Wed, 28 Feb 2018 23:03:26 +0000 (15:03 -0800)]
tests: Assert that the user who deleted a page is logged as such

These tests are rather basic, but they're better than the nothing that
seems to be the current state. Revision deletion is still untested and
suppression is only very lightly tested. More tests should be added.

Bug: T188479
Bug: T188773
Change-Id: Iba0f41ffddc6af45e0a4be86176708160f4821f4

5 years agoMerge "Introduce ResourceLoaderLessVarFileModule"
jenkins-bot [Thu, 26 Apr 2018 00:16:09 +0000 (00:16 +0000)]
Merge "Introduce ResourceLoaderLessVarFileModule"

5 years agoMerge "RELEASE-NOTES: Move a deprecation to "Deprecations" section"
jenkins-bot [Wed, 25 Apr 2018 22:49:36 +0000 (22:49 +0000)]
Merge "RELEASE-NOTES: Move a deprecation to "Deprecations" section"

5 years agoMerge "phpunit: Clear job queues in MediaWikiTestCase::setUp()"
jenkins-bot [Wed, 25 Apr 2018 22:34:50 +0000 (22:34 +0000)]
Merge "phpunit: Clear job queues in MediaWikiTestCase::setUp()"

5 years agoRELEASE-NOTES: Move a deprecation to "Deprecations" section
Bartosz Dziewoński [Wed, 25 Apr 2018 22:13:03 +0000 (00:13 +0200)]
RELEASE-NOTES: Move a deprecation to "Deprecations" section

Change-Id: Ibe4ce1ed4d209f3d111524074c9e6cbd5b889aa6

5 years agoMerge "Remove cssclass in the favor of 'type' => 'user'"
jenkins-bot [Wed, 25 Apr 2018 21:51:50 +0000 (21:51 +0000)]
Merge "Remove cssclass in the favor of 'type' => 'user'"

5 years agoMerge "Make setSubmitProgressive() Deprecate"
jenkins-bot [Wed, 25 Apr 2018 21:45:50 +0000 (21:45 +0000)]
Merge "Make setSubmitProgressive() Deprecate"

5 years agoMerge "Removed unused Module mediawiki.userSuggest"
jenkins-bot [Wed, 25 Apr 2018 21:43:20 +0000 (21:43 +0000)]
Merge "Removed unused Module mediawiki.userSuggest"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 25 Apr 2018 20:23:18 +0000 (22:23 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I6b22a6cadf7bfb166074c8ce29d1de9e6c9d16a3

5 years agoIntroduce ResourceLoaderLessVarFileModule
jdlrobson [Fri, 20 Apr 2018 18:42:41 +0000 (11:42 -0700)]
Introduce ResourceLoaderLessVarFileModule

This ResourceLoader module provides a way to ship
messages to CSS variables.

We will need this going forward to deal with flash of
unstyled content in various JavaScript based UIs that
are subject to i18n such as table sorting and
collapsible elements.

To avoid overhead of hitting the database to fetch and
transform localisation messages we make use of the MessageBlobStore
making use of `messages` definition already inside
ResourceLoaderFileModule. Given this resource is only intended
for render blocking styles without JavaScript this should be okay
(although if requested in JavaScript will also ship associated
messages)

Bug: T42812
Change-Id: I2bf12cdc848478889acbe9a7a970e46f8aefa287

5 years agoCleanup the element matches in doBlockLevels a bit
Arlo Breault [Fri, 20 Apr 2018 00:00:57 +0000 (20:00 -0400)]
Cleanup the element matches in doBlockLevels a bit

The MARKER_PREFIX is removed since `unstripGeneral()` happens before we
get here.

Change-Id: Ic668784fd8bbaa8395cd5449c83a993abda141eb

5 years agoMerge "mail: Always quote uncoded names in MailAddress"
jenkins-bot [Wed, 25 Apr 2018 17:09:11 +0000 (17:09 +0000)]
Merge "mail: Always quote uncoded names in MailAddress"

5 years agoMerge "ApiSandbox: Resize layout to fit content, and remove fullscreen mode"
jenkins-bot [Wed, 25 Apr 2018 16:03:33 +0000 (16:03 +0000)]
Merge "ApiSandbox: Resize layout to fit content, and remove fullscreen mode"

5 years agoMerge "Fix unclear comments on various ChangeTags functions"
jenkins-bot [Wed, 25 Apr 2018 15:40:35 +0000 (15:40 +0000)]
Merge "Fix unclear comments on various ChangeTags functions"

5 years agoApiSandbox: Resize layout to fit content, and remove fullscreen mode
Ed Sanders [Tue, 24 Apr 2018 13:02:07 +0000 (14:02 +0100)]
ApiSandbox: Resize layout to fit content, and remove fullscreen mode

Avoids unpleasant nested scrollbars, and hacky fullscren mode.

Make toolbar position:sticky to keep buttons visible.

Bug: T129157
Change-Id: Ia3c3176c1bd7cac6af2c35f53d820f1272df72a5

5 years agoMerge "TraditionalImageGallery factor getCaptionHtml into own function"
jenkins-bot [Wed, 25 Apr 2018 12:04:17 +0000 (12:04 +0000)]
Merge "TraditionalImageGallery factor getCaptionHtml into own function"

5 years agoTraditionalImageGallery factor getCaptionHtml into own function
Marius Hoch [Tue, 24 Apr 2018 15:52:56 +0000 (17:52 +0200)]
TraditionalImageGallery factor getCaptionHtml into own function

Better design and also want to override this in Wikibase.

Bug: T192869
Change-Id: I24de654ba9a14b8fe0925007e6ceeabca277c075

5 years agoFix unclear comments on various ChangeTags functions
TTO [Mon, 23 Apr 2018 01:44:33 +0000 (01:44 +0000)]
Fix unclear comments on various ChangeTags functions

These functions tell you whether *a user* can perform the relevant
actions. They are not meant to be used by extensions, except when
the extension is performing these actions on behalf of a user.

Change-Id: I8437ec2d66c151f504755964e20fda808d35de3b

5 years agoMerge "PHPVersionCheck: Properly check for `xml` extension in PHP 7.2+"
jenkins-bot [Wed, 25 Apr 2018 01:01:40 +0000 (01:01 +0000)]
Merge "PHPVersionCheck: Properly check for `xml` extension in PHP 7.2+"

5 years agoPHPVersionCheck: Properly check for `xml` extension in PHP 7.2+
Kunal Mehta [Sat, 14 Apr 2018 22:31:00 +0000 (15:31 -0700)]
PHPVersionCheck: Properly check for `xml` extension in PHP 7.2+

In 7.2, the `utf8_encode` function was moved into core PHP, and is no
longer a part of the `xml` extension. Use a different function to check
for the existence of it.

Change-Id: Ib50c1a59dd9c2a8777b07b2f7a3dd638a55832c6

5 years agoGeneralize ResourceLoader 'excludepage' functionality
Brad Jorsch [Tue, 28 Feb 2017 20:52:17 +0000 (15:52 -0500)]
Generalize ResourceLoader 'excludepage' functionality

There has long been a hack for previewing edits to user JS/CSS, where
OutputPage would pass an 'excludepage' parameter to
ResourceLoaderUserModule to tell it not to load one particular page and
would instead embed that page statically. That's nice, but there are
other places where we could use the same thing.

This patch generalizes it:
* DerivativeResourceLoaderContext may now contain a callback for mapping
  titles to replacement Content objects.
* ResourceLoaderWikiModule::getContent() uses the overrides, and
  requests embedding when they're used. All subclasses in Gerrit should
  pick it up automatically.
* OutputPage gains methods for callers to add to the override mapping,
  which it passes on to RL. It loses a bunch of the special casing it
  had for the 'user' and 'user.styles' modules.
* EditPage sets the overrides on OutputPage when doing the preview, as
  does ApiParse for prop=headhtml. TemplateSandbox does too in I83fa0856.
* OutputPage::userCanPreview() gets less specific to editing user CSS
  and JS, since RL now handles the embedding based on the actual
  modules' dependencies and EditPage only requests it on preview.

ApiParse also gets a new hook to support TemplateSandbox's API
integration (used in I83fa0856).

Bug: T112474
Change-Id: Ib9d2ce42931c1de8372e231314a1f672d7e2ac0e

5 years agoMerge "Align to WikimediaUI themed widgets"
jenkins-bot [Wed, 25 Apr 2018 00:26:11 +0000 (00:26 +0000)]
Merge "Align to WikimediaUI themed widgets"

5 years agoMerge "rdbms: make IDatabase::onTransaction* methods pass the DB handle for convenience"
jenkins-bot [Wed, 25 Apr 2018 00:24:33 +0000 (00:24 +0000)]
Merge "rdbms: make IDatabase::onTransaction* methods pass the DB handle for convenience"

5 years agoMerge "Update OOUI to v0.26.5"
jenkins-bot [Wed, 25 Apr 2018 00:24:30 +0000 (00:24 +0000)]
Merge "Update OOUI to v0.26.5"

5 years agoMerge "Special:PrefixIndex: Fix form legend"
jenkins-bot [Tue, 24 Apr 2018 23:59:38 +0000 (23:59 +0000)]
Merge "Special:PrefixIndex: Fix form legend"

5 years agoUpdate OOUI to v0.26.5
Volker E [Tue, 24 Apr 2018 23:53:54 +0000 (16:53 -0700)]
Update OOUI to v0.26.5

Release notes:
 https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/History.md;v0.26.5

Depends-on: Ieed078f4113e5ac4770c9e5d1f778a02c18ac6b7
Change-Id: Ia5e491f765935c2bf4bfeac2d02f1978f1a03b50

5 years agordbms: make IDatabase::onTransaction* methods pass the DB handle for convenience
Aaron Schulz [Tue, 17 Apr 2018 04:39:02 +0000 (21:39 -0700)]
rdbms: make IDatabase::onTransaction* methods pass the DB handle for convenience

Change-Id: Ia45a26830d62326b103593268fbf34c907783c90

5 years agomail: Always quote uncoded names in MailAddress
Alexia E. Smith [Tue, 10 Apr 2018 22:10:33 +0000 (17:10 -0500)]
mail: Always quote uncoded names in MailAddress

Otherwise, names that contain whitespace (but no special characters
that need Q-encoding) will be sent as-is in an email header. While
that's valid by RFC 1036, RFC 5322 and others, some mail programs
fail to correctly process spaces. Avoid these problems by simply
quoting the name always - except for cases which are Q-encoded,
which must remain unquoted to be valid (and also cannot contain
spaces, thus unaffected).

Before:
> From: Foo Bar <fb@example.org>

After:
> From "Foo Bar" <fb@example.org>

Update test to work with the new criteria.

Bug: T191931
Change-Id: I4b2a0a80e8b43ecc943939fc5ebaa356a4f840e0

5 years agoMerge "resourceloader: Consider having dependencies as non-empty in WikiModule::isKno...
jenkins-bot [Tue, 24 Apr 2018 21:11:48 +0000 (21:11 +0000)]
Merge "resourceloader: Consider having dependencies as non-empty in WikiModule::isKnownEmpty"