getPageDimensions returning false for failure wasn't being handled
properly, causing ugly output. The doc comment on that method was
wrong as well.
Most notably causing random whitespace output:
https://commons.wikimedia.org/wiki/?curid=22151015
(screenshot: http://i.imgur.com/c21EpVx.png).
Bug: 41281
Change-Id: I1a49474309e15808928f877dfc29ae366d028928
This also makes sure that the search inputs receive their placeholder,
which fixes bug 47475.
Bug: 47475
Change-Id: Ie1215078edb38f98ec57d2a3ec46b1d0ace0bc30
This happens if a page is moved to a subpage of itself and the option
"move subpages" is enabled, since the freshly moved page will be found
as being one of its subpages and moved a second time as such.
Bug: 49840
Change-Id: I318aab8c3c6e7ae718a3366ab00aba6e5420529b
These are needed for OAuth grants.
Note that, even if 'editmywatchlist' is not granted, various actions
will still allow for adding but not removing of pages.
Change-Id: Ie33446a228dd6ed0114730935c1bf65667f5ce01
It is sometimes useful to generate documentation for multiple files or
directories. Doxygen INPUT statement supports multiple space separated
paths. Example usage:
php maintenance/mwdocgen.php --file docs,input
Change-Id: I66a805d80307c6502e9b440df63a37bb13093d84
In a wikitech thread about benchmarking, Tim Starling has been running
benchmarks using CPU binding and raised priority. This patch copy paste
Tim recommendations so we do not forget about them.
Change-Id: Ic6f2803c005f70a2f0400f28fafc3c8d209e0667
To better control what we are really covering, this patch uses PHPUnit
forceCoversAnnotation option. That makes it to record covering if and
only if @covers is used.
Also rewrapped the options to uses tabulations.
Change-Id: I467a5077a65b93cce08072a8d088b0b9c652a426
The module is now loaded in the 'top' queue instead of the 'bottom'
one, so the <body> tag isn't loaded when the RTL detection is done.
Use the <html> tag's 'dir' attribute instead.
Bug: 50196
Change-Id: I6e277a9503a1e6003bc7bf9f9468ed7b35552e60
Most hook handlers are written with the intent of complementing or augmenting
core functionality rather than vetoing it, making it quite natural for a
developer to forget that the caller is waiting for permission to proceed. The
potential for confusion is magnified by the fact that DOM event handlers and
jQuery event handlers are not required to return an explicit value for the
handled event to continue propagating.
This change tolerates null return values (both implicit and explicit -- that
is, both 'return null' and no return statement at all) from hook handlers. To
abort processing, a hook function must return an explicit false or an error
string.
This change should not break any existing hook functions, as returning null is
currently an error.
Bug: 50134
Change-Id: I11deb2117ff9233c77868470f50e0d8f74053545
Currently, either '*' is given as condition meaning "everything" or an array must
be passed since DatabaseBase::makeList() requires an array. Now the parameter is
consistent with one of other similar methods, since a string will be handled
correctly.
Bug: 50078
Change-Id: Id5a8220d21245669f1091a3b5ed1def65b22d375
Having it in "Redirecting special pages" seems wrong to me. It's better to
have it in the company of "Lists of pages" like Special:PrefixIndex,
Special:AllPages and friends.
Change-Id: I8c59275e64dce158cd7a5b027c7efbbdb941e4c4