lhc/web/wiklou.git
8 years agoSpecialWatchlist: Keep checkboxes and their labels together
Bartosz Dziewoński [Thu, 19 Nov 2015 20:31:16 +0000 (21:31 +0100)]
SpecialWatchlist: Keep checkboxes and their labels together

Style added to shared.css, since I intend to reuse it elsewhere.
We have a lot of inline style="white-space: nowrap;" in some places.

Bug: T119055
Change-Id: If6cfcaac070cd51a93c078248b65020ae81d94f2

8 years agoMerge "TOC: Restore missing underlines in Firefox"
jenkins-bot [Thu, 19 Nov 2015 16:43:45 +0000 (16:43 +0000)]
Merge "TOC: Restore missing underlines in Firefox"

8 years agoTOC: Restore missing underlines in Firefox
Fomafix [Fri, 6 Nov 2015 20:27:34 +0000 (20:27 +0000)]
TOC: Restore missing underlines in Firefox

According to <http://www.w3.org/TR/css-text-decor-3/#line-decoration>,
text decorations are not propagated to the contents of inline blocks
and inline tables, and 'display: table-cell' generates an inline table
when used without any parent table-rows and tables.

Firefox currently seems to be the only browser handling this correctly,
see <https://bugzilla.mozilla.org/show_bug.cgi?id=1222703>.

This is a follow-up to c7894deb.

Bug: T92481
Change-Id: Iae4a1e6fd30be950f0f1c40f47b4d2483002fe72

8 years agoMerge "HTMLForm: Do not render hidden elements as elements"
jenkins-bot [Thu, 19 Nov 2015 16:28:05 +0000 (16:28 +0000)]
Merge "HTMLForm: Do not render hidden elements as elements"

8 years agoAdd a new message key on watchlist for "Hide"
Raimond Spekking [Thu, 19 Nov 2015 13:56:04 +0000 (13:56 +0000)]
Add a new message key on watchlist for "Hide"

The older message key "hide" is used on many places, often inline
But this new message is used as first word of a line and at least in
German it needs a capital letter in the translation

Change-Id: I26ed976d89d1dc9759abf22f6d39b77d26c68731

8 years agoMerge "mediawiki.jqueryMsg: Extend mw.Message with new #parseDom method"
jenkins-bot [Thu, 19 Nov 2015 08:06:51 +0000 (08:06 +0000)]
Merge "mediawiki.jqueryMsg: Extend mw.Message with new #parseDom method"

8 years agoMerge "Improve docs for lag related DB functions"
jenkins-bot [Thu, 19 Nov 2015 07:33:19 +0000 (07:33 +0000)]
Merge "Improve docs for lag related DB functions"

8 years agoMerge "SquidUpdate doc cleanups"
jenkins-bot [Thu, 19 Nov 2015 07:23:53 +0000 (07:23 +0000)]
Merge "SquidUpdate doc cleanups"

8 years agoMerge "phpcs: Assignment expression not allowed"
jenkins-bot [Thu, 19 Nov 2015 03:28:40 +0000 (03:28 +0000)]
Merge "phpcs: Assignment expression not allowed"

8 years agoImprove docs for lag related DB functions
Aaron Schulz [Thu, 19 Nov 2015 02:23:03 +0000 (18:23 -0800)]
Improve docs for lag related DB functions

* They can return false if replication is stopped.
* Also remove redundant related doc blocks.

Change-Id: I40a1cb2da2f23815b9da8f79195df45c5e510585

8 years agomediawiki.jqueryMsg: Extend mw.Message with new #parseDom method
Bartosz Dziewoński [Tue, 3 Nov 2015 23:48:11 +0000 (00:48 +0100)]
mediawiki.jqueryMsg: Extend mw.Message with new #parseDom method

Unlike #parse, this one returns a jQuery set of DOM nodes and not a
HTML string, for two benefits:

* Allows to skip unnecessary HTML serialization and reconstruction
  when we just want to insert the message contents somewhere.

  Old way:
    $( '#foo' ).html( mw.message( 'foo' ).parse() );
  New way:
    $( '#foo' ).append( mw.message( 'foo' ).parseDom() );

  This is roughly equivalent to the old alternative:
    $( '#foo' ).msg( 'foo' );
  But that way can't be used if you start with a mw.Message object, or
  don't yet know where the elements will be inserted.

* Allows to preserve the event handlers when a function is passed as
  message parameter.

    mw.messages.set( 'foo', '[$1 Click me!]' );
    $( '#foo' ).append( mw.message( 'foo', function () {
      console.log( 'Link clicked!' );
    } ).parseDom() );

Change-Id: Ia09131c2ffc1d149ca6b1c32dcd918a539c3a719

8 years agonamespaceDupes: Ignore duplicate key errors in link table updates
Roan Kattouw [Thu, 19 Nov 2015 00:24:17 +0000 (16:24 -0800)]
namespaceDupes: Ignore duplicate key errors in link table updates

