lhc/web/wiklou.git
5 years agoUse "break" instead of "continue"
RazeSoldier [Thu, 23 Aug 2018 16:18:07 +0000 (00:18 +0800)]
Use "break" instead of "continue"

"continue" statements are equivalent to "break". In PHP 7.3, will generate a warning.

Bug: T200595
Change-Id: I244ecb2e1ce5a76295f014fb1becd8d263196846

5 years agoMerge "Disable warning about direct text table access for now"
jenkins-bot [Wed, 22 Aug 2018 13:18:23 +0000 (13:18 +0000)]
Merge "Disable warning about direct text table access for now"

5 years agoMerge "benchmarks: Minor cleanup for strtr benchmark"
jenkins-bot [Wed, 22 Aug 2018 11:43:13 +0000 (11:43 +0000)]
Merge "benchmarks: Minor cleanup for strtr benchmark"

5 years agoMerge "maintenance: Move backup.inc to a regular php class file"
jenkins-bot [Wed, 22 Aug 2018 11:15:03 +0000 (11:15 +0000)]
Merge "maintenance: Move backup.inc to a regular php class file"

5 years agoThe BlobStoreFactory constructor needs an LBFactory
Tim Starling [Wed, 22 Aug 2018 06:47:04 +0000 (16:47 +1000)]
The BlobStoreFactory constructor needs an LBFactory

BlobStoreFactory::newBlobStore() takes a wiki ID as a parameter, so it
needs an LBFactory to fetch the correct LoadBalancer from.

Bug: T202483
Change-Id: I834cd95251d76cb862600362525faf60d4e170b9

5 years agoMerge "Improve test coverage for ApiStashEdit"
jenkins-bot [Wed, 22 Aug 2018 05:09:24 +0000 (05:09 +0000)]
Merge "Improve test coverage for ApiStashEdit"

5 years agoMerge "rdbms: fix a few IDEA warnings in Database"
jenkins-bot [Wed, 22 Aug 2018 05:06:36 +0000 (05:06 +0000)]
Merge "rdbms: fix a few IDEA warnings in Database"

5 years agoMerge "rdbms: fix IDEA warnings in DatabaseMssql.php"
jenkins-bot [Wed, 22 Aug 2018 05:01:43 +0000 (05:01 +0000)]
Merge "rdbms: fix IDEA warnings in DatabaseMssql.php"

5 years agoMerge "Optimize TitleFormatter::getPrefixedText() to Title performance"
jenkins-bot [Wed, 22 Aug 2018 04:53:32 +0000 (04:53 +0000)]
Merge "Optimize TitleFormatter::getPrefixedText() to Title performance"

5 years agoMerge "TitleFormatter: Implement fbc144965315 and unify prefix logic"
jenkins-bot [Wed, 22 Aug 2018 04:53:26 +0000 (04:53 +0000)]
Merge "TitleFormatter: Implement fbc144965315 and unify prefix logic"

5 years agordbms: fix a few IDEA warnings in Database
Aaron Schulz [Wed, 22 Aug 2018 04:25:48 +0000 (21:25 -0700)]
rdbms: fix a few IDEA warnings in Database

Change-Id: I1bdca5c643ff81eb822443b8e45f71f5f3fb2155

5 years agordbms: fix IDEA warnings in DatabaseMssql.php
Aaron Schulz [Wed, 22 Aug 2018 03:14:26 +0000 (20:14 -0700)]
rdbms: fix IDEA warnings in DatabaseMssql.php

Change-Id: Iffef01cfac4c714c768190e375bc873a2d3eaf2f

5 years agoMerge "rdbms: make Database::open() protected"
jenkins-bot [Wed, 22 Aug 2018 02:43:24 +0000 (02:43 +0000)]
Merge "rdbms: make Database::open() protected"

5 years agordbms: make Database::open() protected
Aaron Schulz [Wed, 22 Aug 2018 01:34:51 +0000 (18:34 -0700)]
rdbms: make Database::open() protected

This is not called externally and there is little reason for that to
change. The current caller pattern is to use factory(), possibly with
initConnection() afterwards, or to use a LoadBalancer to begin with.

Change-Id: Ib1fdd5c960f1ed877fcd17bcb99b999d5d894716

5 years agoMerge "mediawiki.inspect: Remove redundant code for old Opera"
jenkins-bot [Wed, 22 Aug 2018 00:55:46 +0000 (00:55 +0000)]
Merge "mediawiki.inspect: Remove redundant code for old Opera"

