lhc/web/wiklou.git
8 years agoMerge "mw.widgets.DateInputWidget: Display a translateable placeholder"
jenkins-bot [Tue, 4 Aug 2015 22:14:20 +0000 (22:14 +0000)]
Merge "mw.widgets.DateInputWidget: Display a translateable placeholder"

8 years agomw.widgets.DateInputWidget: Display a translateable placeholder
Bartosz Dziewoński [Tue, 4 Aug 2015 20:37:26 +0000 (22:37 +0200)]
mw.widgets.DateInputWidget: Display a translateable placeholder

The translations are sourced from UploadWizard's messages
'mwe-upwiz-tooltip-date' and 'mwe-upwiz-error-date', minus the ones
where the translation was identical to English, there were two
different translations, or the translation looked otherwise suspicious.

Change-Id: I0db3163cbf2a99616fae4ac993f49c69e9e755ba

8 years agoMerge "Hide edit toolbar Signature button in non-discussion namespaces"
jenkins-bot [Tue, 4 Aug 2015 20:05:32 +0000 (20:05 +0000)]
Merge "Hide edit toolbar Signature button in non-discussion namespaces"

8 years agoMerge "Make Special:ConfirmEmail load the user from the master"
jenkins-bot [Tue, 4 Aug 2015 18:50:19 +0000 (18:50 +0000)]
Merge "Make Special:ConfirmEmail load the user from the master"

8 years agoMake Special:ConfirmEmail load the user from the master
Aaron Schulz [Mon, 3 Aug 2015 23:20:39 +0000 (16:20 -0700)]
Make Special:ConfirmEmail load the user from the master

* This can help guard against stale reads if the user was
  created or changed a second ago.

Bug: T105896
Change-Id: Ib2a59762cd8f4a4b7ad86d0700f186bee1d5b2d1

8 years agoMerge "mw.widgets.DateInputWidget: Add missing background"
jenkins-bot [Tue, 4 Aug 2015 18:17:13 +0000 (18:17 +0000)]
Merge "mw.widgets.DateInputWidget: Add missing background"

8 years agoMerge "mw.widgets.DateInputWidget: Don't get stuck on today's date if none given"
jenkins-bot [Tue, 4 Aug 2015 18:17:10 +0000 (18:17 +0000)]
Merge "mw.widgets.DateInputWidget: Don't get stuck on today's date if none given"

8 years agoMerge "mw.widgets.DateInputWidget: Add @example"
jenkins-bot [Tue, 4 Aug 2015 18:14:16 +0000 (18:14 +0000)]
Merge "mw.widgets.DateInputWidget: Add @example"

8 years agoMerge "resourceloader: Async all the way"
jenkins-bot [Tue, 4 Aug 2015 17:30:21 +0000 (17:30 +0000)]
Merge "resourceloader: Async all the way"

8 years agoMerge "Remove Sajax"
jenkins-bot [Tue, 4 Aug 2015 17:26:43 +0000 (17:26 +0000)]
Merge "Remove Sajax"

8 years agoresourceloader: Async all the way
Timo Tijhof [Tue, 28 Jul 2015 02:46:00 +0000 (19:46 -0700)]
resourceloader: Async all the way

Page startup:
* Due to the startup module and top queue being asynchronous now,
  move client-nojs/client-js class handling to OutputPage to ensure
  there is no flashes of wrongly styled or unstyled content.

  To preserve compatibility for unsupported browsers, undo the
  class swap at runtime after the isCompatible() check.

ResourceLoader startup module:
* Load the startup module with <script async>.
* Use DOM methods instead of 'document.write' to create base module request (jquery|mediawiki).

mw.loader:
* Drop 'async' parameter from mw.loader.load().
* Remove the now-unused code paths for synchronous requests.

OutputPage:

* Drop '$loadCall' parameter from makeResourceLoaderLink().
  Asynchronous is now the default and only way to load JavaScript.
  This means the 'user' module "conditional document-write scripts"
  are now a simple "mw.loader.load( url )" call.

* Fix incorrect @return of makeResourceLoaderLink(). This returns
  an array not a string.

* Improve documentation of makeResourceLoaderLink().

* Drop '$inHead' parameter from getScriptsForBottomQueue(). No longer used.
  Compatibility with the $wgResourceLoaderExperimentalAsyncLoading
  feature is maintained. It just no longer needs to change the
  way the queue works since it's always asynchronous. The feature
  flag now only controls whether the bottom queue starts at the bottom
  or starts at the top.

* Remove jQuery.ready() optimisation.
  This was mostly there to avoid the setTimeout() loop jQuery does to detect
  dom-ready in IE6/IE7 (which we no longer serve JavaScript at all).
  And for a bug in Firefox with document.write (which is no longer used as of
  this commit).

Bug: T107399
Change-Id: Icba6d7a87b239bf127a221bc6bc432cfa71a4a72

8 years agomw.widgets.DateInputWidget: Add missing background
Bartosz Dziewoński [Tue, 4 Aug 2015 16:33:45 +0000 (18:33 +0200)]
mw.widgets.DateInputWidget: Add missing background

