lhc/web/wiklou.git
8 years agoQA: Upgrade mediawiki_selenium for fix to Raita logging
Dan Duvall [Tue, 2 Jun 2015 21:17:41 +0000 (14:17 -0700)]
QA: Upgrade mediawiki_selenium for fix to Raita logging

Bug: T100904
Change-Id: Ibb92e9e5dfc1dc24250f44a9d291b25dac2da0a6

8 years agoMerge "mw.loader.store: decline to store items > 100 kB"
jenkins-bot [Fri, 5 Jun 2015 01:42:26 +0000 (01:42 +0000)]
Merge "mw.loader.store: decline to store items > 100 kB"

8 years agoMerge "HTMLForm: Break long lines"
jenkins-bot [Fri, 5 Jun 2015 01:21:02 +0000 (01:21 +0000)]
Merge "HTMLForm: Break long lines"

8 years agoHTMLForm: Break long lines
Florian [Fri, 17 Apr 2015 16:56:32 +0000 (18:56 +0200)]
HTMLForm: Break long lines

Change-Id: Ia09a28ccc361d1a54069bd23a412831fe9c20f34

8 years agomw.loader.store: decline to store items > 100 kB
Ori Livneh [Fri, 5 Jun 2015 00:06:49 +0000 (17:06 -0700)]
mw.loader.store: decline to store items > 100 kB

If the length of the string representation of a module exceeds 100,000
characters, decline to store it in localStorage, due to bug T66721.
(While it is true that string length !== byte length, the skew introduced by
counting multi-byte characters as single bytes is not important enough to merit
the use of $.byteLength).

Based on my analysis, the modules that would be ineligible for caching in local
storage under the new schema are:

- ext.visualEditor.core (624 kB)
- oojs-ui (179 kB)
- oojs-ui.styles.icons (132 kB)

To fix this bug, it is not enough to not store new items; we must also ensure
that any old values cached prior to the introduction of a limit are purged. So
update mw.loader.store#prune to do that, too.

Bug: T66721
Change-Id: Ie45467fc0b2db7cc283f30626af7d587da24bd90

8 years agoMerge "resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries"
jenkins-bot [Fri, 5 Jun 2015 00:16:19 +0000 (00:16 +0000)]
Merge "resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries"

8 years agoresourceloader: Refactor ResourceLoaderWikiModule to reduce database queries
Timo Tijhof [Thu, 4 Jun 2015 01:52:42 +0000 (02:52 +0100)]
resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries

Wiki modules are special due to their isKnownEmpty implementation and support
for foreign databases. MediaWiki doesn't have convenient ways of making
Revision objects for remote wikis. As such, wiki modules will keep using meta
data to generate the hash.

However minimise needless cache invalidation by refining the implementation.

Impact:
* Remove use of getMsgBlobMtime(). This module doesn't support getMessages().
* In the title info, use the revision content sha1 and size for tracking.
  The page_touched previously used updates too often. It's updated both on edits
  for various types of purges. Using the rev_sha1 means old versions return
  when the content is the same. Regardless of how the content changed via
  revert or actual edits resulting in the same contnet.
* Change in-process cache to be keyed by page list instead of entire
  ResourceLoaderContext.
  Because of this, getTitleInfo() was previously performing its batch query
  twice on the same page. Once for only=styles (top) and only=scripts (bottom).
  Both operate on the full getPages() set but had different context keys.

Clean up:
* Better document the support for foreign databases.
* Move Title construction to getContent to reduce duplication.
* Remove use of getDefinitionMtime(). That method is a no-op since the switch
  to version hashing.
* Remove remaining use of mtime in getModifiedTime(). This is now covered by
  hashing the title info in getDefinitionSummary().

Also refactor the code to be more readable. No intended change in behaviour.

Bug: T98087
Change-Id: Id46740db04c0c42bc5ca87d1487230a32feb34df

8 years agoMerge "Use HttpStatus::header instead of manually crafting header()"
jenkins-bot [Thu, 4 Jun 2015 20:25:37 +0000 (20:25 +0000)]
Merge "Use HttpStatus::header instead of manually crafting header()"

8 years agoMerge "WebResponse: Implement statusHeader() using the new HttpStatus::header()"
jenkins-bot [Thu, 4 Jun 2015 20:24:12 +0000 (20:24 +0000)]
Merge "WebResponse: Implement statusHeader() using the new HttpStatus::header()"

8 years agoresourceloader: Make ResourceLoader logger aware
Timo Tijhof [Thu, 4 Jun 2015 03:52:45 +0000 (04:52 +0100)]
resourceloader: Make ResourceLoader logger aware

