lhc/web/wiklou.git
4 years agoMerge "resourceloader: Don't explicitly enqueue test libs on SpecialJavaScriptTest"
jenkins-bot [Wed, 31 Jul 2019 16:58:26 +0000 (16:58 +0000)]
Merge "resourceloader: Don't explicitly enqueue test libs on SpecialJavaScriptTest"

4 years agoMerge "resourceloader: Hard-deprecate ResourceLoaderContext::getConfig"
jenkins-bot [Wed, 31 Jul 2019 16:52:13 +0000 (16:52 +0000)]
Merge "resourceloader: Hard-deprecate ResourceLoaderContext::getConfig"

4 years agoMerge "preferences: Fix skinname msg check in generateSkinOptions"
jenkins-bot [Wed, 31 Jul 2019 15:06:33 +0000 (15:06 +0000)]
Merge "preferences: Fix skinname msg check in generateSkinOptions"

4 years agoMerge "Add QueryPage::delete method"
jenkins-bot [Wed, 31 Jul 2019 14:15:14 +0000 (14:15 +0000)]
Merge "Add QueryPage::delete method"

4 years agoresourceloader: Hard-deprecate ResourceLoaderContext::getConfig
Timo Tijhof [Tue, 30 Jul 2019 14:25:23 +0000 (15:25 +0100)]
resourceloader: Hard-deprecate ResourceLoaderContext::getConfig

Already in 1.34 release notes from when it was soft-deprecated, earlier
this release cycle.

Depends-On: I949b91daabb0cf16519ef02e718ad97c827c4eec
Depends-On: Icf1ead8829268505709c71f46dede5cdfc4471a8
Change-Id: I471088b322848a779d0dd58651dc1bd0d49067f1

4 years agoMerge "Allow SelectWithInput to be marked as required and handle that dynamically"
jenkins-bot [Wed, 31 Jul 2019 13:28:54 +0000 (13:28 +0000)]
Merge "Allow SelectWithInput to be marked as required and handle that dynamically"

4 years agoMerge "Fix SpecialBlock validation for ipb_allow_usertalk"
jenkins-bot [Wed, 31 Jul 2019 12:36:45 +0000 (12:36 +0000)]
Merge "Fix SpecialBlock validation for ipb_allow_usertalk"

4 years agoRevert rename of mSpeculativeRevId to speculativeRevIdUsed
Tim Starling [Wed, 31 Jul 2019 02:16:07 +0000 (12:16 +1000)]
Revert rename of mSpeculativeRevId to speculativeRevIdUsed

And add a test which is confirmed to fail on HHVM prior to this change
with the error message "serialize(): "" returned as member variable from
__sleep() but does not exist".

Bug: T229366
Change-Id: I236bb4d64bc2e9f7756885e8c418399804eac5e1

4 years agopreferences: Fix skinname msg check in generateSkinOptions
jdlrobson [Tue, 30 Jul 2019 21:18:05 +0000 (14:18 -0700)]
preferences: Fix skinname msg check in generateSkinOptions

Fixes a bug introduced in b2b204eeafc.

$useSkin is not the appropriate variable to check here - we want
to check the skin set in preferences.

Bug: T223824
Change-Id: I666e30dd9ff396fd39c47b362d66670dfaa92ca9

4 years agoMerge "context: Make the getSkin() fallback logic more explicit"
jenkins-bot [Tue, 30 Jul 2019 21:44:56 +0000 (21:44 +0000)]
Merge "context: Make the getSkin() fallback logic more explicit"

4 years agoMerge "Fix recent changes and watchlist separator whitespace"
jenkins-bot [Tue, 30 Jul 2019 21:44:49 +0000 (21:44 +0000)]
Merge "Fix recent changes and watchlist separator whitespace"

4 years agoAllow SelectWithInput to be marked as required and handle that dynamically
David Barratt [Mon, 22 Jul 2019 22:53:14 +0000 (18:53 -0400)]
Allow SelectWithInput to be marked as required and handle that dynamically

Alters the SelectWithInput to allow a required config to be passed from a
parent widget. Also handles the required state dynamically. If the widget is
an OR widget, then only the select dropdown is required. The text input will
be required when the other option is selected. If the widget is an AND widget
then both the select dropdown and the text input will be required.

Bug: T220533
Change-Id: I8479743126756f2b1bd7bcd53b100a0134f34d07

4 years agoMerge "Fix return type hints in media related classes"
jenkins-bot [Tue, 30 Jul 2019 20:26:36 +0000 (20:26 +0000)]
Merge "Fix return type hints in media related classes"

4 years agoFix SpecialBlock validation for ipb_allow_usertalk
Dayllan Maza [Tue, 30 Jul 2019 02:15:56 +0000 (22:15 -0400)]
Fix SpecialBlock validation for ipb_allow_usertalk

