.gitreview: Adjust default branch for REL1_23

Change-Id: If52695d2415d03d45b492700aa1ddc074faf83bc
document.createElementNS is null or not an object in IE8

Having $wgDebugToolbar = true and visiting the wiki with IE8 will give
no debug toolbar, using ?debug=true gives a "document.createElementNS is
null or not an object" javascript fatal.

Throw a error. The function 'createSvgElement' will never be called,
because profiling gives a "An ES5 compatible javascript engine
is required for the profile visualization." in IE8.

Change-Id: I763dae7459cb88f892823b9458ed6dd1dbbf3e9d
(cherry picked from commit cd361413d80a6af61991da642ace1c12130d2c0f)
Merge "document.createElementNS is null or not an object in IE8" into REL1_23
ResourceLoader::makeLoaderImplementScript: Bind args as '$' and 'jQuery'

Make the function that wraps ResourceLoader modules bind the first and
second arguments it receives to '$' and 'jQuery'. This patch is a
follow-up to change I0c9edac35, which updated the invocation of
mw.loader#implement so that it passes jQuery as the first and second
argument.

Change-Id: I0f0c3a04c3b0e6a28115a10bf11a2a78aca66c21
Add @since to Skin::getAllowedSkins

Follow-Up: I0b0fdfb5615c22aa876882c3ca344ebb1f10c4bd
Change-Id: Ia14edc64c57bd8a9da0f2bda2d061d1a67aa0101
FormatJson: Make it possible to change the indent string

This is to allow consistency with MediaWiki PHP and JS files (e.g. when
generating JSON i18n files), not because tabs are "better" than spaces for
indenting code (both have advantages and disadvantages).

Because PHP's json_encode() function hardcodes the indent string, using tabs
has a performance cost (in post-processing the output) and is less suitable
for web output; thus the API and ResourceLoader debug mode will continue to
use four spaces. Adjusting the maintenance scripts and JSON files is left to
separate change sets.

Bug: 63444
Change-Id: Ic915c50b0acd2e236940b70d5dd48ea87954c9d5
(cherry picked from commit 1efdda25ee5cbaea2b7e2dd7afdbaf53063d4b68)
Remove font choices from REL1_23 branch while the implementation is unstable

Especially as they are undocumented, against release policy (bug 63351).
Follows up to Ic5ba836364d04b2c3814777b69b5f47fce25292a etc.

Bug: 63942
Change-Id: I595feec9a525104e382f7730208b1cf32c496e8d
WebInstallerOutput: Fix path to jquery.js

Follow-up to Id5ead145 and I335e4c08.

Bug: 64091
Change-Id: If40f479df7d68071d6ce5d2f3b8251e6bf3eb80e
jquery.suggestions: Handle CSS ellipsis when calculating suggestions' widths