Change-Id: I1db5bffaa8270479746b85b0c35dbb0f7b0eeaaf

8 years agomw.widgets.DateInputWidget: Don't get stuck on today's date if none given
Bartosz Dziewoński [Tue, 4 Aug 2015 16:29:51 +0000 (18:29 +0200)]
mw.widgets.DateInputWidget: Don't get stuck on today's date if none given

If no date was given, the calendar would select today, but the
DateInputWidget itself would have no value.

However, this made the date picker ignore attempts to actually choose
today: the calendar already had that date chosen, so no 'change' even
was fired, and date input stayed empty.

Change mw.widgets.CalendarWidget not to actually select today's date,
just focus the calendar on it.

Follow-up to 66686f8c5e4df1c2cc94273918b9328269d2ec09.

Change-Id: I3ba064982b045a577209d56a009ad0098c357754

8 years agoSync up with Parsoid parserTests.
C. Scott Ananian [Tue, 4 Aug 2015 16:30:20 +0000 (12:30 -0400)]
Sync up with Parsoid parserTests.

This now aligns with Parsoid commit 19c5d8af12ea0a79141f3aa0634d0fd28fb30c5c

Change-Id: Ifffc18a38c6501706209d1b033d2305a7534ba61

8 years agomw.widgets.DateInputWidget: Add @example
Bartosz Dziewoński [Tue, 4 Aug 2015 16:03:30 +0000 (18:03 +0200)]
mw.widgets.DateInputWidget: Add @example

Bug: T107247
Change-Id: I193fcd3175ebc96297f9d2cdd0f4de428388dd8e

8 years agomw.widgets.CalendarWidget: Improve today's date highlighting
Bartosz Dziewoński [Tue, 4 Aug 2015 12:51:12 +0000 (14:51 +0200)]
mw.widgets.CalendarWidget: Improve today's date highlighting

This was goofy, and the margins caused items to wobble around on
hover. I forgot about the box-shadow trick.

Change-Id: I35c32456ad0a1633ffbd1fbe6ad77adba694ae2d

8 years agomw.widgets.DateInputWidget: Don't set today's date on activation
Bartosz Dziewoński [Tue, 4 Aug 2015 12:00:02 +0000 (14:00 +0200)]
mw.widgets.DateInputWidget: Don't set today's date on activation

Per Mark's review on Ia7bb737bc11b0af3659552fa75d11e6663e2812e.

Change-Id: Ie96602514dd57ffbe655d4ba4a8b5028771acda8

8 years agoMerge "Automatically de-duplicate EnqueueJob jobs when possible"
jenkins-bot [Tue, 4 Aug 2015 09:26:08 +0000 (09:26 +0000)]
Merge "Automatically de-duplicate EnqueueJob jobs when possible"

8 years agoresourceloader: In startup, move RLQ handling to after mw.config
Timo Tijhof [Tue, 4 Aug 2015 01:38:30 +0000 (18:38 -0700)]
resourceloader: In startup, move RLQ handling to after mw.config

Follows-up 59f1a1efa8.

This wasn't breaking anything currently because the startup module
is still loading synchronously.

Change-Id: I2c91331050378f2b5925e89b3aab50a555c07bcd

8 years agoMerge "Added DBAccessObjectUtils class to avoid duplication"
jenkins-bot [Mon, 3 Aug 2015 23:26:15 +0000 (23:26 +0000)]
Merge "Added DBAccessObjectUtils class to avoid duplication"

8 years agoMerge "Empty attribute syntax"
jenkins-bot [Mon, 3 Aug 2015 23:07:00 +0000 (23:07 +0000)]
Merge "Empty attribute syntax"

8 years agoSample StatsD messages when instructed
Gergő Tisza [Thu, 23 Jul 2015 20:13:27 +0000 (20:13 +0000)]
Sample StatsD messages when instructed