ipb_allow_usertalk should be saved as false only when:
    A block is sitewide
    A block is partial and there is a restriction on the User_talk namespace

Bug: T224468
Change-Id: Ic85368991b5905af1bab99b0cb5fcba0e993405e

4 years agoFix recent changes and watchlist separator whitespace
edderso [Tue, 30 Jul 2019 17:46:47 +0000 (18:46 +0100)]
Fix recent changes and watchlist separator whitespace

Added spaces around 'mw-changeslist-separator' spans in EnhancedChangesListGroup.mustache

Bug: T222903
Change-Id: Ie7e09a39a8f51943fa6c2c244d80435150296a5c

4 years agoresourceloader: Don't explicitly enqueue test libs on SpecialJavaScriptTest
Timo Tijhof [Tue, 30 Jul 2019 15:06:35 +0000 (16:06 +0100)]
resourceloader: Don't explicitly enqueue test libs on SpecialJavaScriptTest

The test-only modules registered by QUnitTestResources.php are currently
were previously caught by the array_keys() catch-all in registerTestModules()
which meant that modules like 'test.sinonjs' would be requested on
SpecialJavaScriptTest despite not doing anything by itself, nor executing
at the "right" time per se through this means.

In order for it to execute at the right time, the testrunner has to depend
on it (which it does, already). But, that also means it doesn't need to
be requested separately. Doing so could be confusing.

This is neccecary in order to move 'jquery.qunit' from Resources.php
to QUnitTestResources.php as otherwise, listing in QUnitTestResources.php,
would implicitly mean SpecialJavaScriptTest.php thinks it's a test suite
and load it. That is a problem, because when we run the tests headless from
the command-line with Karma, the environment already has a QUnit interface
defined, and should not be loaded a second time by MW.

Change-Id: I08b31cd1dee516cf0d26bafdb8cc7c1223633bad

4 years agoMerge "Adapt Recent Changes advanced filters for mobile usage"
jenkins-bot [Tue, 30 Jul 2019 15:23:06 +0000 (15:23 +0000)]
Merge "Adapt Recent Changes advanced filters for mobile usage"

4 years agoMerge "Fix punctuation in HTMLForm documentation"
jenkins-bot [Tue, 30 Jul 2019 14:15:57 +0000 (14:15 +0000)]
Merge "Fix punctuation in HTMLForm documentation"

4 years agoFix punctuation in HTMLForm documentation
Thalia [Tue, 30 Jul 2019 13:43:39 +0000 (14:43 +0100)]
Fix punctuation in HTMLForm documentation

Change-Id: I22c4ed248fddc93afd486b9bee5a80bdbba1c685

4 years agopager: Add visibility methods declared in the Pager interface
Derick Alangi [Sat, 27 Jul 2019 18:29:24 +0000 (19:29 +0100)]
pager: Add visibility methods declared in the Pager interface

In addition, also add visibility to the class(es) that implement
the method.

Change-Id: If650cfcafbe4fe8cd4d2e0629df3f170c599ea41

4 years agoAdapt Recent Changes advanced filters for mobile usage
Jan Drewniak [Fri, 14 Jun 2019 10:04:01 +0000 (12:04 +0200)]
Adapt Recent Changes advanced filters for mobile usage

Changes the behaviour of the rcfilter search input by essentially
turning it into a button for mobile devices. Depending on the value
of `OO.ui.isMobile()` the input is set to readonly mode and given
a shorter message and different icon.

Setting the search input to readonly prevents onscreen keyboards from
being actived, but still opens the filter menu, so that mobile users
can still add/remove filters, just without the ability to search through
them.

Styles are also modified to make the search input appear as a button by
overriding the default readonly and placeholder styles.