5 years agoImprove test coverage for ApiStashEdit
Aryeh Gregor [Tue, 10 Apr 2018 13:45:53 +0000 (16:45 +0300)]
Improve test coverage for ApiStashEdit

Change-Id: I1b7d95e074a7f101d13398a32898b74145ab4056

5 years agomediawiki.user: Rename stickyRandomId to getPageviewToken
jdlrobson [Tue, 21 Aug 2018 19:46:00 +0000 (12:46 -0700)]
mediawiki.user: Rename stickyRandomId to getPageviewToken

New name is more descriptive and consistent with
how we use it.

Given the couple of usages in code, deprecate
the old method

Bug: T201124
Change-Id: Id43e9d3f3e687133c98017d24c10c307a5a855a1

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 21 Aug 2018 21:11:34 +0000 (23:11 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ied09cc4e417eff17b85e6e9da293ae09bdf55fb2

5 years agoMerge "Add a maintenance script to add a Change Tag"
jenkins-bot [Tue, 21 Aug 2018 20:52:13 +0000 (20:52 +0000)]
Merge "Add a maintenance script to add a Change Tag"

5 years agomediawiki.inspect: Remove redundant code for old Opera
Timo Tijhof [Tue, 21 Aug 2018 20:45:59 +0000 (21:45 +0100)]
mediawiki.inspect: Remove redundant code for old Opera

Opera < 12 is no longer supported in Grade A, which means this
condition can't be reached, unless the variable exists by accident
in a supported browser where we don't want it to (e.g. due to
a gadget, or legacy element-by-id globals)

Change-Id: I2d840ff23397e78a11a6495b90247d3baf124ee5

5 years agoMerge "Skin: Avoid redirect=no for links to non-redirects"
jenkins-bot [Tue, 21 Aug 2018 19:49:43 +0000 (19:49 +0000)]
Merge "Skin: Avoid redirect=no for links to non-redirects"

5 years agoMerge "ChangeTag::createTagWithChecks calls ChangeTag::canCreateTag()"
jenkins-bot [Tue, 21 Aug 2018 18:40:36 +0000 (18:40 +0000)]
Merge "ChangeTag::createTagWithChecks calls ChangeTag::canCreateTag()"

5 years agoAdd a maintenance script to add a Change Tag
Reedy [Tue, 21 Aug 2018 17:36:45 +0000 (18:36 +0100)]
Add a maintenance script to add a Change Tag

Change-Id: I51406b0e9140e5a462d9dd256b1d949fa09b67a0

5 years agoChangeTag::createTagWithChecks calls ChangeTag::canCreateTag()
Reedy [Tue, 21 Aug 2018 18:09:24 +0000 (19:09 +0100)]
ChangeTag::createTagWithChecks calls ChangeTag::canCreateTag()

It doesn't call ChangeTag::canDeleteTag()

Change-Id: Ib53c1b8e5f12aeaaff2eb3a704af6d29560b2ab6

5 years agoMerge "jquery.accessKeyLabel: Optimise by using mw.message().plain()"
jenkins-bot [Tue, 21 Aug 2018 18:04:00 +0000 (18:04 +0000)]
Merge "jquery.accessKeyLabel: Optimise by using mw.message().plain()"

5 years agoMerge "maintenance: Add maintenance script for managing foreign resources"
jenkins-bot [Tue, 21 Aug 2018 17:53:29 +0000 (17:53 +0000)]
Merge "maintenance: Add maintenance script for managing foreign resources"

5 years agoMerge "resources: Move non-jquery files from /resources/lib/jquery to /resources...
jenkins-bot [Tue, 21 Aug 2018 17:53:23 +0000 (17:53 +0000)]
Merge "resources: Move non-jquery files from /resources/lib/jquery to /resources/lib"

5 years agomaintenance: Add maintenance script for managing foreign resources
Timo Tijhof [Sun, 19 Aug 2018 05:14:05 +0000 (06:14 +0100)]
maintenance: Add maintenance script for managing foreign resources

Something for the short-term, perhaps. But at least an improvement
over 'update-oojs.sh' and 'update-ooui.sh'.

* Does not require any dependencies (no 'node' or 'npm').
* Performs integrity validation.

Change-Id: I0f79b84ef3903756353c66d3c3ee7e492c60e648

5 years agojquery.accessKeyLabel: Optimise by using mw.message().plain()
Timo Tijhof [Tue, 21 Aug 2018 04:45:43 +0000 (05:45 +0100)]
jquery.accessKeyLabel: Optimise by using mw.message().plain()

Avoids invoking mw.message#text, which uses the parser() of jqueryMsg,
twice for each call to jquery.accessKeyLabel.