Bug: T106457
Change-Id: I8ddb5a53dcbaf398f5a114d2a4a862842e980db4

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 3 Aug 2015 19:46:31 +0000 (21:46 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Iffa0a6e5b7957ee91312fa19a8816b5d013f6629

8 years agoAutomatically de-duplicate EnqueueJob jobs when possible
Aaron Schulz [Mon, 3 Aug 2015 19:46:30 +0000 (12:46 -0700)]
Automatically de-duplicate EnqueueJob jobs when possible

Bug: T107792
Change-Id: I1e7fe5d5a6fed7b9a0dd4482ef3fc3a260033109

8 years agoDelete "Currently unused" regarding generateTOC
S Page [Mon, 3 Aug 2015 05:33:43 +0000 (22:33 -0700)]
Delete "Currently unused" regarding generateTOC

includes/api/ApiHelp.php uses Linker:generateTOC.
This is a trivial comment-only change.

Change-Id: Ie566a94a67b5e583d20a23edcdac5a1e3ba3d542

8 years agoUse lower case edit link on Special:WhatLinkshere
Florianschmidtwelzow [Mon, 3 Aug 2015 11:02:48 +0000 (13:02 +0200)]
Use lower case edit link on Special:WhatLinkshere

Bug: T107633
Change-Id: I2365623d0f0e72645c385be279bc2ccdf4954bcd

8 years agoregistration: Document 'templates' property of ResourceModules objects
Kunal Mehta [Sun, 2 Aug 2015 21:10:23 +0000 (14:10 -0700)]
registration: Document 'templates' property of ResourceModules objects

Bug: T107008
Change-Id: Iaac805969460ef114f9e87afe8f6e9f442728670

8 years agoHide edit toolbar Signature button in non-discussion namespaces
This, that and the other [Mon, 21 Jul 2014 01:36:20 +0000 (11:36 +1000)]
Hide edit toolbar Signature button in non-discussion namespaces

Most wikis only use user signatures on pages set aside from discussion,
(Talk namespaces and sometimes project/main namespaces depending on
the wiki), so having the button available everywhere is confusing.
The few wikis that need the button (especially non-content,
internal/corporate/planning wikis), can add relevant namespaces to the
$wgExtraSignatureNamespaces array in LocalSettings.

This would make it possible to solve bugs like T59727 or T53154.

Since this is a change to default behavior, a release note is added.

Bug: T7645
Change-Id: I7ccf1093b888c7b33721234349ca0ac054c3cd3f

8 years agoRemove Sajax
Ori Livneh [Mon, 3 Aug 2015 03:05:51 +0000 (20:05 -0700)]
Remove Sajax

Calls for the removal of Sajax go back to (at least) October of 2012, when it
was already possible to describe the library as "ancient".[0] The work to mark
the library as deprecated[1] and to update its callers in Core[2] was completed
by Alex Monk two years ago. Usage in extensions was removed long ago in most
cases, and the last holdout -- SecurePoll -- was migrated by Frances Hocutt
last month. There is a long tail of usage in the MediaWiki namespace, but it
should not block this patch.

[0]: http://thread.gmane.org/gmane.science.linguistics.wikipedia.technical/64380
[1]: I4a0af8986
[2]: I52f01e4e7
[3]: I1e4f3107e

Bug: T55120
Change-Id: I22b69113a67c0b3a0979ff6ba1854ee8e95c1b88

8 years agoAdd base interface for setters in RequestContext and DerivativeContext
Kunal Mehta [Mon, 21 Jul 2014 09:13:23 +0000 (02:13 -0700)]
Add base interface for setters in RequestContext and DerivativeContext

Change-Id: I819633ca5344f73a196623569bb58fd8372d6779

8 years agoMerge "Improve messages related to $wgAllowCategorizedRecentChanges"
jenkins-bot [Mon, 3 Aug 2015 05:26:47 +0000 (05:26 +0000)]
Merge "Improve messages related to $wgAllowCategorizedRecentChanges"

8 years agoMerge "OutputPage: Add \n between </style> and <script>"
jenkins-bot [Mon, 3 Aug 2015 05:10:43 +0000 (05:10 +0000)]
Merge "OutputPage: Add \n between </style> and <script>"

8 years agoregistration: Actually set the merge strategy for $wgExtensionCredits
Kunal Mehta [Sun, 2 Aug 2015 21:56:44 +0000 (14:56 -0700)]
registration: Actually set the merge strategy for $wgExtensionCredits

$wgExtensionCredits is special and needs to be set in the
ExtensionRegistry. Also change the cache key so any bad cache entries
will be ignored.

Follows up 1ebb0f5659667f.

Change-Id: Iec08ab8d9ef7fe7cccde979530839ef553779658

8 years agoMerge "Update the comment in MessagesAzb.php to be consistent with Names.php"
jenkins-bot [Sun, 2 Aug 2015 21:44:02 +0000 (21:44 +0000)]
Merge "Update the comment in MessagesAzb.php to be consistent with Names.php"

8 years agoregistration: Allow setting $wgCapitalLinkOverrides
Kunal Mehta [Sat, 1 Aug 2015 08:37:10 +0000 (01:37 -0700)]
registration: Allow setting $wgCapitalLinkOverrides

Change-Id: Iaf8b44d02adf94ac7f7cb6a8a090b4069b98a88c

8 years agoregistration: Allow setting $wgNamespaceProtection
Kunal Mehta [Sat, 1 Aug 2015 07:39:52 +0000 (00:39 -0700)]
registration: Allow setting $wgNamespaceProtection

Change-Id: Id071eeeb3e734f7833d36610a6b4e786f2d26fa6

8 years agoMerge "registration: Overhaul merging of globals"
jenkins-bot [Sun, 2 Aug 2015 20:29:02 +0000 (20:29 +0000)]
Merge "registration: Overhaul merging of globals"

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 2 Aug 2015 19:33:33 +0000 (21:33 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ib39a676086a94d604ccac932170a992ad67b4a41

8 years agoregistration: Overhaul merging of globals
Kunal Mehta [Sat, 1 Aug 2015 07:38:27 +0000 (00:38 -0700)]
registration: Overhaul merging of globals

Instead of hardcoding specific global settings in ExtensionRegistry,
create specific "merge strategies" that are used to merge globals.

Merge strategies are set for core properties in the ExtensionProcessor,
and extensions can set them for their own configuration settings using
the magic "_merge_strategy" key.

The following merge strategies are included:
* array_merge_recursive - call `array_merge_recursive` on the two arrays
* array_plus - use the "+" operator to combine arrays, preserving
               integer keys
* array_plus_2d - A version of array_plus that works on 2d arrays, used
                  for merging arrays like $wgGroupPermissions
* array_merge - call `array_merge` (default)

This changes the merging of various namespaces related settings to use
array_plus so they actually work.

Bug: T107646
Change-Id: I64cb0553864e3b78b0f203333f58bb73b86a6434

8 years agoUpdate the comment in MessagesAzb.php to be consistent with Names.php
Amir E. Aharoni [Sun, 2 Aug 2015 17:33:35 +0000 (20:33 +0300)]
Update the comment in MessagesAzb.php to be consistent with Names.php

Change-Id: I86ae4c514eebaaea6072c9b67bd35915c7b4c3e4

8 years agoApiQueryInfo: Remove unused variable
Kunal Mehta [Sun, 2 Aug 2015 08:16:14 +0000 (01:16 -0700)]
ApiQueryInfo: Remove unused variable

Change-Id: I071ba28ef8ba9f8b137f5e0ea4c7e1fca35cdede

8 years agoRemove classmap-authoratative: true from composer.json
Bryan Davis [Sun, 2 Aug 2015 02:07:21 +0000 (20:07 -0600)]
Remove classmap-authoratative: true from composer.json

The use of classmap-authoratative: true provides a measurable
performance improvement for MediaWiki on the WMF production cluster, but
that environment really uses the composer.json in the
mediawiki/vendor.git repo and not the composer.json in
mediawiki/core.git. Since this setting is merely performance enhancing
and can be worked around for WMF and other large scale users, it seems
reasonable to change the default behavior to be more friendly to
development use where there may be legitimate reasons for PSR0/4
autoloaders (eg bootstrapped tests in extensions).

Bug: T107682
Change-Id: I805c1b82eb6bc93bf3a74a8a9d07e34f2f8c645f

8 years agoUse notification on successful preferences save
Geoffrey Mon [Sun, 7 Jun 2015 00:51:41 +0000 (20:51 -0400)]
Use notification on successful preferences save

"Now 98.6% leaner!"

* Use Xml::tags() for cleaner (old) successbox generation.
* Use #mw-preferences-success for the old successbox
  to make its removal more specific.
* Use the mw.notify box for saved prefs message.
* Remove box on keydown or mousedown in #preftoc or
  .prefsection.
* Remove success=1 querystring on load to prevent
  unnecessary reappearance of notification on reload.

Bug: T19496
Change-Id: Ibecbe21aa52ddc061d4bb27815f6fa5161a96735

8 years agoUse XmlSelect in SpecialListusers
Geoffrey Mon [Sat, 1 Aug 2015 21:15:58 +0000 (21:15 +0000)]
Use XmlSelect in SpecialListusers

Bug: T93234
Change-Id: I25cdd8f7eb1bbfd893d201f6c68f5ccfabe70bf3

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 1 Aug 2015 19:33:52 +0000 (21:33 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ibdd18216129fb8ab0180d07083521e4a0520c30c

8 years agoresourceloader: Remove ESI support (previously disabled)
Timo Tijhof [Fri, 31 Jul 2015 19:34:10 +0000 (12:34 -0700)]
resourceloader: Remove ESI support (previously disabled)

These were never enabled or used in production and are not
compatible with the upcoming async changes (T107399). To avoid
having to maintain compatibility with this, remove it for now.

The current on-going request to operations for ESI support is unrelated
to this code.

Considered making makeResourceLoaderLink() protected as it's not
used anywhere in @wikimedia Git outside mediawiki-core. And the unit
test actually treated it as protected already. However it's called
in SpecialJavaScriptTest so leaving that as-is for now.

In Icba6d7a87b239 the signature will change again with the removal
of the $loadCall parameter, which is obsolete in an async world
due to document.write being forbidden.

Change-Id: I9f557cc794638ffd15329934865e21e1027f7cfa

8 years agoOutputPage: Add \n between </style> and <script>
Fomafix [Sat, 1 Aug 2015 12:24:45 +0000 (12:24 +0000)]
OutputPage: Add \n between </style> and <script>

The ResourceLoader does not add a newline anymore.

Change-Id: Idfdbd0a8836ab2ec7abef1530ca883fb6d618eb4

8 years agoregistration: Fix merging of $wgRevokePermissions
Kunal Mehta [Sat, 1 Aug 2015 06:40:07 +0000 (23:40 -0700)]
registration: Fix merging of $wgRevokePermissions

It's the same as $wgGroupPermissions.

Change-Id: I9c289219c53314970e7af5998c00d6a372bb00cb

8 years agoregistration: Fix "namespaces" schema to match code
Kunal Mehta [Sat, 1 Aug 2015 06:01:59 +0000 (23:01 -0700)]
registration: Fix "namespaces" schema to match code

The "namespaces" property is supposed to be an array of objects, not an
object. Document the properties of the individual objects, and mark the
actually required ones as required.

Change-Id: Ie3cee3e720b962073a1ff098659faa9f11d44fe3

8 years agoMerge "Revision::newNullRevision: Make sure the Title is set in the constructor"
jenkins-bot [Sat, 1 Aug 2015 01:05:13 +0000 (01:05 +0000)]
Merge "Revision::newNullRevision: Make sure the Title is set in the constructor"

8 years agoRevision::newNullRevision: Make sure the Title is set in the constructor
Kunal Mehta [Sat, 1 Aug 2015 00:00:48 +0000 (17:00 -0700)]
Revision::newNullRevision: Make sure the Title is set in the constructor

Revision::__construct() calls Revision::getContentModel() to initialize
the 'content_model' field. If a Title object is not set, it will try to
look up the page in the slave database, which might be behind. At that
point it will default to wikitext, which is problematic during imports.

By passing the Title object in the constructor instead of afterwards,
the content model should be intialized properly.

Bug: T91170
Change-Id: I7fea996ea5b723967272af8cb344150aea10bb54

8 years agoMerge "mediawiki.filewarning: Use 'visibility: hidden' instead of 'display: none'"
jenkins-bot [Sat, 1 Aug 2015 00:00:38 +0000 (00:00 +0000)]
Merge "mediawiki.filewarning: Use 'visibility: hidden' instead of 'display: none'"

8 years agoMerge "mw.widgets.DateInputWidget: Allow not having a date selected"
jenkins-bot [Sat, 1 Aug 2015 00:00:17 +0000 (00:00 +0000)]
Merge "mw.widgets.DateInputWidget: Allow not having a date selected"

8 years agoRevert I4afaecd8: Avoiding writing sessions for no reason
Ori.livneh [Fri, 31 Jul 2015 23:13:35 +0000 (23:13 +0000)]
Revert I4afaecd8: Avoiding writing sessions for no reason

I4afaecd8 reduced the frequency at which the TTL of sessions keys is reset, on
the assumption that we were doing it a whole lot more often than necessary.
We can now assume that this assumption was false, because an uncommitted revert
of this change which I pushed to production earlier caused the rate of session
loss errors in the logs to plummet.

Bug: T102199
Change-Id: Ie67f4ca000afcf3d4f44155c13f91cd4c286866d

8 years agoFix spelling mistake in ResourceLoader inline documentation
Ori Livneh [Fri, 31 Jul 2015 02:07:43 +0000 (19:07 -0700)]
Fix spelling mistake in ResourceLoader inline documentation

Change-Id: Ie099eed12ba45aeb1d3b8b08c911222af25e42fa

8 years agomediawiki.filewarning: Use 'visibility: hidden' instead of 'display: none'
Bartosz Dziewoński [Fri, 31 Jul 2015 21:27:47 +0000 (23:27 +0200)]
mediawiki.filewarning: Use 'visibility: hidden' instead of 'display: none'

Setting 'display: none' causes OOjs UI to get confused when it's
trying to show the popup and calculating its position.

Bug: T107554
Change-Id: Iaf8d728c58efd67cdb965b4cd529164aaabc02be

8 years agoMerge "Monolog: Add Formatter that uses MWExceptionHandler::getRedactedTraceAsString"
jenkins-bot [Fri, 31 Jul 2015 19:52:02 +0000 (19:52 +0000)]
Merge "Monolog: Add Formatter that uses MWExceptionHandler::getRedactedTraceAsString"

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 31 Jul 2015 19:29:37 +0000 (21:29 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ibfb6ba5ceb9cc7cc8365891a76936c7754afabea

8 years agoMonolog: Add Formatter that uses MWExceptionHandler::getRedactedTraceAsString
Bryan Davis [Thu, 30 Jul 2015 19:02:35 +0000 (13:02 -0600)]
Monolog: Add Formatter that uses MWExceptionHandler::getRedactedTraceAsString

Add a Monolog Formatter class that uses
MWExceptionHandler::getRedactedTraceAsString when outputting stack
traces.

Bug: T107440
Change-Id: Ic580c137e27aac95435f7b073a18cf61820b172f

8 years agomw.widgets.DateInputWidget: Allow not having a date selected
Bartosz Dziewoński [Thu, 30 Jul 2015 22:36:19 +0000 (00:36 +0200)]
mw.widgets.DateInputWidget: Allow not having a date selected

* Allow empty value, that is, no date being selected. Display
  an appropriate label when that is the case.
* Start with no date selected, rather than today's date.
* When the field is empty and gets focus, set the date to today, on
  the assumption that this is likely what the user wants. Permit
  emptying the field, though.
* Highlight today's date on the calendar.

Bonus cleanup:

* Update the UI from #setValue, immediately when needed.
* Improve validation of incoming values.
* Correct some documentation.
* Correct some bad copy-paste in styles which caused disabled widget
  to not display correctly.

Change-Id: I7a1f7ff20eb6fc21ea59ecfe48deb9305c8e29e8

8 years agoresourceloader: Use WrappedString library to merge RLQ inline scripts
Timo Tijhof [Fri, 31 Jul 2015 00:13:04 +0000 (17:13 -0700)]
resourceloader: Use WrappedString library to merge RLQ inline scripts

Update unit test to account for the internal 'html' prop now
being an array instead of string. And update expected values to
no longer have a trailing line break.

Bug: T27202
Change-Id: I105b6ef2e64ab8b891562e16940edb88592bd415

8 years agoXmlSelect: Tweak documentation
Bartosz Dziewoński [Thu, 30 Jul 2015 21:03:19 +0000 (23:03 +0200)]
XmlSelect: Tweak documentation

Correct some variable names and types, also some words.

Change-Id: I7ff0664f7ac4f26be8427a2140e2280aa7620657

8 years agoUse Perso-Arabic numberic system for South Azeri (azb)
mjbmr [Thu, 30 Jul 2015 14:31:40 +0000 (14:31 +0000)]
Use Perso-Arabic numberic system for South Azeri (azb)

Change-Id: Ifb0e8edc1ca4d0720ceb048a46589158b34eec52

8 years agoMerge "Added sanitizeHdrs() tests for Swift"
jenkins-bot [Fri, 31 Jul 2015 09:32:03 +0000 (09:32 +0000)]
Merge "Added sanitizeHdrs() tests for Swift"

8 years agoMerge "array_shift returns null on empty array, not false"
jenkins-bot [Fri, 31 Jul 2015 01:43:26 +0000 (01:43 +0000)]
Merge "array_shift returns null on empty array, not false"

8 years agoarray_shift returns null on empty array, not false
Matthew Flaschen [Fri, 31 Jul 2015 01:27:07 +0000 (21:27 -0400)]
array_shift returns null on empty array, not false

Change-Id: I690f9dd0de11ff60f9cba9f401c6e456e7ba8bd6

8 years agoAdd wikimedia/wrappedstring library
Timo Tijhof [Fri, 31 Jul 2015 00:31:58 +0000 (17:31 -0700)]
Add wikimedia/wrappedstring library

Depends on I9a468fd65f1 in mediawiki/vendor.

Change-Id: I3f952aa059d930130a8d712e39798cc1031e0a25

8 years agoMerge "Actually run the Less compilation tests"
jenkins-bot [Thu, 30 Jul 2015 23:33:12 +0000 (23:33 +0000)]
Merge "Actually run the Less compilation tests"

8 years agoMake Special:MIMESearch expensive again
Ori Livneh [Thu, 30 Jul 2015 22:54:18 +0000 (15:54 -0700)]
Make Special:MIMESearch expensive again

Anything slow enough to get reaped by query timeouts is expensive, right?
This reverts change I88826ae7bf.

Bug: T107265
Change-Id: Ic9ed00f164d8fa076bb53649f77a9e5ac1e33a6d

8 years agoMerge "Switch search-suggest message to use Message::parse()"
jenkins-bot [Thu, 30 Jul 2015 22:35:23 +0000 (22:35 +0000)]
Merge "Switch search-suggest message to use Message::parse()"

8 years agoMerge "Throw exception on falsy server in RedisConnectionPool."
jenkins-bot [Thu, 30 Jul 2015 21:57:15 +0000 (21:57 +0000)]
Merge "Throw exception on falsy server in RedisConnectionPool."

8 years agoMerge "Use XmlSelect in ProtectionForm"
jenkins-bot [Thu, 30 Jul 2015 21:47:47 +0000 (21:47 +0000)]
Merge "Use XmlSelect in ProtectionForm"

8 years agoThrow exception on falsy server in RedisConnectionPool.
Matthew Flaschen [Thu, 30 Jul 2015 21:38:42 +0000 (17:38 -0400)]
Throw exception on falsy server in RedisConnectionPool.

Surprisingly, IP::splitHostAndPort does not return false for these.

Also, tweak documentation of splitHostAndPort.

Bug: T107498
Change-Id: I4230b1e7ba0fa2d28be8de3e0e7b064e58f0579c

8 years agoresourceloader: Restore minification for 'user' and 'site' module
Timo Tijhof [Wed, 29 Jul 2015 23:50:10 +0000 (16:50 -0700)]
resourceloader: Restore minification for 'user' and 'site' module

Follows-up 19a40cd3ad, Id599b6be4.

TODO: Change minification to happen per-module instead of per-request so that
these hacks aren't needed (T107377).

Change-Id: Iaa281ee117f2ae7a51884d256dfbb1807224fc52

8 years agoMerge "Add getImageInfo to mw.Upload"
jenkins-bot [Thu, 30 Jul 2015 21:20:38 +0000 (21:20 +0000)]
Merge "Add getImageInfo to mw.Upload"

8 years agoMerge "Use XmlSelect in WebInstallerPage"
jenkins-bot [Thu, 30 Jul 2015 21:20:32 +0000 (21:20 +0000)]
Merge "Use XmlSelect in WebInstallerPage"

8 years agoUse XmlSelect in ProtectionForm
Geoffrey Mon [Thu, 30 Jul 2015 20:00:41 +0000 (20:00 +0000)]
Use XmlSelect in ProtectionForm

Bug: T93234
Change-Id: I47e08fb364dda6e4f59cd84c4c135e267e2c7bd9

8 years agoUse XmlSelect in WebInstallerPage
Geoffrey Mon [Thu, 30 Jul 2015 19:07:48 +0000 (19:07 +0000)]
Use XmlSelect in WebInstallerPage

Bug: T93234
Change-Id: Iba0067b4fac381e715e92d87c682261eef8d6669

8 years agoMerge "Revert "Use OOUI HTMLForm for Special:Watchlist""
jenkins-bot [Thu, 30 Jul 2015 19:05:20 +0000 (19:05 +0000)]
Merge "Revert "Use OOUI HTMLForm for Special:Watchlist""

8 years agoAdd getImageInfo to mw.Upload
Mark Holmquist [Thu, 30 Jul 2015 18:52:38 +0000 (13:52 -0500)]
Add getImageInfo to mw.Upload

Just a little shortcut and so you don't need to rely on the promises.

Bug: T107460
Change-Id: I1e36f3cd8cb6b50ec5db6d77512ce03cd98a2caf

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 30 Jul 2015 18:56:15 +0000 (20:56 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I9b25e1abaaf2e6e4ba21e4c540a79bdb30521cea

8 years agoRevert "Use OOUI HTMLForm for Special:Watchlist"
Legoktm [Thu, 30 Jul 2015 18:55:20 +0000 (18:55 +0000)]
Revert "Use OOUI HTMLForm for Special:Watchlist"

Issues with spacing (T107311), probably shouldn't have
been merged right before the branch cut.

This reverts commit 9508c5bd576ee4206eb8e89b7d2ba82985f4e151.

Change-Id: Ibf2ca5a33b8ab0f7381c720c6c92fbfd7a7c819d

8 years agoMerge "Add pageid to API parse output"
jenkins-bot [Thu, 30 Jul 2015 18:45:40 +0000 (18:45 +0000)]
Merge "Add pageid to API parse output"

8 years agoresourceloader: Convert inline statements to queued functions
Timo Tijhof [Mon, 27 Jul 2015 23:40:52 +0000 (16:40 -0700)]
resourceloader: Convert inline statements to queued functions

Instead of having inline statements be plain statements wrapped
in an if-conditional block, convert them to inline functions
pushed into a queue.

The queue is kept in-memory until the startup module is loaded
at which point it transforms into a function that is immediately
invoked.

This is a prerequisite to making the top queue asynchronous.
Until then these functions will just run immediately as they
occur in the HTML after the startup module.

This is based on the previously reverted commit e86e5f8460.

Bug: T107399
Change-Id: Ifb38efca219c10ab973ad4c4ebb21c6a4239b005

8 years agoAdd pageid to API parse output
Geoffrey Mon [Wed, 29 Jul 2015 12:32:21 +0000 (12:32 +0000)]
Add pageid to API parse output

Bug: T27134
Change-Id: I4ef765e18020f93d7861e62d20649c89fca0f828

8 years agoUse STRAIGHT_JOIN in SpecialWhatlinkshere query
Aaron Schulz [Wed, 29 Jul 2015 20:51:42 +0000 (13:51 -0700)]
Use STRAIGHT_JOIN in SpecialWhatlinkshere query

* Also added a type hint to avoid IDE errors in this area

Bug: T106682
Change-Id: I825eedaceb0c0323de85466e48582d72c57b201a

8 years agoObjectFactory: add support for setter injection
Bryan Davis [Thu, 30 Jul 2015 17:24:07 +0000 (11:24 -0600)]
ObjectFactory: add support for setter injection

Extend ObjectFactory::getObjectFromSpec() to support setter injection on
created objects when the specification includes a 'calls' member.

Bug: T107440
Change-Id: Ie2ece2e9658dd2d895d3935da4dc2da8a0a316e2

8 years agoMerge "logger: Fix undefined variable $data"
jenkins-bot [Thu, 30 Jul 2015 02:00:12 +0000 (02:00 +0000)]
Merge "logger: Fix undefined variable $data"

8 years agoAdded sanitizeHdrs() tests for Swift
Aaron Schulz [Thu, 30 Jul 2015 01:57:23 +0000 (18:57 -0700)]
Added sanitizeHdrs() tests for Swift

Change-Id: I2e3c3225c729e5220ca16f6ef4518da49e7f721c

8 years agologger: Fix undefined variable $data
Timo Tijhof [Thu, 30 Jul 2015 01:26:52 +0000 (18:26 -0700)]
logger: Fix undefined variable $data

Follows-up 77a397125f. Also add unit test that would've caught
this "PHP Notice: Undefined variable: data" error.

Change-Id: I8a3bd9c8b685c2aa7a466e3d3c61ffa027be02fa

8 years agoresourceloader: Ensure 'user' loads after 'site' (asynchronously)
Timo Tijhof [Wed, 29 Jul 2015 23:38:28 +0000 (16:38 -0700)]
resourceloader: Ensure 'user' loads after 'site' (asynchronously)

Regression from 19a40cd3ad which made the 'site' module load asynchronously,
but the 'user' module was still loaded synchronously which meant it ran before
the site module finished.

Full test script at <https://gist.github.com/Krinkle/5db1d237da241b243485>.

Also:
* This changes the 'user' module to load asynchronously.
* Similar to 19a40cd3ad for site module, this makes the styles for the user
  module load twice. Harmless but doesn't look pretty internally.
* Remove the obsolete XXX-comment from 0b5389d98d (r56770).
* Add comment documenting the fact that the 'excludepages' feature can cause
  User/common.js and User/vector.js to be mis-ordered when the user previews
  common.js edits. This has always been the case (since 2009) and is merely
  being documented here.

Bug: T32358
Bug: T106736
Bug: T102077
Change-Id: Id599b6be42613529fb7f4dd3273f36ccadb3a09e

8 years agoMerge "Decolonize 'viewsourcetext' and 'viewyourtext' messages"
jenkins-bot [Thu, 30 Jul 2015 00:53:45 +0000 (00:53 +0000)]
Merge "Decolonize 'viewsourcetext' and 'viewyourtext' messages"

8 years agoMerge "HTMLForm: Correct documentation"
jenkins-bot [Thu, 30 Jul 2015 00:53:41 +0000 (00:53 +0000)]
Merge "HTMLForm: Correct documentation"

8 years agoHave RedisConnectionPool explicitly implement Psr\Log\LoggerAwareInterface
Kunal Mehta [Wed, 29 Jul 2015 22:38:40 +0000 (15:38 -0700)]
Have RedisConnectionPool explicitly implement Psr\Log\LoggerAwareInterface

Follows up 93f360a01b49

Change-Id: I0266be9771b7bf58de9f573249f28c6f28adf059

8 years agoRedisConnectionPool: convert to PSR3 logging
Bryan Davis [Wed, 29 Jul 2015 20:32:42 +0000 (14:32 -0600)]
RedisConnectionPool: convert to PSR3 logging

Convert from wfDebug* logging to Psr\Log\LoggerInterface. Use structured
logging data to tag log messages the associated redis server.

Bug: T88649
Change-Id: I5fc4c68e52b13a688bdcc93d9defc9f973323241

8 years agoresourceloader: Implement support for 'site' into mw.loader
Timo Tijhof [Fri, 24 Jul 2015 04:00:39 +0000 (21:00 -0700)]
resourceloader: Implement support for 'site' into mw.loader

* No longer a dedicated <script> with only=scripts.
  This means it creates no extra script request and becomes a versioned
  request using data from the startup module.

* No longer in group=site.
  This means it collapses into the existing bottom queue.
  Not even one dedicated script request, but zero.

* No longer exclude from module storage. This can be cached like any other module.
  It was previously excluded because it was already loaded separately.

* Change mw.loader#execute to special-case the 'site' module with $.globalEval.

* Add hack to ensure the styles of the 'site' module still load without
  JavaScript, in the top, and after the ResourceLoaderDynamicStyles marker.
  This unfortunately stays its own request. Not sure how to avoid that.

Bug: T32358
Bug: T106736
Bug: T102077
Change-Id: I291a8c3aae1a71760bec58161891c1bd77c9b724

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 29 Jul 2015 19:20:43 +0000 (21:20 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I5de4b112125b9be8f2aa2ae23a0defaaec323407

8 years agoMerge "Populate rev_content_model when a move causes default content model to change"
jenkins-bot [Wed, 29 Jul 2015 17:45:17 +0000 (17:45 +0000)]
Merge "Populate rev_content_model when a move causes default content model to change"

8 years agoMerge "Add Content-Length header to thumb.php redirects"
jenkins-bot [Wed, 29 Jul 2015 16:10:52 +0000 (16:10 +0000)]
Merge "Add Content-Length header to thumb.php redirects"

8 years agoAdd Content-Length header to thumb.php redirects
Giuseppe Lavagetto [Wed, 29 Jul 2015 10:12:55 +0000 (12:12 +0200)]
Add Content-Length header to thumb.php redirects

Without the Content-Length header, the response is sent with
Transfer-Encoding: Chunked, which is somehow mangled by
mod_fastcgi. Varnish then claims the response is malformed and declines
to process it, sending the client a 503 instead.

This is a followup of 0ee9e717f49b9e15bd63fd66f3d0967939c35b05

Bug: T84842
Change-Id: Ia610a43789e6ff14cfc0964f285bbec39c890152