jenkins-bot [Sat, 3 Sep 2016 23:08:37 +0000 (23:08 +0000)]
Merge "RevertAction: Prevent file revert if current version is identical"
Translation updater bot [Sat, 3 Sep 2016 21:50:07 +0000 (23:50 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ib9a3add2d9502cfa52a9a464b92c21633028cca0
jenkins-bot [Sat, 3 Sep 2016 21:34:11 +0000 (21:34 +0000)]
Merge "Make replication DB-related comments/messages more uniform"
jenkins-bot [Sat, 3 Sep 2016 18:54:57 +0000 (18:54 +0000)]
Merge "OutputPage: Ensure setupSkinUserCss() always applies to headElement()"
Timo Tijhof [Tue, 30 Aug 2016 23:36:28 +0000 (16:36 -0700)]
OutputPage: Ensure setupSkinUserCss() always applies to headElement()
Follows-up
80e5b160e0, which had to move this call out of the
headElement() and buildCssLinks() methods as it was no longer
allowed to modify the module queue after it was created.
It was moved to OutputPage::output(), right before Skin::outputPage()
is called, which ends up calling headElement().
The point in time was effectively unchanged for page views.
However for the caller in ApiParse() this meant setupSkinUserCss()
no longer got called at all as it never calls output(), but instead
calls headElement() directly.
Move it to getRlClient(), which is where we set all other
OutputPage-specific things relating to module loading already.
* For page views this has no impact.
* For ApiParse it means headElement(), which calls getRlClient(),
will once again include skin stylesheets.
Bug: T144301
Change-Id: I5fd4a27fb2d70b98ce9161dc050788d8ac364110
Aaron Schulz [Sat, 3 Sep 2016 14:13:47 +0000 (07:13 -0700)]
Make replication DB-related comments/messages more uniform
Change-Id: If04254aad085c05d2a6b6588b4c9b55a1736110d
jenkins-bot [Fri, 2 Sep 2016 23:56:26 +0000 (23:56 +0000)]
Merge "resourceloader: Shorten cache expiry if 'version' query doesn't match"
Timo Tijhof [Fri, 2 Sep 2016 22:44:59 +0000 (15:44 -0700)]
resourceloader: Shorten cache expiry if 'version' query doesn't match
Versioned load.php requests (load.php?modules=..&version=..) are highly
cacheable due to being versioned. When a module changes, the startup module
delivers new metadata to the client which naturally results in a cache miss
by producing a different url.
However, during upgrades and other deployments it was possible for a
multi-server installation to pollute edge caches with outdated content
in the following scenario:
* Deployment starts for an upgrade from version A to version B.
* Server 1 (on version B) gets a request for the startup manifest.
Client receives new manifest with version B information
and makes a versioned request for version B.
* Server 2 (still on version A) responds to this request with the
version it has (which is version A).
* Edge cache will store version A under the new url for version B.
This commit changes the last point by setting a low max-age when a request
has a 'version' hash mismatch.
Test plan:
* Look for a request in your browser like:
'/load.php?..modules=jquery%2Cmediawiki..&version=..'
* Verify it has a high Cache-Control max-age.
* Manipulate the 'version' parameter and verify it gets a low max-age.
Bug: T117587
Change-Id: Iba89c09b7b71d9fd2a8ff3ebe2618e26ea9daddf
Aaron Schulz [Fri, 2 Sep 2016 22:59:52 +0000 (15:59 -0700)]
Use WAN cache adaptiveTTL() method in FileBackendStore
Change-Id: I2e8b4e85b12c8892e8640abc63ee13b4b170645d
jenkins-bot [Fri, 2 Sep 2016 22:12:32 +0000 (22:12 +0000)]
Merge "Fix deletion handling of rev_deleted"
jenkins-bot [Fri, 2 Sep 2016 22:10:17 +0000 (22:10 +0000)]
Merge "Convert Revision::fetchFromConds() to using more modern selectRow()"
Aaron Schulz [Thu, 1 Sep 2016 12:42:01 +0000 (05:42 -0700)]
Fix deletion handling of rev_deleted
When the suppress button was not used, and some live
revisions had rev_deleted set, the query would try to
write the literal string "rev_deleted" as rev_deleted,
which was not noticed in default non-strict MySQL and
was casted to 0.
Follow-up to
673371e2c7
Bug: T144484
Change-Id: If3a74de13ea841d9d94ae05532cc8dadb0e40867
Aaron Schulz [Fri, 2 Sep 2016 13:46:56 +0000 (06:46 -0700)]
Convert Revision::fetchFromConds() to using more modern selectRow()
Change-Id: Icb3fa46beb7f49a43ffa40eb8f505a3717cd730b
jenkins-bot [Fri, 2 Sep 2016 21:02:13 +0000 (21:02 +0000)]
Merge "Rename CSS files for printing to a consistent file name"
Translation updater bot [Fri, 2 Sep 2016 20:15:53 +0000 (22:15 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I22dc4d60a502074f810a7ef5b704dd7bda05801f
jenkins-bot [Fri, 2 Sep 2016 19:59:58 +0000 (19:59 +0000)]
Merge "mw.Upload.BookletLayout: Use 'amenableparser' to handle templates in error messages"
jenkins-bot [Fri, 2 Sep 2016 18:27:22 +0000 (18:27 +0000)]
Merge "Add flushReplicaSnapshots() method for just clearing snapshots"
Chad Horohoe [Fri, 2 Sep 2016 18:15:02 +0000 (11:15 -0700)]
Don't mention $wgUser, it's ugly and it messes my grep-fu
Change-Id: Ic2b181a9f22f172aa8845a2e13bafa6142469ec4
Aaron Schulz [Fri, 2 Sep 2016 18:06:56 +0000 (11:06 -0700)]
Add flushReplicaSnapshots() method for just clearing snapshots
This is better than having to use the less safe commitAll(),
which also checks and commits masters with writes.
Change-Id: I01c95f1ebae6927ed5acf0c23dd19b5c2413f661
jenkins-bot [Fri, 2 Sep 2016 18:00:26 +0000 (18:00 +0000)]
Merge "Remove spammy reuseConnection() wfDebug() call"
jenkins-bot [Fri, 2 Sep 2016 17:48:28 +0000 (17:48 +0000)]
Merge "Clean up user handling in UploadStash"
Chad Horohoe [Fri, 2 Sep 2016 17:18:12 +0000 (10:18 -0700)]
Clean up user handling in UploadStash
- User parameter is now *required*, remove $wgUser fallback
- We don't actually need the object after construction, don't store it
Change-Id: Id0cc859b70e5d0608ffbfa591bce6a1feb7cc3be
jenkins-bot [Fri, 2 Sep 2016 17:40:33 +0000 (17:40 +0000)]
Merge "Let a few unit tests actually be unit tests"
Chad Horohoe [Fri, 2 Sep 2016 17:16:06 +0000 (10:16 -0700)]
Let a few unit tests actually be unit tests
MediaWikiTestCase is a terrible terrible thing with dumb overhead
Change-Id: I2a73a0f2819ed7e73b57642b7969036c2db2c991
jenkins-bot [Fri, 2 Sep 2016 17:08:38 +0000 (17:08 +0000)]
Merge "Make insertSelect() do two separate queries in non-CLI mode"
jenkins-bot [Fri, 2 Sep 2016 16:56:19 +0000 (16:56 +0000)]
Merge "Replace DataUpdate::doUpdates() callers in maintenance/"
Fomafix [Fri, 2 Sep 2016 15:08:39 +0000 (17:08 +0200)]
Rename CSS files for printing to a consistent file name
Change-Id: I868ecee47ed224ec05b41361727c2c67aebc474d
Aaron Schulz [Fri, 2 Sep 2016 15:36:08 +0000 (08:36 -0700)]
Remove spammy reuseConnection() wfDebug() call
This does not convey anything helpful and spam up debug
comment and jenkins logs
Change-Id: I7d20d061db28da3ba268255ecd71687a1eefb835
Glaisher [Sun, 14 Aug 2016 06:32:00 +0000 (11:32 +0500)]
Special:MovePage: Use LinkBatch when constructing subpages
Should help with T141029 and other cases, in general.
Bug: T141029
Change-Id: Iacda5acb0c569aa85eb328144c0af8d2cd07f126
Bartosz Dziewoński [Thu, 1 Sep 2016 21:49:19 +0000 (23:49 +0200)]
RevertAction: Prevent file revert if current version is identical
There are several reasons for this:
* The file thumbnail shown on the main file page is cached by the
browser, as images tend to be. This often confuses users into
thinking their revert did not work, and into attempting it again.
Recent examples:
* https://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2016/07#Wrong_SVG_rendering_on_File:DuckDuckGo_logo_and_wordmark.svg
* https://commons.wikimedia.org/w/index.php?title=Commons:Upload_help&oldid=
205348523#Reversion_is_not_working_for_me.
Ideally we'd prevent the caching, but preventing repeated reverts
should also work.
* Refreshing the success page causes the revert to be attempted again
(T53383). The usual solution to this is the Post/Redirect/Get
pattern, but we want to show a success message so that would require
some more changes (something similar to the post-edit notification).
* It can serve as a "revert conflict" detection mechanism, crude but
better than none.
In the unlikely case that uploading an identical older version of
the file is necessary, it can still be done using Special:Upload.
Bug: T53383
Change-Id: I37e04a536c5c2fc6cdbe59f6f598bb0c7f25d7a7
Glaisher [Sat, 13 Aug 2016 12:02:03 +0000 (17:02 +0500)]
LogPager: Use normalized value for log_user_text in query condition
Bug: T142755
Change-Id: Ia08be456cafa2133e5ea0e521161d6939e839fb2
jenkins-bot [Fri, 2 Sep 2016 04:48:35 +0000 (04:48 +0000)]
Merge "Make DeferredUpdates able to run DataUpdates"
jenkins-bot [Fri, 2 Sep 2016 04:43:41 +0000 (04:43 +0000)]
Merge "ImageHistoryList: Remove 'wpEditToken' parameter from the "revert" link for files"
Aaron Schulz [Fri, 2 Sep 2016 04:30:34 +0000 (21:30 -0700)]
Replace DataUpdate::doUpdates() callers in maintenance/
Change-Id: I51df9f419d6ea1e822fd0eef8c5dc4c43f9855e1
Aaron Schulz [Sun, 28 Aug 2016 16:23:52 +0000 (09:23 -0700)]
Make DeferredUpdates able to run DataUpdates
* Also make ErrorPageError exceptions display themselves
in PRESEND mode. Before they were always suppressed.
* Make DataUpdate::runUpdates() simply wrap
DeferredUpdates::execute().
* Remove unused installDBListener() method, which was
basically moved to Maintenance.
* Enable DBO_TRX for DeferredUpdates::execute() in CLI mode
* Also perform sub-DeferrableUpdate jobs right after their
parent for better transaction locality.
* Made rollbackMasterChangesAndLog() clear all master
transactions/rounds, even if there are no changes yet.
This keeps the state cleaner for continuing.
* For sanity, avoid calling acquirePageLock() in link updates
unless the transaction ticket is set. These locks are
already redundant and weaker in range than the locks the
Job classes that run them get. This helps guard against
DBTransactionError.
* Renamed $type to $stage to be more clear about the order.
Change-Id: I1e90b56cc80041d70fb9158ac4f027285ad0f2c9
Aaron Schulz [Thu, 1 Sep 2016 17:03:31 +0000 (10:03 -0700)]
Move run-on-add logic in DeferredUpdates to addUpdate()
Change-Id: I1b3ec21e07549f7250fa497f352fe1c131ddc88a
Aaron Schulz [Thu, 1 Sep 2016 17:01:25 +0000 (10:01 -0700)]
Remove $recursionGuard var from tryOpportunisticExecute()
Aside from there being no idle callback setting here, the
old addUpdate() code that runs updates allows nesting updates.
Make this support that for a few transitional commits. It will
be changed later to simply order the sub-updates after their
parent updates, keeping both outer scope for all updates and
locality of related updates.
Change-Id: I0ad4e9713a7893b981b7bb013e9db803eed663b2
Aaron Schulz [Thu, 1 Sep 2016 16:43:01 +0000 (09:43 -0700)]
Set "run when DBs idle" DeferredUpdates logic in Maintenance
* This is a more robust version of the one inside
DeferredUpdates (checking all DBs), which will be
replaced in a later commit.
* Make sure the listener is restored when the LB gets
torn down in tests. Also, it should respect the
$wgCommandLineMode value as tests can change it.
Change-Id: I1e3faa5a058df44e2d27ab5ac185930867eb68ac
Aaron Schulz [Thu, 1 Sep 2016 00:03:39 +0000 (17:03 -0700)]
Remove unused custom transaction logic from DataUpdate
Change-Id: Ife65e4e90a35395e87f4f487f1cb871b67d92aa1
Aaron Schulz [Thu, 1 Sep 2016 12:10:48 +0000 (05:10 -0700)]
Set some missing INTERNAL DB transaction flags and add wfWarn() calls
Make TRANSACTION_INTERNAL set mTrxAutomatic rather that
having callers have to do that individually.
The warnings should actually make tests fail with backtraces,
rather than often just having wrong things happen later.
Change-Id: Ic247a7b42a686f170f7abe6ec584459f3db4ed69
Bartosz Dziewoński [Thu, 1 Sep 2016 20:59:55 +0000 (22:59 +0200)]
ImageHistoryList: Remove 'wpEditToken' parameter from the "revert" link for files
The action=revert page does not use this parameter at all. (It displays
a form with an entirely different token.) I think this has not been
needed since
cf6dd13faca23af5b6e3188445b84e05d620d499 (r91284).
Change-Id: Ice5ecd2606a94a70321ede5304fee77fb1fb06c1
jenkins-bot [Thu, 1 Sep 2016 21:38:21 +0000 (21:38 +0000)]
Merge "objectcache: allow for callbacks to mask SYNC_WRITE latency"
Aaron Schulz [Mon, 29 Aug 2016 17:00:05 +0000 (10:00 -0700)]
objectcache: allow for callbacks to mask SYNC_WRITE latency
Change-Id: I908222ad3788ebe330aa58831cda139da32becd8
jenkins-bot [Thu, 1 Sep 2016 20:33:50 +0000 (20:33 +0000)]
Merge "Register a default value for the timecorrection preference"
Translation updater bot [Thu, 1 Sep 2016 20:08:52 +0000 (22:08 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ib4393e8374d2b6596a461934e7a5a0f15a88e292
jenkins-bot [Thu, 1 Sep 2016 18:59:55 +0000 (18:59 +0000)]
Merge "Remove SourceIndexField FLAG_SOURCE_DATA"
dcausse [Thu, 1 Sep 2016 15:00:59 +0000 (17:00 +0200)]
Remove SourceIndexField FLAG_SOURCE_DATA
Change-Id: I080f06a5a09f2d67a153b491555d0dbf65c626d0
jenkins-bot [Thu, 1 Sep 2016 14:51:41 +0000 (14:51 +0000)]
Merge "Add DEFAULTSORT to search index field data"
jenkins-bot [Thu, 1 Sep 2016 10:52:22 +0000 (10:52 +0000)]
Merge "mediawiki.util: Remove deprecated tooltipAccessKeyPrefix/tooltipAccessKeyRegexp"
jenkins-bot [Thu, 1 Sep 2016 06:45:00 +0000 (06:45 +0000)]
Merge "Use transaction listener to run DeferredUpdates in CLI mode"
jenkins-bot [Thu, 1 Sep 2016 06:42:46 +0000 (06:42 +0000)]
Merge "Add LoadBalancer::setTransactionListener()"
Aaron Schulz [Sun, 28 Aug 2016 16:06:57 +0000 (09:06 -0700)]
Use transaction listener to run DeferredUpdates in CLI mode
This sets triggers on master position waits typically called
after commitMasterChanges() or in commitAndWaitForReplication().
Change-Id: I127a8fe3cfc319abfa84fcd221ee2dae191c6d3b
Timo Tijhof [Sat, 27 Aug 2016 22:36:59 +0000 (15:36 -0700)]
mediawiki.util: Remove deprecated tooltipAccessKeyPrefix/tooltipAccessKeyRegexp
* Deprecated since MediaWiki 1.24.
* No longer used anywhere in Wikimedia Git.
* No longer used anywhere in MediaWiki-namespace on Wikimedia wikis.
Fixes performance issue uncovered in T144070. Would otherwise have
been addressed through a getter of sorts.
Change-Id: Ib323b7a63c5a2e8d36c5f105d0554a7216339b07
jenkins-bot [Thu, 1 Sep 2016 01:55:11 +0000 (01:55 +0000)]
Merge "Convert LocalFile to using getWithSetCallback() for caching"
jenkins-bot [Thu, 1 Sep 2016 01:11:19 +0000 (01:11 +0000)]
Merge "bidi-isolate usernames in Linker::userLink"
jenkins-bot [Thu, 1 Sep 2016 00:56:19 +0000 (00:56 +0000)]
Merge "ApiParamInfo: Allow fetching info for all submodules of a module"
Moriel Schottlender [Wed, 31 Aug 2016 20:58:05 +0000 (13:58 -0700)]
bidi-isolate usernames in Linker::userLink
Usernames can be in any script/language and include weak and neutral
characters like parentheses and dashes - these flip and make things
look very weird when displayed in the opposite directionality.
This fix adds <bdi> tags to isolate the username when we output user
links. This will affect displays like user personal tools, history
and diff view.
Also, fixing LogFormatterTestCase::removeSomeHtml() that expected
a very rigid html input (and thus failed with the new <bdi> wrapping)
to use strip_tags() instead.
Change-Id: I2db5f4b7d3a00726461eb6b699fbdf0ecd47a1cb
Aaron Schulz [Sun, 28 Aug 2016 15:56:17 +0000 (08:56 -0700)]
Add LoadBalancer::setTransactionListener()
This is useful for setting callbacks without making a new
DB connection. It also catches extra connections due to
foriegn wiki usage.
Change-Id: Ief009a0c1c2b4245fe3594fdf0d306dcc4956151
Aaron Schulz [Tue, 30 Aug 2016 06:22:22 +0000 (23:22 -0700)]
Convert LocalFile to using getWithSetCallback() for caching
Changed the hashing for the keys to SHA-1, which also avoids
problems with old MediaWiki versions seeing the new WAN
versioned keys.
Also fixed a few annoying IDEA errors
Change-Id: Ie608fb86421bc96e05e4a3b352f39b4938a243e4
Aaron Schulz [Wed, 31 Aug 2016 13:24:12 +0000 (06:24 -0700)]
Deprecate SqlDataUpdate
Core subclasses have been updated.
Change-Id: Ic1beebeb7aec2b40d89c75637968e57e71a6c1a2
jenkins-bot [Thu, 1 Sep 2016 00:25:09 +0000 (00:25 +0000)]
Merge "Links update class cleanups"
Aaron Schulz [Sat, 27 Aug 2016 17:10:46 +0000 (10:10 -0700)]
Make insertSelect() do two separate queries in non-CLI mode
This avoids slave lag and makes query time account easier.
It also avoids table-level autoinc locking and slave drift
with statement-based replication in some setups.
Also refactored the use of $wgCommandLine mode in
DatabaseBase slightly, so that it can be injected.
Change-Id: I2dba6024ecf32c9ee24a3080cce3b02568c1458b
Aaron Schulz [Wed, 31 Aug 2016 13:06:35 +0000 (06:06 -0700)]
Links update class cleanups
* Avoid using deprecated functions.
* Switch to DataUpdate as the direct parent class as
no benefit was provided from SqlDataUpdate (which
should be deprecated soon).
Change-Id: I0f1c77128f3df658e6a0eaf4471ca48ac536c643
jenkins-bot [Wed, 31 Aug 2016 23:44:01 +0000 (23:44 +0000)]
Merge "Improve beginMasterChanges and make methods for DeferredUpdates"
Aaron Schulz [Fri, 26 Aug 2016 07:19:34 +0000 (00:19 -0700)]
Improve beginMasterChanges and make methods for DeferredUpdates
* Fixed bug in LBFactory::beginMasterChanges where
untracked DBs that then get written to where not in the
transaction round. The call to onTransactionResolution()
right after commit() was also problematic, so a flag was
added to handle that.
* Add LBFactory::setWaitForReplicationListener(), which
fires at what is often a good point to run deferred updates.
* Add DatabaseBase::clearSnapshot() for committing no-op
transactions.
* Add IDatabase::setTransactionListener() for persistent
callbacks. Monitoring commits can be used to find a point
where deferred updates can run.
* Follow-up commit will address DeferredUpdates.
Change-Id: I4589e6f3ae40b1c362601416db48857fb89840bf
jenkins-bot [Wed, 31 Aug 2016 20:28:48 +0000 (20:28 +0000)]
Merge "Use wiki email for From of CC messages when $wgUserEmailUseReplyTo is set"
Bryan Davis [Sat, 13 Feb 2016 23:33:08 +0000 (16:33 -0700)]
Use wiki email for From of CC messages when $wgUserEmailUseReplyTo is set
Avoid bounces caused by SPF protections when sending CC messages to
users. This mirrors the logic used when sending the original message.
Change-Id: I1c48892e9b5086fd564eedd65cca6a848a2b425c
Translation updater bot [Wed, 31 Aug 2016 19:57:45 +0000 (21:57 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I94ec22fbff6255c613997c008e185def799495ad
jenkins-bot [Wed, 31 Aug 2016 19:41:05 +0000 (19:41 +0000)]
Merge "Enable jquery.ui.position on mobile"
Brad Jorsch [Wed, 31 Aug 2016 19:18:26 +0000 (15:18 -0400)]
ApiParamInfo: Allow fetching info for all submodules of a module
This allows fetching info for all query submodules with modules=query+*,
and info for all modules recursively with modules=main|main+**.
Bug: T28680
Change-Id: Icca5d2fda39d9d43fe20d77e34779412cec77aad
jenkins-bot [Wed, 31 Aug 2016 19:12:57 +0000 (19:12 +0000)]
Merge "ApiQueryAllDeletedRevisions: More namespace handling fixes"
jenkins-bot [Wed, 31 Aug 2016 17:53:20 +0000 (17:53 +0000)]
Merge "Always fail over to sync jobs when Special:RunJobs fails"
jenkins-bot [Wed, 31 Aug 2016 17:40:05 +0000 (17:40 +0000)]
Merge "Adapt the ParserOutput cache TTL when including special pages"
Brad Jorsch [Wed, 31 Aug 2016 17:19:13 +0000 (13:19 -0400)]
ApiQueryAllDeletedRevisions: More namespace handling fixes
* If the user specifically requests an empty list of namespaces, they
should get no pages.
* `ar_namespace` should always be in the query so MySQL can do a range
search instead of a full index scan.
* The example provided didn't match its description.
Bug: T89665
Change-Id: I91afc25db488f75c7f2b1ef343766b4bd7da5472
Aaron Schulz [Tue, 30 Aug 2016 19:35:08 +0000 (12:35 -0700)]
Adapt the ParserOutput cache TTL when including special pages
For simple pages that transclude special pages, like user pages
including Special:PrefixIndex, the TTL is allowed to drop to 15
seconds if the page parses fast enough.
Bug: T139893
Change-Id: If41885ded648d68352fe3d06336d98aa0ab53966
jdlrobson [Wed, 31 Aug 2016 15:17:07 +0000 (08:17 -0700)]
Enable jquery.ui.position on mobile
Although this module is deprecated it appears to be used in isolation
from jquery.ui in key extensions such as Translate. To aid extensions
who need to transition away from it we should make this available on mobile.
This module does not appear to be loaded on startup and is the only
non-mobile targetted module used by the Translate extension so enabling
this will give us benefit.
This also fits in with the long term plan
of deprecating the targets field altogether.
Change-Id: Ib381b820c69832f9aa6fce01f5dae8b4f50d66fa
Aaron Schulz [Wed, 31 Aug 2016 12:24:02 +0000 (05:24 -0700)]
Always fail over to sync jobs when Special:RunJobs fails
This makes sure that jobs run one way or another.
Also made a few cleanups and improved the logging.
Change-Id: Ic2916099181ebeb5ae5143d444515db9ed13cee9
Sam Smith [Wed, 31 Aug 2016 10:46:02 +0000 (11:46 +0100)]
MediaWikiServices: Import NoSuchServiceException
NoSuchServiceException is in the MediaWiki\Services namespace. Since the
MediaWikiServices class is in the MediaWiki namespace, the
catch ( NoSuchServiceException $e )
line added in Ifc587d61 will fail to catch any exception.
Co-Author: Paladox <thomasmulhall410@yahoo.com>
Bug: T143974
Change-Id: I903336c85c0bb9fb259f475f37959136e2ff7eca
Aaron Schulz [Sun, 21 Aug 2016 21:53:55 +0000 (14:53 -0700)]
objectcache: add and use adaptiveTTL() method
* This better handles delayed/lost cache purges by
having lower TTLs for entries that often changes.
* Use this for foreign upload description page caches,
we purges are never received from the source wiki.
* Also use this for User and LocalFile cache TTLs.
* Also move the Database::getCacheSetOptions() call in
User *before* doing the queries, which is preferred.
* Fixed some IDEA errors too, like the undeclared
mApiBase field.
Change-Id: I70f8ebb29ac853c2a530d9eedb9e7facc1b7b710
jenkins-bot [Wed, 31 Aug 2016 01:53:58 +0000 (01:53 +0000)]
Merge "mw.loader: Use requestAnimationFrame for addEmbeddedCSS()"
jenkins-bot [Wed, 31 Aug 2016 01:52:31 +0000 (01:52 +0000)]
Merge "mw.loader: Make 'mwLoadEnd' less expensive with a single using()"
Timo Tijhof [Tue, 30 Aug 2016 04:07:52 +0000 (21:07 -0700)]
mw.loader: Use requestAnimationFrame for addEmbeddedCSS()
setTimeout is fairly inefficient for this purpose as it tends to schedule for
further in the future than rAF would. And even then, it happens at a bad time
for the browser with regards to style changes.
Instead, use rAF, which typically executes earlier and at the point where the
browser is expecting style changes.
This makes top and bottom modules finish execution earlier by having their
styles applied sooner.
Change-Id: Ie4e7464aa811fa8ea4e4f115696f0bddbd28737b
Timo Tijhof [Fri, 26 Aug 2016 04:51:01 +0000 (21:51 -0700)]
mw.loader: Make 'mwLoadEnd' less expensive with a single using()
20-30ms before this patch, ~2ms after this patch (MacBookPro, Chrome 52).
The creation of 100s of Deferred objects, $.when() tracking them
all, and bubbling up the completion took 20-30ms. This is quite
expensive. Optimise by using a single deferred first.
A module reaching state 'missing' or 'error' is very rare.
Change-Id: I90eea4bfe8fe6d85c395d9d0868bbde482c4a703
Bartosz Dziewoński [Wed, 24 Aug 2016 19:33:45 +0000 (21:33 +0200)]
mw.Title: Correct handling of Unicode whitespace and bidi control characters
MediaWiki titles may not contain Unicode bidi control characters, e.g.
U+200E LEFT-TO-RIGHT MARK. They are silently stripped and such a
title is considered valid.
MediaWiki titles may not contain any whitespace other than a regular
space. Most of them are silently replaced with a regular space and
such a title is considered valid, but there are some (e.g. the tab
character) which make the title invalid. I'm not sure if this is an
intentional behavior, but I added a test case to verify it.
Bug: T143759
Change-Id: If8fad1f896027c5d93a62b0785923a39136c6a36
jenkins-bot [Tue, 30 Aug 2016 22:54:23 +0000 (22:54 +0000)]
Merge "objectcache: Make SqlBagOStuff::waitForSlaves() no-op without slaves"
Aaron Schulz [Tue, 30 Aug 2016 22:32:09 +0000 (15:32 -0700)]
objectcache: Make SqlBagOStuff::waitForSlaves() no-op without slaves
Change-Id: Ibaa4745c18c6f4f66edb4c5f190196b575d3b738
jenkins-bot [Tue, 30 Aug 2016 21:44:54 +0000 (21:44 +0000)]
Merge "Add more estimation modes to pendingWriteQueryDuration()"
Translation updater bot [Tue, 30 Aug 2016 20:04:17 +0000 (22:04 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I197f28fb1bb4507234a7f534160f017db2476598
jenkins-bot [Tue, 30 Aug 2016 19:11:13 +0000 (19:11 +0000)]
Merge "Expand SessionManager / AuthManager documentation"
Gergő Tisza [Sat, 27 Aug 2016 05:40:37 +0000 (05:40 +0000)]
Expand SessionManager / AuthManager documentation
Bug: T110628
Bug: T142154
Change-Id: Ib0a41f01b3d12267b2a94ea1375e6d13cacd2b69
jenkins-bot [Tue, 30 Aug 2016 17:30:47 +0000 (17:30 +0000)]
Merge "mw.api.messages: Allow passing extra parameters for the API call"
Bartosz Dziewoński [Tue, 30 Aug 2016 16:49:27 +0000 (18:49 +0200)]
mw.Upload.BookletLayout: Use 'amenableparser' to handle templates in error messages
Depends-On: I7e1a52a59a25befe4edb7b4f531d60a2615e8f90
Bug: T144237
Change-Id: I022e1f178c5a10c440f7fddc73709a4e262c5801
Bartosz Dziewoński [Tue, 30 Aug 2016 16:18:39 +0000 (18:18 +0200)]
mw.api.messages: Allow passing extra parameters for the API call
Mostly I want to pass `amenableparser: true`.
Bug: T144237
Change-Id: I7e1a52a59a25befe4edb7b4f531d60a2615e8f90
Fomafix [Tue, 30 Aug 2016 10:37:41 +0000 (12:37 +0200)]
mediawiki.toc: Simplify function toggleToc call
Change-Id: Ib74b217a265cf17acf72cf8b75d5a751531755a0
jenkins-bot [Tue, 30 Aug 2016 14:51:20 +0000 (14:51 +0000)]
Merge "mediawiki.toc: Simplify ternary operator"
jenkins-bot [Tue, 30 Aug 2016 14:31:14 +0000 (14:31 +0000)]
Merge "MediaWikiServices: Don't assume, that old and new instances contains the same services"
Florian Schmidt [Sun, 28 Aug 2016 16:33:40 +0000 (18:33 +0200)]
MediaWikiServices: Don't assume, that old and new instances contains the same services
As the services, that are registered in MediaWikiServices can be changed by
extensions using the MediaWikiServices hook, it's not save to assume, that
the first created instance of MediaWikiServices (which could be created before
any extension is loaded, e.g. in ExtensionRegistry) contains the same services
as a later created one (in the reset process of resetGlobalInstance). Doing this
could result in a NoSuchServiceException, if an extension registers new services,
which aren't registered before the extension is loaded (as, in the reset process,
MediaWikiServices tries to minimize the service instantiation cost by preserving
services, that can be preserved).
This patch adds a check, if a service is registered in the MediaWikiServices object
that should be reset, before the salvage-logic tries to fetch the services. If the
service object does not exist, it simply skips it, as it will simply instantiated
later.
Follow up: Ie2ca3ff99aa74fffa9eb6c8faccab857dc0874f7
Follow up: I2a26b6af07a48ad15414a8428daa9cfcfe02e933
Bug: T143974
Change-Id: Ifc587d6138ab565c2f38eb0805acf0dd0473d433
Antoine Musso [Tue, 30 Aug 2016 12:46:38 +0000 (14:46 +0200)]
Revert serie of "EditPage: Use context instead of globals"
Reverts:
89cade EditPage: Use context instead of globals (4/4)
27fd110 EditPage: Use context instead of globals (3/4)
afa6307 EditPage: Use context instead of globals (2/4)
f2f8101 EditPage: Use context instead of globals (1/4)
LiquidThreads is still using globals when invoking EditPage. That can be
reproduced by attempting to reply to a message which eventually causes
EditPage::importFormData() to errors out with:
ErrorPageError from includes/EditPage.php:
The content format json is not supported by the content model wikitexte.
Bug: T143889
Change-Id: I593450971e4a4a31c88df49334859508d1fd006c
Antoine Musso [Tue, 30 Aug 2016 12:36:43 +0000 (14:36 +0200)]
Revert "EditPage: Use context instead of globals (1/4)"
This reverts commit
f2f810181aa4188053da2af94faa6e3bad33d1a3.
Change-Id: Ia0267204522168ba7e74f4a732af12da6113bf69
Antoine Musso [Tue, 30 Aug 2016 12:36:46 +0000 (14:36 +0200)]
Revert "EditPage: Use context instead of globals (2/4)"
This reverts commit
afa630749a393114a5df0921f75590a8ca189c91.
Change-Id: I721d0ecc5462fd17fd016f83471218a53cd0f75b