Bug: T225499, T223230
Change-Id: Iaa67369542e658d3571d957a204daa7a53d1e520

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 30 Jul 2019 06:20:29 +0000 (08:20 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I1b7b2936762e14eb43e9d777c3c3d198b66e4e6d

4 years agoMerge "Add SearchResultSetTrait"
jenkins-bot [Tue, 30 Jul 2019 01:30:09 +0000 (01:30 +0000)]
Merge "Add SearchResultSetTrait"

4 years agoMerge "Add BaseSearchResultSet"
jenkins-bot [Tue, 30 Jul 2019 01:29:33 +0000 (01:29 +0000)]
Merge "Add BaseSearchResultSet"

4 years agocontext: Make the getSkin() fallback logic more explicit
Timo Tijhof [Mon, 29 Jul 2019 22:42:57 +0000 (23:42 +0100)]
context: Make the getSkin() fallback logic more explicit

Previously the first two post-hook checks where mutually exclusive
and the fallback was generic (not conditional) which means we
would also allow the first two conditions to succeed in a way that
leaves $this->skin as null.

Aside from that not being possible right now, it also duplicates a
null check in two places, which isn't ideal.

Codify that the first two blocks always result in $this->skin
being assigned non-null by using an 'else' branch instead of another
generic check.

Change-Id: I7986684bf1bb2daad3aaddfbcd2ca02e652f78c2

4 years agoMerge "Add explicit visibility to SearchResult methods"
jenkins-bot [Mon, 29 Jul 2019 23:25:36 +0000 (23:25 +0000)]
Merge "Add explicit visibility to SearchResult methods"

4 years agoMerge "Add explicit visibility to ISearchResultSet methods"
jenkins-bot [Mon, 29 Jul 2019 23:25:29 +0000 (23:25 +0000)]
Merge "Add explicit visibility to ISearchResultSet methods"

4 years agoMerge "Update gradient mixins from OOUI, add horizontal-gradient"
jenkins-bot [Mon, 29 Jul 2019 21:59:09 +0000 (21:59 +0000)]
Merge "Update gradient mixins from OOUI, add horizontal-gradient"

4 years agoMerge "MessageCache: Restore 'loadedLanguages' tracking for load()"
jenkins-bot [Mon, 29 Jul 2019 21:41:27 +0000 (21:41 +0000)]
Merge "MessageCache: Restore 'loadedLanguages' tracking for load()"

4 years agoMerge "Deprecate several public properties on the block classes"
jenkins-bot [Mon, 29 Jul 2019 21:21:39 +0000 (21:21 +0000)]
Merge "Deprecate several public properties on the block classes"

4 years agoDeprecate several public properties on the block classes
Thalia [Mon, 29 Jul 2019 20:10:27 +0000 (21:10 +0100)]
Deprecate several public properties on the block classes

Public methods for checking and setting these properties already
exist where needed. Also update the remaining direct uses of these
properties in core.

Change-Id: Icdef025c9700e625aeb2a07975e69f1b1cc2466c

4 years agoUpdate gradient mixins from OOUI, add horizontal-gradient
Ed Sanders [Mon, 29 Jul 2019 20:07:31 +0000 (21:07 +0100)]
Update gradient mixins from OOUI, add horizontal-gradient

Change-Id: I31ab76ea938f29c3d39456f093268780a44c014e

4 years agoMerge "Fix SlotDiffRenderer documentation"
jenkins-bot [Mon, 29 Jul 2019 19:50:55 +0000 (19:50 +0000)]
Merge "Fix SlotDiffRenderer documentation"

4 years agoMerge "rdbms: make DatabaseSqlite::open() also check DBO_DEFAULT"
jenkins-bot [Mon, 29 Jul 2019 19:42:22 +0000 (19:42 +0000)]
Merge "rdbms: make DatabaseSqlite::open() also check DBO_DEFAULT"

4 years agoMerge "externalstore: use CONN_TRX_AUTOCOMMIT instead of IDatabase::clearFlag()"
jenkins-bot [Mon, 29 Jul 2019 19:34:55 +0000 (19:34 +0000)]
Merge "externalstore: use CONN_TRX_AUTOCOMMIT instead of IDatabase::clearFlag()"

4 years agoMerge "CopyTextLayout: Only select-all on focus"
jenkins-bot [Mon, 29 Jul 2019 19:11:55 +0000 (19:11 +0000)]
Merge "CopyTextLayout: Only select-all on focus"

4 years agoMessageCache: Restore 'loadedLanguages' tracking for load()
Timo Tijhof [Mon, 29 Jul 2019 18:22:10 +0000 (19:22 +0100)]
MessageCache: Restore 'loadedLanguages' tracking for load()

This was removed in 97e86d934b3 in 2018 in favour of using
`$this->cache->has($code)`. This is a problem because there
are cases where only a narrow subset of that structure is
populated (by MessageCache->replace) without things like
$this->overridable (or anything else that MessageCache->load does)
having ocurred yet.

The assumption that keys are only added to $this->cache by
MessageCache->load (or after that method has been called) was
actually true at some point. But, this changed in 2017 when
commit c962b480568e optimised MessageCache->replace to not call
MessageCache->load.

Bug: T208897
Change-Id: Ie8bb4a4793675e5f1454e65c427f3100035c8b4d

4 years agoCopyTextLayout: Only select-all on focus
Ed Sanders [Mon, 29 Jul 2019 14:51:33 +0000 (15:51 +0100)]
CopyTextLayout: Only select-all on focus

This allows users to partially select the text, which is useful
in some cases, but still makes it easy to copy either using a keyboard
shortcut or the ButtonWidget.

Bug: T110579
Change-Id: I5be1530bb2cca9f8251e2e1c87a85e1e79cfe47f

4 years agoMerge "Remove TODO for unblockself"
jenkins-bot [Mon, 29 Jul 2019 13:11:57 +0000 (13:11 +0000)]
Merge "Remove TODO for unblockself"

4 years agoBetter handle "no accounts to unlink" case in Special:UnlinkAccounts
Brad Jorsch [Tue, 23 Jul 2019 16:02:11 +0000 (12:02 -0400)]
Better handle "no accounts to unlink" case in Special:UnlinkAccounts

When there are no accounts to unlink, say so rather than displaying a
button that results in an error when clicked.

Bug: T228717
Change-Id: I17f8aed213f114338c4b46e26ce369bc63e36a99

4 years agordbms: make DatabaseSqlite::open() also check DBO_DEFAULT
Aaron Schulz [Sun, 28 Jul 2019 16:38:29 +0000 (12:38 -0400)]
rdbms: make DatabaseSqlite::open() also check DBO_DEFAULT

Change-Id: Ib21078dc9d4aa8cba6c5cb6c25868af328c1cab6

4 years agoMerge "objectcache: make "busyValue" stricter to avoid callback ambigiuity"
jenkins-bot [Sat, 27 Jul 2019 14:51:08 +0000 (14:51 +0000)]
Merge "objectcache: make "busyValue" stricter to avoid callback ambigiuity"

4 years agoMerge "import: Fix wrong/unspecific type hints in UploadSourceAdapter"
jenkins-bot [Sat, 27 Jul 2019 14:23:46 +0000 (14:23 +0000)]
Merge "import: Fix wrong/unspecific type hints in UploadSourceAdapter"

4 years agoexternalstore: use CONN_TRX_AUTOCOMMIT instead of IDatabase::clearFlag()
Aaron Schulz [Sat, 27 Jul 2019 09:08:06 +0000 (05:08 -0400)]
externalstore: use CONN_TRX_AUTOCOMMIT instead of IDatabase::clearFlag()

Change-Id: I8984623d3ff67d305597f05c596c2777c2c117e0

4 years agoobjectcache: make "busyValue" stricter to avoid callback ambigiuity
Aaron Schulz [Fri, 19 Jul 2019 10:31:46 +0000 (03:31 -0700)]
objectcache: make "busyValue" stricter to avoid callback ambigiuity

Change-Id: I01a1503ff5b37d65ef148fef79270505d8eb3146

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 27 Jul 2019 06:18:05 +0000 (08:18 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I3289a8380de64e080ec1f19e3a443e27795f9d51

4 years agoRemove TODO for unblockself
David Barratt [Fri, 19 Jul 2019 18:12:06 +0000 (14:12 -0400)]
Remove TODO for unblockself

It is impossible to reach the unblockself code if someone is anonymous, so
there is no need to check that the block applies to that permission.

Bug: T228538
Change-Id: Ie7b1e0f37363cc9e75ee2c871c06cefdfb2eb1d1

4 years agoMerge "Follow-up f7cddcf7c1: Move RELEASE-NOTES-1.34 entry to right place"
jenkins-bot [Fri, 26 Jul 2019 23:03:53 +0000 (23:03 +0000)]
Merge "Follow-up f7cddcf7c1: Move RELEASE-NOTES-1.34 entry to right place"

4 years agoMerge "QueryPage: allow arbitrary sorting"
jenkins-bot [Fri, 26 Jul 2019 22:52:24 +0000 (22:52 +0000)]
Merge "QueryPage: allow arbitrary sorting"

4 years agoFollow-up f7cddcf7c1: Move RELEASE-NOTES-1.34 entry to right place
James D. Forrester [Fri, 26 Jul 2019 21:39:48 +0000 (14:39 -0700)]
Follow-up f7cddcf7c1: Move RELEASE-NOTES-1.34 entry to right place

This isn't a deprecation, it's a breaking config change, which we
put in either the "changed configuration" or the "breaking changes"
sections. In this case I'm dumping it into the former as that's
more frequently read by sysadmins.

Change-Id: I9d63be2ec6392b66c50fb96ada510584da9ec16a

4 years agoAdd QueryPage::delete method
Gergő Tisza [Fri, 26 Jul 2019 14:47:09 +0000 (16:47 +0200)]
Add QueryPage::delete method

Add a method for delete the cached result for a page. This is
useful for backlog-type query pages which provide some interface
for fixing the problem in-place.

Change-Id: I36b750d71b6551bb5c662e82c24f029db01acd3b

4 years agoMerge "resourceloader: Move 'mw.config' assignment from startup.js to mediawiki.js"
jenkins-bot [Fri, 26 Jul 2019 20:27:45 +0000 (20:27 +0000)]
Merge "resourceloader: Move 'mw.config' assignment from startup.js to mediawiki.js"

4 years agoMerge "resourceloader: Remove internal 'wgResourceLoaderStorageEnabled' from mw.config"
jenkins-bot [Fri, 26 Jul 2019 20:24:18 +0000 (20:24 +0000)]
Merge "resourceloader: Remove internal 'wgResourceLoaderStorageEnabled' from mw.config"

4 years agoDeprecate wrapper SVGMetadataExtractor::getMetadata
Umherirrender [Sat, 30 Mar 2019 20:14:52 +0000 (21:14 +0100)]
Deprecate wrapper SVGMetadataExtractor::getMetadata

Use SVGReader->getMetadata() directly. Also rename the test,
because it covers the implementation and not the wrapper.

Change-Id: I61565c6aadc6d1c1e942b9bc4555ef4aeb09e5d8

4 years agoQueryPage: allow arbitrary sorting
Gergő Tisza [Fri, 26 Jul 2019 17:51:26 +0000 (19:51 +0200)]
QueryPage: allow arbitrary sorting

When the value field is not provided in QueryPage::getQueryInfo,
it is set to zero, essentially randomizing the result. Use a
sequential index instead.

Change-Id: I8b67268e3c59a51ed00bd832f80df184dd771c3b

4 years agoInject getLocalServerObjectCache() into the CachingSiteStore instance
Aaron Schulz [Sat, 20 Jul 2019 21:09:31 +0000 (14:09 -0700)]
Inject getLocalServerObjectCache() into the CachingSiteStore instance

This means SiteStore now uses APCu on PHP7 as well. Previously it only
used APC on HHVM, and used the main cache (e.g. Memcached) on PHP7.

Change-Id: I83ff1d2dd61c611c9976c6f9ca8026a0b6dd6662

4 years agoMerge "ApiSandbox: Fix upload widget"
jenkins-bot [Fri, 26 Jul 2019 16:09:39 +0000 (16:09 +0000)]
Merge "ApiSandbox: Fix upload widget"

4 years agoMerge "Don't try to store File objects to the upload session"
jenkins-bot [Fri, 26 Jul 2019 15:27:09 +0000 (15:27 +0000)]
Merge "Don't try to store File objects to the upload session"

4 years agoMerge "rdbms: remove various deprecated methods"
jenkins-bot [Fri, 26 Jul 2019 15:16:38 +0000 (15:16 +0000)]
Merge "rdbms: remove various deprecated methods"

4 years agoMerge "Fix exception when viewing special pages with relative related titles"
jenkins-bot [Fri, 26 Jul 2019 15:11:15 +0000 (15:11 +0000)]
Merge "Fix exception when viewing special pages with relative related titles"

4 years agoApiSandbox: Fix upload widget
Brad Jorsch [Fri, 26 Jul 2019 15:03:24 +0000 (11:03 -0400)]
ApiSandbox: Fix upload widget

Attempting to send the request with an active upload widget was
producing a JavaScript error "TypeError: this.setIcon is not a
function". This was probably broken by Iaaa226ea.

Further, validation was not working correctly since getValue() was
returning undefined rather than null as documented. This was probably
broken by I8d736fbb.

Bug: T229123
Change-Id: I78a6f9f0cffcd229ec0ab80c2309a0ee2089c927

4 years agordbms: remove various deprecated methods
Aaron Schulz [Thu, 27 Jun 2019 08:13:13 +0000 (01:13 -0700)]
rdbms: remove various deprecated methods

Change-Id: I5ae923065a08078225b7df080cb92edca799ebaf

4 years agoMerge "Code cleanup related to initSpeculativePageId()"
jenkins-bot [Fri, 26 Jul 2019 14:55:33 +0000 (14:55 +0000)]
Merge "Code cleanup related to initSpeculativePageId()"

4 years agoMerge "rdbms: make LoadBalancer::waitForAll() include servers with load in any group"
jenkins-bot [Fri, 26 Jul 2019 14:53:30 +0000 (14:53 +0000)]
Merge "rdbms: make LoadBalancer::waitForAll() include servers with load in any group"

4 years agordbms: normalize Database open() code and error handling
Aaron Schulz [Thu, 11 Jul 2019 02:35:46 +0000 (19:35 -0700)]
rdbms: normalize Database open() code and error handling

Mainly:
* Use oci_new_connect() for Oracle to avoid broken connection reuse
  similar to the PGSQL_CONNECT_FORCE_NEW flag in DatabasePostgres
* Set 'client_min_messages' unconditionally for PostgreSQL
* Factor out Database::getConnectExceptionAndLog() helper method
* Use the same style of query() calls in DatabaseOracle::open() as
  the other subclasses
* Make sure the Database driver handle field is null on failure
  instead of false for sanity

Also:
* Disallow changing of Database handle DBO_* flags after construction
  where it does not make sense to change them
* Do not mention DBO_* flags meant for non-config use in $wgDBservers
* Ignore DBO_PERSISTENT for SQLite if DBO_TRX is also set for sanity
* Remove $wgDBOracleDRCP variable to discourage careless automatic
  setting of DBO_PERSISTENT that breaks LoadBalancer assumptions

Change-Id: Iea948f7f872294ea8fc5d897fc10c9d29b7141d5

4 years agoMerge "Convert LoadBalancer::getConnection() callers to LoadBalancer::getConnectionRef()"
jenkins-bot [Fri, 26 Jul 2019 14:02:29 +0000 (14:02 +0000)]
Merge "Convert LoadBalancer::getConnection() callers to LoadBalancer::getConnectionRef()"

4 years agoCode cleanup related to initSpeculativePageId()
Tim Starling [Fri, 26 Jul 2019 06:39:16 +0000 (16:39 +1000)]
Code cleanup related to initSpeculativePageId()

Change-Id: I5b97c6292a28df6633c573a05c89210b096db5a8

4 years agoparser: add speculative page IDs to use with {{PAGEID}}
Aaron Schulz [Thu, 27 Jun 2019 04:30:35 +0000 (21:30 -0700)]
parser: add speculative page IDs to use with {{PAGEID}}

This works similarly to speculative rev IDs with {{REVISIONID}}.
Re-parses can be avoided if the page ID is correctly guessed.

Also make the {{PAGEID:X}} parser function set vary-page-id.

Bug: T226785
Change-Id: I0b19be45e6ddd6cde330bfcd09d243e4e5beda01

4 years agoMerge "MediumSpecificBagOStuff: Make convertToRelative(0) return 0, not 1"
jenkins-bot [Fri, 26 Jul 2019 06:34:14 +0000 (06:34 +0000)]
Merge "MediumSpecificBagOStuff: Make convertToRelative(0) return 0, not 1"

4 years agoDon't try to store File objects to the upload session
Tim Starling [Fri, 26 Jul 2019 05:07:41 +0000 (15:07 +1000)]
Don't try to store File objects to the upload session

File objects can contain closures which can't be serialized.

Instead, add makeWarningsSerializable(), which converts the warnings
to a serializable array. Make ApiUpload::transformWarnings() act on this
serializable array instead. For consistency, ApiUpload::getApiWarnings()
also needs to convert the result of checkWarnings() before transforming
it.

Bug: T228749
Change-Id: I8236aaf3683f93a03a5505803f4638e022cf6d85

4 years agoMerge "API: Only take HTTP code from ApiUsageException"
jenkins-bot [Fri, 26 Jul 2019 01:50:56 +0000 (01:50 +0000)]
Merge "API: Only take HTTP code from ApiUsageException"

4 years agoFix exception when viewing special pages with relative related titles
Max Semenik [Fri, 26 Jul 2019 01:44:28 +0000 (18:44 -0700)]
Fix exception when viewing special pages with relative related titles

Bug: T227817
Change-Id: I17e4acae81792c6d13c706741ec2a953300ac004

4 years agoMediumSpecificBagOStuff: Make convertToRelative(0) return 0, not 1
Roan Kattouw [Thu, 25 Jul 2019 23:39:33 +0000 (16:39 -0700)]
MediumSpecificBagOStuff: Make convertToRelative(0) return 0, not 1

This matches the (explicitly documented) behavior of convertToExpiry(),
and unbreaks storing things in Redis with an indefinite TTL. Without
this change, any attempt to store something in Redis indefinitely
resulted in it being stored with a TTL of 1 second instead.

Follow-up to I1bebb60307.

Bug: T228744
Change-Id: Ia3f71fb787196b956e974beb9f20d72e58ef3eb4

4 years agoMerge "resourceloader: Improve ResourceLoaderWikiModule test coverage"
jenkins-bot [Thu, 25 Jul 2019 23:53:40 +0000 (23:53 +0000)]
Merge "resourceloader: Improve ResourceLoaderWikiModule test coverage"

4 years agoMerge "objectcache: let BagOStuff::getWithSetCallback() callbacks modify the TTL"
jenkins-bot [Thu, 25 Jul 2019 23:26:05 +0000 (23:26 +0000)]
Merge "objectcache: let BagOStuff::getWithSetCallback() callbacks modify the TTL"

4 years agoMerge "resourceloader: Remove incomprehensible `@todo` in getTestModuleNames()"
jenkins-bot [Thu, 25 Jul 2019 23:06:31 +0000 (23:06 +0000)]
Merge "resourceloader: Remove incomprehensible `@todo` in getTestModuleNames()"

4 years agoMerge "phpunit: Avoid get_class() in MediaWikiCoversValidator"
jenkins-bot [Thu, 25 Jul 2019 23:03:55 +0000 (23:03 +0000)]
Merge "phpunit: Avoid get_class() in MediaWikiCoversValidator"

4 years agoresourceloader: Remove incomprehensible `@todo` in getTestModuleNames()
Timo Tijhof [Thu, 25 Jul 2019 22:46:11 +0000 (23:46 +0100)]
resourceloader: Remove incomprehensible `@todo` in getTestModuleNames()

I added this 7.5 years ago with r111378 (5bf04171dc3), but I can't
recall what this would have been for. Perhaps we wanted to expose
the list of modules (or test frameworks) via ApiQuerySiteInfo, but
I don't know why, or what purpose it would serve.

Change-Id: I4005979252533a752178e6f1ac9900f32132c27e

4 years agophpunit: Avoid get_class() in MediaWikiCoversValidator
Timo Tijhof [Thu, 25 Jul 2019 22:38:50 +0000 (23:38 +0100)]
phpunit: Avoid get_class() in MediaWikiCoversValidator

I notice that in CI, the inherited "testValidCovers" often shows
multiple times for test classes as being slow (50ms+).

E.g. from a quibble/php72 job:

> …
> 85ms to run ResourceLoaderWikiModuleTest:testValidCovers
> …

Bug: T225730
Change-Id: I524df134c52173c49ebb2b263a90bb5732255865

4 years agoresourceloader: Improve ResourceLoaderWikiModule test coverage
Timo Tijhof [Thu, 25 Jul 2019 22:23:24 +0000 (23:23 +0100)]
resourceloader: Improve ResourceLoaderWikiModule test coverage

* Remove redundant getContent() cases that were all testing the same.
  The redirect logic should indeed be tested, but exists in getContentObj(),
  not getContent(). This test was also mocking getContentObj() thus not
  actually testing what the case claims to test.
  Fortunately, the right test already exists (testGetContentForRedirects),
  so this is redundant.

* Add actual coverage of successful outcomes for getContent (previously
  they were all error/null cases), with JS content, and with CSS content.

* Fix broken test case for "Bad content model". This was not working because
  it mocked out getContentObj, thus it wasn't actually testing "bad content model",
  but rather pointlessly duplicated the previous test case.
  Fix it by actually making it use a WikitextContent object, which makes it
  test the branch that handles incompatible content models.

Change-Id: I59af5318e536c730755352e9be8f995df1f56a86

4 years agoMerge "Enable RecentChanges modules on mobile"
jenkins-bot [Thu, 25 Jul 2019 22:29:33 +0000 (22:29 +0000)]
Merge "Enable RecentChanges modules on mobile"

4 years agoEnable RecentChanges modules on mobile
jdlrobson [Thu, 25 Jul 2019 21:41:58 +0000 (14:41 -0700)]
Enable RecentChanges modules on mobile

Change-Id: I9ec4b70390700cd697faeffd8f70c67e9c542e82

4 years agoMerge "Improve type hints in export related classes"
jenkins-bot [Thu, 25 Jul 2019 21:42:32 +0000 (21:42 +0000)]
Merge "Improve type hints in export related classes"

4 years agoMerge "Add permission check for user is permitted to view the log type"
jenkins-bot [Thu, 25 Jul 2019 21:26:41 +0000 (21:26 +0000)]
Merge "Add permission check for user is permitted to view the log type"

4 years agoMerge "Type hint against LinkTarget in WatchedItemStore"
jenkins-bot [Thu, 25 Jul 2019 21:23:58 +0000 (21:23 +0000)]
Merge "Type hint against LinkTarget in WatchedItemStore"

4 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 25 Jul 2019 20:39:50 +0000 (22:39 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I32ed9eb31204d18421f9d986d049feca65fbb62e

4 years agoAdd permission check for user is permitted to view the log type
rxy [Fri, 31 May 2019 20:04:09 +0000 (20:04 +0000)]
Add permission check for user is permitted to view the log type

Note: formatter patch only

Note: cherry-picked I064f563cb here as well

Bug: T222038
Change-Id: I1c4e57a513e3a0e616b862a5b9d684f463ad9981

4 years agoMerge "resourceloader: Also clear store in debug mode to simplify mw.loader.store...
jenkins-bot [Thu, 25 Jul 2019 20:20:34 +0000 (20:20 +0000)]
Merge "resourceloader: Also clear store in debug mode to simplify mw.loader.store.init()"

4 years agoresourceloader: Move 'mw.config' assignment from startup.js to mediawiki.js
Timo Tijhof [Thu, 25 Jul 2019 16:46:01 +0000 (17:46 +0100)]
resourceloader: Move 'mw.config' assignment from startup.js to mediawiki.js

Before this change, the startup module responds as follows:

   ```lang=js
   ... contents of startup/mediawiki.js:
   ...... mw.config = null;
   ...
   ... contents of startup/startup.js:
   ...... mw.config = new mw.Map( bool );
   ```

After this change:

   ```lang=js
   ... contents of startup/mediawiki.js:
   ...... mw.config = new mw.Map( bool );
   ...
   ... contents of startup/startup.js:
   ......
   ```

Change-Id: I97fea20f17c4865aa4740482f3054532038531f0

4 years agoMerge "Update documentation for $wgAutopromote"
jenkins-bot [Thu, 25 Jul 2019 16:45:52 +0000 (16:45 +0000)]
Merge "Update documentation for $wgAutopromote"

4 years agoresourceloader: Remove internal 'wgResourceLoaderStorageEnabled' from mw.config
Timo Tijhof [Thu, 25 Jul 2019 16:41:06 +0000 (17:41 +0100)]
resourceloader: Remove internal 'wgResourceLoaderStorageEnabled' from mw.config

Only needed internally by the startup module, which can export it
through private means instead.

Follows 0a8e37f042c2c and 30ddfc8a7721.

Change-Id: I5e54bd51d9b47146e1ef9a64b14c1a00697bd6a9

4 years agoresourceloader: Also clear store in debug mode to simplify mw.loader.store.init()
Timo Tijhof [Thu, 25 Jul 2019 16:37:46 +0000 (17:37 +0100)]
resourceloader: Also clear store in debug mode to simplify mw.loader.store.init()

This makes it consistent with the other two circumstances in which
mw.loader.store is disabled.

Also, it makes debug=true a more easily accessible means for users
to clear module storage, which can be useful at times (without requiring
console access).

Change-Id: I9c66815a2f6c60feef3e070cfe57c382a69cc752

4 years agoMake wfGetDB() return a MaintainableDBConnRef instance (take 2)
Krinkle [Wed, 24 Jul 2019 19:29:56 +0000 (19:29 +0000)]
Make wfGetDB() return a MaintainableDBConnRef instance (take 2)

This enforces the DB_* role checks of DBConnRef in more places.

This is a re-submission of 335066505a3ea, which was reverted due to T228928.

Change-Id: I556627dc6486e6f6539d1d2dd5aa6f009eff341e

4 years agoAdd SearchResultSetTrait
David Causse [Thu, 25 Jul 2019 13:48:34 +0000 (15:48 +0200)]
Add SearchResultSetTrait

trait meant to hold methods that rarely overridden or that are
non trivial to implement.

Bug: T228626
Change-Id: I4fba27b22860109d648e830a435d4a036d26ad06

4 years agoMerge "Replace wfGetDB in ParserTestRunner"
jenkins-bot [Thu, 25 Jul 2019 13:47:15 +0000 (13:47 +0000)]
Merge "Replace wfGetDB in ParserTestRunner"

4 years agoAdd BaseSearchResultSet
David Causse [Thu, 25 Jul 2019 12:11:06 +0000 (14:11 +0200)]
Add BaseSearchResultSet

Meant to hold the B/C behaviors and be the base class implemented
by extensions.

Bug: T228626
Change-Id: I072a9bd0f94bd785d1ff51f0e6ee13790e37b417

4 years agoMerge "MimeAnalyzer: fix ZIP parsing failure"
jenkins-bot [Thu, 25 Jul 2019 13:36:09 +0000 (13:36 +0000)]
Merge "MimeAnalyzer: fix ZIP parsing failure"

4 years agoMerge "parser: inject a Logger into Parser instead of using wfDebug()"
jenkins-bot [Thu, 25 Jul 2019 10:41:07 +0000 (10:41 +0000)]
Merge "parser: inject a Logger into Parser instead of using wfDebug()"

4 years agoMimeAnalyzer: fix ZIP parsing failure
Tim Starling [Thu, 25 Jul 2019 03:29:44 +0000 (13:29 +1000)]
MimeAnalyzer: fix ZIP parsing failure

unpack() actually returns an array with indexes starting from 1, not
zero, so unpack(...)[0] gives a notice and always returns null. It is
lucky that ZIPs normally have zero-length comments, so this would have
had little impact on file type detection aside from log spam.

Also, add a check to make sure the unpack() will not read beyond
the end of the file. Without this, unpack() could generate a warning.

The bug was introduced by me in f12db3804882272794b.

Add tests. The test files were generated by appending an EOCDR signature
and some extra bytes to 1bit-png.png.

Bug: T223728
Change-Id: I6fab63102d1d8eea92cdcce5ab6d1eb747a0a890

4 years agoMerge "Do not block autopromote on partial blocks"
jenkins-bot [Wed, 24 Jul 2019 22:41:53 +0000 (22:41 +0000)]
Merge "Do not block autopromote on partial blocks"