This is so nasty :(

Bug: 64093
Change-Id: Ia6b1376dddf69a0faa214d5c9a756bdcd9658367
(cherry picked from commit 271be3d09acfd3eb1cea3c0729b813c3d193c7df)
Don't cache $wgResourceLoaderLESSVars in a static

Caching the value of $wgResourceLoaderLESSVars in a static variable that is
enclosed in a closure makes it harder to reset global state for test runs, and
it does so in the name of a performance benefit that is miniscule.

Change-Id: I0958b03818f56ab73c8c9124daa9e54cc59f2428
(cherry picked from commit a2bf2346cdaa4b4dce7b005f20220c3ceb56f6bb)
Merge "Don't cache $wgResourceLoaderLESSVars in a static" into REL1_23
Prevent GC during phpunit shutdown

To keep phpunit from segfaulting during shutdown, turn off GC for
php 5.3.

Bug: 62623
Change-Id: Ie59780e37cbea027cc204a43df406667c3f432ab
(cherry picked from commit 90b3d6285481e5fab8fdbc0ad3a0415f82555df3)
vector: Do styles the ResourceLoader way

It used to be done like this a few releases ago, but went
through some perturbation when the LESS rewrite happened
and afterwards during beta-testing the typography refresh.

The current way causes enough issues that I think the gain
from getting rid of it is worth losing some brevity.

Bug: 56592
Change-Id: Ibeff450fad789fbc67d95a1a9befd315f7405421
(cherry picked from commit e4f973bd4c6bb0b9c4d0d210fde18ec73c11aee4)
mediawiki.mixins.less: Correctly embed images in .background-image-svg

Using the /* @embed */ annotation twice for the same property
(background-image) confuses the LESS compiler, resulting in one of the
images not being embedded.

Let's use the embeddable() and embed() MediaWiki LESS functions,
like in the .background-image mixin.

And let's extend and clean up the documentation while we're here.

Bug: 61941
Change-Id: I39ea2004b9db34d096eed08b3ffdfcaf8d5fcd7d
(cherry picked from commit 127222af0b77650d752f5ba05165701fe7fd7895)
Deprecate ResourceLoaderGetStartupModules

In bug 63240, Roan calls it a 'misfeature', which I think is exactly right. It
has been used as a lazy workaround for having to think about load-order,
dependency management, and race conditions.

Bug: 63240
Change-Id: Ic48ad39c6d3d166d6bb8f60dfdd5f95aa7ed16a6
(cherry picked from commit e8b46e5e6660c9fbce01c982e98c7662b135a130)
Skip loading PHP shims for JSON i18n files

For now, non-message data (e.g. special page aliases, magic words) belong
in separate files having their own keys in $wgExtensionMessagesFiles. It
is unnecessary to read any PHP files listed under keys that exist in
$wgMessagesDirs; they are merely compatibility shims.

Bug: 63926
Change-Id: I92013d0a45e83ad0f5ac483a3db867806eb71f8a
(cherry picked from commit e0043257c02e866d176fc9cbb7721fa2defcf091)
Revert "Removed useless JobQueue return values"

This reverts commit bc8c89d2df39d64f15770d29874904ebcff2f131.

Bug: 64007

Change-Id: I4b4dbe4637dc50cd4630ef19d54f01efba10e138
(cherry picked from commit c76d5a95c1dd1c3086461feae8bc1c0b688bde1e)
generateJsonI18n.php: Use tabs for indentation

Bug: 63444
Change-Id: Iaaf6b1a08c316f29c18fd5c9494decee401a43f1
(cherry picked from commit cdf358807c8370648233c28d3e740a8c9aedb078)
JSON i18n shim: Only register LocalisationCacheRecache handler once

Because LocalisationCache::recache() includes PHP shims each time it is
called (e.g. for a different language), in such cases as automated testing,
the shims could end up registering handlers many times instead of only
once, leading to a rather significant, progressively worse slowdown.

Checking whether the shim has already been loaded, and if so, not
registering the handler again, avoids this performance problem.

I also made the shim compatible with PHP 5.2 (minimum PHP version for
MW 1.17 - 1.19) by avoiding closures and __DIR__, and I added a
--shim-only option to generateJsonI18n.php to allow regenerating
existing shims.

Bug: 63928
Change-Id: I3bb39e7d2bb094873061b3b2adf7066bf26c1b71
(cherry picked from commit e0736bd1cdb3c2971baf344006f474580b8e326c)
API: Don't rollback changes if the exception was a UsageException

In I1b7396ceb, we were trying to log failures to Special:Log, but
since $this->dieUsage throws an exception, the log entry insertion
was being rolled back.

This is similar to I36cd645d which was for index.php calls.

Change-Id: I136ba66d2f939fcdd0c9326e04d686a30449bf4c
Follows-Up: I8f1da51187b281fe4afc0d5a0c49f5caf3612e92
(cherry picked from commit 487e9dc599298b57e5583f19945987ce0b0f287b)