jenkins-bot [Tue, 27 Aug 2019 00:32:25 +0000 (00:32 +0000)]
Merge "Add SearchResultTrait"
jenkins-bot [Mon, 26 Aug 2019 23:36:44 +0000 (23:36 +0000)]
Merge "Setup: Remove scopedProfileIn() calls"
jenkins-bot [Mon, 26 Aug 2019 23:36:36 +0000 (23:36 +0000)]
Merge "REST: call MediaWiki::preOutputCommit and doPostOutputShutdown"
jenkins-bot [Mon, 26 Aug 2019 23:30:12 +0000 (23:30 +0000)]
Merge "SpecialNewSection: Fix handling of 'preloadparams'"
jenkins-bot [Mon, 26 Aug 2019 23:14:38 +0000 (23:14 +0000)]
Merge "Clean up LinkRenderer usage in IndexPager and extensions"
jenkins-bot [Mon, 26 Aug 2019 22:00:46 +0000 (22:00 +0000)]
Merge "Revert "Make LocalisationCache a service""
jenkins-bot [Mon, 26 Aug 2019 22:00:39 +0000 (22:00 +0000)]
Merge "objectcache: SqlBagOStuff cleanups for sqlite and postgres"
jenkins-bot [Mon, 26 Aug 2019 21:23:28 +0000 (21:23 +0000)]
Merge "rdbms: simplify comment in LoadBalancer::reuseConnection()"
jenkins-bot [Mon, 26 Aug 2019 21:21:34 +0000 (21:21 +0000)]
Merge "rdbms: rename $db => $conn in remaining places in LoadBalancer"
jenkins-bot [Mon, 26 Aug 2019 20:43:19 +0000 (20:43 +0000)]
Merge "Setup: Move wgRCLinkDays logic from Setup to ChangesListSpecialPage"
jenkins-bot [Mon, 26 Aug 2019 19:05:14 +0000 (19:05 +0000)]
Merge "Use local variabe $services instead of MediaWikiServices::getInstance()"
jenkins-bot [Mon, 26 Aug 2019 18:45:00 +0000 (18:45 +0000)]
Merge "Disambiguate confusing $fromReplica variable in BlockManager"
Bartosz Dziewoński [Mon, 26 Aug 2019 18:02:57 +0000 (20:02 +0200)]
SpecialNewSection: Fix handling of 'preloadparams'
The parent class RedirectSpecialPage handles array parameters
automatically, and we need to specify the name without the '[]',
same as in RedirectSpecialArticle.
Bug: T231088
Change-Id: I52838a39f3311fe612c466903d7eda95fecedfa7
Amir Sarabadani [Mon, 26 Aug 2019 16:28:26 +0000 (18:28 +0200)]
Aaron Schulz [Thu, 15 Aug 2019 13:26:51 +0000 (09:26 -0400)]
objectcache: SqlBagOStuff cleanups for sqlite and postgres
Make createTables() work for Postgres. Also add and use new
initSqliteDatabase() method for SQLite.
Also use ConvertibleTimestamp instead of wfTimestamp
Change-Id: I8e4505775e57fc6cd7380afa015fc0901a1bfc1b
Aaron Schulz [Mon, 26 Aug 2019 16:15:04 +0000 (09:15 -0700)]
rdbms: rename $db => $conn in remaining places in LoadBalancer
Change-Id: I7e419cdc97d03616d5ee011a97fca658d0d79cad
jenkins-bot [Mon, 26 Aug 2019 15:09:13 +0000 (15:09 +0000)]
Merge "language: Move ConverterRule to includes/ and add test case"
Fomafix [Mon, 26 Aug 2019 14:08:10 +0000 (16:08 +0200)]
Use local variabe $services instead of MediaWikiServices::getInstance()
Change-Id: Ieb6230231d9b916fd1366e7b473db00c87ac4428
Timo Tijhof [Sun, 25 Aug 2019 17:55:34 +0000 (18:55 +0100)]
language: Move ConverterRule to includes/ and add test case
Add a very basic test that creates an instance, invokes it
with an empty string, and asserts the types and values returned
by the public methods used in LanguageConverter::applyManualConv.
Bug: T225756
Change-Id: I3600260e712f019243ba5f00890011e694444e43
Aryeh Gregor [Mon, 26 Aug 2019 09:54:19 +0000 (12:54 +0300)]
Pass correct store to rebuildLocalisationCache.php
e4468a1d6b6 completely broke rebuildLocalisationCache.php by
unconditionally passing in LCStoreDB( [] ) instead of constructing the
correct object.
Bug: T231183
Change-Id: I0d52662e8745cf0e10091169b3b08eff48ef2b8f
Aryeh Gregor [Mon, 26 Aug 2019 09:41:56 +0000 (12:41 +0300)]
Correctly register storeDirectory in l10n cache
e4468a1d6b6 made LocalisationCache a service and refactored a bunch of
setup code. In doing so, when processing 'storeDirectory' from
$wgLocalisationCacheConf, it accidentally started treating empty
non-null values (such as the default "false") as storage paths instead
of meaning "fall back to $wgCacheDirectory". This would have broken all
config that used file store for LocalisationCache and did not specify
'storeDirectory'.
Bug: T231183
Change-Id: I9ff16be628996b202599e3bb2feed088af03775f
Translation updater bot [Mon, 26 Aug 2019 06:32:31 +0000 (08:32 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I85f8b577290b04d60af1fa4f9151a6756a658aa8
Aaron Schulz [Mon, 26 Aug 2019 06:04:24 +0000 (23:04 -0700)]
rdbms: simplify comment in LoadBalancer::reuseConnection()
Change-Id: Ie6ea6ac7617b1f026b0ee7b8b76c287ec0da9e34
jenkins-bot [Mon, 26 Aug 2019 04:35:59 +0000 (04:35 +0000)]
Merge "title: Fix flaky TitlePermissionTest::testUserBlock"
Tim Starling [Fri, 16 Aug 2019 04:38:48 +0000 (14:38 +1000)]
REST: call MediaWiki::preOutputCommit and doPostOutputShutdown
As in api.php. Among other things, this enables profiling.
Move EntryPoint test out of unit/ so that it passes.
Use ob_start()/ob_end_clean() instead of assuming an output buffer is
open, so that EntryPoint::execute() can be run from CLI mode.
Change-Id: I38162a9eac6fd5acfed2035b87cac4a97ffd50d6
Timo Tijhof [Sun, 25 Aug 2019 22:19:48 +0000 (23:19 +0100)]
Setup: Move wgRCLinkDays logic from Setup to ChangesListSpecialPage
This is only needed when viewing SpecialRecentChanges (or a related
page). Move the consuming logic to that class, where it can be
maintained as part of the rest of the code. This also makes it
more testable and makes config easier to work with or load from
elsewhere in the future. Aside from some dynamic default values,
configuration should generally not mutate. If there is some domain-
specific way to consume it, the relevant component should be
responsible for doing so. This also means we defer such logic to
where it is needed, instead of unconditionally for all possible
features that might be used.
Bug: T189966
Change-Id: If17608909711d98ac560b6d64f72ba7913a561a9
jenkins-bot [Sun, 25 Aug 2019 22:15:02 +0000 (22:15 +0000)]
Merge "resourceloader: Add coverage for internal Context::getReqBase()"
jenkins-bot [Sun, 25 Aug 2019 22:12:00 +0000 (22:12 +0000)]
Merge "rdbms: refactor caching in LoadBalancer::getReadOnlyReason()"
Aaron Schulz [Tue, 16 Jul 2019 06:06:13 +0000 (23:06 -0700)]
rdbms: refactor caching in LoadBalancer::getReadOnlyReason()
Avoid nesting of the same getWithSetCallback() cache updates.
Also favor accuracy over initial cache use for the case where
there is already a master connection. Add missing "lockTSE"
flag to protect against stampedes updating stale values.
Change serverIsReadOnly() to use SELECT in mysql instead of
SHOW to avoid internal temporary tables.
Bug: T227838
Change-Id: I2b0d680c9c3bdc7aaa1d1e1d6beb2dd203a815f1
Aaron Schulz [Wed, 7 Aug 2019 21:43:21 +0000 (14:43 -0700)]
rdbms: make IDatabase comments more up-to-date and stylistically consistent
Keep the first comment line of methods short, mention "expected" exceptions,
and break long method signatures into separate lines.
Change-Id: I64b36210f2451d46f8f2412b48dc846b56989e82
Timo Tijhof [Sun, 25 Aug 2019 18:22:26 +0000 (19:22 +0100)]
Setup: Remove scopedProfileIn() calls
To my knowledge this never goes anywhere. These are left overs from
when we used profileIn/profileOut still, which we no longer use
given things like Tideways and XHProf are now recommended for
profiling, instead.
Bug: T189966
Change-Id: Id1bacc951f267dc1d3872aed935afd306adc37b3
Matěj Suchánek [Tue, 9 Jul 2019 10:45:54 +0000 (12:45 +0200)]
Clean up LinkRenderer usage in IndexPager and extensions
The property needs to be private because pagers in extensions
may declare the same property with stronger visibility which
would crash.
Bug: T149346
Change-Id: I082152b64141f1a9a4085bba23fe81a99ec8d886
Timo Tijhof [Sun, 25 Aug 2019 18:01:48 +0000 (19:01 +0100)]
resourceloader: Add coverage for internal Context::getReqBase()
Change-Id: I068000f55f2100a6791470896d7f1050bdcb19a4
Daimona Eaytoy [Thu, 15 Aug 2019 12:21:55 +0000 (14:21 +0200)]
Remove more Oracle and Mssql leftovers
Follows-up
4d10bb14e81 and
807d793ab9079.
According to codesearch [0], these were the last usages. Note that this
patch leaves two constants in places, IDatabase::DBO_SYSDBA and
DBO_DDLMODE. These are public constants used "mostly for oracle" according
to the docs, but maybe we could find other use cases in the future (?).
[0] - https://codesearch.wmflabs.org/core/?q=oracle%7Cmssql&i=fosho&files=%5C.%5B%5Ej%5Cd%5D%7Cen%5C.json&repos=
Bug: T230418
Change-Id: Ibfb748b4b23b885a77f4de161af4bf2ab9649a89
jenkins-bot [Sun, 25 Aug 2019 17:09:21 +0000 (17:09 +0000)]
Merge "Revert "rdbms: make LoadBalancer::reallyOpenConnection() handle setting DBO_TRX""
jenkins-bot [Sun, 25 Aug 2019 16:57:41 +0000 (16:57 +0000)]
Merge "objectcache: make MediumSpecificBagOStuff::mergeViaCas() handle negative TTLs"
Urbanecm [Sun, 25 Aug 2019 16:30:30 +0000 (16:30 +0000)]
Revert "rdbms: make LoadBalancer::reallyOpenConnection() handle setting DBO_TRX"
This reverts commit
45831e619c5e667ae1201bcdacfb8d4dcce10b41.
Reason for revert: Caused beta not work at all.
Bug: T231162
Change-Id: Icc5c1fa0dc01082a622641ad96c22c939cd56d48
jenkins-bot [Sun, 25 Aug 2019 15:11:49 +0000 (15:11 +0000)]
Merge "Migrate BagOStuff::incr() calls to incrWithInit()"
Timo Tijhof [Sun, 25 Aug 2019 15:04:19 +0000 (16:04 +0100)]
title: Fix flaky TitlePermissionTest::testUserBlock
The mock timestamp is asserted via $prev, which is set a few lines
up.
The input timestamp is set as 0, which usually passes (if these two
lines execute in the same second), but when the two lines of code
are on opposite sides of a clock second boundary, the test would
fail.
Instead of fixing the setTimestamp() call, remove it in favour of
fixing the 'timestamp' option instead, which was needlessly
being set to one thing and then overwritten by setTimestamp.
Bug: T231166
Change-Id: If6a1e4ec7b91efee0a43e6dd86794f15c5a440b3
jenkins-bot [Sun, 25 Aug 2019 15:02:48 +0000 (15:02 +0000)]
Merge "rdbms: add setTempTablesOnlyMode() to suppress CONN_TRX_AUTOCOMMIT during tests"
jenkins-bot [Sun, 25 Aug 2019 14:54:19 +0000 (14:54 +0000)]
Merge "Make the JobRunner flushReplicaSnapshots() call cover the first job"
jenkins-bot [Sun, 25 Aug 2019 14:38:56 +0000 (14:38 +0000)]
Merge "Make NameTableStore use LoadBalancer::getConnectionRef()"
Aaron Schulz [Fri, 2 Aug 2019 19:28:18 +0000 (15:28 -0400)]
Make the JobRunner flushReplicaSnapshots() call cover the first job
If JobRunner is called when replica transactions exists, the first job
would previously use the stale REPEATABLE-READ snapshot data.
Also clear any master connection snapshots via commitMasterChanges().
This makes the code more similar to DeferredUpdates::attemptUpdate().
Change-Id: I2157a91fb01ea8c233f964b1f3164e8c3b1a07ca
Krinkle [Sun, 25 Aug 2019 14:06:52 +0000 (14:06 +0000)]
Merge "parsercache: use WRITE_ALLOW_SEGMENTS for cached ParserOutput values"
Translation updater bot [Sun, 25 Aug 2019 07:50:55 +0000 (09:50 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I89aab65db771aaded5fb8a3517cea3545a6efa01
Aaron Schulz [Sun, 4 Aug 2019 03:38:54 +0000 (23:38 -0400)]
Make NameTableStore use LoadBalancer::getConnectionRef()
This method handles reuseConnection() calls, disallows writes to
DB_REPLICA role handles, is more consistent with wfGetDB(), and
is more efficient with I540b08920997c5.
Change-Id: I8edaef0ea4718414e2004fad04afca8ec5797669
Aaron Schulz [Fri, 9 Aug 2019 22:56:18 +0000 (15:56 -0700)]
Migrate BagOStuff::incr() calls to incrWithInit()
Change-Id: I722d6fe3d50c594858e3e7960fb99ef2fc1664b3
Aaron Schulz [Tue, 18 Jun 2019 15:35:27 +0000 (16:35 +0100)]
parsercache: use WRITE_ALLOW_SEGMENTS for cached ParserOutput values
This lets large output entries fit into memcached via key segmentation.
Follows
b09b3980f99 which applied the feature to PageEditStash.
Bug: T204742
Change-Id: I33a60f5d718cd9033ea12d1d16046d2bede87b5b
jenkins-bot [Sat, 24 Aug 2019 23:15:36 +0000 (23:15 +0000)]
Merge "rdbms: make LBFactory close/rollback dangling handles like LoadBalancer"
Aaron Schulz [Sun, 21 Jul 2019 09:53:53 +0000 (02:53 -0700)]
objectcache: make WANObjectCache::relayPurge() actually use $holdoff
Fixes a regression introduced by
70547f3fa304 in 2016.
Change-Id: I5996b63c31ac3b382e838a6858b8585bdc8c585c
jenkins-bot [Sat, 24 Aug 2019 22:40:59 +0000 (22:40 +0000)]
Merge "resourceloader: Map group names to integers internally"
jenkins-bot [Sat, 24 Aug 2019 22:40:53 +0000 (22:40 +0000)]
Merge "resourceloader: Add tests for mw.loader not storing private/user response"
jenkins-bot [Sat, 24 Aug 2019 22:20:32 +0000 (22:20 +0000)]
Merge "resourceloader: Add tests for disallowing access to private modules"
jenkins-bot [Sat, 24 Aug 2019 20:57:17 +0000 (20:57 +0000)]
Merge "objectcache: rename getDB() to getConnection() in SqlBagOStuff"
jenkins-bot [Sat, 24 Aug 2019 20:55:48 +0000 (20:55 +0000)]
Merge "rdbms: make LoadBalancer::reallyOpenConnection() handle setting DBO_TRX"
jenkins-bot [Sat, 24 Aug 2019 20:45:44 +0000 (20:45 +0000)]
Merge "filebackend: update code comments and break some long lines"
jenkins-bot [Sat, 24 Aug 2019 20:45:19 +0000 (20:45 +0000)]
Merge "objectcache: improve BagOStuff arithmetic method signatures"
jenkins-bot [Sat, 24 Aug 2019 20:39:07 +0000 (20:39 +0000)]
Merge "maintenance: Cleanup db code and bogus RevisionRecord constants in NamespaceDupes"
jenkins-bot [Sat, 24 Aug 2019 20:34:18 +0000 (20:34 +0000)]
Merge "maintenance: Fix bogus IDatabase method calls in sqlite.php"
jenkins-bot [Sat, 24 Aug 2019 20:30:20 +0000 (20:30 +0000)]
Merge "maintenance: Fix bad method call in RebuildTextIndex"
jenkins-bot [Sat, 24 Aug 2019 20:30:14 +0000 (20:30 +0000)]
Merge "maintenance: Sanity check that --replicadb isn't using the master in sql.php"
Aaron Schulz [Fri, 9 Aug 2019 06:23:05 +0000 (23:23 -0700)]
objectcache: rename getDB() to getConnection() in SqlBagOStuff
Change-Id: I7ec33e2622f5b418712d76bedcbb4be65376cf91
Aaron Schulz [Sun, 14 Jul 2019 22:43:26 +0000 (15:43 -0700)]
rdbms: make LoadBalancer::reallyOpenConnection() handle setting DBO_TRX
Make LoadBalancer::reallyOpenConnection() handle initializing DBO_TRX
instead of Database::__construct().
Also:
* Avoid having the "catch" block appear like it returns a
half-constructed Database.
* Use the variable name $conn instead of $db to be consistent
throughout the class. Only send Database::__construct() parameters
that it recognizes instead of mixing in setLBInfo() data.
Change-Id: Iffc3d1d0713051a164adb51a4c4ee12e4ac887c3
Aaron Schulz [Wed, 21 Aug 2019 23:54:34 +0000 (16:54 -0700)]
maintenance: Cleanup db code and bogus RevisionRecord constants in NamespaceDupes
Change-Id: Ie31beb183d32663b368a32e4926a3ed55456719c
Aaron Schulz [Wed, 21 Aug 2019 23:41:15 +0000 (16:41 -0700)]
maintenance: Fix bogus IDatabase method calls in sqlite.php
Use getConnection() to directly get a DatabaseSqlite instance.
Change-Id: Ic349d14614b6bf145ae2e3ccdac68319fa2bbf9c
Aaron Schulz [Wed, 21 Aug 2019 23:37:48 +0000 (16:37 -0700)]
maintenance: Fix bad method call in RebuildTextIndex
This method was removed earlier this month with
2eb5bdbac6b7.
SearchSqlite already checks if the proper searchindex tables was created.
Avoid call to bogus IDatabase::checkForEnabledSearch() method.
Also make use of Maintenance::getDB()
Change-Id: If662e17093c1aef71ee9841259ca76e2ac31a7a9
Aaron Schulz [Wed, 17 Jul 2019 19:19:05 +0000 (12:19 -0700)]
objectcache: improve BagOStuff arithmetic method signatures
Make the default $init value for incrWithInit() be $value.
This is far less suprising and also makes the operation
easier to replicate without conflicts.
Make decr() definitions more explicit since various cache
drivers do not handle negative incr() values (e.g. memcached).
Change-Id: I2b8d642656cc91c841abbd7a55d97eba101b027a
Aaron Schulz [Thu, 22 Aug 2019 00:35:02 +0000 (17:35 -0700)]
maintenance: Sanity check that --replicadb isn't using the master in sql.php
Change-Id: I0b7fd896c88b06cbc17b31b1ae2b9cb8e375da1b
Amir Sarabadani [Wed, 14 Aug 2019 19:39:01 +0000 (21:39 +0200)]
resourceloader: Map group names to integers internally
This makes startup response smaller.
Change-Id: Id0ae3cd7cd22163f42b92b629c38b0a806d3ca50
Timo Tijhof [Sat, 24 Aug 2019 18:58:40 +0000 (19:58 +0100)]
resourceloader: Add tests for mw.loader not storing private/user response
This is in preparation for changing the way group indexes are transmitted
between the server and client, to confirm that the behaviour doesn't break.
Change-Id: I1f84c4c407a4eb69b5b9659d768c643d4a83df0d
Timo Tijhof [Sat, 24 Aug 2019 18:45:27 +0000 (19:45 +0100)]
resourceloader: Add tests for disallowing access to private modules
* Add a test to confirm that the ResourceLoader::respond() logic
works as intended.
* Remove the client code for preventing it from being loaded.
This can never happen in production unless there is a bug.
Instead of optimising to avoid a pointless request that only
happens when the software is broken, instead optimise for when
the software is not broken by just letting it happen. The server
already handles it just fine.
This was originally added in 2015 with
1dd73903726 to reduce
logspam, but that was instead fixed in
6d6b037e122 by making the
log message debug-only (because it's not a software problem,
it's a client-error, e.g. a broken user script or a third
party trying out different things on the load.php entry point).
Removing this makes the client a bit smaller, too :)
Change-Id: Ic5420d9329a73514f4fc27baa46ae58d94addafb
Aaron Schulz [Fri, 23 Aug 2019 15:45:54 +0000 (08:45 -0700)]
filebackend: update code comments and break some long lines
Change-Id: I072e15c7c51490888284561260958e405fb061ca
jenkins-bot [Sat, 24 Aug 2019 08:00:11 +0000 (08:00 +0000)]
Merge "API: Warn about POST without Content-Type"
jenkins-bot [Sat, 24 Aug 2019 04:38:09 +0000 (04:38 +0000)]
Merge "filebackend: Remove private handleWarning in favour of local closure"
jenkins-bot [Sat, 24 Aug 2019 02:14:05 +0000 (02:14 +0000)]
Merge "Localisation updates from https://translatewiki.net."
jenkins-bot [Sat, 24 Aug 2019 02:03:13 +0000 (02:03 +0000)]
Merge "Skin: Add new hook, UndeletePageToolLinks, for Special:Undelete views"
Translation updater bot [Fri, 23 Aug 2019 07:07:55 +0000 (09:07 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ifdfe6ec25954eb7c61a85b6494bc0d2a18bae9a7
jenkins-bot [Fri, 23 Aug 2019 23:18:16 +0000 (23:18 +0000)]
Merge "rdbms: various field name and style cleanups to Database"
jenkins-bot [Fri, 23 Aug 2019 22:31:36 +0000 (22:31 +0000)]
Merge "Short-circuit WebRequest::getGPCVal() for printable ASCII strings"
Huji Lee [Thu, 22 Aug 2019 23:18:38 +0000 (19:18 -0400)]
Skin: Add new hook, UndeletePageToolLinks, for Special:Undelete views
This allows extensions to add further links; the particular use case
in mind is for the AbuseFilter extension, but others may want this
too.
Bug: T231055
Change-Id: I671a0479e877e6c37606b688064cb9c893717709
Timo Tijhof [Fri, 23 Aug 2019 13:15:33 +0000 (14:15 +0100)]
filebackend: Remove private handleWarning in favour of local closure
This is a pattern from before PHP 5.3, which we no longer need.
Change-Id: I886d1ded25ffe1ee12b6a3f8d48c04aa7dd2ef51
Aaron Schulz [Thu, 22 Aug 2019 00:45:43 +0000 (17:45 -0700)]
rdbms: various field name and style cleanups to Database
Rename Database::hasFlags() to sound less similar to getFlag()/setFlag().
The order of class fields is roughly:
* Objects and resources
* Configuration
* Mutable options that do not have to be kept in sync with the connection
* Session level state tracking (should be in sync with the connection)
* Transaction level state tracking (should be in sync with the connection)
* Results from or timestamp of the last time a certain event occurred
Change-Id: Ibdca2fefe7ed2c792344c5602b5191a950eed933
jenkins-bot [Fri, 23 Aug 2019 19:19:51 +0000 (19:19 +0000)]
Merge "objectcache: move lag waiting to SqlBagOStuff::doCas() instead of overriding merge()"
jenkins-bot [Fri, 23 Aug 2019 19:14:59 +0000 (19:14 +0000)]
Merge "objectcache: add BagOStuff::fieldHasFlags() convenience method"
jenkins-bot [Fri, 23 Aug 2019 18:42:07 +0000 (18:42 +0000)]
Merge "rdbms: remove reference to READ_LATEST in ChronologyProtector::shutdown()"
jenkins-bot [Fri, 23 Aug 2019 18:41:26 +0000 (18:41 +0000)]
Merge "filebackend: use AtEase in FileBackend related classes"
jenkins-bot [Fri, 23 Aug 2019 18:40:25 +0000 (18:40 +0000)]
Merge "Deprecate skin functions that are not skin responsibilities"
jenkins-bot [Fri, 23 Aug 2019 18:10:24 +0000 (18:10 +0000)]
Merge "objectcache: make more SqlBagOStuff methods private and rename shard variables"
Aaron Schulz [Wed, 31 Jul 2019 22:48:45 +0000 (18:48 -0400)]
Short-circuit WebRequest::getGPCVal() for printable ASCII strings
This avoids accessing the content Language instance in many cases
Change-Id: I82bd66496180f947c1af16c2728a1548df03dcf9
jenkins-bot [Fri, 23 Aug 2019 14:19:58 +0000 (14:19 +0000)]
Merge "objectcache: move MemcachedClient class to /utils subdir"
Aaron Schulz [Tue, 20 Aug 2019 14:09:16 +0000 (10:09 -0400)]
filebackend: use AtEase in FileBackend related classes
Change-Id: I819e0e923dfd3ffa7299acd1d6103e3cdf2baa93
Piotr Miazga [Wed, 21 Aug 2019 12:10:09 +0000 (14:10 +0200)]
Deprecate skin functions that are not skin responsibilities
Skin shouldn't be responsible for providing requested revisionId
nor if that revision is the current revision.
The OutputPage object has all required information (both the
currentRevisionID and the current Title object).
Change-Id: I2dbae4c6968a2b3b3cea3e09977e9579609b4cc5
Thalia [Fri, 23 Aug 2019 12:29:24 +0000 (13:29 +0100)]
Disambiguate confusing $fromReplica variable in BlockManager
Change-Id: Ifd9bfbc40a52add5e8478c31a55a1c22e9d4693d
jenkins-bot [Fri, 23 Aug 2019 11:27:45 +0000 (11:27 +0000)]
Merge "Move getRestrictionLevels from NamespaceInfo to PermissionManager."
jenkins-bot [Fri, 23 Aug 2019 11:16:28 +0000 (11:16 +0000)]
Merge "Split some Language methods to LanguageNameUtils"
jenkins-bot [Fri, 23 Aug 2019 10:49:02 +0000 (10:49 +0000)]
Merge "Allow justifications in `Special:EditTags` to use full comment length"
Aryeh Gregor [Thu, 2 May 2019 14:23:42 +0000 (17:23 +0300)]
Split some Language methods to LanguageNameUtils
These are static methods that have to do with processing language names
and codes. I didn't include fallback behavior, because that would mean a
circular dependency with LocalisationCache.
In the new class, I renamed AS_AUTONYMS to AUTONYMS, and added a class
constant DEFINED for 'mw' to match the existing SUPPORTED and ALL. I
also renamed fetchLanguageName(s) to getLanguageName(s).
There is 100% test coverage for the code in the new class.
Change-Id: I245ae94bfc1f62b6af75ea57525139adf2539fe6
Brad Jorsch [Wed, 21 Aug 2019 16:10:30 +0000 (12:10 -0400)]
Add ObjectFactory as a service
ObjectFactory exists to handle lazy instantiation of objects based on
declarative specifications.
One drawback to the current use of static ObjectFactory::getObjectFromSpec()
is that it doesn't have a good way to handle dependency injection. The
best you could do is refer to a static 'factory' function in your
specification, and that function would access the global service
container. But DI would prefer not to have that "global service
container" being accessed.
The solution is to have a non-static ObjectFactory that can supply
the needed services based on the object definition. For example,
[
'class' => MyObject::class,
'services' => [ 'FooFactory', 'BarFactory' ],
]
would get the FooFactory and BarFactory from a service container to pass
into MyObject's constructor.
But in order for that to be possible, you need to have an instance of
ObjectFactory that has reference to the service container from which to
fetch the services. And the most DI-correct way to get that is to have
it dependency-injected into your constructor, at which point the
ObjectFactory instance should itself be a service in the DI service
container.
Bug: T222409
Change-Id: I2a56059a9209abce0b22fb93c9f9c6a09a825c56
Aaron Schulz [Fri, 23 Aug 2019 00:58:47 +0000 (17:58 -0700)]
rdbms: remove reference to READ_LATEST in ChronologyProtector::shutdown()
Change-Id: I34b2fa940475d5e5e81130221f61d782818a6d17
Aaron Schulz [Fri, 9 Aug 2019 06:09:45 +0000 (23:09 -0700)]
objectcache: make more SqlBagOStuff methods private and rename shard variables
Also optimize silenceTransactionProfiler() when LoadBalancer is not in use
Change-Id: I83fd5c17058ba082a13e957e4b4590e2d1d5b581