These two messages do not contain any wikitext features, and are
not expected to need them in the future.

To make this explicit, add `{{format|plain}}` to their documentation,
and change the code to use plain().

Bug: T202357
Change-Id: I642f09afda4a93a1208550d44072f0909dcabdd0

5 years agoMerge "Load styles in 'oojs-ui-widgets' again rather than a separate module"
jenkins-bot [Tue, 21 Aug 2018 14:57:19 +0000 (14:57 +0000)]
Merge "Load styles in 'oojs-ui-widgets' again rather than a separate module"

5 years agoMerge "Add Special:Search sort parameter without ui"
jenkins-bot [Tue, 21 Aug 2018 14:57:13 +0000 (14:57 +0000)]
Merge "Add Special:Search sort parameter without ui"

5 years agoMerge "SpecialMovepage: Use 'helpInline' for "Move associated talk page" checkbox"
jenkins-bot [Tue, 21 Aug 2018 14:57:08 +0000 (14:57 +0000)]
Merge "SpecialMovepage: Use 'helpInline' for "Move associated talk page" checkbox"

5 years agoMerge "[MCR] Render multi-slot diffs"
jenkins-bot [Tue, 21 Aug 2018 14:04:56 +0000 (14:04 +0000)]
Merge "[MCR] Render multi-slot diffs"

5 years agoMerge "Create DifferenceEngine before calling GetDifferenceEngine"
jenkins-bot [Tue, 21 Aug 2018 12:00:31 +0000 (12:00 +0000)]
Merge "Create DifferenceEngine before calling GetDifferenceEngine"

5 years agoMerge "ChangeTags: Fix double escaping of tag descriptions"
jenkins-bot [Tue, 21 Aug 2018 11:08:00 +0000 (11:08 +0000)]
Merge "ChangeTags: Fix double escaping of tag descriptions"

5 years agoMerge "Ignore CentralIdLookup::resetCache() in code coverage reports"
jenkins-bot [Tue, 21 Aug 2018 10:35:04 +0000 (10:35 +0000)]
Merge "Ignore CentralIdLookup::resetCache() in code coverage reports"

5 years agoIgnore CentralIdLookup::resetCache() in code coverage reports
Kunal Mehta [Tue, 21 Aug 2018 07:18:50 +0000 (00:18 -0700)]
Ignore CentralIdLookup::resetCache() in code coverage reports

Change-Id: I4c3603354b0aa9396f620b9894d384e676db7f95

5 years agoMerge "benchmarker: Implement setupEach for per-iteration setup"
jenkins-bot [Tue, 21 Aug 2018 05:46:33 +0000 (05:46 +0000)]
Merge "benchmarker: Implement setupEach for per-iteration setup"

5 years agoMerge "Chinese Conversion Table Update 2018-2"
jenkins-bot [Tue, 21 Aug 2018 03:12:13 +0000 (03:12 +0000)]
Merge "Chinese Conversion Table Update 2018-2"

5 years agoChangeTags: Fix double escaping of tag descriptions
Roan Kattouw [Tue, 21 Aug 2018 01:54:39 +0000 (18:54 -0700)]
ChangeTags: Fix double escaping of tag descriptions

truncateTagDescription() was escaping its return value for HTML, even
though it had just produced plain text, and all similar functions
return plain text as well.

Bug: T192509
Change-Id: Ieaa631ef19c235121af9d8e09f2674f54fa3c25a

5 years agoMerge "Fix FOUC for floated collapsible elements outside the content area"
jenkins-bot [Tue, 21 Aug 2018 00:37:00 +0000 (00:37 +0000)]
Merge "Fix FOUC for floated collapsible elements outside the content area"

5 years agoMerge "Resolve deprecation warnings in iw search widget"
jenkins-bot [Tue, 21 Aug 2018 00:36:55 +0000 (00:36 +0000)]
Merge "Resolve deprecation warnings in iw search widget"

5 years agoFix FOUC for floated collapsible elements outside the content area
Roan Kattouw [Tue, 21 Aug 2018 00:02:25 +0000 (17:02 -0700)]
Fix FOUC for floated collapsible elements outside the content area

There was CSS setting the correct float value, but it only worked on
elements inside the content area because it used .mw-content-ltr and
-rtl. Add another rule to catch things outside the content area (which
should float based on the UI language).

Bug: T198774
Change-Id: I29b71a2e52139e540d719b61964084170d36bc5e

5 years agoMerge "Fix handling categorization changes"
jenkins-bot [Mon, 20 Aug 2018 22:22:05 +0000 (22:22 +0000)]
Merge "Fix handling categorization changes"

