Parser test to test language conversion around HTML tags.

Change-Id: I227db72f89b574bfc94ada153d959d9b0d143e8e
Improve documentation for "pipe trick"

- Actually mention "pipe trick" so the code is searchable
- Use spaces rather than tabs for vertical alignment
- Clarify comment for double-width brackets and mention revision it was added

Change-Id: Iaf365e313144e378133fb16c64efa5b7e47d4a6a
Kill DeviceDetection

The project to integrate MobileFrontend into core has
been stashed for now, and this leftoff is preventing
further work on MF by creating a class name conflict.

Change-Id: I6a9a25877bf75496fb4074acc83e12b7cb8dd86a
(bug 457) use semantic headings for the navigation menu

This changes the current scheme of using (varies per skin) <h4>, <h5>
and/or <h6> tags (with nothing apart from the main <h1> above them in
the hierarchy) to <h2> above the entire navigation and <h3>s as portlet
headings.

The <h2> is hidden for normal browsers, but accessible for screen-readers
or text browsers. Its content comes from a new message called
"navigation-heading".

The changes were applied to Vector, Monobook, Modern and CologneBlue. The
change to Monobook also resulted in the heading appearing in Chick and
MySkin (I intentionally didn't implement hiding it in these skins, as they
are intended respectively as a super-lightweight one and a skim "template")
and in Simple (where I did hide it, but didn't bother with further CSS fixups).

Related changes and technical notes:
* Monobook had various styles for apparently all heading levels inside of a
  .portlet, but only <h5>s (now <h3>s) could ever be generated.
  The styles were also ancient, straight from 2004 (I git-blamed),
  so I removed them, as they were almost certainly completely unused.
* Modern lacked font-size for .portlet h5 (now h3). It worked mostly okay
  before (font-size of h5 is similar to size of regular text), but after
  headings were changed to <h3>s, they became too large. I used
  font-size:0.83em (copied from Opera's user-agent stylesheet), but this
  might result in slight font-size changes on various browsers.
* Vector's variant menu is deeply broken. I changed the bonkers structure
  to two <h3>s, one with id=mw-vector-current-variant. This is still
  broken, but I don't really know how to do it properly.
* In Vector's CSS, the height for div.vectorMenu h3 a (previously h5 a)
  had to be changed. I used 1.9em, the same as used for div.vectorTabs li a,
  but this probably shouldn't be measured in ems anyway.
* CologneBlue and Vector lacked wrappers over the entire navigation;
  I added <div id="mw-navigation"> to both of them. In CologneBlue this
  also required moving <div id="toplinks"> to the bottom of the generated
  HTML, which is a good idea anyway.

Change-Id: I9a2ebd503ec9dd901802a9b3b1f5137a85990373
[FileBackend] Clear the stat cache in doQuickOperations() for sanity.

Change-Id: Id3fcc9b0bbb881947734edaa6799d71d9adb9881
Clean up Language::markNoConversion().

* IRIs are getting more and more widely used these days so Chinese
  characters are also needed to be prevented from being converted
  in text of external links.
* So now all markNoConversion() functions in languages with variants
  do the same thing. Merge them into a single function in the
  Language class and drop implementations in individual languages.
* By the way rephrase phpdoc of that function, and (bug 24798) fix
  the link detection regex to use wfUrlProtocolsWithoutProtRel().
  Protocol-relative regex is excluded to avoid false positives.
* Add parser test for it.

Change-Id: I2ec0ac2b9b11221584adb72555168498de209d57
(bug 42211) Fix the display of some user rights log entries

Change-Id: Iba8891bbf0891fa82c0e76b5a604bf05c14aded5
Add 'dimensions' and 'thumbmine' to resultproperties in prop=imageinfo

This also effects list=allimages/prop=stashimageinfo

Change-Id: I5fee9539f376a2164f3143f23c23aa18fb96a4b8
Fix hash validation in api

That must be a exact 31 characters, not 31 characters at once in a
longer string

Remove upper characters, because database contains only lower characters
and there is no strtolower

Change-Id: Ic980fd719955842fad30a315eedd71381caf8aa5
Various simple optimizations for the chunked upload process.

* This adds an UnregisteredLocalFile::setLocalReference()
  function, which is used to avoid an extra GET request.
* This removes the useless rename() in stashFile(). We just
  need to make sure the stashed file has the right extension.
  Getting rid of the rename makes setLocalReference() usable.
* Also adds some debug logging with ellapsed time.

Change-Id: I087701ad0c27a4eba74591e6b49f5667b011424c
[FileBackend] Added optional callback parameter to concatenate().

* This lets callers update the cache/db with the operation progress so that
  APIs can be made to use this and expose this information to client polling.

Change-Id: I9a86c1c5ffccf029be5a150e5998c3ce4740ec62
(bug 42215) "Welcome, X" as account creation title

Use "Welcome, <user>" as title on successful account creation.
Create separate displaySuccessfulAccountCreation() function that
uses new welcomeuser and welcomecreation-agora messages split from
existing welcomecreation message.

Change-Id: I087c272952e5b2a271411764d368f723719cd0e3
(bug 40632) Remove CleanupPresentationalAttributes feature

Removed $wgCleanupPresentationalAttributes, the associated
code it toggles and references to those in src and tests.

Also fixes bug 40329.

This was originally introduced in r94465 (released in REL1_19) but
disabled by default. Then enabled in r98053, after which several
bugs were filed and eventually the decision was made to remove
this feature.

Removed obsolete release-note entry, as this is to be backported
to REL1_20.

Change-Id: I4e86305520a3b22ef88381caab55d24abac932e3
Correct documentation for "maxlag" API parameter

Replication lag above the number of seconds specified in the "maxlag"
parameter causes index.php to send HTTP status code 503, yet that is
not the case for the API. See bug 31156.

Change-Id: I3847629d3a34633d8e319a055a1e3252bd4ec638
Merge "(bug 40632) Remove CleanupPresentationalAttributes feature"
(bug 36053) Login returnto doesn't work if title isn't in the URI

Returnto after login didn't work if title wasn't given as URI
parameter. I'm using $this->getTitle() to find it out, in case
the user got read rights (per code comment above my change).

Change-Id: I14d92581ce790355404d3c184fa6542a24f7a130
Merge "(bug 36053) Login returnto doesn't work if title isn't in the URI"
Always return something nice in Language::translateBlockExpiry()

Change-Id: I30a1950df5ae018cb9124392dc8d6e99ca3b98b8
(bug 41792) Fix Special:Preferences tabs in IE8 compatibility mode

It seems that IE8 lies about supporting "onhashchange" with the standard
feature test when in compatibility mode. So, sadly, we must add in an
explicit browser check if we want this to work.

Change-Id: Ib2c1b150acd0a0b5b16604e8623d6aa78017a9a0
Test un-closed noinclude, onlyinclude and includeonly tags

Change-Id: I328d1e2f5c1362caa0cb32efcd7b81dab7bab8c5