Change-Id: Ifa197cce1906bc0530dfa873dfde91abbe540637

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 4 Jun 2015 19:14:12 +0000 (21:14 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ia78d394ebff2c701442d32f63c1936d1139200c5

8 years agoMerge "Deprecate $wgEnableParserCache"
jenkins-bot [Thu, 4 Jun 2015 18:33:29 +0000 (18:33 +0000)]
Merge "Deprecate $wgEnableParserCache"

8 years agoMerge "resourceloader: Remove redundant getModifiedTime implementations"
jenkins-bot [Thu, 4 Jun 2015 18:23:03 +0000 (18:23 +0000)]
Merge "resourceloader: Remove redundant getModifiedTime implementations"

8 years agoDeprecate $wgEnableParserCache
Aaron Schulz [Tue, 19 May 2015 21:47:33 +0000 (14:47 -0700)]
Deprecate $wgEnableParserCache

* There is little reason to disable it and one can set $wgParserCacheType
  if truly needed

Change-Id: Iec5fc7729d0f9de67ec2aa6c0e9c2c1e3e0d57ad

8 years agoMerge "resourceloader: Add unit test for validateScriptFile()"
jenkins-bot [Thu, 4 Jun 2015 18:16:09 +0000 (18:16 +0000)]
Merge "resourceloader: Add unit test for validateScriptFile()"

8 years agoMerge "language: Use item 'fallbackSequence' instead of duplicating logic"
jenkins-bot [Thu, 4 Jun 2015 17:58:04 +0000 (17:58 +0000)]
Merge "language: Use item 'fallbackSequence' instead of duplicating logic"

8 years agolanguage: Use item 'fallbackSequence' instead of duplicating logic
Timo Tijhof [Mon, 1 Jun 2015 23:04:26 +0000 (00:04 +0100)]
language: Use item 'fallbackSequence' instead of duplicating logic

The 'fallbackSequence' is exactly generated for this purpose. It
is equal to the value of 'fallback' after splitting, trimming
and ensuring 'en' is present. See LocalisationCache::recache().

Also simplify returning of the first array index by returning it
directly instead of modifying the array first.

Due to an inconsistency between how LocalisationCache and Language classes
treat the fallback sequence differently, we have to manually fallback
to 'en' in case of unknown language codes. This is because otherwise
Language::factory() will throw an exception causing tests to fail.
We should investigate whether this is desirable or not, but keeping
existing behaviour for now and documenting it.

Change-Id: I9c1d51b59aabebf5a31f38205304bb8cc22dcd8c

8 years agoMerge "Use a faster 7z command line by default"
jenkins-bot [Thu, 4 Jun 2015 16:23:04 +0000 (16:23 +0000)]
Merge "Use a faster 7z command line by default"

8 years agoMerge "Revert "Add 'mediawiki.skinning.logo' module""
jenkins-bot [Thu, 4 Jun 2015 16:16:59 +0000 (16:16 +0000)]
Merge "Revert "Add 'mediawiki.skinning.logo' module""

8 years agoAvoid data loss if compression fails
daniel [Thu, 4 Jun 2015 15:02:19 +0000 (17:02 +0200)]
Avoid data loss if compression fails

Change-Id: I0b6de030b101fdc3b2ea2cd0c15913e33e9da98d

8 years agoRevert "Add 'mediawiki.skinning.logo' module"
Krinkle [Thu, 4 Jun 2015 15:00:02 +0000 (15:00 +0000)]
Revert "Add 'mediawiki.skinning.logo' module"

This is redundant and creates more modules than necessary.

The use case of not wanting to load "mediawiki.skinning.interface"
in a custom skin is invalid. For this exact purpose we already created
the ResourceLoaderSkinModule class which is generic and re-usable.

Skins can add that class name to their stylesheet file module to
append the logo styles. This way involves no extra modules. Not in
core, and not in any skin.

This reverts commit 43346e1527dc6f30e33c5acd4f479acc0eab7d0a.

Change-Id: I2b0a1d5ed72f2d5338ad26af6e04227bec45dcc1

8 years agomediawiki.searchSuggest: Add track event on search form submission
Baha Man [Tue, 28 Apr 2015 20:03:52 +0000 (16:03 -0400)]
mediawiki.searchSuggest: Add track event on search form submission

Only fired from the skin-provided search box currently.

Bug: T97310
Change-Id: Iaccacdabca427afe1c1d5c42ae6d18d19a70543b

8 years agoUse HttpStatus::header instead of manually crafting header()
Timo Tijhof [Mon, 1 Jun 2015 14:31:52 +0000 (15:31 +0100)]
Use HttpStatus::header instead of manually crafting header()

Also:
* Update wfHttpError() to use uppercase DOCTYPE, to match other code
  such as Html.php, wfThumbError(), HttpError.php, etc.

Change-Id: I4027e7fe1a138b03f78797b6d1bfe7bd1064d360

8 years agoWebResponse: Implement statusHeader() using the new HttpStatus::header()
Timo Tijhof [Sun, 24 May 2015 12:31:11 +0000 (14:31 +0200)]
WebResponse: Implement statusHeader() using the new HttpStatus::header()

* Convert existing use of WebResponse::header() for HTTP status headers
  to use this new statusHeader() method.

* Extend unit test forFauxResponse.

I'm not calling HttpStatus::header directly in code. We keep the abstraction
layer of WebResponse so that responses can continue to be mocked/fauxed without
affecting the outer HTTP response.

Change-Id: I8a536e16659fa88b54cffa1457efb889efa5fcd6

8 years agoHttpStatus: Implement header() method
Timo Tijhof [Sun, 24 May 2015 12:05:13 +0000 (14:05 +0200)]
HttpStatus: Implement header() method

Standardise this. Currently MediaWiki does this in many different ways.

> WebResponse->header( "HTTP/1.0 $code $message" );
> WebResponse->header( "HTTP/1.1 $code $message" );
> WebResponse->header( "HTTP/1.x $code $message" );
> WebResponse->header( "HTTP/1.1 $code " . HttpStatus::getMessage( $code ) );
> WebResponse->header( "HTTP/1.1 $code $message", true, $code );
> header( "Status: $code $message", true, $code );

Change-Id: I1551e89808a1a67310549ec8d9fcb387754c9169

8 years agoMerge "hierarchicalize(!) stat names"
jenkins-bot [Wed, 3 Jun 2015 23:51:47 +0000 (23:51 +0000)]
Merge "hierarchicalize(!) stat names"

8 years agohierarchicalize(!) stat names
Ori Livneh [Wed, 3 Jun 2015 22:38:02 +0000 (15:38 -0700)]
hierarchicalize(!) stat names

Graphite expects name components to be dot-separated, so our habit of using
dashes doesn't really make sense. Change metric names to be more compatible
with Graphite, except the job queue's, since that will require a gdash
dashboard definition migration.

Change-Id: I77d0ff7606a8fc88434e4352d23415a9a8f4725a

8 years agoMerge "Explicitly define module position for mediawiki.htmlform.ooui.styles"
jenkins-bot [Wed, 3 Jun 2015 21:59:15 +0000 (21:59 +0000)]
Merge "Explicitly define module position for mediawiki.htmlform.ooui.styles"

8 years agoMerge "Normalize hooks.txt formatting"
jenkins-bot [Wed, 3 Jun 2015 21:50:32 +0000 (21:50 +0000)]
Merge "Normalize hooks.txt formatting"

8 years agoMerge "Implemented getAllAcquiredJobs in JobQueueDB"
jenkins-bot [Wed, 3 Jun 2015 20:29:41 +0000 (20:29 +0000)]
Merge "Implemented getAllAcquiredJobs in JobQueueDB"

8 years agoMerge "ResourceLoader::filter: use APC when running under HHVM"
jenkins-bot [Wed, 3 Jun 2015 20:24:21 +0000 (20:24 +0000)]
Merge "ResourceLoader::filter: use APC when running under HHVM"

8 years agoImplemented getAllAcquiredJobs in JobQueueDB
Aaron Schulz [Wed, 3 Jun 2015 20:04:42 +0000 (13:04 -0700)]
Implemented getAllAcquiredJobs in JobQueueDB

Change-Id: Ie9f0b9357b365f8bddd1f2fdcac11dec29aec876

8 years agoMerge "Localisation updates from https://translatewiki.net."
Translation updater bot [Wed, 3 Jun 2015 20:17:02 +0000 (20:17 +0000)]
Merge "Localisation updates from https://translatewiki.net."

8 years agoResourceLoader::filter: use APC when running under HHVM
Ori Livneh [Wed, 13 May 2015 03:45:01 +0000 (20:45 -0700)]
ResourceLoader::filter: use APC when running under HHVM

On HHVM, (a) the cost of a ResourceLoader::filter cache miss is smaller, and
(b) APC is faster and more resilient than PHP's. These two things tilt the
scales in favor of using APC rather than Memcached.

Change-Id: I30b490e5bc815849d4b0bb06f2dbbb68825ed225

8 years agoMerge "jobqueue: Record stats on how long it takes before a job is run"
jenkins-bot [Wed, 3 Jun 2015 20:10:01 +0000 (20:10 +0000)]
Merge "jobqueue: Record stats on how long it takes before a job is run"

8 years agojobqueue: Record stats on how long it takes before a job is run
Kunal Mehta [Wed, 3 Jun 2015 19:20:38 +0000 (12:20 -0700)]
jobqueue: Record stats on how long it takes before a job is run

Bug: T101054
Change-Id: I5dc13d79a5ec2e8cb6679e3ff2535b5cb031ca30

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 3 Jun 2015 19:47:14 +0000 (21:47 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I24e09368cdcdb0b0d7517e5219098fb246ad525a

8 years agoNormalize hooks.txt formatting
Bryan Davis [Wed, 3 Jun 2015 05:03:51 +0000 (23:03 -0600)]
Normalize hooks.txt formatting

* Line wrap at 80 columns
* Added missing '$' for pass by reference parameters
* "$param_name: ..." for all params
* Parameter descriptions that wrap have a 2 space hanging indent
* "DEPRECATED! Use ..." immediately follows hook name
* Indent code examples with tabs per MW coding standards
* Move "hanging" information into description headers
* Fix some really out-of-order alphabetizations

Change-Id: Ic5453c90fb9b58e9fc137d8f45dcd255957bf76d

8 years agoMerge "Move Title null check in Special:RevisionDelete"
jenkins-bot [Wed, 3 Jun 2015 19:36:11 +0000 (19:36 +0000)]
Merge "Move Title null check in Special:RevisionDelete"

8 years agoMove Title null check in Special:RevisionDelete
umherirrender [Wed, 3 Jun 2015 19:16:41 +0000 (21:16 +0200)]
Move Title null check in Special:RevisionDelete

The property $this->targetObj was used before null check in
SpecialRevisionDelete::getList

Move up the existing null check to avoid the fatal:

Catchable fatal error: Argument 3 passed to
RevisionDeleter::createList() must be an instance of Title, null given,
called in \includes\specials\SpecialRevisiondelete.php on line 354 and
defined in \includes\revisiondelete\RevisionDeleter.php on line 83

On request with an unknown rev id

Follow-Up: Ic078af5417798db1b2900057dbf7514112e94b46
Bug: T96538
Change-Id: I0c7913ecb11ffce844add7b1f3b810d54c367519

8 years agoExplicitly define module position for mediawiki.htmlform.ooui.styles
Bartosz Dziewoński [Wed, 3 Jun 2015 18:26:06 +0000 (20:26 +0200)]
Explicitly define module position for mediawiki.htmlform.ooui.styles

It was written before the warnings were added, but merged afterwards,
so this got missed, or something like that.

Change-Id: If2d7d3c41568ae7005dc99101dc6ba8fc038d4a8

8 years agoMerge "Let deduplicateRootJob() accept JobSpecification for consistency"
jenkins-bot [Wed, 3 Jun 2015 17:38:35 +0000 (17:38 +0000)]
Merge "Let deduplicateRootJob() accept JobSpecification for consistency"

8 years agoresourceloader: Don't cache minification of user.tokens
Timo Tijhof [Thu, 14 May 2015 01:31:42 +0000 (02:31 +0100)]
resourceloader: Don't cache minification of user.tokens

As of b1e4006b4, the tokens are different on every request.
Caching these is completely useless because the cache entry is
simply unreachable and is extra overhead on every request for
logged-in users to save content to Memcached.

Whether they should be minified at all and whether they perhaps
shouldn't change on every request is a separate matter.

Bug: T84960
Change-Id: I6016e4b01e44e0acbfd6d49f7d99555e2290c9cb

8 years agoMerge "content: Recognise .json as JsonContent in User and MediaWiki namespace"
jenkins-bot [Wed, 3 Jun 2015 16:25:09 +0000 (16:25 +0000)]
Merge "content: Recognise .json as JsonContent in User and MediaWiki namespace"

8 years agoregistration: Don't override boolean false settings
Kunal Mehta [Wed, 3 Jun 2015 15:03:20 +0000 (08:03 -0700)]
registration: Don't override boolean false settings

Our optimization of !$GLOBALS[$key] was affecting settings where a true
setting was being disabled in LocalSettings.php. Now explicitly check it
is an array before overriding it.

Bug: T100767
Change-Id: Id5397e526d66559bfabe6065223b1181a8a9d31e

8 years agoresourceloader: Remove redundant getModifiedTime implementations
Timo Tijhof [Tue, 2 Jun 2015 18:40:55 +0000 (19:40 +0100)]
resourceloader: Remove redundant getModifiedTime implementations

Follows-up f37cee996e which replaced the getHashMtime() and
getDefinitionMtime() methods with dummies that always return 1.

These getModifiedTime() implementations were only tracking the
definition summary or custom hash, which is already tracked
by getVersionHash().

Notes:
* SpecialCharacterDataModule: This one was odd as it was tracking
  both the mtime *and* the file contents.

* UserCSSPrefsModule/UserOptionsModule: Remove redundant caching.
  Already taken care of by getVersionHash() as of f37cee996e.

Bug: T94074
Change-Id: I6e37c3c2f85ef4599a8643b0efabc18de2f51ec4

8 years agoMerge "wl_notificationtimestamp code comments typo, false statement"
jenkins-bot [Wed, 3 Jun 2015 13:37:33 +0000 (13:37 +0000)]
Merge "wl_notificationtimestamp code comments typo, false statement"

8 years agoMerge "Made User::touch no longer call load()"
jenkins-bot [Wed, 3 Jun 2015 07:47:00 +0000 (07:47 +0000)]
Merge "Made User::touch no longer call load()"

8 years agoAdd a hook for reporting exceptions
Gergő Tisza [Sun, 24 May 2015 11:30:10 +0000 (11:30 +0000)]
Add a hook for reporting exceptions

Bug: T100141
Change-Id: I893f8b93e09f9ef70beef46922d304fdb3600b78

8 years agoMerge "Move XmlSelect to its own file"
jenkins-bot [Wed, 3 Jun 2015 03:34:35 +0000 (03:34 +0000)]
Merge "Move XmlSelect to its own file"

8 years agoMove XmlSelect to its own file
Geoffrey Mon [Tue, 2 Jun 2015 23:43:45 +0000 (19:43 -0400)]
Move XmlSelect to its own file

Move the XmlSelect class to its own file to make it easier to find
and utilize.  Helps prevent the use of unnecessary
Html::openElement, Html::element, etc.

Bug: T93234
Change-Id: I66119a2d0eda15569de06c493a0ee302f21deb3f

8 years agoexception: Use standard message for HTTP status 500
Timo Tijhof [Mon, 1 Jun 2015 14:02:50 +0000 (15:02 +0100)]
exception: Use standard message for HTTP status 500

This is the only case in the MediaWiki code base where a custom
message is used. Supporting in the standard HttpStatus library
would require a $customMessage parameter which seems unnecessary.

Additional information should be communicated using additional
HTTP response headers or inside the body content.

Besides, in current PHP versions and in Apache 2.4, the message is
already being ignored and replaced with the standard message (see T100984).

Bug: T100984
Change-Id: I11b58a2f3ce22568479d36027d15e5c6f428ff15

8 years agomediawiki.template: Mustache should return jQuery object instead of array
jdlrobson [Thu, 30 Apr 2015 00:21:24 +0000 (17:21 -0700)]
mediawiki.template: Mustache should return jQuery object instead of array

This is consistent with Flow and Hogan in Mobile.

Change-Id: If5c9e08ade185ebdb42a292f87d7506a68528c88

8 years agoMerge "Combine deleteArchived{Files,Revisions}.inc into the .php scripts"
jenkins-bot [Wed, 3 Jun 2015 00:05:52 +0000 (00:05 +0000)]
Merge "Combine deleteArchived{Files,Revisions}.inc into the .php scripts"

8 years agoresourceloader: Add unit test for validateScriptFile()
Timo Tijhof [Tue, 2 Jun 2015 22:48:47 +0000 (23:48 +0100)]
resourceloader: Add unit test for validateScriptFile()

Follows-up cd0dff5c00.

Change-Id: Ie208e58053048e932ef3f61f849148b1d88bc0be

8 years agoresourceloader: Use mw.log instead of 'throw' for scripts with syntax errors
Timo Tijhof [Mon, 1 Jun 2015 23:06:46 +0000 (00:06 +0100)]
resourceloader: Use mw.log instead of 'throw' for scripts with syntax errors

For scripts loaded from load.php using mw.loader.implement(), an
exception is handled fine and results in the module state progressing
from 'loading' to 'errror'.

However, for wikis modules loaded with only=scripts from the HTML directly,
there is no wrapper. As such, the state() call appended to the script is
never reached and the module indefinitely stays "loading".

VisualEditor (and others) already explicitly ignore the error state
of the wiki modules (with inline mw.loader.using and casting the Promise to resolved).
However in this case the Promise never completed to neither success nor failure.

As such, this was causing users with syntax errors in their user script to
encounter a stuck VisualEditor loading bar that never goes beyond 70%.

Change-Id: I091a020bdd3392b965e0e25d03b216037fadc48f

8 years agoMerge "cache: Add in-process caching to MessageBlobStore"
jenkins-bot [Tue, 2 Jun 2015 22:23:44 +0000 (22:23 +0000)]
Merge "cache: Add in-process caching to MessageBlobStore"

8 years agocache: Add in-process caching to MessageBlobStore
Timo Tijhof [Thu, 14 May 2015 18:54:39 +0000 (19:54 +0100)]
cache: Add in-process caching to MessageBlobStore

This allows us to continue to use MessageBlobStore::get() as a way
to pre-fetch messages in batches for multiple modules while also
allowing individual modules to retrieve  their messages in a convenient
way.

This is in preparation for implementing ResourceLoaderModule::buildContents
and using it in ResourceLoaderModule::getVersionHash.

ResourceLoader::respond() already fetches message blobs in batches for the
actual response, but it also needs getVersionHash(), which would otherwise
fetch the same messages a second time.

Change-Id: I7e4c8b65765b54807123e85cfbb7eb2e5b2f39bd

8 years agoMerge "Check result of preg_match_all in Parser.php"
jenkins-bot [Tue, 2 Jun 2015 22:08:42 +0000 (22:08 +0000)]
Merge "Check result of preg_match_all in Parser.php"

8 years agoUse less fuzzy User::getDBTouched() in ApiStashEdit::getStashKey()
Aaron Schulz [Thu, 21 May 2015 23:24:42 +0000 (16:24 -0700)]
Use less fuzzy User::getDBTouched() in ApiStashEdit::getStashKey()

* The getTouched() value can bump more often or vary in DCs

Change-Id: Idffa22c9dde7c7950943b104ed61f5779636b7e7

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 2 Jun 2015 19:17:31 +0000 (21:17 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I860b228e2f23cdb32f066943d377b583bc6436eb

8 years agoFixed $flags bit operation precedence fail in User::loadFromDatabase()
Aaron Schulz [Tue, 2 Jun 2015 18:38:43 +0000 (11:38 -0700)]
Fixed $flags bit operation precedence fail in User::loadFromDatabase()

* The bug made READ_LATEST also act as READ_LOCKING

Bug: T100577
Bug: T100869
Bug: T98706
Change-Id: I85092970c236fc4482371216b9f6592c49a27942

8 years agoMove xml_free_parser out of destructor.
Brian Wolff [Mon, 25 May 2015 21:21:59 +0000 (15:21 -0600)]
Move xml_free_parser out of destructor.

Attempt to reduce error log spam. I'm not sure about the exact
cause of this error, nor have I really reproduced locally, so
I don't know if this will help, but getting it out of destructor
seems like a good idea.

I also do not know if calling xml_free_parser is really needed
(Would php automatically destroy parser during garbage collection?)

Bug: T89532
Change-Id: I5709b6cf26cf4a9032a79d2b5f48ed3b4238eaee

8 years agoMerge "Use a fixed comment placeholder string in CSSMin"
jenkins-bot [Tue, 2 Jun 2015 17:40:48 +0000 (17:40 +0000)]
Merge "Use a fixed comment placeholder string in CSSMin"

8 years agoMerge "OOUI theme support"
jenkins-bot [Tue, 2 Jun 2015 17:28:09 +0000 (17:28 +0000)]
Merge "OOUI theme support"

8 years agoMade User::touch no longer call load()
Aaron Schulz [Tue, 2 Jun 2015 00:23:06 +0000 (17:23 -0700)]
Made User::touch no longer call load()

* Just reset mQuickTouched instead of guessing a new value
  in touch() for simplicity

Change-Id: Ibfe551cf061919ab18c4ff634d8db8f3c0eaf0a5

8 years agoUse a fixed comment placeholder string in CSSMin
Ori Livneh [Tue, 2 Jun 2015 03:49:16 +0000 (20:49 -0700)]
Use a fixed comment placeholder string in CSSMin

Both the problem and solution are nearly identical to the ones presented in
I31d4556bb. Use a constant string as a comment placeholder, and differentiate
it from possible user input using \x7f, which is not valid CSS anyway[1].

  [1]: http://www.w3.org/TR/CSS21/grammar.html

Change-Id: I3d3c2578d5e9c1fe52c02e87901cb08d03847ea7

8 years agowl_notificationtimestamp code comments typo, false statement
Federico Leva [Tue, 12 May 2015 19:00:46 +0000 (21:00 +0200)]
wl_notificationtimestamp code comments typo, false statement

The timestamp is updated earlier.

Change-Id: I5c40affc346b85fa5350c381ee3f93c86b26d454

8 years agoMerge "Fixing definition and use of $attrs parameter in Html::buttonAttributes"
jenkins-bot [Tue, 2 Jun 2015 14:20:07 +0000 (14:20 +0000)]
Merge "Fixing definition and use of $attrs parameter in Html::buttonAttributes"

8 years agoMerge "Improve doc of maxage and s-maxage API parameters"
jenkins-bot [Tue, 2 Jun 2015 14:08:39 +0000 (14:08 +0000)]
Merge "Improve doc of maxage and s-maxage API parameters"

8 years agoMerge "Made LoadBalancer debug log entries use "localhost" placeholder"
jenkins-bot [Tue, 2 Jun 2015 13:34:07 +0000 (13:34 +0000)]
Merge "Made LoadBalancer debug log entries use "localhost" placeholder"

8 years agoMerge "Rewrite Language::hebrewNumeral()"
jenkins-bot [Tue, 2 Jun 2015 13:29:19 +0000 (13:29 +0000)]
Merge "Rewrite Language::hebrewNumeral()"

8 years agoMerge "Reduce page deletion lock contention"
jenkins-bot [Tue, 2 Jun 2015 13:20:27 +0000 (13:20 +0000)]
Merge "Reduce page deletion lock contention"

8 years agoRewrite Language::hebrewNumeral()
Amir E. Aharoni [Thu, 21 May 2015 23:26:05 +0000 (02:26 +0300)]
Rewrite Language::hebrewNumeral()

Use arrays instead of strings, to avoid using
string functions with Unicode.

Handle thousands according to how years like 1000, 2000, etc.
are named in the Hebrew Wikipedia.

Bug: T97444
Change-Id: I5334e86793d28dfcf8939a249b03a5ea85fa4e69

8 years agoCleanup the code of Language::hebrewNumeral()
Amir E. Aharoni [Thu, 21 May 2015 22:21:09 +0000 (01:21 +0300)]
Cleanup the code of Language::hebrewNumeral()

Change == to === and add empty lines for readability.

Change-Id: Ifeabbf0d6adca25d8a797bd423f1bbdc0f8223ee

8 years agoAdd tests for Language::hebrewNumeral()
Amir E. Aharoni [Mon, 4 May 2015 21:27:35 +0000 (00:27 +0300)]
Add tests for Language::hebrewNumeral()

Some failing tests are commented out and will be properly fixed
in subsequent commits.

Bug: T97444
Change-Id: I19721b5dc3dc6bbe923d9bf401fcf5d765fb7a7c

8 years agoImprove doc of maxage and s-maxage API parameters
S Page [Tue, 2 Jun 2015 07:52:18 +0000 (00:52 -0700)]
Improve doc of maxage and s-maxage API parameters

They set HTTP cache control headers.  i18-only change.

Change-Id: I9eefdd51d6937388326ceb7b6baa72288221c2f7

8 years agoMerge "Add List-Unsubscribe header to emails"
jenkins-bot [Tue, 2 Jun 2015 05:06:52 +0000 (05:06 +0000)]
Merge "Add List-Unsubscribe header to emails"

8 years agoMerge "mediawiki.ui: checkbox: Render "on top of" the label"
jenkins-bot [Tue, 2 Jun 2015 04:51:44 +0000 (04:51 +0000)]
Merge "mediawiki.ui: checkbox: Render "on top of" the label"

8 years agoFixing definition and use of $attrs parameter in Html::buttonAttributes
kaldari [Tue, 2 Jun 2015 01:46:07 +0000 (18:46 -0700)]
Fixing definition and use of $attrs parameter in Html::buttonAttributes

Also clarifying definition of $modifiers parameter.

Also simplifying code for case where $attrs['class'] is not set.

Change-Id: I425211681ba75cb71c1ccc3b3c038c075ea9acb9

8 years agoregistration: Remove "additionalitems" property from array (authors)
Kunal Mehta [Tue, 2 Jun 2015 01:50:51 +0000 (18:50 -0700)]
registration: Remove "additionalitems" property from array (authors)

It doesn't make sense for arrays which can't have items to begin with.

Follows up bfe4ddd8108efe

Change-Id: I851b70782fa8210802fe576fee771ddf1bdd7fec

8 years agoMerge "composer.json: Downgrade PHPUnit to 3.7.37 (temporarily)"
jenkins-bot [Tue, 2 Jun 2015 01:33:36 +0000 (01:33 +0000)]
Merge "composer.json: Downgrade PHPUnit to 3.7.37 (temporarily)"

8 years agoMerge "Follow-up 727454f: Add mediawiki.widgets to jsduck"
jenkins-bot [Mon, 1 Jun 2015 23:48:53 +0000 (23:48 +0000)]
Merge "Follow-up 727454f: Add mediawiki.widgets to jsduck"

8 years agoMerge "Add help link for 8 more special pages"
jenkins-bot [Mon, 1 Jun 2015 23:47:09 +0000 (23:47 +0000)]
Merge "Add help link for 8 more special pages"

8 years agoFollow-up 727454f: Add mediawiki.widgets to jsduck
James D. Forrester [Mon, 1 Jun 2015 23:33:21 +0000 (16:33 -0700)]
Follow-up 727454f: Add mediawiki.widgets to jsduck

Change-Id: I1715c5bbca8735de8c391dee4e2cec8269414acf

8 years agoMerge "Commit all connections after each job"
jenkins-bot [Mon, 1 Jun 2015 22:15:11 +0000 (22:15 +0000)]
Merge "Commit all connections after each job"

8 years agoCommit all connections after each job
Nik Everett [Fri, 29 May 2015 22:07:27 +0000 (18:07 -0400)]
Commit all connections after each job

If you don't commit the slave connections then they keep their old snapshots.
This clears the snapshots so they don't get out of date views of the world.

Bug: T100838
Change-Id: I1f6f910d88324beb589b2ad9466d8786376eda55

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 1 Jun 2015 20:08:37 +0000 (22:08 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: I491182176e3357ed36de4856e20af71d735dcd27

8 years agoMerge "Moved addAutopromoteOnceGroups() call to a deferred update"
jenkins-bot [Mon, 1 Jun 2015 19:24:56 +0000 (19:24 +0000)]
Merge "Moved addAutopromoteOnceGroups() call to a deferred update"

8 years agoMerge "Add tests for HttpError"
jenkins-bot [Mon, 1 Jun 2015 18:54:02 +0000 (18:54 +0000)]
Merge "Add tests for HttpError"

8 years agoAdd tests for HttpError
aude [Mon, 1 Jun 2015 18:19:19 +0000 (20:19 +0200)]
Add tests for HttpError

Still missing tests for HttpError::report, but would
have caught the issue that Ie216d19 fixed.

Change-Id: Ic35d70af52c3a2d2a25fc3b9952383198db31fb1

8 years agoRemove legacy vertical-align from select fields
Florian [Mon, 1 Jun 2015 18:01:38 +0000 (20:01 +0200)]
Remove legacy vertical-align from select fields

They shouldn't be aligned at the top by default.

Bug: T98493
Change-Id: I17b0825079ff28dfc9ea2c1ec24018073aec3794

8 years agoFix undefined variable $header in HttpError
Marius Hoch [Mon, 1 Jun 2015 17:40:41 +0000 (19:40 +0200)]
Fix undefined variable $header in HttpError

Change-Id: Ie216d1959f2ea903fdbc124b718b4988e08229ae
Follows-up: I8b61d7e9ea4101e3a9ef5f9a59a97db45aeef68c

8 years agoMerge "Add 'mediawiki.skinning.logo' module"
jenkins-bot [Mon, 1 Jun 2015 17:16:54 +0000 (17:16 +0000)]
Merge "Add 'mediawiki.skinning.logo' module"

8 years agoHttpError: Consistently escape document title
Timo Tijhof [Sun, 24 May 2015 12:39:15 +0000 (14:39 +0200)]
HttpError: Consistently escape document title

Wasn't actually a vulnerability because HttpStatus::getMessage
can only return one of a fixed set of values which are all plain
text without any special characters. However the return value
there is meant to plain text and not html, so just like
Html::element and other interfaces, things should be consitently
escaped.

Also renamed variables for clarity.

Change-Id: I8b61d7e9ea4101e3a9ef5f9a59a97db45aeef68c

8 years agoMerge "Add Vivek Ghaisas (polybuildr) to the CREDITS file"
jenkins-bot [Mon, 1 Jun 2015 13:42:41 +0000 (13:42 +0000)]
Merge "Add Vivek Ghaisas (polybuildr) to the CREDITS file"

8 years agoMerge "Made isAllowed(), showHistory() and formatRevisionRow() protected to allow...
jenkins-bot [Mon, 1 Jun 2015 13:38:55 +0000 (13:38 +0000)]
Merge "Made isAllowed(), showHistory() and formatRevisionRow() protected to allow for easier subclassing"

8 years agoMerge "SpecialMediaStatistics: Protect against invalid indexes"
jenkins-bot [Mon, 1 Jun 2015 11:50:33 +0000 (11:50 +0000)]
Merge "SpecialMediaStatistics: Protect against invalid indexes"

8 years agoMerge "Fix some RecentChange phpdoc return types"
Brian Wolff [Mon, 1 Jun 2015 11:16:20 +0000 (11:16 +0000)]
Merge "Fix some RecentChange phpdoc return types"

8 years agoMerge "Tweak 'position' of 'mediawiki.skinning.*' modules"
jenkins-bot [Mon, 1 Jun 2015 11:13:07 +0000 (11:13 +0000)]
Merge "Tweak 'position' of 'mediawiki.skinning.*' modules"