Bug: T115824
Change-Id: I67f57f680587c2c1e00f63a268019270bf8d5f86

8 years agoSquidUpdate doc cleanups
Aaron Schulz [Thu, 19 Nov 2015 00:07:29 +0000 (16:07 -0800)]
SquidUpdate doc cleanups

Change-Id: Ia5b8060e8a93f40a2e31272e043b225f59fb6d50

8 years agoMerge "Race condition fixes for refreshLinks jobs"
jenkins-bot [Wed, 18 Nov 2015 22:41:18 +0000 (22:41 +0000)]
Merge "Race condition fixes for refreshLinks jobs"

8 years agoMerge "Allow findHooks.php to compare parameter references of hooks"
jenkins-bot [Wed, 18 Nov 2015 21:27:49 +0000 (21:27 +0000)]
Merge "Allow findHooks.php to compare parameter references of hooks"

8 years agoMerge "Allow findHooks.php to compare parameter count of hooks"
jenkins-bot [Wed, 18 Nov 2015 21:17:20 +0000 (21:17 +0000)]
Merge "Allow findHooks.php to compare parameter count of hooks"

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Wed, 18 Nov 2015 20:42:58 +0000 (21:42 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I8aa21270c652b0d3818b6f45e44112f8a2982955

8 years agophpcs: Assignment expression not allowed
umherirrender [Wed, 18 Nov 2015 18:32:05 +0000 (19:32 +0100)]
phpcs: Assignment expression not allowed

Fix some "Assignment expression not allowed"

Found by tests:
https://integration.wikimedia.org/ci/job/mediawiki-core-phpcs/2736/consoleFull

Change-Id: Ibfc62b0aaa5c7fa63081edea3ef2b4d0dc984f85

8 years agoAllow findHooks.php to compare parameter references of hooks
umherirrender [Wed, 14 Oct 2015 19:36:08 +0000 (21:36 +0200)]
Allow findHooks.php to compare parameter references of hooks

Check if all hooks in hooks.txt have a &, if the code also have & and
the other way round.

Fix all hooks in hooks.txt to have a clean run of the script.

Change-Id: I1b45253e20dc310e825cdc17e0e2e9c8fb315bab

8 years agoAPI: Remove dbg, txt, and yaml formats
Brad Jorsch [Thu, 12 Nov 2015 17:58:46 +0000 (12:58 -0500)]
API: Remove dbg, txt, and yaml formats

Per RFC: https://www.mediawiki.org/wiki/Requests_for_comment/Ditch_crappy_API_formats

Bug: T95715
Change-Id: I8e4e9ad3c96504cf4587cb4632504eff21b5ff75

8 years agoMerge "Use $foo.msg( 'bar' ) rather than $foo.html( mw.message( 'bar' ).parse() )"
jenkins-bot [Wed, 18 Nov 2015 13:49:41 +0000 (13:49 +0000)]
Merge "Use $foo.msg( 'bar' ) rather than $foo.html( mw.message( 'bar' ).parse() )"

8 years agoAllow findHooks.php to compare parameter count of hooks
umherirrender [Sun, 20 Sep 2015 09:40:53 +0000 (11:40 +0200)]
Allow findHooks.php to compare parameter count of hooks

All wrong hook documentation gets fixed with own patch sets:
https://gerrit.wikimedia.org/r/#/q/project:mediawiki/core+branch:master+topic:hooksdoc,n,z
and Iae0285b1a39cf851aaaa735cb22e95c839813997

Change-Id: I5991c4f0ff3ed1fbad18a38169a62d406bf4d105

8 years agoMerge "profileinfo: Suppress frivolous warning about usort callback"
jenkins-bot [Wed, 18 Nov 2015 04:14:06 +0000 (04:14 +0000)]
Merge "profileinfo: Suppress frivolous warning about usort callback"

8 years agoMerge "Use makeGlobalKey() directly instead of wfGlobalCacheKey()"
jenkins-bot [Wed, 18 Nov 2015 03:20:17 +0000 (03:20 +0000)]
Merge "Use makeGlobalKey() directly instead of wfGlobalCacheKey()"

8 years agoprofileinfo: Suppress frivolous warning about usort callback
Timo Tijhof [Wed, 18 Nov 2015 01:24:20 +0000 (01:24 +0000)]
profileinfo: Suppress frivolous warning about usort callback

When sorting the profile output by a column (e.g. ms/call) the
following error appears:

> PHP Warning:
> usort(): Array was modified by the user comparison function at profileinfo.php:439

This is a known bug in PHP where usage of certain debug features
can cause usort() to detect reference count change and wrongly
claim that the object was changed.

Change-Id: I89ec0149aae46f51de647cdf6c6d645c45cbc185

8 years agoUpdate OOjs UI to v0.13.3
James D. Forrester [Wed, 18 Nov 2015 01:25:01 +0000 (17:25 -0800)]
Update OOjs UI to v0.13.3

Release notes:
 https://git.wikimedia.org/blob/oojs%2Fui.git/v0.13.3/History.md

Change-Id: If131ec0d7663d6493f23b00c9451544767b7807a

8 years agoUse makeGlobalKey() directly instead of wfGlobalCacheKey()
Timo Tijhof [Wed, 18 Nov 2015 00:21:02 +0000 (00:21 +0000)]
Use makeGlobalKey() directly instead of wfGlobalCacheKey()

Saves a small trip through ObjectCache::getLocalClusterInstance(),
call_user_func_array, and func_get_args.

Change-Id: If5d2170accaecb6cc8c0520ab9de9241b42a4727

8 years agoMerge "ForeignStructuredUpload.BookletLayout: Add direct dependency on 'moment'"
jenkins-bot [Tue, 17 Nov 2015 23:49:42 +0000 (23:49 +0000)]
Merge "ForeignStructuredUpload.BookletLayout: Add direct dependency on 'moment'"

8 years agomediawiki.action.edit.preview: Remove ref to non-existant 'tooltip-p-lang' message
Timo Tijhof [Tue, 17 Nov 2015 22:58:58 +0000 (22:58 +0000)]
mediawiki.action.edit.preview: Remove ref to non-existant 'tooltip-p-lang' message

This message does not exist in MediaWiki core. And even if one creates it locally,
it is not used by MediaWiki.

It is used for the p-logo link (not the section). And for individual links in
the toolbox and other portlet sections. But not for the sections themselves,
those only have labels (typically rendered as <h3> or something).

This reference was spamming logs with:
> [resourceloader] MessageBlobStore::fetchMessage failed to find tooltip-p-lang (en)

Change-Id: Ie1420230dc0857c1e38641697098b4adb2b28afb

8 years agoMerge "resourceloader: Include 'raw' in ResourceLoaderContext hash"
jenkins-bot [Tue, 17 Nov 2015 22:54:34 +0000 (22:54 +0000)]
Merge "resourceloader: Include 'raw' in ResourceLoaderContext hash"

8 years agoMerge "resourceloader: Reformat code around member grouping in ResourceLoaderContext"
jenkins-bot [Tue, 17 Nov 2015 22:54:29 +0000 (22:54 +0000)]
Merge "resourceloader: Reformat code around member grouping in ResourceLoaderContext"

8 years agoForeignStructuredUpload.BookletLayout: Add direct dependency on 'moment'
Ed Sanders [Tue, 17 Nov 2015 22:50:37 +0000 (14:50 -0800)]
ForeignStructuredUpload.BookletLayout: Add direct dependency on 'moment'

Change-Id: I4ed1ac988ba7b3aaebee884f662f4d16b09784cc

8 years agoMerge "Have SquidUpdate::newFromTitles use getSquidURLs"
jenkins-bot [Tue, 17 Nov 2015 22:33:56 +0000 (22:33 +0000)]
Merge "Have SquidUpdate::newFromTitles use getSquidURLs"

8 years agoMerge "Remove deprecated wgRateLimitLog"
jenkins-bot [Tue, 17 Nov 2015 22:19:40 +0000 (22:19 +0000)]
Merge "Remove deprecated wgRateLimitLog"

8 years agoRemove deprecated wgRateLimitLog
Bryan Davis [Tue, 17 Nov 2015 21:55:42 +0000 (14:55 -0700)]
Remove deprecated wgRateLimitLog

Remove the backwards compatibility shims for $wgRateLimitLog which was
deprecated in 1.23 (I86131c4).

Change-Id: I771bbaff43b44d011bff81ddda4f35166ea5f77e

8 years agoresourceloader: Include 'raw' in ResourceLoaderContext hash
Timo Tijhof [Tue, 17 Nov 2015 21:15:24 +0000 (21:15 +0000)]
resourceloader: Include 'raw' in ResourceLoaderContext hash

This parameter was introduced last year as a way to extract
bare scripts from modules without any 'mw.loader.state()' suffix.

When ResourceFileCache is used ($wgUseFileCache) this causes
cache pollution as it didn't include getRaw() in the hash.

Change-Id: I7b9f9b6a5756777462395b911abafb62468cbefa

8 years agoresourceloader: Reformat code around member grouping in ResourceLoaderContext
Timo Tijhof [Tue, 17 Nov 2015 21:14:17 +0000 (21:14 +0000)]
resourceloader: Reformat code around member grouping in ResourceLoaderContext

* No effective change. Only code reformatting.
* Logically group related members.
* Break up items one per line in getHash().

Change-Id: I8ccbe9d071a5c39f5c3d36d0d990574fb0ed8d72

8 years agoresourceloader: Omit getDirection() ResourceLoaderContext hash
Timo Tijhof [Tue, 17 Nov 2015 21:11:19 +0000 (21:11 +0000)]
resourceloader: Omit getDirection() ResourceLoaderContext hash

The direction is derived from the language code, which is included
already. The method was added for convenience to consuming code,
but including it in the cache key seems pointless.

Main rationale here is runtime performance. getDirection() incurs
Language::factory() and Language::getDir() which require loading
of LCStore files.

Change-Id: I397a1c483203ec2c4903046c9494cae1c9480f8c

8 years agoMerge "Make JobRunner::commitMasterChanges() check getServerCount()"
jenkins-bot [Tue, 17 Nov 2015 21:04:29 +0000 (21:04 +0000)]
Merge "Make JobRunner::commitMasterChanges() check getServerCount()"

8 years agoMerge "Localisation updates from https://translatewiki.net."
Translation updater bot [Tue, 17 Nov 2015 20:36:52 +0000 (20:36 +0000)]
Merge "Localisation updates from https://translatewiki.net."

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 17 Nov 2015 20:35:11 +0000 (21:35 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I7c40855393bce690629651b89a29842c231cc90d

8 years agoFollows-up 3a252efa: Update docs around $wgUseLocalMessageCache
Timo Tijhof [Tue, 17 Nov 2015 20:04:50 +0000 (20:04 +0000)]
Follows-up 3a252efa: Update docs around $wgUseLocalMessageCache

MessageCache had its "local server" cache converted from file-based
to using APC. For installs without APC, this setting no longer
does anything.

Change-Id: I1e284b56cadaa0206ca60ecdb6a55360e1fa1935

8 years agoMerge "Remove redundant null-handling for Title::newFromText"
jenkins-bot [Tue, 17 Nov 2015 19:21:59 +0000 (19:21 +0000)]
Merge "Remove redundant null-handling for Title::newFromText"

8 years agoMerge "Extract file name from thumbnail only from first occurrence"
jenkins-bot [Tue, 17 Nov 2015 19:11:44 +0000 (19:11 +0000)]
Merge "Extract file name from thumbnail only from first occurrence"

8 years agoMerge "MessageCache: Remove $ucfirst and clean up getMessageFromFallbackChain()"
jenkins-bot [Tue, 17 Nov 2015 19:03:39 +0000 (19:03 +0000)]
Merge "MessageCache: Remove $ucfirst and clean up getMessageFromFallbackChain()"

8 years agoMessageCache: Remove $ucfirst and clean up getMessageFromFallbackChain()
Timo Tijhof [Tue, 17 Nov 2015 17:51:37 +0000 (17:51 +0000)]
MessageCache: Remove $ucfirst and clean up getMessageFromFallbackChain()

The $ucfirst and $wgContentLang variables are not used by get().
Keep these inside getMessageFromFallbackChain() instead.

Also add mark getMsgFromNamespace() as public since it is used
in other places in core and by extensions.

Change-Id: I83bf77c17aa46f3929f89c4af97693611761629b

8 years agoAdd structured API request debug logging
Erik Bernhardson [Wed, 23 Sep 2015 23:37:06 +0000 (16:37 -0700)]
Add structured API request debug logging

Add a new "ApiRequest" PSR-3 logging channel for messages that describe
an Action API request as structured data. This logging channel can be
routed to a storage service to facilitate analysis of the requests.

The logging context is designed to match the following avro schema:

  {
      "type": "record",
      "name": "ApiRequest",
      "namespace": "org.wikimedia.mediawiki.api",
      "doc": "Describes an API request made via mediawiki ApiMain",
      "fields": [
          { "name": "dt",              "type": "string" },
          { "name": "client_ip",       "type": "string" },
          { "name": "user_agent",      "type": "string" },
          { "name": "wiki",            "type": "string" },
          { "name": "time_backend_ms", "type": "int" },
          { "name": "params",          "type": {
              "type": "map", "values": "string"
          } }
      ]
  }

Co-Author: Bryan Davis <bd808@wikimedia.org>
Bug: T108618
Change-Id: I38f5cdb288f332f75adca8a2d03fbe0fc36ab936

8 years agophpunit: Omit long xdiff test provider from Jenkins output
Timo Tijhof [Tue, 17 Nov 2015 02:01:16 +0000 (02:01 +0000)]
phpunit: Omit long xdiff test provider from Jenkins output

In PHPUnit v4.3 and higher one could call markTestSkipped() from
inside a data provider.

Bug: T43683
Change-Id: Ic5f9f4c715466e3998af76ad98543aeb9c5d396e

8 years agoMake JobRunner::commitMasterChanges() check getServerCount()
Aaron Schulz [Tue, 17 Nov 2015 04:37:42 +0000 (20:37 -0800)]
Make JobRunner::commitMasterChanges() check getServerCount()

This is a sanity check to avoid problems in waitForOne()

Change-Id: I9792ea8fb69d560bd4adb9bd01515f6456b7e9f3

8 years agoresourceloader: Centralise expected version hash for blank test modules
Timo Tijhof [Tue, 17 Nov 2015 04:22:15 +0000 (04:22 +0000)]
resourceloader: Centralise expected version hash for blank test modules

To avoid repeating this too much and make it easier to update when
underlying components incorporated into the version hash change.

Change-Id: I986988c07f5f888046b1d93c7e72f2e9585893cf

8 years agoobjectcache: Implement check keys per cache key in WANObjectCache::getMulti()
Timo Tijhof [Mon, 16 Nov 2015 21:41:10 +0000 (21:41 +0000)]
objectcache: Implement check keys per cache key in WANObjectCache::getMulti()

To allow batch queries for multiple keys that themselves have different check
keys. Previously check keys always applied to all keys being retrieved.

Change-Id: I9e5ba198d79020ce05a802a510762e29fcfb2f1b

8 years agoMerge "resourceloader: Use 'phpunit' instead of 'test' as default target in PHPUnit...
jenkins-bot [Tue, 17 Nov 2015 04:15:09 +0000 (04:15 +0000)]
Merge "resourceloader: Use 'phpunit' instead of 'test' as default target in PHPUnit tests"

8 years agoresourceloader: Use 'phpunit' instead of 'test' as default target in PHPUnit tests
Timo Tijhof [Tue, 17 Nov 2015 03:55:19 +0000 (03:55 +0000)]
resourceloader: Use 'phpunit' instead of 'test' as default target in PHPUnit tests

Follows-up e9b9e4df7a5, which started using target=test as reserved for
Special:JavaScriptTest. However that conflicted with this.

Without this change, the unit tests fail if the MediaWiki install has
$wgEnableJavaScriptTest enabled.

Change-Id: I471017e7aedb74dddb4dc18ee4e89c1706ff09b5

8 years agoobjectcache: Add more WAN cache check key unit tests
Aaron Schulz [Tue, 17 Nov 2015 00:13:37 +0000 (16:13 -0800)]
objectcache: Add more WAN cache check key unit tests

Change-Id: If9bfef463b294391a456c5f04f48858f9dbe73fd

8 years agoMerge "objectcache: Add more @covers to WANObjectCache unit tests"
jenkins-bot [Tue, 17 Nov 2015 03:26:09 +0000 (03:26 +0000)]
Merge "objectcache: Add more @covers to WANObjectCache unit tests"

8 years agoMerge "Reduce updateLinksTimestamp() DB contention"
jenkins-bot [Tue, 17 Nov 2015 02:53:03 +0000 (02:53 +0000)]
Merge "Reduce updateLinksTimestamp() DB contention"

8 years agoRemove vendor prefix support for SVG embedding
Ed Sanders [Tue, 17 Nov 2015 02:25:59 +0000 (18:25 -0800)]
Remove vendor prefix support for SVG embedding

Also remove the -o- prefix which uses 'fallback', as without
that rule it will use 'fallback' anyway.

Bug: T118815
Change-Id: I6a6e3b24b1cda55dfa9675743c39d21e792275c7

8 years agoReduce updateLinksTimestamp() DB contention
Aaron Schulz [Thu, 12 Nov 2015 20:46:45 +0000 (12:46 -0800)]
Reduce updateLinksTimestamp() DB contention

Do the LinksUpdateComplete hook updates in a separate
transaction as they may do slow SELECTs and updates.

A large amount of DBPerformance warnings were triggered
by such cases.

Bug: T95501
Change-Id: Ie4e6b7f6aefc21bafba270282c55571ff5385fe0

8 years agoRemove redundant null-handling for Title::newFromText
Timo Tijhof [Tue, 17 Nov 2015 01:53:30 +0000 (01:53 +0000)]
Remove redundant null-handling for Title::newFromText

* Linker: Follows-up 9ce5ca9886. null is already handled.

* PrefixSearch: Follows-up 337b1e2e. null is already handled.
  If other types are bassed, we want to find these.

* UploadBase: Follows-up 11f5ebec28. null is already handled.
  WebRequest::getVal($name) can only return string or null.

Change-Id: I3dc3b700cde735f5cd9d497f0867a2b4e3b61f46

8 years agoMerge "Revert "Avoid doNotifyQueueEmpty() race conditions for Redis""
jenkins-bot [Tue, 17 Nov 2015 01:32:21 +0000 (01:32 +0000)]
Merge "Revert "Avoid doNotifyQueueEmpty() race conditions for Redis""

8 years agoAdd 'mobile' target to 'mediawiki.raggett' module
Kunal Mehta [Tue, 17 Nov 2015 00:49:45 +0000 (16:49 -0800)]
Add 'mobile' target to 'mediawiki.raggett' module

Bug: T49673
Change-Id: I7c360738e205e90856dfbdc4597123bc961e3c89

8 years agoMerge "phpcs: Assignment expression not allowed"
jenkins-bot [Mon, 16 Nov 2015 23:22:31 +0000 (23:22 +0000)]
Merge "phpcs: Assignment expression not allowed"

8 years agoDon't claim model validation failed if the content couldn't be loaded
Marius Hoch [Mon, 16 Nov 2015 22:13:55 +0000 (23:13 +0100)]
Don't claim model validation failed if the content couldn't be loaded

Also include the corresponding revision id in the exception message.

Bug: T118747
Change-Id: If3e5694f8b471045cf62d672f414446cf5365ed5

8 years agoobjectcache: Add more @covers to WANObjectCache unit tests
Timo Tijhof [Mon, 16 Nov 2015 21:48:47 +0000 (21:48 +0000)]
objectcache: Add more @covers to WANObjectCache unit tests

Has only ~ 30% coverage according to PHPUnit, but mostly due to
lack of @covers annotations.

Change-Id: I871b45d8d8ee22c7cda644c450d78f577584e78c

8 years agoRace condition fixes for refreshLinks jobs
Aaron Schulz [Sat, 14 Nov 2015 01:44:49 +0000 (17:44 -0800)]
Race condition fixes for refreshLinks jobs

* Use READ_LATEST when needed to distinguish slave lag
  affecting new pages from page deletions that happened
  after the job was pushed. Run-of-the-mill mass backlink
  updates still typically use "masterPos" and READ_NORMAL.
* Search for the expected revision (via READ_LATEST)
  for jobs triggered by direct page edits. This avoids lag
  problems for edits to existing pages.
* Added a CAS-style check to avoid letting jobs clobber
  the work of other jobs that saw a newer page version.
* Rename and expose WikiPage::lock() method.
* Split out position wait logic to a separate protected
  method and made sure it only got called once instead of
  per-title (which didn't do anything). Note that there is
  normally 1 title per job in any case.
* Add FIXME about a related race-conditions.

Bug: T117332
Change-Id: Ib3fa0fc77040646b9a4e5e4b3dc9ae3c51ac29b3

8 years agoMerge "Improve error message if check not defined for a password policy."
jenkins-bot [Mon, 16 Nov 2015 21:05:39 +0000 (21:05 +0000)]
Merge "Improve error message if check not defined for a password policy."

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 16 Nov 2015 21:00:52 +0000 (22:00 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I0be21ef9182ea4424b4bf4f415240e0ec363f975

8 years agophpcs: Assignment expression not allowed
umherirrender [Thu, 12 Nov 2015 19:07:59 +0000 (20:07 +0100)]
phpcs: Assignment expression not allowed

Fix some "Assignment expression not allowed"

Found by tests:
https://integration.wikimedia.org/ci/job/mediawiki-core-phpcs/2736/consoleFull

Change-Id: I9bc2eff20a317a74671acd49749bb336a0fd9f67

8 years agoImprove error message if check not defined for a password policy.
Reedy [Mon, 16 Nov 2015 20:47:15 +0000 (20:47 +0000)]
Improve error message if check not defined for a password policy.

Bug: T118776
Change-Id: Ic1826f15424197545f4d6c2b1af49adbc4289e15

8 years agoMerge "Allow a TitleInputWidget user to decide, if an empty value should be validated"
jenkins-bot [Mon, 16 Nov 2015 18:40:00 +0000 (18:40 +0000)]
Merge "Allow a TitleInputWidget user to decide, if an empty value should be validated"

8 years agoAllow a TitleInputWidget user to decide, if an empty value should be validated
Florian [Thu, 12 Nov 2015 17:31:57 +0000 (18:31 +0100)]
Allow a TitleInputWidget user to decide, if an empty value should be validated

For some use cases an empty value is valid, too, or at least, it's not a reason to
mark the form input red. Special:Search, e.g.. This change implements a new config
for MediaWiki\Widgets\TitleInputWidget, validate, which allows a user of this
widget to decide, if the value of the input type should be validated (empty -> flagged
red).

Extra points:
 * Fix php notice errors for previously added configuration
 * Added doc for previously added configuration

Bug: T106946
Change-Id: I732a2f56a2375d8c708e3b295996187ee209f1a6

8 years agoApiFeedWatchlist: Set messages for param-per-value too when copying from ApiQueryWatc...
Brad Jorsch [Mon, 16 Nov 2015 15:26:39 +0000 (10:26 -0500)]
ApiFeedWatchlist: Set messages for param-per-value too when copying from ApiQueryWatchlist

Bug: T118675
Change-Id: I9244a177716d4bbe8c011fd7c374e125552ea531

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 15 Nov 2015 20:56:14 +0000 (21:56 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I13ff9d21bd07513cf26dfddbce091418c62d38e7

8 years agoMerge "phpcs: Use __DIR__ constant instead of calling"
jenkins-bot [Sun, 15 Nov 2015 20:30:53 +0000 (20:30 +0000)]
Merge "phpcs: Use __DIR__ constant instead of calling"

8 years agoMake JobQueueAggregator::doNotifyQueueNonEmpty() avoid queries
Aaron Schulz [Wed, 11 Nov 2015 21:50:35 +0000 (13:50 -0800)]
Make JobQueueAggregator::doNotifyQueueNonEmpty() avoid queries

Avoid 2 of the 3 queries in doNotifyQueueNonEmpty(), the ones
that register the queue, once such a command has been done in
the request already.

Change-Id: I58553f0c56660f05a3e3000065270baebb8cbb62

8 years agophpcs: Use __DIR__ constant instead of calling
umherirrender [Thu, 12 Nov 2015 18:58:20 +0000 (19:58 +0100)]
phpcs: Use __DIR__ constant instead of calling

Replaced all dirname(__FILE__) by __DIR__ or added
@codingStandardsIgnore

Found by tests:
https://integration.wikimedia.org/ci/job/mediawiki-core-phpcs/2736/consoleFull

Change-Id: I90ff10f183ed60175fe580c43d73c0e57fd04234

8 years agoClean up some wfDebug() calls in LoadBalancer
Aaron Schulz [Fri, 13 Nov 2015 08:07:14 +0000 (00:07 -0800)]
Clean up some wfDebug() calls in LoadBalancer

Change-Id: I01143bec5b084a32c3edd836d194c0a17ca0e43c

8 years agoMerge "Generalize the LinkCache clear() call to JobRunner"
jenkins-bot [Sun, 15 Nov 2015 06:52:12 +0000 (06:52 +0000)]
Merge "Generalize the LinkCache clear() call to JobRunner"

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 14 Nov 2015 21:02:44 +0000 (22:02 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I71454ec5faa274e2b0e768a041c0a595009be4e0

8 years agoGeneralize the LinkCache clear() call to JobRunner
Aaron Schulz [Sat, 14 Nov 2015 13:17:23 +0000 (05:17 -0800)]
Generalize the LinkCache clear() call to JobRunner

The use for this logic is not specific to RefreshLinksJob

Change-Id: I4bb911ab5882d1795e12163df8ae6b227c58bc8a

8 years agoHave SquidUpdate::newFromTitles use getSquidURLs
Matthew Flaschen [Fri, 13 Nov 2015 21:54:41 +0000 (16:54 -0500)]
Have SquidUpdate::newFromTitles use getSquidURLs

This causes it to add history, and trigger the TitleSquidURLs hook.

Bug: T116095
Change-Id: I41ebd2f34347a3f218f7d0bfc8962d286b943c16

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 13 Nov 2015 20:16:30 +0000 (21:16 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: I9891f7770ff4ccf0f12847c1e903a85cb030789a

8 years agoAdd i18n messages for API feedrecentchanges 'categories' and 'categories_any'
Brad Jorsch [Fri, 13 Nov 2015 14:55:21 +0000 (09:55 -0500)]
Add i18n messages for API feedrecentchanges 'categories' and 'categories_any'

Bug: T118515
Change-Id: I7ae7c474aacceea0346991882f1f44cc6c998c7d

8 years agoMerge "resourceloader: Update MessageBlobStore documentation and code cleanup"
jenkins-bot [Fri, 13 Nov 2015 06:30:20 +0000 (06:30 +0000)]
Merge "resourceloader: Update MessageBlobStore documentation and code cleanup"

8 years agoMerge "Remove PHP detection from entry points other than index.php"
jenkins-bot [Fri, 13 Nov 2015 01:01:00 +0000 (01:01 +0000)]
Merge "Remove PHP detection from entry points other than index.php"

8 years agoresourceloader: Update MessageBlobStore documentation and code cleanup
Timo Tijhof [Thu, 12 Nov 2015 23:54:04 +0000 (23:54 +0000)]
resourceloader: Update MessageBlobStore documentation and code cleanup

* Update and improve class documentation.

* Remove comment that claims to return false if the module has no message.
  generateMessageBlob() returns '{}' in that case. And this is expected since
  we want to cache the absence of messages.

* Re-use the module objects passed to MessageBlobStore::get() in getFromDB()
  instead of using ResourceLoader::getModule(). The object is the same either
  way (since ResourceLoader re-uses the objects also) but reduces complexity
  of getFromDB() to not need the ResourceLoader object as parameter.

Change-Id: I89a14d7185877fae52791f6837883ed3a6749cd7

8 years agoAdd LBFactory::disableChronologyProtection method
Aaron Schulz [Fri, 13 Nov 2015 00:07:50 +0000 (16:07 -0800)]
Add LBFactory::disableChronologyProtection method

This is useful for things like job running entry points by
avoiding pointless overhead.

Change-Id: I007273dd95e6a2e9d258d475d383bc869d63f7b1

8 years agoDecouple ChronologyProtector from user sessions
Aaron Schulz [Sun, 18 Oct 2015 19:53:40 +0000 (12:53 -0700)]
Decouple ChronologyProtector from user sessions

* It now works for users without using sessions.
  Sessions should not be cluttered with things
  unrelated to authentication and tokens.
* Public services doing api.php requests on behalf
  of a users only need to set XFF headers (as normal)
  for position wait logic to trigger. They can opt out
  of ChronologyProtector via a new HTTP header
  "ChronologyProtection: false".
* Requests across subdomains, such as the SUL2 handshake
  for CentralAuth on account creation, now have position
  wait logic applied. This helps avoid anomolies were a
  row just written in the last request may not be seen.
* Use merge() to avoid rolling back master positions if
  the user has multiple tabs open and doing writes at once.
* $_SESSION global state is gone from ChronologyProtector.
* Cleaned up post-send LBFactory::shutdown() logic for
  avoiding master position writes with an explicit flag.
* Use 'replication' debug log group in more places.

Bug: T111264
Change-Id: Ib25d05994d62b25c2f89e67b7f51009c54f4bca8

8 years agoMerge "Move down $logEntry publish() call in recordUpload2()"
Aaron Schulz [Thu, 12 Nov 2015 22:41:42 +0000 (22:41 +0000)]
Merge "Move down $logEntry publish() call in recordUpload2()"

8 years agoRemove PHP detection from entry points other than index.php
Timo Tijhof [Thu, 12 Nov 2015 22:36:50 +0000 (22:36 +0000)]
Remove PHP detection from entry points other than index.php

The following entry points already didn't have it:

* opensearch.php
* thumb.php
* thumb_handlers.php

Now removed from api.php and load.php as well. The check was broken
because these entry points use the 'use' keyword for PHP namespaces,
which results in a syntax error on PHP < 5.3.

The check remains in index.php, mw-config/index.php, and
Maintenance (for e.g. install.php).

Bug: T112942
Change-Id: I9026d69ddfb3e02612256b4a9df525c432bb33c6

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Thu, 12 Nov 2015 21:13:58 +0000 (22:13 +0100)]
Localisation updates from https://translatewiki.net.

Change-Id: Ifab8c58dd1e702c586d0e9003a86d77cbfe92830

8 years agoMerge "Add file extension mapping for opus"
Brion VIBBER [Thu, 12 Nov 2015 20:58:07 +0000 (20:58 +0000)]
Merge "Add file extension mapping for opus"

8 years agoExtract file name from thumbnail only from first occurrence
Gilles Dubuc [Thu, 12 Nov 2015 15:36:03 +0000 (16:36 +0100)]
Extract file name from thumbnail only from first occurrence

The existing regex assumes repetition of the filename in both
areas of the URL, which is limiting. The use case is having the second
instance of the filename replaced by the sha1 of the original, as
done here: I545586ff8d0020d00d9faa1dff2d0d9721134452

Bug: T118437
Change-Id: I2c90e672e343fbb4d287f0f2a0397761824e25c7

8 years agoRelease notes for Ic7cd6f77
Brian Wolff [Tue, 10 Nov 2015 23:33:23 +0000 (18:33 -0500)]
Release notes for Ic7cd6f77

Change-Id: I5da293a98f8de8172acc64987b8ef7b9fc7da98b

8 years agoUse $foo.msg( 'bar' ) rather than $foo.html( mw.message( 'bar' ).parse() )
Bartosz Dziewoński [Wed, 14 Oct 2015 14:45:30 +0000 (16:45 +0200)]
Use $foo.msg( 'bar' ) rather than $foo.html( mw.message( 'bar' ).parse() )

This is a rarely used, but well-documented and convenient feature of
jqueryMsg. (Rarely used in core, at least, I only found one use in
'mediawiki.action.edit.preview'; UploadWizard uses it all over).

Usages found with: \.(append|html)\(\s*mw\.(message)

Change-Id: Id555ba0d23b63dfaf46a401f88b70ded9c6c3bc4

8 years agoMove down $logEntry publish() call in recordUpload2()
Aaron Schulz [Thu, 12 Nov 2015 03:36:13 +0000 (19:36 -0800)]
Move down $logEntry publish() call in recordUpload2()

This was moved before the defered doEditContent() call
for new pages by mistake.

Bug: T118433
Change-Id: I007acf82622ec6d68c007921f632793392025f40

8 years agoMerge "Followup a88df43d: make $wgDebugDumpSql log commented queries again"
jenkins-bot [Thu, 12 Nov 2015 02:46:03 +0000 (02:46 +0000)]
Merge "Followup a88df43d: make $wgDebugDumpSql log commented queries again"

8 years agoFollowup a88df43d: make $wgDebugDumpSql log commented queries again
Roan Kattouw [Thu, 12 Nov 2015 02:17:23 +0000 (18:17 -0800)]
Followup a88df43d: make $wgDebugDumpSql log commented queries again

Change-Id: I0c10b2119f03fa047dbb2bad1c4c1233403bff59

8 years agoMerge "Remove spammy wfDebug() from LocalFile::loadFromCache()"
jenkins-bot [Thu, 12 Nov 2015 00:52:59 +0000 (00:52 +0000)]
Merge "Remove spammy wfDebug() from LocalFile::loadFromCache()"

8 years agoRevert "Avoid doNotifyQueueEmpty() race conditions for Redis"
Aaron Schulz [Wed, 11 Nov 2015 22:20:37 +0000 (22:20 +0000)]
Revert "Avoid doNotifyQueueEmpty() race conditions for Redis"

This might hitting a phpredis bug causing "read error" messages.

This reverts commit ab2e1dae28f3b15e100e814544419f6719ef06f5.

Bug: T118430
Change-Id: I45b009e8768b79368898762bfedbca4dc0a79943