5 years agoResolve deprecation warnings in iw search widget
Erik Bernhardson [Mon, 20 Aug 2018 21:58:25 +0000 (14:58 -0700)]
Resolve deprecation warnings in iw search widget

The old iteration api has been deprecated, but looks like this
call wasn't caught in the patch that introduced it.

Change-Id: I435bacdb185e09127606217982ca70a1bec60301

5 years agoMerge "tests: Replace Bugddddd with Tddddd in test names, test strings"
jenkins-bot [Mon, 20 Aug 2018 21:55:28 +0000 (21:55 +0000)]
Merge "tests: Replace Bugddddd with Tddddd in test names, test strings"

5 years agotests: Replace Bugddddd with Tddddd in test names, test strings
Fomafix [Sat, 18 Aug 2018 13:51:29 +0000 (15:51 +0200)]
tests: Replace Bugddddd with Tddddd in test names, test strings

Change-Id: Ic6fbc5e14b1a756f62dd6cc3a6b2acc0d47db498

5 years agoresources: Move non-jquery files from /resources/lib/jquery to /resources/lib
Timo Tijhof [Sun, 19 Aug 2018 21:23:51 +0000 (22:23 +0100)]
resources: Move non-jquery files from /resources/lib/jquery to /resources/lib

Per discussion on T193826, these are not part of jquery (the library, or the
module), and should not be in the same subdirectory.

To follow the new convention that all entries directly in /resources/lib
should correspond to single library only (either as file, or as directory),
move them one directory up.

Bug: T193826
Change-Id: I24c05ec5fc5f0a2d54d501a4a022d829675bf850

5 years agoRemove wgPasswordSenderName from DefaultSettings.php
James D. Forrester [Mon, 20 Aug 2018 20:18:31 +0000 (13:18 -0700)]
Remove wgPasswordSenderName from DefaultSettings.php

This was removed from MediaWiki in 1.23 already, but was still
lingering in DefaultSettings.

Follow-up to: I578341430f53bef6d02b8ad78c1c1f2e6b96c064.
Previous, reverted attempt: acda2cc90aea519f41c8ae55bc4d05f02072df84.

