2 years agoMerge "Exclude redirects from Special:Fewestrevisions"
jenkins-bot [Sun, 21 Jul 2019 18:11:12 +0000 (18:11 +0000)]
Merge "Exclude redirects from Special:Fewestrevisions"

2 years agoAvoid usage of deprecated Revision::* constants
Derick Alangi [Sun, 21 Jul 2019 14:54:52 +0000 (15:54 +0100)]
Avoid usage of deprecated Revision::* constants

Change-Id: I2d06bbacef88573f286da25994a3ad434ed90e9c

2 years agoAvoid usage of deprecated Revision::* constants
Derick Alangi [Sun, 21 Jul 2019 14:32:13 +0000 (15:32 +0100)]
Avoid usage of deprecated Revision::* constants

Change-Id: Ibb55d5a01f997f9c79bcf2f5e09d4f02d22152d2

2 years agoapi: Avoid usage of deprecated Revision::FOR_THIS_USER constant
Derick Alangi [Sun, 21 Jul 2019 14:18:51 +0000 (15:18 +0100)]
api: Avoid usage of deprecated Revision::FOR_THIS_USER constant

Change-Id: I48b302ba3ea5762e2b576e972cf85d57cd73fb15

2 years agoaction: Avoid use of deprecated Revision::* constants, use RevisionRecord
Derick Alangi [Sun, 21 Jul 2019 14:15:46 +0000 (15:15 +0100)]
action: Avoid use of deprecated Revision::* constants, use RevisionRecord

Change-Id: I09e3182cd83977d143ca7b34b791ea2cd0df0ef8

2 years agoAvoid usage of deprecated Revision::* constants, use RevisionRecord
Derick Alangi [Sun, 21 Jul 2019 13:18:14 +0000 (14:18 +0100)]
Avoid usage of deprecated Revision::* constants, use RevisionRecord

Change-Id: I872fc89e5c02dd6a3ae9cd7e76640b95dc33f514

2 years agoMerge "maintenance: Avoid usage of deprecated Revision::* constants"
jenkins-bot [Sun, 21 Jul 2019 12:22:09 +0000 (12:22 +0000)]
Merge "maintenance: Avoid usage of deprecated Revision::* constants"

2 years agomaintenance: Avoid usage of deprecated Revision::* constants
Derick Alangi [Sat, 20 Jul 2019 08:47:52 +0000 (09:47 +0100)]
maintenance: Avoid usage of deprecated Revision::* constants

Update deprecated Revision::* constants to use RevisionRecord::*

Change-Id: Icae1ebb088e4efadbc7c2806127a2073d337fa05

2 years agoMerge "objectcache: reorganize WANObjectCache fields and avoid exposing internal...
jenkins-bot [Sat, 20 Jul 2019 23:53:30 +0000 (23:53 +0000)]
Merge "objectcache: reorganize WANObjectCache fields and avoid exposing internal constants"

2 years agoMerge "MessageCache: Fix isMainCacheable() logic for non-content languages"
jenkins-bot [Sat, 20 Jul 2019 23:25:47 +0000 (23:25 +0000)]
Merge "MessageCache: Fix isMainCacheable() logic for non-content languages"

2 years agoobjectcache: reorganize WANObjectCache fields and avoid exposing internal constants
Aaron Schulz [Mon, 15 Jul 2019 21:57:01 +0000 (14:57 -0700)]
objectcache: reorganize WANObjectCache fields and avoid exposing internal constants

Change-Id: I95771fc8d032939e71adba3a416894004ea0847d

2 years agoMerge "resourceloader: Move FilePath test to /tests/phpunit/unit"
jenkins-bot [Sat, 20 Jul 2019 21:31:32 +0000 (21:31 +0000)]
Merge "resourceloader: Move FilePath test to /tests/phpunit/unit"

2 years agoresourceloader: Move FilePath test to /tests/phpunit/unit
Timo Tijhof [Fri, 19 Jul 2019 22:39:11 +0000 (23:39 +0100)]
resourceloader: Move FilePath test to /tests/phpunit/unit

Pure value object. No external dependencies.

Change-Id: If4120ca302c2fab2a41880c32e164d36566ed9de

2 years agoMerge "installer: Add a defined check to overrideConfig method"
jenkins-bot [Sat, 20 Jul 2019 06:20:45 +0000 (06:20 +0000)]
Merge "installer: Add a defined check to overrideConfig method"

2 years agoMerge "Increase test coverage for BlockManager class"
jenkins-bot [Sat, 20 Jul 2019 06:17:12 +0000 (06:17 +0000)]
Merge "Increase test coverage for BlockManager class"

