4 years agoUse wikimedia/object-factory 1.0.0
Kunal Mehta [Fri, 2 Feb 2018 10:27:27 +0000 (02:27 -0800)]
Use wikimedia/object-factory 1.0.0

Deprecate the unnamespaced version and move it to includes/compat.

Bug: T147167
Depends-On: I39c805bfb98b32f32f3d0dc1eee9e823afe1c21a
Change-Id: I3780c7adf51683f3f7adb35a88f9a25a0a2e2530

4 years agoMerge "rdbms: turn LoadBalancer waitTimeout default into a class constant"
jenkins-bot [Sun, 4 Feb 2018 18:22:20 +0000 (18:22 +0000)]
Merge "rdbms: turn LoadBalancer waitTimeout default into a class constant"

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 3 Feb 2018 20:54:11 +0000 (21:54 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ib0da9c11a473475633c26e418a3fb3a1eb901653

4 years agoMerge "mediawiki.api.edit: Remove dependency on 'mediawiki.Title'"
jenkins-bot [Sat, 3 Feb 2018 06:20:23 +0000 (06:20 +0000)]
Merge "mediawiki.api.edit: Remove dependency on 'mediawiki.Title'"

4 years agoMerge "EmailNotification: Hard deprecate updateWatchlistTimestamp()"
jenkins-bot [Sat, 3 Feb 2018 05:54:07 +0000 (05:54 +0000)]
Merge "EmailNotification: Hard deprecate updateWatchlistTimestamp()"

4 years agordbms: clean up and improve LoadBalancer logging calls
Aaron Schulz [Fri, 2 Feb 2018 18:00:42 +0000 (10:00 -0800)]
rdbms: clean up and improve LoadBalancer logging calls

Change-Id: I8a17ad36ccc770fbd101c4b280e8ad1b32837125

4 years agoEmailNotification: Hard deprecate updateWatchlistTimestamp()
James D. Forrester [Wed, 31 Jan 2018 22:33:18 +0000 (14:33 -0800)]
EmailNotification: Hard deprecate updateWatchlistTimestamp()

Soft-deprecated in 1.27.

Depends-On: Ie7073f2048ba2b79a8b36ad913453008ec3555ce
Change-Id: If1dd2f8211c808ab0e284d7a3fb0b24610a0b32d

4 years agordbms: turn LoadBalancer waitTimeout default into a class constant
Aaron Schulz [Sat, 3 Feb 2018 03:30:48 +0000 (19:30 -0800)]
rdbms: turn LoadBalancer waitTimeout default into a class constant

Change-Id: Icd1e1aba1c45cb79a8249a9e16dce16f1c8183d2

4 years agoMerge "Add Siberian Tatar (sty) language"
jenkins-bot [Sat, 3 Feb 2018 01:01:21 +0000 (01:01 +0000)]
Merge "Add Siberian Tatar (sty) language"

4 years agoMerge "skins: Deprecate MediaWikiI18N::translate()"
jenkins-bot [Sat, 3 Feb 2018 01:01:17 +0000 (01:01 +0000)]
Merge "skins: Deprecate MediaWikiI18N::translate()"

4 years agoAdd Siberian Tatar (sty) language
MarcoAurelio [Fri, 2 Feb 2018 22:34:17 +0000 (23:34 +0100)]
Add Siberian Tatar (sty) language

Bug: T186359
Change-Id: Iecfdda0bcfbcc491565b6de36046791a3e5c540a

4 years agoMerge "JavaScriptMinifier: Fix "Uninitialized offset" in regexp char class parsing"
jenkins-bot [Fri, 2 Feb 2018 23:54:27 +0000 (23:54 +0000)]
Merge "JavaScriptMinifier: Fix "Uninitialized offset" in regexp char class parsing"

4 years agoskins: Deprecate MediaWikiI18N::translate()
Timo Tijhof [Fri, 2 Feb 2018 20:54:02 +0000 (12:54 -0800)]
skins: Deprecate MediaWikiI18N::translate()

Remove all usage of $tpl->translator->translate() with wfMessage()->text(),
which does the same thing, given the deprecated $tpl->translator->set()
and $tpl->setTranslator() methods have no callers.

These new wfMessage() callers should probably be changed to context calls
via BaseTemplate::msg() or Skin::msg() at some point, but I'm reserving that
for a separate commit given wfMessage() is what MediaWikiI18N::translate()
currently does - to reduce risk of unrelated behaviour changes.

While `$tpl->setTranslator` and `MediaWikiI18N::set` ($tpl->translator->set)
have no known callers in Wikimedia Git, the `$tpl->translator->translate`
method does have a handful of calls (although less than three, and not in
bundled or WMF-deployed repos). As such, proceeding with hard-deprecation.

Bug: T186090
Change-Id: I93d503de5515298288852ec4c150959fd688786b

4 years agoMerge "skins: Deprecate QuickTemplate::setTranslator and MediaWikiI18N::set"
jenkins-bot [Fri, 2 Feb 2018 23:32:27 +0000 (23:32 +0000)]
Merge "skins: Deprecate QuickTemplate::setTranslator and MediaWikiI18N::set"

4 years agoMerge "mediawiki.api.edit: Fix errors"
jenkins-bot [Fri, 2 Feb 2018 23:28:14 +0000 (23:28 +0000)]
Merge "mediawiki.api.edit: Fix errors"

4 years agoMerge "Do not concat exception class name in Timestamp compat"
jenkins-bot [Fri, 2 Feb 2018 21:38:29 +0000 (21:38 +0000)]
Merge "Do not concat exception class name in Timestamp compat"

4 years agomediawiki.api.edit: Fix errors
Fomafix [Mon, 29 Jan 2018 08:38:35 +0000 (09:38 +0100)]
mediawiki.api.edit: Fix errors

* Use title = String( title ) to support title with type mw.Title also on the
  POST request.
* Use titles: [ title ] instead of titles: title to ensure that a '|' in the
  title is not interpreted as multi value separator.
* Reject on invalid === true to prevent processing invalid titles.

Change-Id: Ia6a3d9b4b658a89f8969f0d64bf06a53638eb553

4 years agoMerge "Remove Skin::showIPinHeader(), deprecated since 1.27"
jenkins-bot [Fri, 2 Feb 2018 21:05:40 +0000 (21:05 +0000)]
Merge "Remove Skin::showIPinHeader(), deprecated since 1.27"

4 years agoMerge "OutputPage: Remove methods deprecated in 1.27 or before"
jenkins-bot [Fri, 2 Feb 2018 21:03:15 +0000 (21:03 +0000)]
Merge "OutputPage: Remove methods deprecated in 1.27 or before"

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 2 Feb 2018 20:55:25 +0000 (21:55 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Id6a360383034c78b0723dc7896640d365add4ab5

4 years agoskins: Deprecate QuickTemplate::setTranslator and MediaWikiI18N::set
Timo Tijhof [Fri, 2 Feb 2018 20:37:46 +0000 (12:37 -0800)]
skins: Deprecate QuickTemplate::setTranslator and MediaWikiI18N::set

These methods have no callers anywhere in Wikimedia Git.
Deprecate it now, remove in MediaWiki 1.32.

This is part of removing the legacy MediaWikiI18N class.

Bug: T186090
Change-Id: Ie2ca6a4b4f4481dc5cd81e7ed5543a05ee611f42

4 years agoRemove Skin::showIPinHeader(), deprecated since 1.27
James D. Forrester [Wed, 31 Jan 2018 22:32:41 +0000 (14:32 -0800)]
Remove Skin::showIPinHeader(), deprecated since 1.27

Change-Id: I46e5f84512413c9c4fbdfa43abf8908d6a6e11be

4 years agoOutputPage: Remove methods deprecated in 1.27 or before
James D. Forrester [Wed, 31 Jan 2018 21:33:06 +0000 (13:33 -0800)]
OutputPage: Remove methods deprecated in 1.27 or before

Eighteen uses of readOnlyPage and three of addExtensionStyle; all
have fixes awaiting merge. Marking as dependent on the only one
in a Wikimedia-deployed extension.

Depends-On: Ib3ea649bc68dd0edc025133721b46996d1e8901f
Change-Id: I636ebc7dead55f1ae654a13d3b6ebb023ecfe8e1

4 years agoMerge "SpecialPage: Hard deprecate getTitle, deprecated since 1.23"
jenkins-bot [Fri, 2 Feb 2018 20:31:02 +0000 (20:31 +0000)]
Merge "SpecialPage: Hard deprecate getTitle, deprecated since 1.23"

4 years agoMerge "Add tablesUsed to RevisionStoreDbTest"
jenkins-bot [Fri, 2 Feb 2018 19:46:37 +0000 (19:46 +0000)]
Merge "Add tablesUsed to RevisionStoreDbTest"

4 years agoAdd tablesUsed to RevisionStoreDbTest
addshore [Mon, 29 Jan 2018 17:08:58 +0000 (17:08 +0000)]
Add tablesUsed to RevisionStoreDbTest

Bug: T183777
Change-Id: Ie8bc2a9aca341a44c22828c9e9c3a7f89c7f87cd

4 years agoMerge "SiteStats row initialization cleanups"
jenkins-bot [Fri, 2 Feb 2018 18:41:07 +0000 (18:41 +0000)]
Merge "SiteStats row initialization cleanups"

4 years agoMerge "Remove wrapclass from parser cache key"
jenkins-bot [Fri, 2 Feb 2018 18:41:02 +0000 (18:41 +0000)]
Merge "Remove wrapclass from parser cache key"

4 years agoDo not concat exception class name in Timestamp compat
WMDE-Fisch [Thu, 1 Feb 2018 17:27:07 +0000 (18:27 +0100)]
Do not concat exception class name in Timestamp compat

It seems this is not necessary and confused my IDE in thinking
'Exception' is an alias for TimestampException.

Given that we use a namespaced reference to the class,
ClassCollector still won't see it. Updated test to verify that.

Change-Id: I7c9258c5739a64959442af1296e2b93395260894

4 years agoMerge "mediawiki.api.category: Avoid exceptions"
jenkins-bot [Fri, 2 Feb 2018 18:23:52 +0000 (18:23 +0000)]
Merge "mediawiki.api.category: Avoid exceptions"

4 years agoMerge "Throw exception if php-curl is missing"
jenkins-bot [Fri, 2 Feb 2018 16:58:28 +0000 (16:58 +0000)]
Merge "Throw exception if php-curl is missing"

4 years agoMerge "Print: pre-wrap <pre> elements"
jenkins-bot [Fri, 2 Feb 2018 16:36:59 +0000 (16:36 +0000)]
Merge "Print: pre-wrap <pre> elements"

4 years agoThrow exception if php-curl is missing
Moritz Schubotz (physikerwelt) [Fri, 2 Feb 2018 15:37:00 +0000 (16:37 +0100)]
Throw exception if php-curl is missing

Currently MediaWiki just dies silently, if the php
curl extension is missing.

Throw an exception instead that redirects the admin to the appropriate help page.

Change-Id: I25edfcb34ee5451a742cac6ae099019a16f6c417

4 years agomediawiki.api.edit: Remove dependency on 'mediawiki.Title'
Fomafix [Fri, 2 Feb 2018 16:06:52 +0000 (17:06 +0100)]
mediawiki.api.edit: Remove dependency on 'mediawiki.Title'

The module 'mediawiki.api.edit' supports parameter with type mw.Title
but it does not need an explicit dependency on the module

Change-Id: I75b08ac0c906c1cdea7275f6bb209dd7655da5ef

4 years agomediawiki.api.category: Avoid exceptions
Fomafix [Mon, 29 Jan 2018 11:57:00 +0000 (12:57 +0100)]
mediawiki.api.category: Avoid exceptions

This change avoids some exceptions in processing the API response
* Ensure that a "|" in the title is not interpreted as multi value
* The key query is missing on empty title.
* The key query.pages is missing on title="#" or title="mw:".

Change-Id: Idc82412337d0733cc58a78b1e202f5fdfd8f31cd

4 years agoPrint: pre-wrap <pre> elements
Derk-Jan Hartman [Fri, 2 Feb 2018 14:24:26 +0000 (15:24 +0100)]
Print: pre-wrap <pre> elements

This seems to have been overlooked when T103780 was fixed during 1.26

Bug: T185129
Change-Id: I6f0068d66a5641c4f5092d5a2d0356c061fd2763

4 years agoSiteStats row initialization cleanups
Aaron Schulz [Wed, 31 Jan 2018 21:39:44 +0000 (13:39 -0800)]
SiteStats row initialization cleanups

* Remove unreachable code (field cannot be both null and -1)
* Avoid PHP warnings during test runs in miser mode due to
  the $row field being "false".
* Init the site_stats row in unit tests to unbreak miser mode.

Change-Id: Ieb45cb3068b71e01aa12c674e0bfcf13a7f2493c

4 years agoMerge "rdbms: set the schema in the LBFactory local domain"
jenkins-bot [Fri, 2 Feb 2018 04:25:46 +0000 (04:25 +0000)]
Merge "rdbms: set the schema in the LBFactory local domain"

4 years agoMerge "Shell: Set pipes to non-blocking"
jenkins-bot [Fri, 2 Feb 2018 04:22:05 +0000 (04:22 +0000)]
Merge "Shell: Set pipes to non-blocking"

4 years agoAdd mobile and desktop thresholds
jdlrobson [Fri, 18 Aug 2017 17:55:35 +0000 (12:55 -0500)]
Add mobile and desktop thresholds

This will allow us to centralise these values similar to tablet
device width and allow us to remove a Minerva/MobileFrontend

Going forward we will encourage explicitly tracked imports
deviceWidthTablet is retained for backwards compatibility
but on long term it should be imported directly from mediawiki.ui's

Bug: T171365
Change-Id: Ib9f843147db4473ce5590741e0fb490384b0007e

4 years agoMerge "Make interim WAN cache key deactivation logic broader"
jenkins-bot [Fri, 2 Feb 2018 04:04:13 +0000 (04:04 +0000)]
Merge "Make interim WAN cache key deactivation logic broader"

4 years agoMerge "rdbms: Bump TransactionProfiler log entries to WARNING"
jenkins-bot [Fri, 2 Feb 2018 04:00:27 +0000 (04:00 +0000)]
Merge "rdbms: Bump TransactionProfiler log entries to WARNING"

4 years agordbms: Bump TransactionProfiler log entries to WARNING
Aaron Schulz [Wed, 31 Jan 2018 22:33:28 +0000 (14:33 -0800)]
rdbms: Bump TransactionProfiler log entries to WARNING

Change-Id: I4816cfb8c8cd3b8e3dd2fe10c028c4654cc82854

4 years agoMerge "deferred: Make MWCallableUpdate support a list of DB handles"
jenkins-bot [Fri, 2 Feb 2018 03:51:32 +0000 (03:51 +0000)]
Merge "deferred: Make MWCallableUpdate support a list of DB handles"

4 years agoMerge "objectcache: use region prefixes for mcrouter-backed WAN cache"
jenkins-bot [Fri, 2 Feb 2018 03:34:06 +0000 (03:34 +0000)]
Merge "objectcache: use region prefixes for mcrouter-backed WAN cache"

4 years agoMerge "Warn if stateful ParserOutput transforms are used"
jenkins-bot [Fri, 2 Feb 2018 02:45:27 +0000 (02:45 +0000)]
Merge "Warn if stateful ParserOutput transforms are used"

4 years agoMerge "benchmarks: Fix divide by zero in Benchmarker"
jenkins-bot [Fri, 2 Feb 2018 02:31:24 +0000 (02:31 +0000)]
Merge "benchmarks: Fix divide by zero in Benchmarker"

4 years agobenchmarks: Fix divide by zero in Benchmarker
Brad Jorsch [Thu, 1 Feb 2018 21:26:09 +0000 (16:26 -0500)]
benchmarks: Fix divide by zero in Benchmarker

Follows-up 593442683dc471c0.

Bug: T186269
Change-Id: I011a8614e0acf489daf5bd9dcb932e920b995092

4 years agoMerge "qunit: Test `before` and `after` hooks in QUnit testrunner"
jenkins-bot [Fri, 2 Feb 2018 01:27:33 +0000 (01:27 +0000)]
Merge "qunit: Test `before` and `after` hooks in QUnit testrunner"

4 years agoMerge "qunit: Refactor and simplify testrunner to fix nested modules"
jenkins-bot [Fri, 2 Feb 2018 01:24:12 +0000 (01:24 +0000)]
Merge "qunit: Refactor and simplify testrunner to fix nested modules"

4 years agoMerge "Added letter Kra (ĸ) to special characters toolbar"
jenkins-bot [Fri, 2 Feb 2018 01:18:41 +0000 (01:18 +0000)]
Merge "Added letter Kra (ĸ) to special characters toolbar"

4 years agoAdded letter Kra (ĸ) to special characters toolbar
navisk13 [Tue, 30 Jan 2018 13:11:50 +0000 (18:41 +0530)]
Added letter Kra (ĸ) to special characters toolbar

Added 'Kra' to latin extended collection in the file /resources/src/mediawiki.language/specialcharacters.json

Bug: T185918
Change-Id: Ibc739297e5a1b8d109202477e1314cc3a0d6d5b4

4 years agoRemove wrapclass from parser cache key
Brad Jorsch [Fri, 22 Dec 2017 18:47:33 +0000 (13:47 -0500)]
Remove wrapclass from parser cache key

This will result in an exception from WikiPage::getParserOutput() if
anything was missed.

This also hard-deprecates ParserOptions::setWrapOutputClass( false )

Bug: T181846
Change-Id: Ica541e1f6b52f5eec6d28cff60ba64bf525258c7
Depends-On: Ie5d6c5ce34c05b8fe2353d3bb36b2a3a4166ec4b
Depends-On: Ibfaefde2f3811151ec712554cbc9cf2415ed017f
Depends-On: I55048bbae5d4d2d0c79c241c1784448b82db3bb4
Depends-On: I23a26ba0dfbe83007cd40e97d71a2139a5ecddc7
Depends-On: Ibc013a41f4a463f4014fbbce7ce27f8690161728
Depends-On: Ie936dff918dc0869503a924298b4580402038b52

4 years agoAdd 'unwrap' ParserOutput post-cache transform
Brad Jorsch [Fri, 22 Dec 2017 18:32:49 +0000 (13:32 -0500)]
Add 'unwrap' ParserOutput post-cache transform

And deprecate passing false for ParserOptions::setWrapOutputClass().

There are three cases for the Parser wrapper: the default
mw-parser-output, a custom wrapper, or no wrapper. As things currently
stand, we have to fragment the parser cache on each of these options,
which uses a nontrival amount of storage space (T167784).

Ideally we'd do all the wrapping as a post-cache transform, but
TemplateStyles needs to know the wrapper in use in order to properly
prefix its CSS rules (that's why we added the wrapper in the first
place). So, second best option is to make *un*wrapping be a post-cache
transform and make "custom wrapper" be uncacheable.

This patch does the first bit (unwrapping as a post-cache transform),
and a followup will do the second part once the deprecation process is

Bug: T181846
Change-Id: Iba16e78c41be992467101e7d83e9c3134765b101

4 years agoShell: Set pipes to non-blocking
Brad Jorsch [Thu, 1 Feb 2018 18:45:35 +0000 (13:45 -0500)]
Shell: Set pipes to non-blocking

The select(2) system call only guarantees a "sufficiently small write"
can be made without blocking. It doesn't define what that means.

And on Linux the read might block too in certain cases, although I don't
know if any of them can occur here.

Regardless, set all the pipes to non-blocking, which avoids the blocking
that's behind T184171.

And then, since a non-blocking read might validly return empty-string or
a non-blocking write might validly return 0, use feof() to check for EOF
and actually close the write pipe when it runs out of data.

Bug: T184171
Change-Id: I403235a328630112b6920905730f933777e2d453

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 1 Feb 2018 20:56:02 +0000 (21:56 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I3eb13a00f4f315cc23b29602a8ef1206f26065dc

4 years agoobjectcache: use region prefixes for mcrouter-backed WAN cache
Aaron Schulz [Tue, 5 Dec 2017 06:05:31 +0000 (22:05 -0800)]
objectcache: use region prefixes for mcrouter-backed WAN cache

This allows for mcrouter to have proper cross-DC and intra-DC timeouts.

Change-Id: If48f740f435d266a2050839f34611c0c8f36b3a7

4 years agoMerge "Add ability to proxy thumbnail requests to a service"
jenkins-bot [Thu, 1 Feb 2018 17:43:10 +0000 (17:43 +0000)]
Merge "Add ability to proxy thumbnail requests to a service"

4 years agoMerge "Hygiene: Use “OOUI” as unified name in build and code documentation"
jenkins-bot [Thu, 1 Feb 2018 17:41:53 +0000 (17:41 +0000)]
Merge "Hygiene: Use “OOUI” as unified name in build and code documentation"

4 years agoMerge "Bump composer/spdx-licenses to 1.3.0"
jenkins-bot [Thu, 1 Feb 2018 16:01:35 +0000 (16:01 +0000)]
Merge "Bump composer/spdx-licenses to 1.3.0"

4 years agoMerge "Fix jump-to-nav element overlap on RCFilters"
jenkins-bot [Thu, 1 Feb 2018 15:33:24 +0000 (15:33 +0000)]
Merge "Fix jump-to-nav element overlap on RCFilters"

4 years agoAdd missing PHPDoc block to DifferenceEngine::getParserOutput
Thiemo Mättig [Thu, 1 Feb 2018 11:48:29 +0000 (12:48 +0100)]
Add missing PHPDoc block to DifferenceEngine::getParserOutput

Bug: T186163
Change-Id: Ifde6f8e458d90b1ec250dc4d587cd428717fe509

4 years agoqunit: Test `before` and `after` hooks in QUnit testrunner
Aleksey Bekh-Ivanov (WMDE) [Wed, 2 Aug 2017 14:21:56 +0000 (16:21 +0200)]
qunit: Test `before` and `after` hooks in QUnit testrunner

Change-Id: Ib5b5d29e860d37dbec675e5d24c31b57c5e64102

4 years agoAdd ability to proxy thumbnail requests to a service
Gilles Dubuc [Mon, 20 Nov 2017 06:57:29 +0000 (07:57 +0100)]
Add ability to proxy thumbnail requests to a service

Bug: T169144
Change-Id: I4af09a8b75e7158d6ff15f97e8f067b66ac33d5c

4 years agoFix invocation of MWHttpRequest::factory with one argument.
Stanislav Malyshev [Thu, 1 Feb 2018 07:05:20 +0000 (23:05 -0800)]
Fix invocation of MWHttpRequest::factory with one argument.

Change-Id: Ib96c2888a6fd91ca80c162a80d283f650d6fa4b9

4 years agoBump composer/spdx-licenses to 1.3.0
Kunal Mehta [Thu, 1 Feb 2018 07:01:02 +0000 (23:01 -0800)]
Bump composer/spdx-licenses to 1.3.0


Change-Id: I41be6cecc1b322796ed448f664eb58642d7511ff

4 years agoHygiene: Use “OOUI” as unified name in build and code documentation
Volker E [Wed, 17 Jan 2018 07:04:01 +0000 (23:04 -0800)]
Hygiene: Use “OOUI” as unified name in build and code documentation

Bug: T182360
Change-Id: I981c574003fa505fe133be6da405e73330c4e9a1

4 years agodeferred: Make MWCallableUpdate support a list of DB handles
Aaron Schulz [Tue, 23 Jan 2018 15:06:32 +0000 (16:06 +0100)]
deferred: Make MWCallableUpdate support a list of DB handles

Change-Id: I0371ecd20101c5e622497e5912676300b040865e

4 years agoMake interim WAN cache key deactivation logic broader
Aaron Schulz [Thu, 1 Feb 2018 00:47:09 +0000 (16:47 -0800)]
Make interim WAN cache key deactivation logic broader

* This is how it was before d5aa846d8, which accidentally changed
  the behavior. The WAN cache call in Setup.php was too coupled to
  the ChronologyProtector cookies. It made the assumption that DB
  positions and cookies are stored even when there are no replica
  databases setup (which changed in that patch).
* Check the "UseDC" cookie instead, which is already set in exactly
  the cases this logic should apply.

Bug: T185328
Change-Id: I4dd2a6ca6cdead0052d59be86e6030dbe01f141b

4 years agoqunit: Refactor and simplify testrunner to fix nested modules
Timo Tijhof [Wed, 31 Jan 2018 21:05:09 +0000 (13:05 -0800)]
qunit: Refactor and simplify testrunner to fix nested modules

Follows-up 5a4938140643dc5c1539e882454f51b2742dae.

* Merge the three QUnit.module extensions into one.
* Change makeSafeEnv() to use Object.create() instead of creating
  a simplified objects so that other properties are still accessible.

The 'testrunner-nested > Dummy' test now actually runs,
previously it was lost.

Change-Id: Id4aeb93582f8cc73b0dffe768a7864002ec85deb

4 years agoskins: Deprecate QuickTemplate::setRef()
Timo Tijhof [Fri, 26 Jan 2018 18:16:13 +0000 (10:16 -0800)]
skins: Deprecate QuickTemplate::setRef()

Removed all use from core. It was only used in a handful of other
repos, most of which have been updated already.

Bug: T140664
Change-Id: I6b1ea3221022597ca38a5cd40eee040d34d1abb8

4 years agoMerge "Localisation updates from https://translatewiki.net."
L10n-bot [Wed, 31 Jan 2018 20:55:05 +0000 (20:55 +0000)]
Merge "Localisation updates from https://translatewiki.net."

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 31 Jan 2018 20:54:53 +0000 (21:54 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I6a6aa5aefc1fcc048d16bc4f509efdbfd6006ddc

4 years agoMerge "tests: Add @group and @covers to wfArrayFilterTest"
jenkins-bot [Wed, 31 Jan 2018 20:53:36 +0000 (20:53 +0000)]
Merge "tests: Add @group and @covers to wfArrayFilterTest"

4 years agotests: Add @group and @covers to wfArrayFilterTest
Timo Tijhof [Wed, 31 Jan 2018 20:14:02 +0000 (12:14 -0800)]
tests: Add @group and @covers to wfArrayFilterTest

Change-Id: I6565ad21b6d6e78d876f730596e213555143c3fc

4 years agoMerge "Rewrite pref cleanup script"
jenkins-bot [Wed, 31 Jan 2018 18:47:59 +0000 (18:47 +0000)]
Merge "Rewrite pref cleanup script"

4 years agordbms: set the schema in the LBFactory local domain
Aaron Schulz [Tue, 30 Jan 2018 03:09:07 +0000 (19:09 -0800)]
rdbms: set the schema in the LBFactory local domain

Also, enforce that new DB connection use the domain
schema as is the case with the DB name and table prefix.

The code worked previously since the local domain did not override
the schema in the server configuration arrays, so it happened not
to clobber the domain schema.

Lastly, fix unit test fatal in LBFactorySingle::forEachLB() when
called during LBFactorySingle::_destruct().

Change-Id: Ia9ddef0f21591d0c8b15f2947cd61569e3fec7a0

4 years agoMerge "jquery.textSelection: Remove code supporting IE 6 selection APIs"
jenkins-bot [Wed, 31 Jan 2018 15:53:51 +0000 (15:53 +0000)]
Merge "jquery.textSelection: Remove code supporting IE 6 selection APIs"

4 years agoMerge "jquery.textSelection: Remove final remnants of WikiEditor iframe support"
jenkins-bot [Wed, 31 Jan 2018 15:53:28 +0000 (15:53 +0000)]
Merge "jquery.textSelection: Remove final remnants of WikiEditor iframe support"

4 years agoMerge "Move @group and @covers tags in tests close to class"
jenkins-bot [Wed, 31 Jan 2018 14:51:26 +0000 (14:51 +0000)]
Merge "Move @group and @covers tags in tests close to class"

4 years agoMerge "resourceloader: Add minified version of mw.loader.implement() wrapper"
jenkins-bot [Wed, 31 Jan 2018 13:40:37 +0000 (13:40 +0000)]
Merge "resourceloader: Add minified version of mw.loader.implement() wrapper"

4 years agojquery.textSelection: Remove code supporting IE 6 selection APIs
Bartosz Dziewoński [Wed, 31 Jan 2018 05:44:53 +0000 (06:44 +0100)]
jquery.textSelection: Remove code supporting IE 6 selection APIs

Removing all the code that uses the document.selection and
document.body.createTextRange() APIs, or that only runs if
these APIs are present (workarounds for old IE bugs).

These APIs were supported by Internet Explorer up to version 9
and by Opera up to version 10.5. More recent versions of both
browsers only support the standard selection APIs.

Bug: T186005
Change-Id: I32dc5a16b03cf1c2ea44f6c7361447607ccc7e62

4 years agojquery.textSelection: Remove final remnants of WikiEditor iframe support
Bartosz Dziewoński [Wed, 31 Jan 2018 05:37:54 +0000 (06:37 +0100)]
jquery.textSelection: Remove final remnants of WikiEditor iframe support

After WikiEditor's experimental iframe mode was removed in
952d6b9d8fc1d4ac606b6f8d0a3341ba7ec27e02, the code here was mostly
removed in 62b4198859e4ac7cf41775dc8bc943272e3ddfc3, but this little
stub remained to support CodeEditor (it piggy-backed on that feature
to support textSelection() overrides). That was also cleaned up
afterwards in 37228b257896e0a36816a61543ed5809e8ad6596, but everyone
forgot about this little remnant.

This code was not doing anything, as nothing sets the 'context.$iframe'
property anymore, in any extension.

Change-Id: I0ffe2405df7d6aaecc51b06ba6c7fea5fd8380b4

4 years agoMerge "rdbms: make affectedRows() work more consistently"
jenkins-bot [Wed, 31 Jan 2018 04:48:32 +0000 (04:48 +0000)]
Merge "rdbms: make affectedRows() work more consistently"

4 years agoMerge "rdbms: avoid pointless "SHOW SLAVE STATUS" calls in masterPosWait()"
jenkins-bot [Wed, 31 Jan 2018 04:43:38 +0000 (04:43 +0000)]
Merge "rdbms: avoid pointless "SHOW SLAVE STATUS" calls in masterPosWait()"

4 years agordbms: make affectedRows() work more consistently
Aaron Schulz [Sun, 28 Jan 2018 14:10:39 +0000 (06:10 -0800)]
rdbms: make affectedRows() work more consistently

* Update replace()/upsert() to combine the affected row
  count for the non-native case
* Also make replace() atomic in the non-native case,
  similar to how upsert() already works

Change-Id: I6c9bcba54eca6bcf4a93a9b230aaedf7f36aa877

4 years agoJavaScriptMinifier: Fix "Uninitialized offset" in regexp char class parsing
Timo Tijhof [Wed, 31 Jan 2018 03:55:15 +0000 (19:55 -0800)]
JavaScriptMinifier: Fix "Uninitialized offset" in regexp char class parsing

Bug: T75556
Change-Id: I0bb63212dd44aec3c6b40477553dbf6a471bc7b3

4 years agoMerge "Revert "Remove workaround for comparing database domain IDs.""
jenkins-bot [Wed, 31 Jan 2018 03:13:46 +0000 (03:13 +0000)]
Merge "Revert "Remove workaround for comparing database domain IDs.""

4 years agordbms: avoid pointless "SHOW SLAVE STATUS" calls in masterPosWait()
Aaron Schulz [Tue, 30 Jan 2018 12:39:36 +0000 (04:39 -0800)]
rdbms: avoid pointless "SHOW SLAVE STATUS" calls in masterPosWait()

This code branch is not useful in the GTID case

Change-Id: Ia112c9b4b9c1f1297cc4eaac7f4a5a1ca882f02e

4 years agoMerge "rdbms: clean up non-native Database::replace() code"
jenkins-bot [Tue, 30 Jan 2018 23:53:30 +0000 (23:53 +0000)]
Merge "rdbms: clean up non-native Database::replace() code"

4 years agoMerge "Fix $wgSharedDB with sqlite"
jenkins-bot [Tue, 30 Jan 2018 22:20:53 +0000 (22:20 +0000)]
Merge "Fix $wgSharedDB with sqlite"

4 years agoMerge "Fix issue when modifying groups in Special:Userrights"
jenkins-bot [Tue, 30 Jan 2018 21:00:56 +0000 (21:00 +0000)]
Merge "Fix issue when modifying groups in Special:Userrights"

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 30 Jan 2018 20:57:21 +0000 (21:57 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ibfb41f389c5b2c511d9372a423e2caa5cc844b37

4 years agoFix issue when modifying groups in Special:Userrights
Ryan Schmidt [Sun, 23 Jul 2017 04:19:49 +0000 (21:19 -0700)]
Fix issue when modifying groups in Special:Userrights

If a user has permission to remove a group but not add it, they cannot
manipulate other groups on a user who currently has the un-addable
group. An error is shown that the expiry is invalid and prevents the
save. To fix this, add a hidden input that is hardcoded to the existing
expiration (either 'existing' if it is a temporary assignment, or
'infinite' if the assignment does not expire), so that the validation
succeeds. Validation of this input is already taken care of in
execute(), so it is not possible for a user to extend an expiration this
way if they do not have the necessary privileges to do so.

Bug: T171345
Change-Id: I9268c05d6c491eab45147f8a9941ad4d4e1f563f

4 years agoRewrite pref cleanup script
Chad Horohoe [Tue, 25 Jul 2017 20:32:31 +0000 (13:32 -0700)]
Rewrite pref cleanup script

- Keep the current hidden pref cleanup stuff, that's not harmful
  and marginally useful
- Drop preferences we dunno wtf they're about. Cuz they're probably
  deprecated or otherwise unused
- Normalize preferences into accepted value ranges. This part is kinda
  hard and I haven't figured it out, so slap a TODO

More to come, stay tuned!

Change-Id: I70047adba0034136d107ce7534294cc6fa3c1860

4 years agoFix $wgSharedDB with sqlite
Ryan Schmidt [Tue, 2 Jan 2018 17:56:32 +0000 (11:56 -0600)]
Fix $wgSharedDB with sqlite

At the time of the constructor, tableAliases will always be an empty
array. As such, the ATTACH command is never run for shared dbs, and we
get query errors when later trying to reference them. This changes it so
that the shared db is attached whenever the table aliases are finally

Since table aliases may be set multiple times, the list of already
attached dbs was moved into class scope so that subsequent calls to set
the aliases do not result in query errors.

Bug: T181962
Change-Id: Ia654e996f54077bc3749b884a528e121ab25a2d2

4 years agoMerge "parser: Replace Sanitizer::armorLinksCallback() with a closure"
jenkins-bot [Tue, 30 Jan 2018 20:02:16 +0000 (20:02 +0000)]
Merge "parser: Replace Sanitizer::armorLinksCallback() with a closure"

4 years agoparser: Replace Sanitizer::armorLinksCallback() with a closure
Max Semenik [Mon, 13 Nov 2017 23:48:03 +0000 (15:48 -0800)]
parser: Replace Sanitizer::armorLinksCallback() with a closure

Used only once, small enough. Perfect candidate to not be exposed
even as a private function.

Change-Id: Ic020a596f709cb4f69c48ffe8138f9023a5c4062

4 years agoMerge "mw.Feedback: If the message is posted remotely, link the title correctly"
jenkins-bot [Tue, 30 Jan 2018 19:51:00 +0000 (19:51 +0000)]
Merge "mw.Feedback: If the message is posted remotely, link the title correctly"

4 years agoMerge "postEdit: Show a different success messsage on publish vs. save wikis"
jenkins-bot [Tue, 30 Jan 2018 19:44:06 +0000 (19:44 +0000)]
Merge "postEdit: Show a different success messsage on publish vs. save wikis"