Bug: T97709
Change-Id: I94a0c7c20f78c31149685c4443564be240ddad50

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 20 Aug 2018 19:55:37 +0000 (21:55 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ifab1146f977f25c1714b857c12ef279aba164650

5 years agoresourceloader: Remove wgResourceLoaderValidateStaticJS setting
Timo Tijhof [Mon, 20 Aug 2018 19:19:24 +0000 (20:19 +0100)]
resourceloader: Remove wgResourceLoaderValidateStaticJS setting

Not used since 2011 (MediaWiki 1.18).

In an early version of ResourceLoader, we ran JSMinPlus syntax
validation on-demand on all served JavaScript content. This
was identified as cause of slowdown and high memory use, and
generally not considered as useful in production.

The reason it was there originally was not for the purpose of
validating static files, but for user-generated content.

So in MediaWiki 1.18, the behaviour of wgResourceLoaderValidateJS
was changed to only apply to user-generated content, and the
rest was disabled behind wgResourceLoaderValidateStaticJS, which
we then never use. Not even in development, given that we now
have superior experience through ESLint, even within IDEs where
supported.

Follows-up 49d3d18033738 (r91914).

Change-Id: Ie25109a4fb23ee93fed0db4af5db4b11fe9ffe7f

5 years agoMerge "resourceloader: Merge the two ua.match() calls in startup.js"
jenkins-bot [Mon, 20 Aug 2018 18:32:06 +0000 (18:32 +0000)]
Merge "resourceloader: Merge the two ua.match() calls in startup.js"

5 years ago[MCR] Render multi-slot diffs
Gergő Tisza [Wed, 11 Jul 2018 09:24:07 +0000 (11:24 +0200)]
[MCR] Render multi-slot diffs

Move logic for rendering a diff between two content objects out of
DifferenceEngine, into a new SlotDiffRenderer class. Make
DifferenceEngine use multiple SlotDiffRenderers, one per slot.

This separates the class tree for changing high-level diff properties
such as the header or the revision selection method (same as before:
subclass DifferenceEngine and override ContentHandler::getDiffEngineClass
or implement GetDifferenceEngine) and the one for changing the actual
diff rendering for a given content type (subclass SlotDiffRenderer and
override ContentHandler::getSlotDiffRenderer or implement
GetSlotDiffRenderer). To keep B/C, when SlotDiffRenderer is not overridden
for a given content type but DifferenceEngine is, that DifferenceEngine
will be used instead.
The weak point of the scheme is overriding the DifferenceEngine methods
passing control to the SlotDiffRenderers (the ones calling
getDifferenceEngines), without calling the parent. These are:
showDiffStyle, getDiffBody, getDiffBodyCacheKeyParams. Extensions doing
that will probably break in unpredictable ways (most likely, only
showing the main slot diff). Nothing in gerrit does it, at least.

A new GetSlotDiffRenderer hook is added to modify rendering for content
models not owned by the extension, much like how GetDifferenceEngine
works.

Also deprecates public access to mNewRev/mOldRev and creates public
getters instead. DifferenceEngine never supported external changes to
those properties, this just acknowledges it.

Bug: T194731
Change-Id: I2f8a9dbebd2290b7feafb20e2bb2a2693e18ba11
Depends-On: I04e885a33bfce5bccc807b9bcfe1eaa577a9fd47
Depends-On: I203d8895bf436b7fee53fe4718dede8a3b1768bc

5 years agoCreate DifferenceEngine before calling GetDifferenceEngine
Gergő Tisza [Mon, 13 Aug 2018 16:53:59 +0000 (18:53 +0200)]
Create DifferenceEngine before calling GetDifferenceEngine

This way the hook is able to consider what kind of DifferenceEngine
was created by default, or even wrap/decorate it.

Change-Id: Ibb6b1b087a2dda445be2b5e8c7518c7d169b5192

5 years agobenchmarker: Implement setupEach for per-iteration setup
Kunal Mehta [Mon, 20 Aug 2018 07:21:49 +0000 (00:21 -0700)]
benchmarker: Implement setupEach for per-iteration setup

To bypass caches in legacy code where injection doesn't easily work,
support a per-iteration setup function, 'setupEach', which runs right
before the actual function is timed and called.

And use it in benchmarkTitleValue, where I mistakenly assumed that
'setup' did what I wanted.

Bug: T201992
Change-Id: I2d01d899bf63576df2833705667f1a16604ab4cc

5 years agoresourceloader: Merge the two ua.match() calls in startup.js
Timo Tijhof [Mon, 20 Aug 2018 05:11:17 +0000 (06:11 +0100)]
resourceloader: Merge the two ua.match() calls in startup.js

Covered by tests. No need for the separate //i regex.

Change-Id: I2fb5c8f45a3b9d9d20884c58d1adbd9e6cee2814

5 years agoSupport a heading of '0' in Html::messageBox()
Kunal Mehta [Mon, 20 Aug 2018 04:46:21 +0000 (21:46 -0700)]
Support a heading of '0' in Html::messageBox()

Change-Id: I181cb6f92ab1b10d87b1213a043a5f291149d094

5 years agoMerge "Simplify redirect linking in InfoAction"
jenkins-bot [Mon, 20 Aug 2018 01:35:01 +0000 (01:35 +0000)]
Merge "Simplify redirect linking in InfoAction"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 19 Aug 2018 19:53:50 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I0a824a0c317de91546f123d42158f818113f63b0

5 years agoMerge "Improve StaticArrayWriterTest and add missing @covers tag"
jenkins-bot [Sun, 19 Aug 2018 17:07:13 +0000 (17:07 +0000)]
Merge "Improve StaticArrayWriterTest and add missing @covers tag"

5 years agoMerge "Create and use PrefixingStatsdDataFactoryProxy in PerDbNameStatsdDataFactory"
jenkins-bot [Sun, 19 Aug 2018 07:51:39 +0000 (07:51 +0000)]
Merge "Create and use PrefixingStatsdDataFactoryProxy in PerDbNameStatsdDataFactory"

5 years agoMerge "CSP: In tests, use setMwGlobals() instead of manual set+undo"
jenkins-bot [Sun, 19 Aug 2018 07:40:05 +0000 (07:40 +0000)]
Merge "CSP: In tests, use setMwGlobals() instead of manual set+undo"

5 years agoCreate and use PrefixingStatsdDataFactoryProxy in PerDbNameStatsdDataFactory
addshore [Sat, 18 Aug 2018 10:22:38 +0000 (11:22 +0100)]
Create and use PrefixingStatsdDataFactoryProxy in PerDbNameStatsdDataFactory

MediaWiki::emitBufferedStatsdData() is never called for the PerDbName factory,
so stats were being dropped. Instead of having two factories, turn the
PerDbName one into a proxy/wrapper around the main factory that just adds a
prefix in front of all of the keys.

Bug: T202144
Change-Id: I31e376446abb58e41353b4ca3814120d2e914104

5 years agoImprove StaticArrayWriterTest and add missing @covers tag
Kunal Mehta [Sun, 19 Aug 2018 07:06:35 +0000 (00:06 -0700)]
Improve StaticArrayWriterTest and add missing @covers tag

Checking for proper quoting was suggested by Krinkle in CR.

Change-Id: I7fa599767017a5cfc82899bc4178de6cb34bdd02

5 years agoCSP: In tests, use setMwGlobals() instead of manual set+undo
Timo Tijhof [Sun, 19 Aug 2018 00:42:58 +0000 (01:42 +0100)]
CSP: In tests, use setMwGlobals() instead of manual set+undo

This is the idiom as used in other PHPUnit tests for MediaWiki.

Change-Id: I285e5abe57bad8b9a8a3b35d81bb3a9f5f3dbe85

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 18 Aug 2018 19:53:37 +0000 (21:53 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ia8ac63807e9d30d524349ab38e4c66f3f840ce57

5 years agoRemove wfMakeStaticArrayFile()
Kunal Mehta [Sat, 18 Aug 2018 05:32:19 +0000 (22:32 -0700)]
Remove wfMakeStaticArrayFile()

Replaced by the StaticArrayWriter class.

Bug: T200626
Change-Id: I7c02cf3a7dda2804d2eb8d51716254bd78b7544c

5 years agoMove wfMakeStaticArrayFile() into a class
Kunal Mehta [Sat, 18 Aug 2018 05:31:36 +0000 (22:31 -0700)]
Move wfMakeStaticArrayFile() into a class

And include tests :)

This code is independent of MediaWiki, but not really large enough to be
worth librarizing right now.

Bug: T200626
Change-Id: I022c074e8a708fb5219bc4ff4b53e7e31f60dc4b

5 years agoMerge "Reduce calls to MediaWikiServices::getInstance()"
jenkins-bot [Sat, 18 Aug 2018 05:03:47 +0000 (05:03 +0000)]
Merge "Reduce calls to MediaWikiServices::getInstance()"

5 years agoMerge "Use Title::makeName in Special:Export to simplify code"
jenkins-bot [Sat, 18 Aug 2018 04:10:00 +0000 (04:10 +0000)]
Merge "Use Title::makeName in Special:Export to simplify code"

5 years agoReduce calls to MediaWikiServices::getInstance()
Umherirrender [Sat, 18 Aug 2018 04:02:39 +0000 (06:02 +0200)]
Reduce calls to MediaWikiServices::getInstance()

In some functions MediaWikiServices::getInstance() was called twices or
in loops. Extract the variable to reduce calls.

Change-Id: I2705db11d7a9ea73efb9b5a5c40747ab0b3ea36f

5 years agobenchmarks: Minor cleanup for strtr benchmark
Timo Tijhof [Sat, 18 Aug 2018 03:29:53 +0000 (04:29 +0100)]
benchmarks: Minor cleanup for strtr benchmark

Only bench with variable input ("indirect"). The static string is
too unrealistic and not worth testing for imho, if it even makes
a difference at all.

Also bump the default count from 100 to 10,000 given it's so tiny.

Change-Id: Iccc35af4bd3c5b0967983ddfacd1d4ead235e4a4

5 years agoUse Title::makeName in Special:Export to simplify code
Umherirrender [Sat, 18 Aug 2018 03:10:24 +0000 (05:10 +0200)]
Use Title::makeName in Special:Export to simplify code

Also adjust param docs

Change-Id: Ia938b38c86da25e73b91a55506d660bc9ca9384f

5 years agoMerge "TitleFormatter: Remove indirection from getText()"
jenkins-bot [Sat, 18 Aug 2018 01:18:38 +0000 (01:18 +0000)]
Merge "TitleFormatter: Remove indirection from getText()"

5 years agoMerge "TitleFormatter: Don't look up namespace name for ns 0"
jenkins-bot [Sat, 18 Aug 2018 01:14:51 +0000 (01:14 +0000)]
Merge "TitleFormatter: Don't look up namespace name for ns 0"

5 years agoMerge "TitleValue: Avoid function call for internal property"
jenkins-bot [Sat, 18 Aug 2018 01:05:28 +0000 (01:05 +0000)]
Merge "TitleValue: Avoid function call for internal property"

5 years agoMerge "test: Assert that API generators have unique prefixes"
jenkins-bot [Sat, 18 Aug 2018 01:04:31 +0000 (01:04 +0000)]
Merge "test: Assert that API generators have unique prefixes"

5 years agoMerge "Turn ApiPrefixUniquenessTest into a structure test"
jenkins-bot [Sat, 18 Aug 2018 00:55:18 +0000 (00:55 +0000)]
Merge "Turn ApiPrefixUniquenessTest into a structure test"

5 years agoOptimize TitleFormatter::getPrefixedText() to Title performance
Kunal Mehta [Sat, 18 Aug 2018 00:26:26 +0000 (17:26 -0700)]
Optimize TitleFormatter::getPrefixedText() to Title performance

...by instance caching the result on the LinkTarget object.

Title::getPrefixedText() is an extremely hot function that has been
fully optimized over the years due to its usage basically everywhere in
MediaWiki.

Apply the same treatment to TitleFormatter, but keep the caching as part
of the LinkTarget instance so we can share caches across Title and
TitleFormatter. Once Title is switched over to using TitleFormatter
internally, we can probably centralize the cache again, and get rid of
the public but marked @private member variables.

Bug: T201801
Change-Id: I4ae2d6b176f69f66720473aeae85e39a601a9781

5 years agoTitleFormatter: Implement fbc144965315 and unify prefix logic
Kunal Mehta [Sat, 18 Aug 2018 00:09:26 +0000 (17:09 -0700)]
TitleFormatter: Implement fbc144965315 and unify prefix logic

fbc144965315 (Make Titles with an unknown namespace ID refer to
Special:Badtitle.) was never implemented in TitleFormatter, so let's do
that.

While we're at it, formatTitle() is now structured in the same format as
Title::prefix(), to make it easier to compare code between the two
implementations. The existing tests verify that this is a no-op. There's
a little extra indirection in getPrefixedDBkey(), which now goes through
dbkeyform -> textform -> dbkeyform, but reduces duplication of code,
which I think is worth it.

Bug: T165149
Change-Id: I4e43487a52663d2a647f9e71d487f58e25474f7a

5 years agotest: Assert that API generators have unique prefixes
Antoine Musso [Tue, 19 Jun 2018 07:50:12 +0000 (09:50 +0200)]
test: Assert that API generators have unique prefixes

Signed-off-by: Brad Jorsch <bjorsch@wikimedia.org>
Change-Id: I30758f2ac95fd8ae361ef8079abdfb0a82d92e34

5 years agoTitleFormatter: Remove indirection from getText()
Kunal Mehta [Fri, 17 Aug 2018 23:41:02 +0000 (16:41 -0700)]
TitleFormatter: Remove indirection from getText()

At the end of the day, the output is identical to LinkTarget::getText().

Change-Id: Ifddafb79d7602ba5e368cc40f99c56e22a56d506

5 years agoTitleFormatter: Don't look up namespace name for ns 0
Kunal Mehta [Fri, 17 Aug 2018 23:21:27 +0000 (16:21 -0700)]
TitleFormatter: Don't look up namespace name for ns 0

It's hardcoded to empty string, so we can skip some code.

Profiling (after switching the benchmark script to use NS_MAIN) showed
no noticable improvements in getPrefixedText().

Change-Id: Id6b044a51648d0a3f58331ac0427f9d5cd9d8f0f

5 years agoTitleValue: Avoid function call for internal property
Kunal Mehta [Fri, 17 Aug 2018 23:15:20 +0000 (16:15 -0700)]
TitleValue: Avoid function call for internal property

Change-Id: I16342469a8122bd46cada11fd1f1d3f88d2e8d1e

5 years agoMerge "Inject SpecialPageFactory into Parser"
jenkins-bot [Fri, 17 Aug 2018 21:42:39 +0000 (21:42 +0000)]
Merge "Inject SpecialPageFactory into Parser"

5 years agoMerge "Pass through 'helpInline' to OOUI FieldLayout and make true by default"
jenkins-bot [Fri, 17 Aug 2018 21:22:58 +0000 (21:22 +0000)]
Merge "Pass through 'helpInline' to OOUI FieldLayout and make true by default"

5 years agoTurn ApiPrefixUniquenessTest into a structure test
Kunal Mehta [Mon, 11 Jun 2018 23:51:42 +0000 (16:51 -0700)]
Turn ApiPrefixUniquenessTest into a structure test

This way it gets run during extension test runs as well.

Temporarily add a hack allowing 'wbeu' duplicates until T196962 is fixed.

Change-Id: Ic89a22a2ff4525585de9e290a1d47d22cfaaac5e

5 years agoMerge "mediawiki.util: Only call $.fn.updateTooltipAccessKeys if accesskey is set"
jenkins-bot [Fri, 17 Aug 2018 21:18:22 +0000 (21:18 +0000)]
Merge "mediawiki.util: Only call $.fn.updateTooltipAccessKeys if accesskey is set"

5 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 17 Aug 2018 21:12:20 +0000 (23:12 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ie7ab020ed7722038335b1a27c6faaaa7e07f8f3f

5 years agoMerge "Mass conversion to SpecialPageFactory service"
jenkins-bot [Fri, 17 Aug 2018 21:02:58 +0000 (21:02 +0000)]
Merge "Mass conversion to SpecialPageFactory service"

5 years agoMerge "Add index on rc_this_oldid"
jenkins-bot [Fri, 17 Aug 2018 20:45:43 +0000 (20:45 +0000)]
Merge "Add index on rc_this_oldid"

5 years agoSpecialMovepage: Use 'helpInline' for "Move associated talk page" checkbox
Bartosz Dziewoński [Fri, 17 Aug 2018 20:38:14 +0000 (22:38 +0200)]
SpecialMovepage: Use 'helpInline' for "Move associated talk page" checkbox

Before: https://phabricator.wikimedia.org/F25074120
After:  https://phabricator.wikimedia.org/F25074199

Change-Id: I7d63853a766fc176595ace5d9730c7111b043e8c

5 years agoMerge "Improve profileinfo.php documentation"
jenkins-bot [Fri, 17 Aug 2018 20:40:47 +0000 (20:40 +0000)]
Merge "Improve profileinfo.php documentation"

5 years agoPass through 'helpInline' to OOUI FieldLayout and make true by default
Ed Sanders [Tue, 12 Jun 2018 14:46:48 +0000 (15:46 +0100)]
Pass through 'helpInline' to OOUI FieldLayout and make true by default

This change is meant to improve the layout of Special:Preferences in
particular, but it will affect any OOUI form using help messages. It
should be a harmless or beneficial change for most of them.

Previous behavior can be restored by passing `'help-inline' => false`
to the HTMLForm factory after 'help-message'/'help-messages'/'help'.

For example:

* Special:Preferences?ooui=1#mw-prefsection-watchlist
  * Before: https://phabricator.wikimedia.org/F25025213
  * After:  https://phabricator.wikimedia.org/F25025181

* Special:ChangeEmail
  * Before: https://phabricator.wikimedia.org/F25073327
  * After:  https://phabricator.wikimedia.org/F25073328

* Special:BotPasswords/foo
  * Before: https://phabricator.wikimedia.org/F25073324
  * After:  https://phabricator.wikimedia.org/F25073326

Bug: T181854
Change-Id: Ica67fe4081dfaa8eb9e8f56fdb93530750e47012

5 years agoMerge "jquery.expandableField: Remove module unused since 1.22"
jenkins-bot [Fri, 17 Aug 2018 19:32:28 +0000 (19:32 +0000)]
Merge "jquery.expandableField: Remove module unused since 1.22"

5 years agoMerge "resourceloader: Increase minification cache version"
jenkins-bot [Fri, 17 Aug 2018 19:26:42 +0000 (19:26 +0000)]
Merge "resourceloader: Increase minification cache version"

5 years agoMerge "JavaScriptMinifier: Fix bad state after ternary in object literal"
jenkins-bot [Fri, 17 Aug 2018 19:10:10 +0000 (19:10 +0000)]
Merge "JavaScriptMinifier: Fix bad state after ternary in object literal"

5 years agoMerge "jquery.suggestions: Remove dead code for returning options"
jenkins-bot [Fri, 17 Aug 2018 19:08:37 +0000 (19:08 +0000)]
Merge "jquery.suggestions: Remove dead code for returning options"

5 years agojquery.expandableField: Remove module unused since 1.22
Timo Tijhof [Fri, 17 Aug 2018 18:24:01 +0000 (19:24 +0100)]
jquery.expandableField: Remove module unused since 1.22

Was originally created for Vector, which was originally part
of MediaWiki core. It hasn't been used for a while, and Vector
is in its own repository now.

Found 0 uses of this anywhere in Wikimedia Git, nor elsewhere
indexed by MediaWiki Codesearch.

Bug: T202154
Change-Id: I72ab5ad7f25be87b2f6d2f5f41a672b6a48b8005

5 years agoInject SpecialPageFactory into Parser
Kunal Mehta [Wed, 15 Aug 2018 01:11:59 +0000 (18:11 -0700)]
Inject SpecialPageFactory into Parser

Change-Id: I6a6a94cbdafdc724ce02408cd9e744e7b3eda92b