2 years agoMessageCache: Fix isMainCacheable() logic for non-content languages
Roan Kattouw [Fri, 19 Jul 2019 23:51:01 +0000 (16:51 -0700)]
MessageCache: Fix isMainCacheable() logic for non-content languages

The way isMainCacheable() was used, it always returned false in
non-content languages, because it would try to find strings like
'hidetoc/fr' in the array of message keys (which contains strings like

The consequence of this was that MessageCache would check the database
for a MediaWiki:hidetoc/fr page even if it already knew that that page
didn't exist. This is a substantial performance hit when requesting lots
of messages, like when building version hashes for ResourceLoader's
startup module.

Follows-up 4fc5ba8bf83102b02.

Bug: T228555
Change-Id: I20433175ca919acc1c995f4a9cd50ca53afcdd02

2 years agoMerge "resourceloader: Complete test coverage for FilePath"
jenkins-bot [Fri, 19 Jul 2019 23:13:58 +0000 (23:13 +0000)]
Merge "resourceloader: Complete test coverage for FilePath"

2 years agoresourceloader: Complete test coverage for FilePath
Timo Tijhof [Fri, 19 Jul 2019 22:36:06 +0000 (23:36 +0100)]
resourceloader: Complete test coverage for FilePath

The 'getLocalBasePath' and 'getRemoteBasePath' methods were not
yet covered.

Change-Id: If2eacca3a908048ec62b357e14e4e2322363e296

2 years agoMerge "API: Fix 'user_id' field of ApiCSPReport"
jenkins-bot [Fri, 19 Jul 2019 22:34:12 +0000 (22:34 +0000)]
Merge "API: Fix 'user_id' field of ApiCSPReport"

2 years agoMerge "API: Add test case for ApiCSPReportTest"
jenkins-bot [Fri, 19 Jul 2019 22:33:00 +0000 (22:33 +0000)]
Merge "API: Add test case for ApiCSPReportTest"

2 years agoAPI: Fix 'user_id' field of ApiCSPReport
Timo Tijhof [Fri, 19 Jul 2019 21:34:34 +0000 (22:34 +0100)]
API: Fix 'user_id' field of ApiCSPReport

Was accidentally turned into an always-true boolean in 5f343617,
due to confusion with JavaScript's default '||' operator.

Change-Id: I24071e22f8bb7a296ae138303f63acdb8ea4950a

2 years agoAPI: Add test case for ApiCSPReportTest
Timo Tijhof [Fri, 19 Jul 2019 21:33:31 +0000 (22:33 +0100)]
API: Add test case for ApiCSPReportTest

Covers the basic functioning of the class, as well as the specific
behaviours introduced or changed by 5f34361759 and 0ca1b8a0e621c9.

Also includes a (bad) expectation for 'user_id' (bool instead of string),
which is a bug caused by 5f34361759 that the next commit will fix.

Change-Id: I2c57c813b8a31e51a61778951227ccbd1217a547

2 years agoMerge "DevelopmentSettings: Disable legacy javascript globals in CI and for devs"
jenkins-bot [Fri, 19 Jul 2019 21:53:46 +0000 (21:53 +0000)]
Merge "DevelopmentSettings: Disable legacy javascript globals in CI and for devs"

2 years agoDevelopmentSettings: Disable legacy javascript globals in CI and for devs
James D. Forrester [Fri, 19 Jul 2019 20:53:57 +0000 (13:53 -0700)]
DevelopmentSettings: Disable legacy javascript globals in CI and for devs

Bug: T72470
Change-Id: Iedd3a9c8e541bc4cc657753e6ae3389f0393ed64

2 years agoDrop UploadBase:: and UploadFromChunks::stashFileGetKey() and stashSession(), depreca...
James D. Forrester [Tue, 2 Jul 2019 21:58:36 +0000 (14:58 -0700)]
Drop UploadBase:: and UploadFromChunks::stashFileGetKey() and stashSession(), deprecated in 1.28

Change-Id: I2411753a24092a5c37434b095e594831ecff04e1

2 years agoDrop the UploadVerification hook, deprecated in 1.28
James D. Forrester [Tue, 2 Jul 2019 21:49:49 +0000 (14:49 -0700)]
Drop the UploadVerification hook, deprecated in 1.28

Change-Id: Ic1917fc95223cbf97845c2702ddf98accf8ba9c2

2 years agoMerge "objectcache: add MediumSpecificBagOStuff base class for non-proxy subclasses"
jenkins-bot [Fri, 19 Jul 2019 20:32:44 +0000 (20:32 +0000)]
Merge "objectcache: add MediumSpecificBagOStuff base class for non-proxy subclasses"

2 years agoMerge "objectcache: refactor WANObjectCache::fetchOrRegenerate() locking code stylist...
jenkins-bot [Fri, 19 Jul 2019 20:24:06 +0000 (20:24 +0000)]
Merge "objectcache: refactor WANObjectCache::fetchOrRegenerate() locking code stylistically"

2 years agoobjectcache: refactor WANObjectCache::fetchOrRegenerate() locking code stylistically
Aaron Schulz [Thu, 18 Jul 2019 22:43:45 +0000 (15:43 -0700)]
objectcache: refactor WANObjectCache::fetchOrRegenerate() locking code stylistically

Change-Id: I5e289989ef91923b650a9c325febd7410d1b2caf

2 years agoobjectcache: add MediumSpecificBagOStuff base class for non-proxy subclasses
Aaron Schulz [Thu, 11 Jul 2019 12:35:07 +0000 (05:35 -0700)]
objectcache: add MediumSpecificBagOStuff base class for non-proxy subclasses

This make it much clearer what needs to be overridden

Change-Id: I3073f8a0605f557c6a3a93d0d8401cddd0fb8dbe

2 years agoMerge "MediaWikiUnitTestCase: Use DIRECTORY_SEPARATOR instead of `/`"
jenkins-bot [Fri, 19 Jul 2019 20:00:47 +0000 (20:00 +0000)]
Merge "MediaWikiUnitTestCase: Use DIRECTORY_SEPARATOR instead of `/`"

2 years agoMediaWikiUnitTestCase: Use DIRECTORY_SEPARATOR instead of `/`
RazeSoldier [Wed, 17 Jul 2019 17:52:18 +0000 (01:52 +0800)]
MediaWikiUnitTestCase: Use DIRECTORY_SEPARATOR instead of `/`

`strpos( $reflection->getFilename(), '/unit/' )` will always
return FALSE under Windows

Change-Id: Ib13d32858e238b9a18094f829939f6bba08366ab

2 years agoMerge "wdio-mediawiki: Release 0.4.0"
jenkins-bot [Fri, 19 Jul 2019 18:36:42 +0000 (18:36 +0000)]
Merge "wdio-mediawiki: Release 0.4.0"

2 years agoMerge "Improve links in several specialmute-*"
jenkins-bot [Fri, 19 Jul 2019 14:00:28 +0000 (14:00 +0000)]
Merge "Improve links in several specialmute-*"

2 years agoMerge "Allow empty input in namespaces multiselect on Special:Block"
jenkins-bot [Fri, 19 Jul 2019 13:09:11 +0000 (13:09 +0000)]
Merge "Allow empty input in namespaces multiselect on Special:Block"

2 years agoMerge "Clarify WikiRevision::downloadSource() and related code"
jenkins-bot [Fri, 19 Jul 2019 11:53:58 +0000 (11:53 +0000)]
Merge "Clarify WikiRevision::downloadSource() and related code"

2 years agoMerge "resourceloader: Add Config parameter to packageFiles callbacks"
jenkins-bot [Thu, 18 Jul 2019 23:24:28 +0000 (23:24 +0000)]
Merge "resourceloader: Add Config parameter to packageFiles callbacks"

2 years agoMerge "Clean up DeferredUpdates transaction handling"
jenkins-bot [Thu, 18 Jul 2019 22:19:49 +0000 (22:19 +0000)]
Merge "Clean up DeferredUpdates transaction handling"

2 years agoImprove links in several specialmute-*
Amir Aharoni [Fri, 5 Jul 2019 20:19:21 +0000 (23:19 +0300)]
Improve links in several specialmute-*

* Remove namespace prefix from user page links
* Add "user" as translatable text instead

Bug: T218265
Change-Id: If20b9023379f00e0b82992322e340362613dce09

2 years agoresourceloader: Add Config parameter to packageFiles callbacks
Roan Kattouw [Thu, 18 Jul 2019 21:48:42 +0000 (14:48 -0700)]
resourceloader: Add Config parameter to packageFiles callbacks

Callbacks used to generate the contents of virtual files in packageFiles
modules only received a ResourceLoaderContext object. They could access
the Config object through ResourceLoaderContext::getConfig(), but that
method is deprecated. Pass the Config object as a second parameter to
these callbacks, so that they don't have to use a deprecated method.

Change-Id: Ia4666914e9b07f298ee5ae30ae8c70a3e83b0910

2 years agoIncrease test coverage for BlockManager class
Thalia [Mon, 17 Jun 2019 16:59:02 +0000 (17:59 +0100)]
Increase test coverage for BlockManager class

Change-Id: If2c50248448f3f633d9531039094f12c7d712c41

2 years agoMerge "SiteConfigurationTest: Fix recurring typo ("an non-existing")"
jenkins-bot [Thu, 18 Jul 2019 20:49:41 +0000 (20:49 +0000)]
Merge "SiteConfigurationTest: Fix recurring typo ("an non-existing")"

2 years agoClean up DeferredUpdates transaction handling
Aaron Schulz [Thu, 18 Jul 2019 19:27:07 +0000 (12:27 -0700)]
Clean up DeferredUpdates transaction handling

Bail out in attemptUpdate() if the transaction state is dirty rather
that failing at some later point. Also, flush implicit transaction
rounds before calling DeferrableUpdate::doUpdate() for fresher data.

Bug: T225103
Change-Id: I4f5d2f9814a562069619f05e003663fcedbd3f64

2 years agoMerge "Separate right for foreign user js redirects"
jenkins-bot [Thu, 18 Jul 2019 19:39:10 +0000 (19:39 +0000)]
Merge "Separate right for foreign user js redirects"

2 years agoMerge "Revert "objectcache: fix race conditions in RedisBagOStuff::incr()""
jenkins-bot [Thu, 18 Jul 2019 18:46:17 +0000 (18:46 +0000)]
Merge "Revert "objectcache: fix race conditions in RedisBagOStuff::incr()""

2 years agoRevert "objectcache: fix race conditions in RedisBagOStuff::incr()"
Krinkle [Thu, 18 Jul 2019 16:41:24 +0000 (16:41 +0000)]
Revert "objectcache: fix race conditions in RedisBagOStuff::incr()"

This commit reverts most of 7e647d2f0f5b, but keeps unrelated code
clean ups from it, as well as the conflicting changes from d8b952ae47.

From WMF production nutcracker:

> nc_redis.c parsed unsupported command 'WATCH'

The use of WATCH, in addition to failing the commands that use it,
also appears to also have caused a chain reaction making nutcracker
intermittently unavailable to other web requests.

Bug: T228303
Change-Id: Ic37efc2963b147e461837571ae0b65acf3f60cb4

2 years agoMerge "GlobalFunctions: Hard deprecate `wfGlobalCacheKey()` function"
jenkins-bot [Thu, 18 Jul 2019 17:43:16 +0000 (17:43 +0000)]
Merge "GlobalFunctions: Hard deprecate `wfGlobalCacheKey()` function"

2 years agoMerge "Fix param doc of TitleArrayFromResult::setCurrent"
jenkins-bot [Thu, 18 Jul 2019 17:37:07 +0000 (17:37 +0000)]
Merge "Fix param doc of TitleArrayFromResult::setCurrent"

2 years agoPass message params as array to RawMessage
Umherirrender [Tue, 2 Jul 2019 20:00:14 +0000 (22:00 +0200)]
Pass message params as array to RawMessage

To match documentation of RawMessage::__construct

Change-Id: I4d9fce6b63af89a0012c9eaac72c0b46f75b43ac

2 years agoFix param doc of TitleArrayFromResult::setCurrent
Umherirrender [Sat, 29 Jun 2019 16:14:36 +0000 (18:14 +0200)]
Fix param doc of TitleArrayFromResult::setCurrent

$row is a stdClass, not the ResultWrapper, which is a list of stdClass

Change-Id: Ic96354a6283fcf42ac1c75f524f1da45117100ce

2 years agoAllow empty input in namespaces multiselect on Special:Block
Thalia [Thu, 18 Jul 2019 14:48:09 +0000 (15:48 +0100)]
Allow empty input in namespaces multiselect on Special:Block

Follow-up to 83ebbb519f

Bug: T219882
Change-Id: I5f3d907a8f8be02f9e2c23d2a66c42752daa38b5

2 years agoMerge "Add support for extentions to change Special:Mute form"
Dbarratt [Thu, 18 Jul 2019 15:39:09 +0000 (15:39 +0000)]
Merge "Add support for extentions to change Special:Mute form"

2 years agoMerge "objectcache: optimize MemcachedPeclBagOStuff::*Multi() write methods"
jenkins-bot [Thu, 18 Jul 2019 15:28:13 +0000 (15:28 +0000)]
Merge "objectcache: optimize MemcachedPeclBagOStuff::*Multi() write methods"

2 years agowdio-mediawiki: Release 0.4.0
Pablo Grass [Thu, 18 Jul 2019 14:08:54 +0000 (16:08 +0200)]
wdio-mediawiki: Release 0.4.0

a1e51bf94325130fa3d54d65c071d3ab57a4ab79 unpublished 3 RunJobs methods
They do not appear to be used according to wmf codesearch
and, given their limited usefulness, are unlikely to be used elsewhere.

Change-Id: Iaefe6f71320c2c3ab86468bf827b6e8d2e80095d

2 years agoAdd support for extentions to change Special:Mute form
Dayllan Maza [Mon, 1 Jul 2019 14:14:42 +0000 (10:14 -0400)]
Add support for extentions to change Special:Mute form

The hook (SpecialMuteModifyFormFields) is used to append
the option to mute/unmute notifications from a specified user.

Special:Mute handles posting and saving the fields, the only
requirement is that the field name is the same as the property
that wants to be modified.

Currently there are only two notifications "blacklists":
* `email-blacklist` is directly handled in this page 'cause it is part of core.
* `echo-notifications-blacklist` is part of Echo, so this change is required
  to support it. See I77b3ccfdce9b501e

Bug: T220163
Change-Id: I2b3eee0802cb086091f35ecce13ae77a8e7d518d

2 years agoGlobalFunctions: Hard deprecate `wfGlobalCacheKey()` function
Derick Alangi [Thu, 18 Jul 2019 08:22:01 +0000 (09:22 +0100)]
GlobalFunctions: Hard deprecate `wfGlobalCacheKey()` function

The only extension that used this was ConfirmEdit and it has been
cleaned up with Ia7b276ee65fdf58c, so is it time we hard deprecate



Depends-On: Ia7b276ee65fdf58c4fc0859563930528d44a03ca
Change-Id: I3fda797c64ec62df4454625ad1a3bf89f6a88246

2 years agoDelete very incomplete translation
Raymond [Thu, 18 Jul 2019 07:49:57 +0000 (09:49 +0200)]
Delete very incomplete translation

Change-Id: Ic8df4cc9894a366148632dbb2a97803cd6feccef

2 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 18 Jul 2019 07:06:38 +0000 (09:06 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I06dcc9ee33533abbfa09d8ae7bafd6f6547f0e22

2 years agoMerge "objectcache: fix WinCacheBagOStuf::doGet() is_string() check"
jenkins-bot [Thu, 18 Jul 2019 06:39:29 +0000 (06:39 +0000)]
Merge "objectcache: fix WinCacheBagOStuf::doGet() is_string() check"

2 years agoobjectcache: fix WinCacheBagOStuf::doGet() is_string() check
Aaron Schulz [Thu, 18 Jul 2019 05:50:14 +0000 (22:50 -0700)]
objectcache: fix WinCacheBagOStuf::doGet() is_string() check

Allow integers to so that incr() and other cases work. This class
now passes all the unit tests again.

Change-Id: Ie7aae36180472a0e913fb8275bccee3fbc6fe7d9

2 years agoMerge "Tests: Remove old TODO file and update README with integration notes"
jenkins-bot [Thu, 18 Jul 2019 05:35:53 +0000 (05:35 +0000)]
Merge "Tests: Remove old TODO file and update README with integration notes"

2 years agoMerge "Remove deprecated mw.Api.errors and mw.Api.warnings"
jenkins-bot [Thu, 18 Jul 2019 02:27:58 +0000 (02:27 +0000)]
Merge "Remove deprecated mw.Api.errors and mw.Api.warnings"

2 years agoMerge "installer: Remove <doclink/> parser function and last use of it"
jenkins-bot [Thu, 18 Jul 2019 02:18:35 +0000 (02:18 +0000)]
Merge "installer: Remove <doclink/> parser function and last use of it"

2 years agoMerge "objectcache: clean up RedisBagOStuff and optimize changeTTLMulti()"
jenkins-bot [Thu, 18 Jul 2019 02:07:31 +0000 (02:07 +0000)]
Merge "objectcache: clean up RedisBagOStuff and optimize changeTTLMulti()"

2 years agoobjectcache: clean up RedisBagOStuff and optimize changeTTLMulti()
Aaron Schulz [Tue, 2 Jul 2019 00:11:06 +0000 (17:11 -0700)]
objectcache: clean up RedisBagOStuff and optimize changeTTLMulti()

Also fix some IDEA warnings in redis classes and make it easy for IDEs
to recognize the Redis (phpredis) class calls to RedisConnRef proxies.

Bug: T113916
Change-Id: If45a37da412ac37e8c07dc3d1053826aa0a62077

2 years agoinstaller: Remove <doclink/> parser function and last use of it
Timo Tijhof [Thu, 18 Jul 2019 00:29:12 +0000 (01:29 +0100)]
installer: Remove <doclink/> parser function and last use of it

Pass the url to the Copying page as a message parameter instead.
This results in identical text and styling. Not even "external link"
vs plain link styling difference, because that doesn't exist in the
installer stylesheet.

The message is renamed in this commit because it is a breaking
change (due to <doclink> being removed, and due to $2 being

Bug: T227297
Change-Id: I73efd9ecb193523a7e384a7a40c768d32b2361b8

2 years agoMerge "Remove pointless PermissionManager::revokeTemporaryUserRights method"
jenkins-bot [Thu, 18 Jul 2019 00:23:33 +0000 (00:23 +0000)]
Merge "Remove pointless PermissionManager::revokeTemporaryUserRights method"

2 years agoMerge "doMaintenance: Try to print errors to stderr"
jenkins-bot [Wed, 17 Jul 2019 23:58:31 +0000 (23:58 +0000)]
Merge "doMaintenance: Try to print errors to stderr"

2 years agoMerge "parser: add vary-revision-sha1 and related ParserOutput methods"
jenkins-bot [Wed, 17 Jul 2019 23:57:17 +0000 (23:57 +0000)]
Merge "parser: add vary-revision-sha1 and related ParserOutput methods"

2 years agoSeparate right for foreign user js redirects
Gergő Tisza [Thu, 1 Nov 2018 23:29:22 +0000 (16:29 -0700)]
Separate right for foreign user js redirects

Require a new editmyuserjsredirect permission for users to edit
Javascript redirects in their userspace when the redirect target
is not in their userspace (unless they have edituserjs and can
edit any user JS anyway). This is to prevent attacks where a
popular userscript has been moved into the system namespace or
another safe location but many users still load it through the
original userspace redirect, and the attacker manages to take
over the userspace by compromising the account or getting it

Since this is only a concern on large community wikis, by
default all users have the editmyuserjsredirect permission.

Bug: T207750
Change-Id: I36a879d5da04cb6f49ed1bc40dbe144f6862c6a1
Depends-On: I072cf857c1fff4578402904aa9cb5a0c8833f16f

2 years agoRemove pointless PermissionManager::revokeTemporaryUserRights method
Gergő Tisza [Wed, 17 Jul 2019 12:00:21 +0000 (14:00 +0200)]
Remove pointless PermissionManager::revokeTemporaryUserRights method

Also add missing @since and make phpdoc formatting match (most) other

Change-Id: I087205ad23836f283e5ba291488a9bc1f4c3ce99

2 years agoMerge "Remember checkbox state on Special:Block if checkbox disabled"
jenkins-bot [Wed, 17 Jul 2019 20:44:38 +0000 (20:44 +0000)]
Merge "Remember checkbox state on Special:Block if checkbox disabled"

2 years agoMerge "rdbms: better handle a non-existing "defaultGroup" in LoadBalancer"
jenkins-bot [Wed, 17 Jul 2019 19:10:49 +0000 (19:10 +0000)]
Merge "rdbms: better handle a non-existing  "defaultGroup" in LoadBalancer"

2 years agoMerge "objectcache: relax WANObjectCache "pcTTL" nesting rule to allow set()"
jenkins-bot [Wed, 17 Jul 2019 17:53:32 +0000 (17:53 +0000)]
Merge "objectcache: relax WANObjectCache "pcTTL" nesting rule to allow set()"

2 years agoobjectcache: relax WANObjectCache "pcTTL" nesting rule to allow set()
Aaron Schulz [Tue, 16 Jul 2019 09:31:54 +0000 (02:31 -0700)]
objectcache: relax WANObjectCache "pcTTL" nesting rule to allow set()

As long as get()s are disallowed from the process cache, the sets() should
at least still be up-to-date, so there is little reason to prevent them.

Change-Id: Ic62c8380801130de7f8412cddcf85b246e33b3cd

2 years agoMerge "Exclude extensions/skins test directories from coverage analysis"
jenkins-bot [Wed, 17 Jul 2019 17:28:11 +0000 (17:28 +0000)]
Merge "Exclude extensions/skins test directories from coverage analysis"

2 years agoTests: Remove old TODO file and update README with integration notes
Kosta Harlan [Wed, 17 Jul 2019 17:00:54 +0000 (13:00 -0400)]
Tests: Remove old TODO file and update README with integration notes

Change-Id: I006a238f5241a70841f0d25ef7196f13654fb7ac

2 years agoMerge "externalstore: unbreak writes to non-default storage clusters due to isReadOnly()"
jenkins-bot [Wed, 17 Jul 2019 16:28:33 +0000 (16:28 +0000)]
Merge "externalstore: unbreak writes to non-default storage clusters due to isReadOnly()"

2 years agoExclude extensions/skins test directories from coverage analysis
Kosta Harlan [Wed, 17 Jul 2019 16:00:58 +0000 (12:00 -0400)]
Exclude extensions/skins test directories from coverage analysis

Follows-Up: I3d19627fa36f6cc6666c29fdb638272fdaa30630

Bug: T192078
Change-Id: I29dec891ee2327dde96dc293f3d9cda0e6a891fc

2 years agoMerge "Remove unused variable"
jenkins-bot [Wed, 17 Jul 2019 15:54:46 +0000 (15:54 +0000)]
Merge "Remove unused variable"

2 years agoMerge "Report more information about composite blocks in block error messages"
jenkins-bot [Wed, 17 Jul 2019 15:53:28 +0000 (15:53 +0000)]
Merge "Report more information about composite blocks in block error messages"

2 years agoReport more information about composite blocks in block error messages
Thalia [Wed, 3 Jul 2019 15:40:44 +0000 (16:40 +0100)]
Report more information about composite blocks in block error messages

For any messages that use CompositeBlock::getPermissionsError, include
details of the original blocks from which the composite block is made.

If there are any database blocks, give their IDs and also explain that
there may also be blocks due to IP blacklisting.

If there are no database blocks, then explain that the IP must be
blacklisted in multiple places.

Bug: T212326
Change-Id: Id6ad0019f8add4d5e000da5e872338e87cca485e

2 years agoRemove unused variable
Dayllan Maza [Wed, 17 Jul 2019 15:13:31 +0000 (11:13 -0400)]
Remove unused variable

Change-Id: I70c76e05e46f3432e580eb6e93d7a49ecfc5cfb4

2 years agoRemember checkbox state on Special:Block if checkbox disabled
Thalia [Mon, 15 Jul 2019 18:39:36 +0000 (19:39 +0100)]
Remember checkbox state on Special:Block if checkbox disabled

Many of the blocking options on Special:Block are only valid for
certain inputs. These options are represented with checkboxes. If
an option is not valid with the current form inputs, its checkbox
is disabled (and not submitted) and it is set to false by default.
To make this clear to the user, we uncheck the checkbox when it
is disabled.

This stores the value of the checkbox before it was disabled and
restores it if the checkbox is enabled again.

Bug: T221117
Change-Id: I3e52d7c3eb70f2798de3fb5ac3824d56e73306a6

2 years agoMessagesKo.php: periodic updates
Yongmin Hong [Wed, 17 Jul 2019 09:53:02 +0000 (18:53 +0900)]
MessagesKo.php: periodic updates

Add Mute and sort BlockList alphabetically.

Change-Id: I8125979b61e489b2c99af258254c4bb83675b9c4
Signed-off-by: Yongmin Hong <revi@pobox.com>
2 years agoparser: add vary-revision-sha1 and related ParserOutput methods
Aaron Schulz [Thu, 4 Jul 2019 10:01:31 +0000 (03:01 -0700)]
parser: add vary-revision-sha1 and related ParserOutput methods

This can be used to avoid double parsed on save if the prior output
can be reused in-spite of involving a self content reference.

Change-Id: Idcd30a3fa3f7012dac76ce8bbf46625453ae331f

2 years agoexternalstore: unbreak writes to non-default storage clusters due to isReadOnly()
Aaron Schulz [Wed, 17 Jul 2019 04:52:32 +0000 (21:52 -0700)]
externalstore: unbreak writes to non-default storage clusters due to isReadOnly()

Instead of telling ExternalStoreMedium classes the default write stores and using
that to make them read-only, let them be configured via other means. For example,
ExternalStoreMwstore already respects FileBackend::isReadOnly() for each location
(e.g. file backends) and ExternalStoreDB checks LoadBalancer::getReadOnlyMode()
for each location (e.g. DB cluster).

Make ExternalStoreAccess::isReadOnly() take a list of base URLs, default to the
default write stores if not specified.

Bug: T227156
Change-Id: I3161890fb2ccb46d6206628f0cd88f8af9f1688c
Follows-Up: I40c3b5534fc8a31116c4c5eb64ee6e4903a6197a

2 years agoMerge "Add mechanism for temporary user rights"
jenkins-bot [Wed, 17 Jul 2019 02:06:04 +0000 (02:06 +0000)]
Merge "Add mechanism for temporary user rights"

2 years agoAdd mechanism for temporary user rights
Gergő Tisza [Thu, 11 Jul 2019 17:22:20 +0000 (19:22 +0200)]
Add mechanism for temporary user rights

Add a mechanism for adding temporary user rights that only exist
for the current request. This is occasionally needed to let normal
users act with a bot flag; traditionally the fact that User::$mRights
was public has been abused to do it, but I88992403 broke that.

Bug: T227772
Change-Id: Ife8f9d8affa750701e4e5d646ed8cd153c1d867b

2 years agoHard-deprecate wgProfileOnly, deprecated in 1.23
James D. Forrester [Fri, 12 Jul 2019 23:42:09 +0000 (16:42 -0700)]
Hard-deprecate wgProfileOnly, deprecated in 1.23

Change-Id: I1b66931ca0d3ae3e044b14f5b97dd98861ec5e23

2 years agoHard-deprecate wgLocalInterwiki, deprecated in 1.23
James D. Forrester [Fri, 12 Jul 2019 23:40:51 +0000 (16:40 -0700)]
Hard-deprecate wgLocalInterwiki, deprecated in 1.23

Change-Id: Ib18c3122c4d9b8a50d314f67004cc73b8c14d40e

2 years agoMerge "Hard-deprecate wgSkipSkin, deprecated in 1.23"
jenkins-bot [Wed, 17 Jul 2019 01:13:24 +0000 (01:13 +0000)]
Merge "Hard-deprecate wgSkipSkin, deprecated in 1.23"

2 years agoMerge "Update OOUI to v0.33.3"
jenkins-bot [Wed, 17 Jul 2019 00:00:37 +0000 (00:00 +0000)]
Merge "Update OOUI to v0.33.3"

2 years agoMerge "Fix OO.ui.infuse error on misc-authed-ooui module"
jenkins-bot [Tue, 16 Jul 2019 23:25:07 +0000 (23:25 +0000)]
Merge "Fix OO.ui.infuse error on misc-authed-ooui module"

2 years agoFix OO.ui.infuse error on misc-authed-ooui module
Dayllan Maza [Mon, 15 Jul 2019 20:04:38 +0000 (16:04 -0400)]
Fix OO.ui.infuse error on misc-authed-ooui module

Follows-up 419849211e3a63.

Change-Id: I1e22c70fa8c467212a02b508c68a17abf79a77e8

2 years agoMerge "Add mute preferences link to the tools menu"
jenkins-bot [Tue, 16 Jul 2019 22:43:22 +0000 (22:43 +0000)]
Merge "Add mute preferences link to the tools menu"

2 years agoMerge "Check namespace exists in HTMLNamespacesMultiselectField validation"
jenkins-bot [Tue, 16 Jul 2019 22:12:17 +0000 (22:12 +0000)]
Merge "Check namespace exists in HTMLNamespacesMultiselectField validation"

2 years agoUpdate OOUI to v0.33.3
Volker E [Tue, 16 Jul 2019 21:59:51 +0000 (14:59 -0700)]
Update OOUI to v0.33.3

Release notes:

Bug: T212159
Bug: T225021
Bug: T226045
Bug: T226780
Bug: T226822
Bug: T227666
Bug: T227917
Depends-On: I7dde9d02f94c4e78ef480035d3887b68d0128233
Change-Id: I7800da87a6a10399f705b43e05c8592c766bae6f

2 years agoAdd mute preferences link to the tools menu
Dayllan Maza [Wed, 10 Jul 2019 17:47:07 +0000 (13:47 -0400)]
Add mute preferences link to the tools menu

A link to Special:Mute is added to the tools menu on the sidebar
if the user is logged in and a registered relevant-user* is found
Mute preferences link will not be shown if $wgEnableSpecialMute is false

* From Skin::getRelevantUser: Special pages like Special:Contributions mark
  the user which  they are relevant to so that things like the toolbox can
  display the information they usually are only able to display on a
  user's userpage and talkpage.

Bug: T218270
Change-Id: I89eb8373963d28d52a026b60aa42d1c64b31b7c6

2 years agordbms: better handle a non-existing "defaultGroup" in LoadBalancer
Aaron Schulz [Mon, 15 Jul 2019 23:59:21 +0000 (16:59 -0700)]
rdbms: better handle a non-existing  "defaultGroup" in LoadBalancer

If the specified default group does not have a corresponding server load map
defined, then ignore it and use GROUP_GENERIC.

Also, consolidate the group load and group reader index code for simplicity

Change-Id: Ic8bf9a3ebcbffb81fb14d7b1787a2adb97ac525d