addshore [Tue, 13 Oct 2015 09:56:04 +0000 (10:56 +0100)]
Add recentChangesLine to ChangesList
This method is implemented in all sub classes.
Not having this method here looks odd as
ChangesList::newFromContext returns a ChangesList
and parts of the code base then call recentChangesLine
on that object which may not exist..
In the future we might even have some interface here?
Change-Id: Iad00a956862c078a2bcaf3ef0602abcf3fedb7d2
jenkins-bot [Tue, 13 Oct 2015 06:50:03 +0000 (06:50 +0000)]
Merge "build: Upgrade grunt-banana-checker from v0.3.0 to v0.4.0"
jenkins-bot [Mon, 12 Oct 2015 20:07:21 +0000 (20:07 +0000)]
Merge "mediawiki.Upload.BookletLayout: Handle errors from TitleBlacklist (HACK)"
Bartosz Dziewoński [Mon, 12 Oct 2015 18:48:54 +0000 (20:48 +0200)]
mw.Upload.BookletLayout: Correct some message parameters
* 'fileexists', 'filepageexists': Requires prefixed page name.
* 'api-error-duplicate', 'api-error-duplicate-archive': Takes the
number of duplicates, not name of duplicate. The list of duplicates
is supposed to follow this message.
Change-Id: Idfa978469f4a99526100f6c24a67bf18abf7ec89
Prateek Saxena [Mon, 12 Oct 2015 15:39:17 +0000 (21:09 +0530)]
mw.Upload.BookletLayout: Use appropriate messages for warnings
...and properly handle the 'page-exists' warning.
Bug: T115056
Change-Id: I5c393ee034e100d4fa415e7e215920d8af465a78
Bartosz Dziewoński [Fri, 9 Oct 2015 12:19:17 +0000 (14:19 +0200)]
mediawiki.Upload.BookletLayout: Handle errors from TitleBlacklist (HACK)
This code really really shouldn't be here, or in fact shouldn't be
needed at all. But we're currently offering really awful user
experience, and given how expansive Commons' title blacklist is, we
have to do better now and not when we get to rewrite everything.
Since the default TitleBlacklist error message really sucks and
Commons replaces it with something that jqueryMsg can't handle, reuse
a message from UploadWizard, `mwe-upwiz-blacklisted`, duplicated here
as `api-error-blacklisted`.
Bug: T114940
Change-Id: I8a7723abde124e8ff21e404dfc2efb8506f8dd75
Bartosz Dziewoński [Thu, 8 Oct 2015 20:10:46 +0000 (22:10 +0200)]
mw.Upload: Refactor error handling for the umpteenth time
When I started, I just wanted mw.Upload.BookletLayout to be able to
display more information about errors than just the default message
(like it can do for warnings). And down the rabbit hole I went...
mediawiki/api/upload.js:
* Simply throw errors when our methods are called with bad parameters,
rather than return a rejected promise.
* Always call .notify( 1 ) when upload is complete, regardless of
whether it succeeded or failed.
* Reject promises with error code and error details, for consistency
with api.js. Previous behavior meant that we did not let callers
know the details in some cases. It was also problematic when we
passed-through promises rejected in api.js (which had different
parameters given).
* Made some effort to return sane codes when something intricate
fails in iframe upload, but no guarantee that this works well. The
codes are inspired by what api.js returns in similar circumstances.
* When rejecting because of warnings, use the first warning's key as
error code.
* Always ignore the warnings when uploading to stash and 'filekey'
is present in response, never ignore when uploading directly.
* When the upload succeeds, never check for 'result.upload.error'
(which just isn't a thing) nor for 'result.error' (which api.js
detects and rejects the promise before we get to it). We only need
to check for 'result.upload.warnings'.
mediawiki.Upload.js:
* Update for the above changes in mediawiki/api/upload.js.
* More reliably distinguish warnings from errors in all cases, not
only when finishing a stash upload.
* Store machine-readable error codes, not mw.Message objects. This
lets callers do something sensible when we encounter an unknown
error (especially one that has no corresponding message).
* Store full result as state details for warnings, as well as errors.
mediawiki.Upload.BookletLayout.js:
* Update for the above changes in mediawiki.Upload.js.
* Give errors/warnings generated during upload to stash the same
loving treatment as errors/warnings during publishing.
* Extract the code to a new method getErrorMessageForStateDetails().
* Handle 'stashfailed' warning (which is really an error).
* Handle unknown errors, now that mw.Upload lets us do something
sensible with them. (See, this is the thing I set out to do.)
Bug: T114940
Change-Id: I4c0f619a4e483cca296c2fa2907ed1f81a99fdd6
Translation updater bot [Mon, 12 Oct 2015 18:47:37 +0000 (20:47 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Iba14673f9c6fb330e84b0777670dbeb7db88714e
James D. Forrester [Mon, 12 Oct 2015 18:13:48 +0000 (14:13 -0400)]
build: Upgrade grunt-banana-checker from v0.3.0 to v0.4.0
Take opportunity to drop no-longer-needed options.
Change-Id: I11250c12d2123d4729e12cd0dce07b24fc5008e5
jenkins-bot [Mon, 12 Oct 2015 13:55:12 +0000 (13:55 +0000)]
Merge "Improve error message for missing content model on import"
Prateek Saxena [Wed, 30 Sep 2015 15:52:11 +0000 (21:22 +0530)]
RELEASE-NOTES-1.27: Add mw.Upload, its dialog, booklet layouts and subclasses
Change-Id: Ie010a9ba2be9a7fde9a73e6e62d731874e862876
Bartosz Dziewoński [Fri, 11 Sep 2015 18:49:36 +0000 (20:49 +0200)]
UploadBase: Return 'was-deleted' warning in addition to 'exists-normalized', not instead of
The 'was-deleted' warning was generated by getExistsWarning(), which
was returning immediately if this was found to be the case. A bunch of
later checks were incorrectly skipped, in particular 'exists-normalized',
which was resulting in UploadWizard incorrectly ignoring that problem.
I'm not sure why that was part of getExistsWarning() at all, it
doesn't seem very relevant. For that matter, neither do the 'thumb',
'thumb-name' and 'bad-prefix' warnings that it also generates, but
this should not be a problem in practice and so I'm leaving them alone.
Other than by allowing some more warning types to appear together or
in different order, this should not affect action=upload API output or
Special:Upload (which was updated appropriately). It does affect
'action=query&prop=imageinfo' output's 'html' property (used for AJAX
checks on Special:Upload), which no longer includes the 'was-deleted'
warning; this was never specified anywhere and just a side-effect.
Bug: T48741
Change-Id: I3686ee8ffd635f5f06f51971b6f16e3e66f33a9e
jenkins-bot [Mon, 12 Oct 2015 11:03:34 +0000 (11:03 +0000)]
Merge "mw.widgets.CategorySelector: Indicate pending requests and abort useless ones"
jenkins-bot [Mon, 12 Oct 2015 11:03:30 +0000 (11:03 +0000)]
Merge "Add abort method to mw.api"
jenkins-bot [Mon, 12 Oct 2015 07:36:12 +0000 (07:36 +0000)]
Merge "mediawiki.jqueryMsg: Support {{ns:}}"
jenkins-bot [Mon, 12 Oct 2015 01:52:24 +0000 (01:52 +0000)]
Merge "Show different message if image thumb in different format than img"
Translation updater bot [Sun, 11 Oct 2015 19:11:51 +0000 (19:11 +0000)]
Merge "Localisation updates from https://translatewiki.net."
jenkins-bot [Sun, 11 Oct 2015 19:08:40 +0000 (19:08 +0000)]
Merge "Enable Squiz.Classes.ValidClassName.NotCamelCaps"
Translation updater bot [Sun, 11 Oct 2015 19:07:14 +0000 (21:07 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I257ed32a1323008f5a27f548c497e08407f97302
Brian Wolff [Wed, 1 Jul 2015 08:42:05 +0000 (02:42 -0600)]
When using fopen on https streams, disable weak ciphers and compression
Per recomendation of
http://www.docnet.nu/tech-portal/2014/06/26/ssl-and-php-streams-part-1-you-are-doing-it-wrongtm/C0
Change-Id: I69d063ff4aa4248dd4f3d03de5a168c4b5a99c50
Translation updater bot [Sat, 10 Oct 2015 20:08:53 +0000 (22:08 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I8dd69f55dd50f97819b21574a80b6f925e9c1680
Brian Wolff [Sun, 19 Jul 2015 08:16:23 +0000 (02:16 -0600)]
Show different message if image thumb in different format than img
Users on commons feel that the other resolution links on the image
page can be confusing to users if they are in a different format
than the original image. Use a different message in that case
to clarify the situation.
See discussion at https://commons.wikimedia.org/?oldid=
165672017
Change-Id: I76d7155e1c1e48a9824819135943d2385a0ee41a
umherirrender [Sat, 3 Oct 2015 19:17:34 +0000 (21:17 +0200)]
Enable Squiz.Classes.ValidClassName.NotCamelCaps
Change-Id: Ie413b403992ba8598b3dea03adc9733c30414fe9
jenkins-bot [Sat, 10 Oct 2015 17:28:59 +0000 (17:28 +0000)]
Merge "Use line comments for @codingStandardsIgnoreStart"
jenkins-bot [Sat, 10 Oct 2015 17:10:48 +0000 (17:10 +0000)]
Merge "Fix class name of WfEscapeShellArgTest"
jenkins-bot [Sat, 10 Oct 2015 17:01:23 +0000 (17:01 +0000)]
Merge "Change 1.26 to 1.27, mostly in doc comments"
jenkins-bot [Sat, 10 Oct 2015 16:14:22 +0000 (16:14 +0000)]
Merge "Clear previously left-over PQresult before calling pg_get_result()"
yoonghm [Sun, 27 Sep 2015 05:56:29 +0000 (13:56 +0800)]
Clear previously left-over PQresult before calling pg_get_result()
Bug: T52091
Change-Id: Iaa1a479b5eefcae0fc8f82b1d20e9575d609c0e9
Kunal Mehta [Sat, 10 Oct 2015 15:52:58 +0000 (11:52 -0400)]
OutputPage: Fix typo in documentation
Change-Id: If89f249de3049eb37c261a7417910637b7464961
jenkins-bot [Sat, 10 Oct 2015 13:12:48 +0000 (13:12 +0000)]
Merge "Remove outdated style for span.minor"
jenkins-bot [Sat, 10 Oct 2015 11:02:58 +0000 (11:02 +0000)]
Merge "Skip user namespace prefix for rights log entry"
jenkins-bot [Sat, 10 Oct 2015 11:02:35 +0000 (11:02 +0000)]
Merge "Adjust file name in style module after rename"
This, that and the other [Sat, 10 Oct 2015 08:51:20 +0000 (19:51 +1100)]
Improve error message for missing content model on import
I was initially going to refactor out the error message into Import.php,
but it quickly became apparent that WikiImporter's error handling needs a
LOT of work. In particular, to localise the error message into the user's
language is sadly non-trivial.
Although not used currently, the MWUnknownContentModelException subclass
will help with error handling improvements in the future.
Bug: T49270
Change-Id: I9f53c9d6a8a2ea842cb2ba94d4131e10a8b08f5d
umherirrender [Sat, 10 Oct 2015 07:26:18 +0000 (09:26 +0200)]
Adjust file name in style module after rename
Follows I65b9343ea002c332323ededf4e328e4463faf698
Change-Id: I436f80041a8b30964755040a699166f182c1736c
umherirrender [Sat, 10 Oct 2015 06:48:05 +0000 (08:48 +0200)]
Remove outdated style for span.minor
There is no span.minor on pagehistory to style. It is called .minoredit
and already has the style.
Change-Id: I832b394e475104394700fe215b218115220d6c61
Aaron Schulz [Wed, 7 Oct 2015 08:55:39 +0000 (01:55 -0700)]
Add process cache support to WANObjectCache
* Make getWithSetCallback() accept a TTL field for this
* Make ChangeTag callers use this flag to avoid hundreds of
duplicate queries at Special:Tags
Change-Id: Ic1ed28294f5d557e02f39a7f20d36766244b9ded
umherirrender [Fri, 9 Oct 2015 20:36:47 +0000 (22:36 +0200)]
Skip user namespace prefix for rights log entry
The target of the right log entry is shown with namespace prefix, but it
is always a user, so skip the namespace prefix.
Change-Id: Ibe6005cc70ff3933836166d97c544267fb7d9951
jenkins-bot [Sat, 10 Oct 2015 04:55:52 +0000 (04:55 +0000)]
Merge "Minor getWithSetCallback() example formatting tweaks"
jenkins-bot [Sat, 10 Oct 2015 04:06:45 +0000 (04:06 +0000)]
Merge "Fix broken min() call in OutputPage"
Aaron Schulz [Sat, 10 Oct 2015 03:55:47 +0000 (20:55 -0700)]
Fix broken min() call in OutputPage
Change-Id: Ia2d895371f6f114c1cb821dd1d2aaaef7935033f
Aaron Schulz [Sat, 10 Oct 2015 00:25:54 +0000 (17:25 -0700)]
Fix more LBFactory __construct() IDEA errors
Change-Id: Iec0d108d6ad405f77710e4ce111d0adefea3832b
jenkins-bot [Sat, 10 Oct 2015 02:43:43 +0000 (02:43 +0000)]
Merge "Add ObjectCache::getMainClusterInstance()"
jenkins-bot [Sat, 10 Oct 2015 02:21:48 +0000 (02:21 +0000)]
Merge "Set correct parentid on import"
Ori Livneh [Fri, 9 Oct 2015 23:26:26 +0000 (16:26 -0700)]
Add ObjectCache::getMainClusterInstance()
Provide a complement to ObjectCache::getMainWANInstance() and
ObjectCache::getMainStashInstance() which gets the default ObjectCache
instance.
Change-Id: Ib16ee40908b159e60be41a308db49a9291b5de0d
Aaron Schulz [Thu, 8 Oct 2015 17:02:02 +0000 (10:02 -0700)]
Better explain WANObjectCache::TTL_NONE constant
Change-Id: I2ce363c957f35e75a17f05b2160979a6fa4aa642
Brad Jorsch [Fri, 9 Oct 2015 21:25:36 +0000 (17:25 -0400)]
Fix "installer started" detection
NoLocalSettings.php tries to detect whether the installer has been
started or not. But this detection has been broken since I4cf237d when a
change was made to stop setting the session name when NO_SESSION is
defined, causing NoLocalSettings.php to be looking at a different
session-cookie than is actually being used by the installer.
The complete fix is twofold:
* Have WebInstaller::startSession() call session_name()
* Have NoLocalSettings.php not call session_name() when PHP's
session.auto_start configuration setting is set.
Change-Id: I618d11df902b5d1f70e175bc94137621e9195c2f
Translation updater bot [Fri, 9 Oct 2015 20:11:52 +0000 (22:11 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I630ffad122995402233190be172a5f250c4f24d2
jenkins-bot [Fri, 9 Oct 2015 15:43:59 +0000 (15:43 +0000)]
Merge "mediawiki.jqueryMsg: Strip leading colon in wikilinks"
umherirrender [Thu, 8 Oct 2015 19:26:56 +0000 (21:26 +0200)]
Set correct parentid on import
When importing over an existing page the parentid is set to the latest
rev id of the page, which makes the size diff in history unusable.
The import constructs the Revision object without a parentid and than
Revision::getPreviousRevisionId is using the page_latest field to
propagate the missing parentid.
Avoid this bad propagate by select the previous revision id depending on
timestamp before construct of the Revision object.
Bug: T114806
Change-Id: Iee44d5a74de459f733ea62373cdbe9911e77083f
Bartosz Dziewoński [Fri, 9 Oct 2015 13:05:53 +0000 (15:05 +0200)]
mw.widgets.CategorySelector: Indicate pending requests and abort useless ones
* When the input loses focus, or when we fire new queries, abort
any current ones.
* Never display the menu after input loses focus.
* Use PendingElement to indicate that we're waiting for responses.
(Depends on I604fff9a9e5bfbb584b3926802dab445e6131aaa in OOjs UI
for correct styling.)
* Do not send needless queries for empty input.
Bug: T114945
Change-Id: I80f4d0143279f1768ed2a3bdcb3f731526597577
jdlrobson [Fri, 4 Sep 2015 18:08:14 +0000 (11:08 -0700)]
Add abort method to mw.api
The abort method allows you to cancel any requests currently pending
in the current class. Useful for cancelling no longer needed requests
due some user action (for example a user switching back to edit mode
from preview or a user cancelling multiple searches across different
lookup widgets)
Bug: T111245
Change-Id: Ie614b05fbfbddca38ea201e90053bebdd58da949
Bartosz Dziewoński [Fri, 9 Oct 2015 10:57:06 +0000 (12:57 +0200)]
mediawiki.jqueryMsg: Support {{ns:}}
Often used in links like [[{{ns:template}}:Foo]], in order for the
link to use namespace name in wiki content language rather than
localised to user language.
Change-Id: Icc360724c75755a6ffc31792d8439cba142642ae
Bartosz Dziewoński [Wed, 7 Oct 2015 18:16:30 +0000 (20:16 +0200)]
mediawiki.jqueryMsg: Strip leading colon in wikilinks
Strip leading ':', which is used to suppress special behavior in
wikitext links, e.g. [[:Category:Foo]] or [[:File:Foo.jpg]].
Also added tests for empty wikilinks.
Bug: T114130
Change-Id: Idc78310d6106c2badc0fde933f901d672556ab26
jenkins-bot [Fri, 9 Oct 2015 06:17:07 +0000 (06:17 +0000)]
Merge "LocalisationCache::recache(): Use array_fill_keys()"
Aaron Schulz [Thu, 8 Oct 2015 22:49:57 +0000 (15:49 -0700)]
Minor getWithSetCallback() example formatting tweaks
Change-Id: I6fc7164770fbbd32374b01d1aa27dbaa9263c940
Kevin Israel [Thu, 8 Oct 2015 20:29:16 +0000 (16:29 -0400)]
LocalisationCache::recache(): Use array_fill_keys()
LocalisationCache was added in 1.16, so in order to retain PHP 5.1
compatibility, array_fill_keys() was avoided. In 1.17, support for
PHP 5.1 was dropped, so we can use that function now.
Change-Id: I435705639f1a470324a4ba46153351aadc0d40e2
Translation updater bot [Thu, 8 Oct 2015 20:07:30 +0000 (22:07 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I02f0defd61aa359a17b6d5cfc75c9e6db0149124
jenkins-bot [Thu, 8 Oct 2015 18:49:36 +0000 (18:49 +0000)]
Merge "Implement ApiPageSet::setRedirectMergePolicy()"
Erik Bernhardson [Wed, 7 Oct 2015 21:03:15 +0000 (14:03 -0700)]
Implement ApiPageSet::setRedirectMergePolicy()
This allows generator implementations to define how generator data
about a redirect gets merged into the redirect destination. This
does not change any defaults, only modules that explicitly set a
merge policy will have a change in their results.
This functionality is initially used for the search api modules to
retain search positions within the final result set.
Bug: T92796
Change-Id: If2f49e0fc3176288c95e870240754ee320a6bf91
jenkins-bot [Thu, 8 Oct 2015 18:10:35 +0000 (18:10 +0000)]
Merge "Consistent TODO spelling in JavaScript"
jenkins-bot [Thu, 8 Oct 2015 18:00:43 +0000 (18:00 +0000)]
Merge "Change "Subject/headline" to "Subject""
jenkins-bot [Thu, 8 Oct 2015 17:58:19 +0000 (17:58 +0000)]
Merge "Fix namespaced class references for Doxygen"
jenkins-bot [Thu, 8 Oct 2015 17:25:32 +0000 (17:25 +0000)]
Merge "mediawiki.Upload.BookletLayout: Add setFile method"
jenkins-bot [Thu, 8 Oct 2015 17:24:19 +0000 (17:24 +0000)]
Merge "Fix French special pages titles inconsistencies"
jenkins-bot [Thu, 8 Oct 2015 17:14:13 +0000 (17:14 +0000)]
Merge "Fixed Special:ChangeEmail spelling in French"
Bryan Davis [Thu, 8 Oct 2015 16:58:34 +0000 (10:58 -0600)]
Fix namespaced class references for Doxygen
Doxygen doesn't quite grok PHP's use of the reverse solidus (backslash)
character as a namespace separator. The C++ based parser it uses needs
them to be escaped in comments just as if they were being used in
a literal string context in PHP.
Change-Id: I9aff9dd0fb74a95039da1091c2f247cf71fd085a
Ed Sanders [Wed, 7 Oct 2015 20:26:50 +0000 (21:26 +0100)]
mediawiki.Upload.BookletLayout: Add setFile method
Change-Id: I30ec98be0e28e65d84b57cb78c9a89dd82d19c30
jenkins-bot [Thu, 8 Oct 2015 16:27:06 +0000 (16:27 +0000)]
Merge "mw.ForeignStructuredUpload.BookletLayout: Reset forms after use"
jenkins-bot [Thu, 8 Oct 2015 16:01:37 +0000 (16:01 +0000)]
Merge "mw.widgets.DateInputWidget: Close calendar after a date is picked"
jenkins-bot [Thu, 8 Oct 2015 15:53:17 +0000 (15:53 +0000)]
Merge "Add get() flags support to BagOStuff::getWithSetCallback()"
jenkins-bot [Thu, 8 Oct 2015 15:53:13 +0000 (15:53 +0000)]
Merge "Update getWithSetCallback() callers to the newer signature"
jenkins-bot [Thu, 8 Oct 2015 15:53:07 +0000 (15:53 +0000)]
Merge "Update getWithSetCallback() examples to use the new signature"
jenkins-bot [Thu, 8 Oct 2015 15:51:12 +0000 (15:51 +0000)]
Merge "Handle edge case in WikiPage::lock()"
Prateek Saxena [Thu, 8 Oct 2015 12:07:57 +0000 (17:37 +0530)]
mw.widgets.DateInputWidget: Close calendar after a date is picked
It guess it makes sense to do this. I can't think on any use case in
which the user would want to keep clicking on random dates on an open
calendar. It could be helpful if it were a filter for some
visualization, but in that case we should probably have a config to
keep the calendar always open.
Bug: T114942
Change-Id: I1c81464a1835eb488a75920334a3cf3b92ef34fc
jenkins-bot [Thu, 8 Oct 2015 15:43:19 +0000 (15:43 +0000)]
Merge "Effectively remove EDIT_DEFER_UPDATES flag"
jenkins-bot [Thu, 8 Oct 2015 15:43:15 +0000 (15:43 +0000)]
Merge "Various WikiPage code cleanups"
jenkins-bot [Thu, 8 Oct 2015 15:43:12 +0000 (15:43 +0000)]
Merge "Move SquidPurgeClient under /clientpool"
jenkins-bot [Thu, 8 Oct 2015 15:33:29 +0000 (15:33 +0000)]
Merge "Convert updateChunkStatus to using a flush commit()"
jenkins-bot [Thu, 8 Oct 2015 15:31:49 +0000 (15:31 +0000)]
Merge "Made LinksUpdate on edit use the job queue"
jenkins-bot [Thu, 8 Oct 2015 15:18:17 +0000 (15:18 +0000)]
Merge "Show password-required message only if $wgRequirePasswordforEmailChange = true"
Ori Livneh [Wed, 7 Oct 2015 16:47:25 +0000 (09:47 -0700)]
Remove .php5 entrypoints and $wgScriptExtension
* The '.php5' entrypoints were deprecated in I68b1ae842, $wgScriptExtension
in I3690f78bc.
* Drop the associated ResourceLoader configuration variable, too. `mwgrep`
shows no usage in the MediaWiki namespace.
* Keep the scriptExtension configuration parameter for FileRepo for people who
would like to interoperate with older MediaWiki installations that still use
'.php5'.
Change-Id: I17c8a15484b7e82cd5970d34e688109a2aae3840
jenkins-bot [Thu, 8 Oct 2015 14:08:06 +0000 (14:08 +0000)]
Merge "Allow change tags to be added via API action=delete"
Prateek Saxena [Thu, 8 Oct 2015 11:44:28 +0000 (17:14 +0530)]
mw.ForeignStructuredUpload.BookletLayout: Reset forms after use
Bug: T114936
Bug: T114947
Change-Id: I96a6440c32316a077069bb744fff8564e91a04b2
jenkins-bot [Thu, 8 Oct 2015 08:36:33 +0000 (08:36 +0000)]
Merge "Provide a default "max lag" value for LoadBalancer"
Aaron Schulz [Thu, 8 Oct 2015 03:44:54 +0000 (20:44 -0700)]
Provide a default "max lag" value for LoadBalancer
* No MediaWiki site can tolerate unbounded slave lag
without editing and account creation and such being
broken and unusable
* Also fix a few trivial __construct() IDEA errors
Change-Id: I95b8b73be2df3b5a87e7adbf53988cfbeb85c260
Aaron Schulz [Wed, 30 Sep 2015 19:30:22 +0000 (12:30 -0700)]
Made LinksUpdate on edit use the job queue
* LinksUpdate is now an EnqueueableDataUpdate
and can yeild a prioritzed refreshLinks job.
* DeferredUpdates::runUpdates() now takes an enqueue
flag to try to use jobs. This is set in restInPeace().
Updates that change many links will be less likely to
increase lag, as the runners are more strict about that.
* Also made the LinksDeletionUpdate job enqueue happen
post-send on page deletion for consistency
Bug: T95501
Change-Id: I8863caef9c8f03234699d33e4d47d2310a0c8446
jenkins-bot [Thu, 8 Oct 2015 07:56:08 +0000 (07:56 +0000)]
Merge "Make ForeignDBRepo::getDBFactory() actually work on 5.3"
jenkins-bot [Thu, 8 Oct 2015 07:47:02 +0000 (07:47 +0000)]
Merge "Make DeferredUpdates::doUpdates use DataUpdate::runUpdates"
Aaron Schulz [Thu, 8 Oct 2015 05:36:49 +0000 (22:36 -0700)]
Make ForeignDBRepo::getDBFactory() actually work on 5.3
Change-Id: Id790ccb1728a6a163f2e2149dd56ec1b14fc33af
Aaron Schulz [Thu, 8 Oct 2015 07:36:22 +0000 (00:36 -0700)]
Move SquidPurgeClient under /clientpool
Each class has its own file now too.
Change-Id: I11593d6efbfce8e3981895e84edb4e0dea3998e4
This, that and the other [Thu, 8 Oct 2015 07:34:27 +0000 (18:34 +1100)]
Allow change tags to be added via API action=delete
ApiDelete::delete() and ApiDelete::deleteFile() are altered from public
to protected visibility. This is not believed to affect any extensions.
Also get rid of the token variables, as they are not doing anything useful.
Bug: T108564
Change-Id: I6143043dafa6425a0df4baefe970620cbe69466c
Aaron Schulz [Thu, 8 Oct 2015 06:46:18 +0000 (23:46 -0700)]
Make DeferredUpdates::doUpdates use DataUpdate::runUpdates
All DataUpdate objects will be managed by runUpdates() while
the other DeferrableUpdate objects will still be run here.
This respects the transaction sematics of DataUpdate a bit more.
Change-Id: Ia0d2dd26a38b0e8911589407b533b58d04d2b084
Aaron Schulz [Thu, 8 Oct 2015 07:02:22 +0000 (00:02 -0700)]
Effectively remove EDIT_DEFER_UPDATES flag
* All DeferrableUpdates will be deferred as normal.
In CLI mode this is just post-commit and would have
happened before the doUpdates() call anyway. For web
requests this will be at request-end (post-send on HHVM).
Note that deferral was already the default for EditPage.
* Previously, it was easy to accidently not set EDIT_DEFER_UPDATES.
Deferred updates are supposed to be deferrable by definition,
and there is no longer the problem of them piling up in CLI in
recent versions. Not deferring mostly just forfeits performance.
* Also, it is not really the responsibility of WikiPage to be
running DeferrableUpdate instances itself.
Change-Id: I2bc47b82635e0a24b1df5d502ba66f6de737697e
jenkins-bot [Thu, 8 Oct 2015 07:01:38 +0000 (07:01 +0000)]
Merge "SpecialEditWatchlist: Use 'parentheses' message instead of hard-coded ()"
Ori Livneh [Thu, 8 Oct 2015 06:04:59 +0000 (23:04 -0700)]
Small clean-ups for OutputPage::userCanPreview
Change-Id: Ibd973750b60cbcc8d1289686de6cabcfdca5c5d9
Ori Livneh [Thu, 8 Oct 2015 04:45:26 +0000 (21:45 -0700)]
Fix-up for I949fc289d: handle falsy cookie values correctly
Ensure that OutputPage::haveVaryCacheCookies() handles falsey values correctly,
and that it requires a cookie to have a nonempty value before it declares a
match.
Change-Id: I2afe54b62c940187a427498cb4037e1dd0e78dd9
Aaron Schulz [Thu, 8 Oct 2015 04:52:43 +0000 (21:52 -0700)]
Update getWithSetCallback() examples to use the new signature
Change-Id: I81916b4d1884bad5d30f689698aa35cdb9f139eb
Aaron Schulz [Thu, 8 Oct 2015 04:36:54 +0000 (21:36 -0700)]
Various WikiPage code cleanups
* Break numerous long lines
* Clean up style in a few methods
* Fix some IntelliJ IDEA errors
Change-Id: If8e58906031d4080c28ac33b0c9b5efe95b15854
Faidon Liambotis [Tue, 6 Oct 2015 07:01:10 +0000 (10:01 +0300)]
Replace XVO with support for the Key HTTP header
MediaWiki currently has support for a header called X-Vary-Options
(XVO), used to communicate to upstream caches more granular cache
variance options than the Vary header can.
The header was envisioned by Tim Starling back in 2008 and implemented
into MediaWiki and Squid 2.0, with those patches submitted to the
squid-dev mailing list at the time:
http://www.squid-cache.org/mail-archive/squid-dev/200802/0085.html
The patches never actually made it into an upstream Squid release,
however, and Squid has since evolved in potentially significant ways.
Wikimedia has since switched to Varnish but XVO was not ported over as
it was deemed too complex at the time; custom VCL was used instead. To
our knowledge, noone else is using XVO in production and certainly not
with recent, up-to-date MediaWiki releases.
There is currently work at IETF's httpbis working group for a "Key"
header that is in concept and implementation very similar to Tim's XVO
header: https://datatracker.ietf.org/doc/draft-fielding-http-key/
Rather than rip XVO out of MediaWiki, replace it with support for the
Key header, as preliminary defined by the draft spec. This is an almost
straight search-and-replace.
No other software (caching proxy or user-agent) currently implements Key
to my knowledge, so this is essentially untested.
Change-Id: I949fc289dd5d48bd34f3b37f7739e2b9cd5db277
Aaron Schulz [Thu, 8 Oct 2015 03:51:00 +0000 (20:51 -0700)]
Add get() flags support to BagOStuff::getWithSetCallback()
Change-Id: Ib6046f5bc5d8c0481f90b56c381ba761fee558d6