Add 'mw-anonuserlink' class for anonymous users

Bug: 43179
Change-Id: I57780e1045044e8532dc6defc4cca2e27434c055
Handle conflicting image format options in predictable way.

The PHP parser now uses the first image format option that appears,
and ignores subsequent format options.  This enforces the "zero or one"
language in
https://en.wikipedia.org/wiki/Wikipedia:Extended_image_syntax#Type
and makes parser behavior more predictable.  This also matches Parsoid
behavior.

Change-Id: Ifa32238b3d274123c7b98022cf688c33edfd7197
Ignore height as well as width for framed images.

This makes the PHP parser behavior consistent with the specification at
https://www.mediawiki.org/wiki/Help:Images#Size_and_frame which says:
"An image with frame always ignores the size specification."

This is actually a fix to File::getUnscaledThumb() -- which didn't
actually return an unscaled thumb if the 'height' parameter was set.

Bug: 62258
Change-Id: I0ce295a4681042c446314945da5f811448b44fe6
Allow additional interwiki prefixes on local interwiki links

This code was added by Brion back in 2004 as part of r6398.

According to Brion, links like [[en:wikt:foo]] on English Wikipedia are
"just crazy!", but I can't see any reason to disallow them.

Bug: 61357
Change-Id: If449e60a0ef95cfe3dd6f4b1809ac012be62a0ea
Remove #bodyContent { width: 100%; }

The container #bodyContent is a div element with the default width auto.

Change-Id: If05afc14f7b1ff9b34d2daf293ade6cb6a97493e
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
Avoid site outages due to broken job queues

Change-Id: I71f1bef886850679812e23b8a49fc9b80d9b6102
Use ResourceLoader::makeComment to embed page title in wiki modules

It's a bit odd to simply decline to entitle wiki page modules that have '*/' in
their title when the title could simply be escaped.

Change-Id: I4456ae683cdae4a5a5e4a4a731046cadf1d8ee4d
includes/Linker.php: Added hook for "Media:" links

The static method 'Linker::makeMediaLinkFile' produced a HTML string
without usage of MediaWiki 'Html' class. It also lacked a hook to allow
modifications of the output HTML.

I altered the implementation and added a hook that provides a signature
and behaviour similar to the existing 'LinkerMakeExternalLink' and
'LinkBegin'/'LinkEnd' hooks. It provides all available context information
and allows modification of single attributes or the output HTML as a
whole. I have updated the 'docs/hooks.txt' file to provide proper
documentation.

Change-Id: I6d7769298a4ca6cbbf807fcebb91fb0d2222f8d8
Bump 1.24

Change-Id: Id62526dad82551eab085be612ff4e604ccfc7b23
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
Couple more 1.24 bumps

Change-Id: I2cd845750c8dd760c74b17d632c66985999d70bd
Profiler class refactoring

* Merged the "collate at end" and "running collate" logic
  into the base class to make it more unified and consistent.
* Pulled out DB code into ProfilerSimpleDB class.
* Removed the ProfilerSimple class and updated child classes.
* Made ProfilerSimpleTrace set the debug information too.
* Work around "ended by close()" bug from 99aef03f. Since the
  getRawData() method gets called while some wfProfileOut() calls
  have not yet happened, make it use the matched call data and let
  the final logData() method work on the full data as normal.
* Let ProfilerSimple classes use getFunctionReport() for the profiler
  debug log if it is setup instead of making it just return "".
* Made getRawData() work as best as possible with ProfilerMwprof.
* Removed $wgProfileToDatabase since it is now useless.
* Improved DB profile performance with sqlite.
* Updated visibility of various methods.

Change-Id: I1260bab2b5ba12dccbba701bcae4a637cb85c6e8
Commit DB changes as normal on exception-based GUI errors

Bug: 62091
Change-Id: I36cd645d5f7a939b60f306e5fc093507693b097b
Merge "document.createElementNS is null or not an object in IE8"
Merge "Couple more 1.24 bumps"
Remove jquery.delayedBind module

As promised, removing the module deprecated in 1.23.

Its test suite was already removed earlier.

Change-Id: Ifc84b09a78007a6a0ea5676b0f12a38937dca2e7
Localisation updates from https://translatewiki.net.

Change-Id: I368d861b49bffa749b488d4600198102a42a5bd2
Fixed some @params documentation

Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.

Change-Id: I8c9f30128b46086064326708a4878228ba459447
Merge "Ignore height as well as width for framed images."