Aaron Schulz [Fri, 12 Aug 2016 19:36:37 +0000 (12:36 -0700)]
Use cache TTL constant in InfoAction
Change-Id: If9924863500af612eaaab1c8cd5c655466efdc97
jenkins-bot [Fri, 12 Aug 2016 19:25:07 +0000 (19:25 +0000)]
Merge "Better handle already-used rev_id when restoring"
matejsuchanek [Sat, 9 Jul 2016 20:52:16 +0000 (22:52 +0200)]
Add GENDER to messages on Special:(Deleted)Contributions
Bug: T113346
Bug: T130960
Change-Id: I3452a6e1fc7b8604442127f94b68a613e6df33ab
Matthew Flaschen [Mon, 23 May 2016 18:57:10 +0000 (11:57 -0700)]
Better handle already-used rev_id when restoring
Leave it in the archive table, rather than the data being gone
from both the archive and revision table.
Bug: T135852
Change-Id: I202cea7910be82f1073b4365209e3b320e85d62e
jenkins-bot [Fri, 12 Aug 2016 04:30:34 +0000 (04:30 +0000)]
Merge "objectcache: Add changeTTL() method"
Aaron Schulz [Fri, 12 Aug 2016 02:26:21 +0000 (19:26 -0700)]
objectcache: Add changeTTL() method
This can change the TTL without fetching the object
so that keys can be renewed or set to expire soon.
Change-Id: Id1c2c9f89b3445cfa34263057dc5029cbe170833
jenkins-bot [Fri, 12 Aug 2016 01:50:16 +0000 (01:50 +0000)]
Merge "Deprecate various ResourceLoader modules"
jenkins-bot [Thu, 11 Aug 2016 23:46:04 +0000 (23:46 +0000)]
Merge "AuthManager: Always whitelist some special pages"
jenkins-bot [Thu, 11 Aug 2016 23:05:06 +0000 (23:05 +0000)]
Merge "Revert "Move CSS for patrol from mediawiki.legacy to new module mediawiki.page.patrol""
Bartosz Dziewoński [Thu, 11 Aug 2016 22:54:54 +0000 (22:54 +0000)]
Revert "Move CSS for patrol from mediawiki.legacy to new module mediawiki.page.patrol"
This reverts commit
e9f896d6a5c09838b92bcb871c306b25526c3f96.
Bug: T142750
Change-Id: Idb815d64d795d790ea2c07f2b5188ea5a46bfefb
Chad Horohoe [Thu, 11 Aug 2016 20:54:05 +0000 (13:54 -0700)]
SkinTemplateTest typofix
There's no "t" in "make"
Change-Id: I41dc25162262bddec94f3af35db86a246ccd7499
Translation updater bot [Thu, 11 Aug 2016 20:00:59 +0000 (22:00 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I6bf5f6c5b9030b6af77ff7ab879baaba3e2d5832
jenkins-bot [Thu, 11 Aug 2016 16:44:31 +0000 (16:44 +0000)]
Merge "Rename 'authmanager' log channel to 'authevents'"
Florian [Sun, 7 Aug 2016 18:09:42 +0000 (20:09 +0200)]
AuthManager: Always whitelist some special pages
Special:UserLogout should be whitelisted, if Special:UserLogin is whitelisted,
as otherwise the user is able to login, but not able to logout anymore (given,
that the sys-admin hasn't change the $wgWhitelistRead config variable).
Special:ChangePassword redirects to Special:ChangeCredentials. Instead of
adding this special page, it should be done explicitly in the
wiki configuration (LocalSettings.php). For this reason, the whitelist is
removed, too.
Change-Id: I271efb517bf0ec0022e6fe29673570ca08e8fe1a
zppix1 [Sun, 31 Jul 2016 20:51:47 +0000 (15:51 -0500)]
This patch adds Localisation to the links, and changes wording around.
Change-Id: I3c34e7491da81ac034d0b7b3f0517f1a8153b249
jenkins-bot [Thu, 11 Aug 2016 14:09:58 +0000 (14:09 +0000)]
Merge "resourceloader: Move queue formatting out of OutputPage"
jenkins-bot [Thu, 11 Aug 2016 09:10:44 +0000 (09:10 +0000)]
Merge "Fix link to Help:Contents in UPGRADE file"
jenkins-bot [Thu, 11 Aug 2016 08:32:35 +0000 (08:32 +0000)]
Merge "Add SpecialPage::getTitleValueFor()"
Aaron Schulz [Wed, 10 Aug 2016 02:15:05 +0000 (19:15 -0700)]
Make Database disconnect and error suppression more robust
* Disallow $ignoreErrors in query() on deadlocks, since that would otherwise
silently rollback all changes from any other callers.
* Move recoverability checks for disconnects to canRecoverFromDisconnect().
* The first write of a DBO_TRX transaction is now considered recoverable.
* Run onTransactionResolution() callbacks on disconnect/deadlock rollback.
Some DeferrableUpdate need this to know to abort.
* Disallow $ignoreErrors on disconnects considered unrecoverable. This
makes it so that query() callers cannot cause writes from other callers
to be silently lost, which is hard to reason about.
* Moved ping() logic to simple reconnect() method and ping() simply do
a dummy SELECT, which triggeres reconnection if safe. Previously,
ping() might cause subtle partial transaction loss.
* Remove ping() from strencode(), which would cause partial transaction
loss where it actually reached.
* Remove mysqlPing() per https://bugs.php.net/bug.php?id=52561.
Bug: T142079
Change-Id: Ifb7f772ae849d67c0d92240a115c3f392e252937
Aaron Schulz [Thu, 11 Aug 2016 03:16:12 +0000 (20:16 -0700)]
Upgrade unmatched explicit commit() of DBO_TRX to an exception
Follows-up
f8d5075656 and
820f5d6ce5.
This mostly for sanity, as normally the exception would
happen on begin().
Change-Id: I2c2fb20ed5184d3c00d3050e929a11e3e37f50f4
jenkins-bot [Thu, 11 Aug 2016 07:09:03 +0000 (07:09 +0000)]
Merge "Fix comment about how to use AutoloadGenerator"
Glaisher [Thu, 11 Aug 2016 06:37:42 +0000 (06:37 +0000)]
Fix link to Help:Contents in UPGRADE file
Change-Id: I4c8c44f8c75200f33985f2e769e88f171162cc83
jenkins-bot [Thu, 11 Aug 2016 05:04:51 +0000 (05:04 +0000)]
Merge "Replace extract() with explicit variable definitions in DjVuImage"
Ricordisamoa [Wed, 17 Feb 2016 21:39:22 +0000 (22:39 +0100)]
Replace extract() with explicit variable definitions in DjVuImage
Bug: T28496
Change-Id: I09e012674e4d6c141912db6ef53dc51b2fcf0a66
Kevin Israel [Mon, 23 May 2016 11:30:52 +0000 (07:30 -0400)]
Remove checks formerly for MySQL server version
Removed these checks instead of fixing them, for the stated reasons:
* initEditCount.php: "instanceof DatabaseMysql" is not a correct way to
check if the database server is MySQL/MariaDB, because DatabaseMysql is
now a subclass of DatabaseMysqlBase, only used as a wrapper around the
deprecated mysql PHP extension (not the newer mysqli extension). The
check was intended for pre-4.1 versions of MySQL, which do not support
subqueries.
The effect of this change is to use single-query mode whenever there is
only one configured database server, even when using the mysqli PHP
extension, which would have been the original intent.
* fixBug20757.php: If the database server is not MySQL/MariaDB, the
$lowerLeft variable would remain undefined. The script was only intended
for use with MySQL, so the check was only necessary in order to support
pre-4.1 versions of MySQL, which require different SQL.
Follows-up
b74f88967bf090af.
Change-Id: I7f32aed4473e5ea39dc40449ddc0af5f9a10df16
jenkins-bot [Thu, 11 Aug 2016 04:31:27 +0000 (04:31 +0000)]
Merge "Introduce UploadStashFile hook, improve API handling of stash errors"
Kunal Mehta [Tue, 9 Aug 2016 22:27:29 +0000 (15:27 -0700)]
Add SpecialPage::getTitleValueFor()
One of the most frequent instances of Title being used where TitleValue
could be used instead is for special pages, since there is no
convenience function that returns a TitleValue object. Hopefully this
will make it easier.
Because TitleValue is stricer about validation, we need to ensure that
$subpage is in dbkey form.
Change-Id: I50457620e25dfe03eb44d6fda5aabebcbf314863
jenkins-bot [Thu, 11 Aug 2016 01:58:49 +0000 (01:58 +0000)]
Merge "Add rc_name_type_patrolled_timestamp index"
Aaron Schulz [Thu, 12 May 2016 19:52:00 +0000 (12:52 -0700)]
Require POST for action=purge in PurgeAction
For the index.php end point, POSTs do not need a token.
This avoids cross-DC writes in active/active DC setups and
avoids DB writes that can be caused by just accidentally
following a link.
There are no links to action=purge by default in MediaWiki.
User scripts that create purge links will continue to work.
However these links will now point to a confirmation form.
To preserve the immediate-purge-redirect effect, these
scripts should be updated to use the API instead.
Bug: T135170
Change-Id: I5749ff470d99c5e3f22e05ff6856394cc05a0f48
jenkins-bot [Thu, 11 Aug 2016 01:23:09 +0000 (01:23 +0000)]
Merge "StashEdit: Refactor and simplify edit.stash.js"
Timo Tijhof [Mon, 8 Aug 2016 23:03:39 +0000 (16:03 -0700)]
StashEdit: Refactor and simplify edit.stash.js
* Reduce call sites for stashEdit() to only inside checkStash().
* Update onFormLoaded() to not call stashEdit() directly but instead
call checkStash(). This avoids hardcoding the priority and
simplifies code by ensuring isTextChanged() and isSummaryChanged()
are always checked before stashEdit() is called.
* Move texthash and priority handling to stashEdit().
* Don't clear lastTextHash if text hasn't changed.
* Remove check for 'origSummary' in onTextFocus. Have stash rate
always be 3s for the textarea, and always 1s for the summary.
Change-Id: I3f049df6ee2e1c218e8b3c1c397ff0bc50e58c8e
jenkins-bot [Thu, 11 Aug 2016 01:11:07 +0000 (01:11 +0000)]
Merge "LoadBalancer object injection cleanups"
jenkins-bot [Thu, 11 Aug 2016 01:03:07 +0000 (01:03 +0000)]
Merge "Optimize summary-based extension edit stash caches"
jenkins-bot [Thu, 11 Aug 2016 00:59:38 +0000 (00:59 +0000)]
Merge "Fix comment of get/setLinkRenderer in doxygen"
Reedy [Thu, 11 Aug 2016 00:51:01 +0000 (01:51 +0100)]
Fix comment about how to use AutoloadGenerator
Change-Id: If15e9396b640536896406009233e91c0b5e2bb0f
Aaron Schulz [Sat, 30 Jul 2016 06:42:05 +0000 (23:42 -0700)]
Optimize summary-based extension edit stash caches
* Send stash requests when the summary changes, so that things like
AbuseFilter caching have a higher hit rate.
* Make the backend API skip parsing if a fresh cache is already present.
This makes requests for summary-only changes much faster and more likely
to finish in time.
* Avoid sending the full text if only the summary changed since the
last successful stash. This works via an optional stashedtexthash
parameter to the API.
* Also always apply the lock in parseAndStash(), even for VE.
Change-Id: I9bfd74cf05411853b675c6f54ff5d8934bcfc54c
Aaron Schulz [Wed, 10 Aug 2016 23:29:10 +0000 (16:29 -0700)]
Make PurgeChangedFiles actually purge old versions too
Change-Id: I7aa746535ceae7d19c492145c3254d55511a8576
Translation updater bot [Wed, 10 Aug 2016 20:03:32 +0000 (22:03 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ie52a98e5ed6094bd1e6be1a8c0043a223c95fcce
jdlrobson [Wed, 3 Aug 2016 16:16:24 +0000 (09:16 -0700)]
Deprecate various ResourceLoader modules
Various modules in MediaWiki core replicate functionality elsewhere.
To improve consistency with how we build things and how things appear
in the frontend we need to guide engineers and gadget developers to use
the same libraries. No deprecation dates are given for these modules
but this is hoped to be the starting point for some good conversations
that will guide us to better frontend development
If a module depends on a deprecated module, it itself is not marked
as deprecated
Bug: T142418
Change-Id: Ibbfcfde64072e7d3e3ee5ecb7f966fd889259798
jenkins-bot [Wed, 10 Aug 2016 17:17:35 +0000 (17:17 +0000)]
Merge "registration: Fix adding $formerGlobals in conversion script"
jenkins-bot [Wed, 10 Aug 2016 15:29:36 +0000 (15:29 +0000)]
Merge "mw.loader: Clean up unit tests by using newer QUnit syntax"
jenkins-bot [Wed, 10 Aug 2016 15:25:13 +0000 (15:25 +0000)]
Merge "mw.loader: Add 'require' as Promise value for using()"
jenkins-bot [Wed, 10 Aug 2016 09:10:52 +0000 (09:10 +0000)]
Merge "Beef up and generalize IDBAccessObject constants a bit"
jenkins-bot [Wed, 10 Aug 2016 09:06:46 +0000 (09:06 +0000)]
Merge "Unbreak "localDBMaster" mode in MySqlLockManager by using a separate connection"
jenkins-bot [Wed, 10 Aug 2016 02:57:52 +0000 (02:57 +0000)]
Merge "Upgrade premature implicit transaction commits to exceptions"
Gergő Tisza [Wed, 10 Aug 2016 01:32:28 +0000 (01:32 +0000)]
Rename 'authmanager' log channel to 'authevents'
Also, move some events which did not belong there to the
'authentication' channel.
Change-Id: I4d7564343318899fc498ed2bd2d5260041ee22cc
jenkins-bot [Wed, 10 Aug 2016 00:03:25 +0000 (00:03 +0000)]
Merge "Remove $wgDisableAuthManager"
jenkins-bot [Tue, 9 Aug 2016 23:57:44 +0000 (23:57 +0000)]
Merge "Clean up some IDatabase comments"
Aaron Schulz [Tue, 9 Aug 2016 23:45:37 +0000 (16:45 -0700)]
Clean up some IDatabase comments
Change-Id: Ia4b344a412e78185b6b2fe584540a358c35651b8
jenkins-bot [Tue, 9 Aug 2016 23:45:06 +0000 (23:45 +0000)]
Merge "SiteStats: Fix some phpdoc"
jenkins-bot [Tue, 9 Aug 2016 23:41:59 +0000 (23:41 +0000)]
Merge "SpecialEditWatchlist: Use LinkRenderer instead of Linker::link()"
Gergő Tisza [Fri, 1 Apr 2016 16:49:26 +0000 (19:49 +0300)]
Remove $wgDisableAuthManager
Change-Id: I2b2c9693a275fcc026916bd97f303e7a5c8df341
Kunal Mehta [Tue, 9 Aug 2016 22:09:45 +0000 (15:09 -0700)]
SiteStats: Fix some phpdoc
...and don't pass false as $conds, use an empty array.
Change-Id: I58127f0e7c4edad9345b924a019d64e5d2d6ddd9
Translation updater bot [Tue, 9 Aug 2016 19:59:13 +0000 (21:59 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ib4d6844bed0df62a2ee97e7b7f46dfc724defdfc
Kunal Mehta [Thu, 4 Aug 2016 23:04:06 +0000 (16:04 -0700)]
SpecialEditWatchlist: Use LinkRenderer instead of Linker::link()
Change-Id: Ib75078f14005940b5c625932d1bbb8c17299c448
jenkins-bot [Tue, 9 Aug 2016 17:02:42 +0000 (17:02 +0000)]
Merge "Updating $tailoringFirstLetters for Macedonian Per https://ssl.icu-project.org/trac/browser/icu/trunk/source/data/coll/mk.txt"
Bartosz Dziewoński [Wed, 3 Aug 2016 00:13:01 +0000 (02:13 +0200)]
Introduce UploadStashFile hook, improve API handling of stash errors
UploadBase:
* Introduce a new method, tryStashFile(), as a replacement for the
now-soft-deprecated stashFile(). The method runs the new hook and
returns a Status object, with an error (if the hook returned an
error) or a value (if it didn't).
* Introduce a new hook, UploadStashFile, allowing extensions to
prevent a file from being stashed. Note that code in extensions
which has not been updated for MediaWiki 1.28 may still call
stashFile() directly, and therefore not call this hook. For
important checks (not just for UI), extension authors should use
UploadVerifyFile or UploadVerifyUpload hooks.
* Extract common code of tryStashFile() and stashFile() to
a new protected method doStashFile().
SpecialUpload:
* Use tryStashFile() when stashing a file after a warning or
"recoverable error" was encountered.
ApiUpload:
* Refactor stashing code so that error handling only happens in one
place, not four different ones. Use Status objects rather than
exception throwing/catching for control flow.
* Simplify the error messages slightly (error codes are unchanged).
Produce better ones by always using handleStashException().
'stashfailed' is now always at root (not nested inside 'warnings'),
behaving the same as 'filekey' does on success.
* Use tryStashFile() when stashing. Handle errors so as to allow
custom API results passed via ApiMessage to be preserved.
Some API result changes for different requests are shown below.
api.php?action=upload&format=json&filename=good.png&file=...&stash=1
Before:
{
"error": {
"code": "stashfilestorage",
"info": "Could not store upload in the stash: Stashing temporary file failed: UploadStashFileException Error storing file in '/tmp/phpB32SRT': Could not create directory \"mwstore://local-backend/local-temp/3/3a\".",
"*": "See http://localhost:3080/w/api.php for API usage"
}
}
After:
{
"error": {
"code": "stashfilestorage",
"info": "Could not store upload in the stash: Error storing file in '/tmp/phpB32SRT': Could not create directory \"mwstore://local-backend/local-temp/3/3a\".",
"*": "See http://localhost:3080/w/api.php for API usage"
}
}
api.php?action=upload&format=json&filename=[bad].png&file=...
Before:
{
"upload": {
"result": "Warning",
"warnings": {
"badfilename": "-bad-.png",
"stashfailed": "Stashing temporary file failed: UploadStashFileException Error storing file in '/tmp/phpB32SRT': Could not create directory \"mwstore://local-backend/local-temp/3/3a\"."
}
}
}
After:
{
"upload": {
"result": "Warning",
"stashfailed": "Could not store upload in the stash: Error storing file in '/tmp/phpB32SRT': Could not create directory \"mwstore://local-backend/local-temp/3/3a\"."
"warnings": {
"badfilename": "-bad-.png",
}
}
}
Bug: T140521
Change-Id: I2f574b355cd33b2e9fa7ff8e1793503b257cce65
jenkins-bot [Tue, 9 Aug 2016 15:36:28 +0000 (15:36 +0000)]
Merge "SpecialTags: Use LinkRenderer instead of Linker::link()"
jenkins-bot [Tue, 9 Aug 2016 15:31:13 +0000 (15:31 +0000)]
Merge "SpecialMostlinkedCategories: Use LinkRenderer instead of Linker::link()"
jenkins-bot [Tue, 9 Aug 2016 15:29:29 +0000 (15:29 +0000)]
Merge "SpecialChangeCredentials: Use LinkRenderer instead of Linker::link()"
Florian [Tue, 9 Aug 2016 15:20:47 +0000 (17:20 +0200)]
Fix comment of get/setLinkRenderer in doxygen
Doxygen requires the full qualified name of the class in a comment
or in the @aram/@return annotation, otherwise the class isn't linked
in the resulting output[1]. This commit changes the LinkRenderer
annotations in SpecialPage and Parser to \MediaWiki\Linker\LinkRenderer.
[1] https://doc.wikimedia.org/mediawiki-core/master/php/classSpecialPage.html#
a3560214f63fc2f20c63b4025db5cd81d
Change-Id: I74cedcd764a6053cc5a0c6d2eedbedb72651f57c
jenkins-bot [Tue, 9 Aug 2016 15:22:36 +0000 (15:22 +0000)]
Merge "SpecialUploadStash: Use LinkRenderer instead of Linker::link()"
jenkins-bot [Tue, 9 Aug 2016 15:18:45 +0000 (15:18 +0000)]
Merge "SpecialShortPages: Use LinkRenderer instead of Linker::link()"
Edward Chernenko [Tue, 9 Aug 2016 08:34:17 +0000 (11:34 +0300)]
Resources.php: mark "mediawiki.api.upload" module as 'targets' => [ 'desktop', 'mobile' ]
This module doesn't call anything desktop-specific.
There is no reason to deny this module to scripts which run on both desktop and mobile.
Change-Id: Ia6b778ca8a188688e2c0e813332aee03d3b5ac52
Aaron Schulz [Mon, 1 Aug 2016 03:44:42 +0000 (20:44 -0700)]
Beef up and generalize IDBAccessObject constants a bit
Change-Id: Id8df6131df57b6a3e0aae90f4431ce0a467ec590
jenkins-bot [Tue, 9 Aug 2016 00:06:07 +0000 (00:06 +0000)]
Merge "jquery.tablesorter: Handle more than single characters in 'tableSorterCollation'"
Aaron Schulz [Tue, 2 Aug 2016 03:00:43 +0000 (20:00 -0700)]
LoadBalancer object injection cleanups
Follows-up
5f921702d2.
* Move cache object creation up to LBFactory.
* Refactored some code duplication in LBFactorySimple.
Change-Id: I0a5820f5155fc545a8bf0cc4e7c27f878388682b
Bartosz Dziewoński [Fri, 5 Aug 2016 18:01:17 +0000 (20:01 +0200)]
jquery.tablesorter: Handle more than single characters in 'tableSorterCollation'
The code that uses this will already work fine, we only need to change
how the regex is built.
Bug: T140240
Change-Id: I014d9b13815d8ae085a6ed7c6df2d62337bb46f7
Aaron Schulz [Mon, 8 Aug 2016 21:55:56 +0000 (14:55 -0700)]
Use MediaWikiServices in restInPeace() for load balancer factory
Change-Id: Icc12100bd3409900c848c72a31417a8c25ae1021
jenkins-bot [Mon, 8 Aug 2016 21:04:40 +0000 (21:04 +0000)]
Merge "Mention UploadBase::stashFile() "checked" exceptions in docs"
Kaldari [Mon, 8 Aug 2016 20:39:13 +0000 (13:39 -0700)]
Updating $tailoringFirstLetters for Macedonian
Per https://ssl.icu-project.org/trac/browser/icu/trunk/source/data/coll/mk.txt
Bug: T26953
Change-Id: I45938402923a109cfc80f59555af5cede584fc3b
jenkins-bot [Mon, 8 Aug 2016 20:14:53 +0000 (20:14 +0000)]
Merge "Add missing addQuotes() call to masterPosWait()"
Translation updater bot [Mon, 8 Aug 2016 20:02:55 +0000 (22:02 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I5b592794dcf6c4ee5c5b2c81885b0c1e816a0fa1
Aaron Schulz [Mon, 8 Aug 2016 19:36:18 +0000 (12:36 -0700)]
Add missing addQuotes() call to masterPosWait()
Change-Id: Ic7f35920fe10d99b63fdff23dc6e3f7cd4c7ca8b
Timo Tijhof [Fri, 15 Jul 2016 14:13:09 +0000 (15:13 +0100)]
resourceloader: Move queue formatting out of OutputPage
HTML formatting of the queue was distributed over several OutputPage methods.
Each method demanding a snippet of HTML by calling makeResourceLoaderLink()
with a limited amount of information. As such, makeResourceLoaderLink() was
unable to provide the client with the proper state information.
Centralising it also allows it to better reduce duplication in HTML output
and maintain a more accurate state.
Problems fixed by centralising:
1. The 'user' module is special (due to per-user 'version' and 'user' params).
It is manually requested via script-src. To avoid a separate (and wrong)
request from something that requires it, we set state=loading directly.
However, because the module is in the bottom, the old HTML formatter could
only put state=loading in the bottom also. This sometimes caused a wrong
request to be fired for modules=user if something in the top queue
triggered a requirement for it.
2. Since
a464d1d4 (T87871) we track states of page-style modules, with purpose
of allowing dependencies on style modules without risking duplicate loading
on pages where the styles are loaded already. This didn't work, because the
state information about page-style modules is output near the stylesheet,
which is after the script tag with mw.loader.load(). That runs first, and
mw.loader would still make a duplicate request before it learns the state.
Changes:
* Document reasons for style/script tag order in getHeadHtml (per
09537e83).
* Pass $type from getModuleStyles() to getAllowedModules(). This wasn't needed
before since a duplicate check in makeResourceLoaderLink() verified the
origin a second time.
* Declare explicit position 'top' on 'user.options' and 'user.tokens' module.
Previously, OutputPage hardcoded them in the top. The new formatter doesn't.
* Remove getHeadScripts().
* Remove getInlineHeadScripts().
* Remove getExternalHeadScripts().
* Remove buildCssLinks().
* Remove getScriptsForBottomQueue().
* Change where Skin::setupSkinUserCss() is called. This methods lets the skin
add modules to the queue. Previously it was called from buildCssLinks(),
via headElement(), via prepareQuickTemplate(), via OutputPage::output().
It's now in OutputPage::output() directly (slightly earlier). This is needed
because prepareQuickTemplate() calls bottomScripts() before headElement().
And bottomScript() would lazy-initialise the queue and lock it before
setupSkinUserCss() is called from headElement().
This makes execution order more predictable instead of being dependent on
the arbitrary order of data extraction in prepareQuickTemplate (which varies
from one skin to another).
* Compute isUserModulePreview() and isKnownEmpty() for the 'user' module early
on so. This avoids wrongful loading and fixes problem 1.
Effective changes in output:
* mw.loader.state() is now before mw.loader.load(). This fixes problem 2.
* mw.loader.state() now sets 'user.options' and 'user.tokens' to "loading".
* mw.loader.state() now sets 'user' (as "loading" or "ready"). Fixes problem 1.
* The <script async src> tag for 'startup' changed position (slightly).
Previously it was after all inline scripts and stylesheets. It's still after
all inline scripts and after most stylesheets, but before any user styles.
Since the queue is now formatted outside OutputPage, it can't inject the
meta-ResourceLoaderDynamicStyles tag and user-stylesheet hack in the middle
of existing output. This shouldn't have any noticable impact.
Bug: T87871
Change-Id: I605b8cd1e1fc009b4662a0edbc54d09dd65ee1df
jenkins-bot [Mon, 8 Aug 2016 18:08:26 +0000 (18:08 +0000)]
Merge "SpecialNewFiles: Restore the 'newimagestext' message"
Bartosz Dziewoński [Mon, 8 Aug 2016 17:54:03 +0000 (19:54 +0200)]
SpecialNewFiles: Restore the 'newimagestext' message
Follow-up to
c5ed2698579a085747ef290c9e6e3b8ba3f8960b.
Bug: T142191
Change-Id: If3d0c6d80c97494a6545db67a7adbd7c7ca05cb1
jenkins-bot [Mon, 8 Aug 2016 17:56:25 +0000 (17:56 +0000)]
Merge "SpecialUpload: Use LinkRenderer instead of Linker::link()"
Kunal Mehta [Thu, 4 Aug 2016 22:53:02 +0000 (15:53 -0700)]
SpecialUpload: Use LinkRenderer instead of Linker::link()
Fixed a typo too!
Change-Id: I0b58c2a78c2ae1de850f8e00a549dd29b8cedba2
jenkins-bot [Mon, 8 Aug 2016 16:30:59 +0000 (16:30 +0000)]
Merge "Adding a bunch of hooks from wikiHow into DifferenceEngine, 2nd try"
Kunal Mehta [Mon, 8 Aug 2016 09:56:39 +0000 (02:56 -0700)]
registration: Fix adding $formerGlobals in conversion script
Using + for two arrays does not work if they are using numerical
indexes.
Bug: T142344
Change-Id: I49541bd344fa81d20c9b4cf61b968b58137ab140
jenkins-bot [Sun, 7 Aug 2016 21:11:35 +0000 (21:11 +0000)]
Merge "Fix display of numeric tag names on Special:Tags"
jenkins-bot [Sun, 7 Aug 2016 20:55:05 +0000 (20:55 +0000)]
Merge "registration: Add hint about UnitTestsList hook in conversion script"
Translation updater bot [Sun, 7 Aug 2016 20:06:56 +0000 (22:06 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ia20da2a7d3a9b9b0f7eee2620b85252cfff2126f
Glaisher [Sat, 30 Jul 2016 10:05:36 +0000 (15:05 +0500)]
Use different message when (un)watching a page in talk namespace
addedwatchtext and removedwatchtext uses the phrase "$1 and its discussion page".
As this is inaccurate on talk namespace pages, two new messages, addedwatchtext-talk
and removedwatchtext-talk, have been introduced for use in talk namespace pages.
Bug: T87856
Change-Id: Iafd86402d3a2a65ce2be007c87c981ac08f44e67
Amir Sarabadani [Sun, 7 Aug 2016 10:27:38 +0000 (14:57 +0430)]
Clean up array() syntax in docs, part II
Change-Id: I226ce6bcb5bbf6ed3802042dd2790f85617833e1
Kunal Mehta [Sun, 7 Aug 2016 03:41:13 +0000 (20:41 -0700)]
SpecialTags: Use LinkRenderer instead of Linker::link()
Change-Id: I2b179e9d90e79f46cca5c6698847caadeadc1444
Kunal Mehta [Sun, 7 Aug 2016 09:27:09 +0000 (02:27 -0700)]
registration: Add hint about UnitTestsList hook in conversion script
Change-Id: Ia161c2e10943e75c98ee8e0d2341bc2c9a418faf
This, that and the other [Sun, 7 Aug 2016 05:14:16 +0000 (15:14 +1000)]
Fix display of numeric tag names on Special:Tags
All tag names that were numbers (e.g. "123456") showed up as "0".
Change-Id: I8da326fa4dfa7e6556fb508c5e4b1f1573d1369b
jenkins-bot [Sun, 7 Aug 2016 04:07:26 +0000 (04:07 +0000)]
Merge "Balancer: pass configuration array to flatten instead of individual booleans"
Kunal Mehta [Sun, 7 Aug 2016 03:37:21 +0000 (20:37 -0700)]
SpecialMostlinkedCategories: Use LinkRenderer instead of Linker::link()
Change-Id: Ib2f08246b173cf1d39e33d2e07490463bbab1bf5
Kunal Mehta [Sun, 7 Aug 2016 03:36:22 +0000 (20:36 -0700)]
SpecialChangeCredentials: Use LinkRenderer instead of Linker::link()
Change-Id: I90d42f9b5106b4bc9876b85ccd3224b1a91f4885
Kunal Mehta [Sun, 7 Aug 2016 03:34:28 +0000 (20:34 -0700)]
SpecialUploadStash: Use LinkRenderer instead of Linker::link()
Change-Id: I8c5b05093bc2b62c58a109c28e48530e39e945d2
Kunal Mehta [Sun, 7 Aug 2016 03:32:08 +0000 (20:32 -0700)]
SpecialShortPages: Use LinkRenderer instead of Linker::link()
Change-Id: I1ed13e5d056e553a2363f9a3036dc63aefaf851a
jenkins-bot [Sun, 7 Aug 2016 02:43:45 +0000 (02:43 +0000)]
Merge "Revert "API: Remove deprecated response values from action=login""
jenkins-bot [Sun, 7 Aug 2016 01:57:51 +0000 (01:57 +0000)]
Merge "Don't force loading of groups and options on User::loadFromUserObject"
daniel [Sat, 6 Aug 2016 16:44:08 +0000 (18:44 +0200)]
Don't force loading of groups and options on User::loadFromUserObject
When copying state from one User object to another, don't force
the source object to be initialized. The target object can initialize
groups and options on demand as usual.
Among other things, this helps to avoid some cases of recursive calls
to User::load(), see I6d1b9fe0789b4.
Bug: T142295
Bug: T137051
Change-Id: Ib369cf5b00628550591c2ee5dcb195db7c59a59c
jenkins-bot [Sat, 6 Aug 2016 23:18:16 +0000 (23:18 +0000)]
Merge "HtmlArmor: Pass ENT_QUOTES to htmlspecialchars()"
Fomafix [Sat, 6 Aug 2016 22:49:05 +0000 (22:49 +0000)]
Move style for #wikiPreview to mediawiki.action.edit.styles.css
The style module 'mediawiki.action.edit.styles' gets loaded in EditPage.php.
Bug: T89981
Change-Id: Ie691df4e926be8f094e4117c836334d01d935868
jenkins-bot [Sat, 6 Aug 2016 22:35:56 +0000 (22:35 +0000)]
Merge "Adding release notes about the addition of numeric sorting support"