lhc/web/wiklou.git
8 years agoAdd some more allowedRedirectParams to MyContributions
Glaisher [Tue, 9 Jun 2015 17:53:29 +0000 (22:53 +0500)]
Add some more allowedRedirectParams to MyContributions

+deletedOnly
+nsInvert
+associated
+newOnly
+topOnly

Change-Id: Ibde818e259a5511791dd60a15830973a90468ae8

8 years agoMerge "API: Add api-format-prettyprint-header-only-html"
jenkins-bot [Wed, 10 Jun 2015 17:49:40 +0000 (17:49 +0000)]
Merge "API: Add api-format-prettyprint-header-only-html"

8 years agoMerge "Password validity by policy per group"
jenkins-bot [Wed, 10 Jun 2015 17:46:20 +0000 (17:46 +0000)]
Merge "Password validity by policy per group"

8 years agoPassword validity by policy per group
csteipp [Thu, 23 Apr 2015 01:48:48 +0000 (18:48 -0700)]
Password validity by policy per group

Make password policies defined in a configurable policy, which is
defined by group. A user's password policy will be the maximum of
each group policy that the user belongs to.

Bug: T94774
Change-Id: Iad8e49ffcffed38df6293db0ef31a227d3962003

8 years agoMerge "mediawiki.jqueryMsg: Phase out redundant data module and minor clean up"
jenkins-bot [Wed, 10 Jun 2015 09:35:50 +0000 (09:35 +0000)]
Merge "mediawiki.jqueryMsg: Phase out redundant data module and minor clean up"

8 years agoMerge "Convert mediawiki.toc and mediawiki.user to using mw.cookie"
jenkins-bot [Wed, 10 Jun 2015 09:26:09 +0000 (09:26 +0000)]
Merge "Convert mediawiki.toc and mediawiki.user to using mw.cookie"

8 years agoConvert mediawiki.toc and mediawiki.user to using mw.cookie
Yaroslav Melnychuk [Tue, 2 Dec 2014 15:58:43 +0000 (17:58 +0200)]
Convert mediawiki.toc and mediawiki.user to using mw.cookie

* Remove redundant 'path' parameter (handled by mw.cookie)
* Remove redundant 'expires' parameter (handled by mw.cookie)
* Return value for absent cookie is now reliably 'null'.

This changes the cookie name due to mw.cookie adding the standard
cookie prefix. This will cause existing values to be lost. Make
use of this oppertunity to rename some cookie names.

* mw_hidetoc -> {wikiprefix} hidetoc
* mediaWiki.user.sessionId -> {wikiprefix} mwuser-sessionId
* mediaWiki.user.bucket -> {wikiprefix} mwuser-bucket

This is a re-submission of a4d3d3b427713, which was reverted due
to T101857. Commit amended to use "sessionId" instead of "session".

Bug: T67384
Change-Id: Ibe88778cf3b6db90b3875c89305ffba53ac84104

8 years agoobjectcache: Minor code clean up in ObjectCache.php
Timo Tijhof [Wed, 10 Jun 2015 03:53:41 +0000 (04:53 +0100)]
objectcache: Minor code clean up in ObjectCache.php

* Whitespace.
* Simplify logic.
* Apply coding conventions to documentation blocks (empty line
  before annotations, no empty lines between annotation, consistent
  order of annotations).

Change-Id: I3e5268d6a6295643d5725c66ea2a01bccf610ed8

8 years agoFixed "wfTimestamp() fed bogus time value" errors
Aaron Schulz [Wed, 10 Jun 2015 01:47:49 +0000 (18:47 -0700)]
Fixed "wfTimestamp() fed bogus time value" errors

* This broke OutputPage::checkLastModified() as the touched time was false

Change-Id: I118d3ddf07c7b69ad269f3aee0c70ab4159df192

8 years agoMerge "Fix variants for OO UI images"
jenkins-bot [Tue, 9 Jun 2015 23:02:11 +0000 (23:02 +0000)]
Merge "Fix variants for OO UI images"

8 years agoFix variants for OO UI images
Matthew Flaschen [Tue, 9 Jun 2015 20:55:50 +0000 (16:55 -0400)]
Fix variants for OO UI images

Fixes T101895, caused by https://gerrit.wikimedia.org/r/#/c/212917/

Bug: T101895
Change-Id: Icd9af0d2eba2a62a1761cb9c9dcd90fc736c2b39

8 years agoMerge "Update OOjs UI to v0.11.4"
jenkins-bot [Tue, 9 Jun 2015 22:44:00 +0000 (22:44 +0000)]
Merge "Update OOjs UI to v0.11.4"

8 years agoMerge "Html: Add buttonAttributes() more diligently"
jenkins-bot [Tue, 9 Jun 2015 22:24:44 +0000 (22:24 +0000)]
Merge "Html: Add buttonAttributes() more diligently"

8 years agoUpdate OOjs UI to v0.11.4
James D. Forrester [Tue, 9 Jun 2015 22:05:33 +0000 (15:05 -0700)]
Update OOjs UI to v0.11.4

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

Change-Id: Id329e753412b33d5b4cf55bfc04ee072843bacc0

8 years agoMerge "Move several unit tests to directly subclass PHPUnit_Framework_TestCase"
jenkins-bot [Tue, 9 Jun 2015 22:20:00 +0000 (22:20 +0000)]
Merge "Move several unit tests to directly subclass PHPUnit_Framework_TestCase"

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Tue, 9 Jun 2015 20:11:11 +0000 (22:11 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Icfa21b09f24744c22245a540daa568a846592786

8 years agomediawiki.jqueryMsg: Phase out redundant data module and minor clean up
Timo Tijhof [Mon, 8 Jun 2015 14:47:21 +0000 (15:47 +0100)]
mediawiki.jqueryMsg: Phase out redundant data module and minor clean up

Follows-up 4a3e50a54.

* Merge mediawiki.jqueryMsg.data and mediawiki.jqueryMsg modules.

  There's no need for this to be a separate module. The data is not for public consumption,
  it's provided to jqueryMsg only.

* Remove unused default-default values for 'allowedHtmlElements'.

* Remove conditionals around data providing at initial run-time. Instead, expose
  private method can call that. This way, we don't have two code paths claim
  ownership over the namespace. And it makes the module easier to test and re-use
  by not requiring the data to exist at first run time.

* Fix getDefinitionSummary() implementation to append data instead of setting
  arbitary keys in parent data. ResourceLoader documentation of getDefinitionSummary()
  has been updated to reflect this practice.

Change-Id: I40006d39514a997dce4930756a3dac84a0c9bb83

8 years agoAPI: Add api-format-prettyprint-header-only-html
umherirrender [Sat, 6 Jun 2015 19:15:36 +0000 (21:15 +0200)]
API: Add api-format-prettyprint-header-only-html

Setting format=rawfm suggest to set format=raw ("To see the non-HTML
representation of the RAW format, set format=raw.") which does not
exists.
Add a new message for this case which does not contains the hint.

Change-Id: I40fe0b6e52dc0c70b07b368a3eace430e0c8f68c

8 years agoMerge "Revert "Implement MalformedTitleException for JS and use in constructor""
jenkins-bot [Tue, 9 Jun 2015 17:07:27 +0000 (17:07 +0000)]
Merge "Revert "Implement MalformedTitleException for JS and use in constructor""

8 years agoMove several unit tests to directly subclass PHPUnit_Framework_TestCase
Chad Horohoe [Tue, 9 Jun 2015 17:02:48 +0000 (10:02 -0700)]
Move several unit tests to directly subclass PHPUnit_Framework_TestCase

Change-Id: I306166c116b9787a5568e5289799440dd1030345

8 years agoMerge "Consistent spacing after colon in apihelp"
jenkins-bot [Tue, 9 Jun 2015 14:07:13 +0000 (14:07 +0000)]
Merge "Consistent spacing after colon in apihelp"

8 years agoapi/i18n: Fix a couple typos
Kevin Israel [Tue, 9 Jun 2015 12:28:56 +0000 (08:28 -0400)]
api/i18n: Fix a couple typos

Change-Id: I5990bd9e92b0ffb592ec7c3eb80280a2d3e2f19f

8 years agoMerge "Improve the srsearch API param doc"
jenkins-bot [Tue, 9 Jun 2015 12:14:25 +0000 (12:14 +0000)]
Merge "Improve the srsearch API param doc"

8 years agoMerge "Fixed race condition in MessageCache::replace"
jenkins-bot [Tue, 9 Jun 2015 09:25:55 +0000 (09:25 +0000)]
Merge "Fixed race condition in MessageCache::replace"

8 years agoMerge "resourceloader: Move packaging to a new getModuleContent() method"
jenkins-bot [Tue, 9 Jun 2015 09:13:49 +0000 (09:13 +0000)]
Merge "resourceloader: Move packaging to a new getModuleContent() method"

8 years agoConsistent spacing after colon in apihelp
Amir E. Aharoni [Tue, 9 Jun 2015 06:17:54 +0000 (09:17 +0300)]
Consistent spacing after colon in apihelp

Change-Id: Ic85554b29f78f1d26878879b9a408bbcbc702d8c

8 years agoMerge "resourceloader: Add context param to ResourceLoaderModule::getDependencies"
jenkins-bot [Tue, 9 Jun 2015 02:20:31 +0000 (02:20 +0000)]
Merge "resourceloader: Add context param to ResourceLoaderModule::getDependencies"

8 years agoMerge "Use assertSame in LogFormatterTestCase"
jenkins-bot [Tue, 9 Jun 2015 02:15:42 +0000 (02:15 +0000)]
Merge "Use assertSame in LogFormatterTestCase"

8 years agoresourceloader: Add context param to ResourceLoaderModule::getDependencies
Andrew Green [Wed, 8 Apr 2015 21:34:08 +0000 (17:34 -0400)]
resourceloader: Add context param to ResourceLoaderModule::getDependencies

By providing context as a parameter in getDependencies, we allow
modules to dyanamically determine dependencies based on context.
Note: To ease rollout, the parameter is optional in this patch. It is expected
that it will be made non-optional in the near future.

The use case is for CentralNotice campaigns to be able to add special
modules ahead of deciding which banner to show a user. The dynamically
chosen RL modules would replace ad-hoc JS currently sent with some banners.
A list of possible campaigns and banners is already sent as a PHP-
implemented RL module; that's the module that will dynamically choose other
modules as dependencies when appropriate. This approach will save a round
trip as compared to dynamically loading the modules client-side.

For compatibility, extensions that override
ResourceLoaderModule::getDependencies() should be updated with the new
method signature. Here are changes for extensions currently deployed on
Wikimedia wikis:

* CentralNotice: I816bffa3815e2eab7e88cb04d1b345070e6aa15f
* Gadgets: I0a10fb0cbf17d095ece493e744296caf13dcee02
* EventLogging: I67e957f74d6ca48cfb9a41fb5144bcc78f885e50
* PageTriage: Ica3ba32aa2fc76d11a44f391b6edfc871e7fbe0d
* UniversalLanguageSelector: Ic63e617f51702c27104e123d4bed91983a726b7f
* VisualEditor: I0ac775ca286e64825e31a9213b94648e41a5bc30

For more on the CentralNotice use case, please see I9f80edcbcacca2.

Bug: T98924
Change-Id: Iee61e5b527321d01287baa03ad9b4d4f526ff3ef

8 years agoImprove the srsearch API param doc
S Page [Tue, 9 Jun 2015 01:21:03 +0000 (18:21 -0700)]
Improve the srsearch API param doc

Mention that it may be a way to invoke fancy search features.
Message-only change.

Change-Id: I6df02b53612f7c55f69a6bcad407a3a28a07bd2b

8 years agoresourceloader: Move packaging to a new getModuleContent() method
Timo Tijhof [Thu, 14 May 2015 19:05:47 +0000 (20:05 +0100)]
resourceloader: Move packaging to a new getModuleContent() method

Centralise the building of module packages into this method so
that it can be easily re-used.

This is in preparation for providing the option for modules to use
content-based hashing (instead of based on meta-data) in the version
string of modules. Having a getModuleContent method allows that to
be implemented in a way that is well-cached (as we'll be calling it
from multiple multiple code paths) and without duplicating this logic.

Bug: T98087
Change-Id: I376233caaabe44b6101565b70a50904abdf8ab4f

8 years agoAvoid parser cache miss that often occurs post-save
Aaron Schulz [Mon, 8 Jun 2015 23:05:54 +0000 (16:05 -0700)]
Avoid parser cache miss that often occurs post-save

* This should not happen as doEditContent() saves the parser cache,
  so only the rare casing if incompatible options should have misses
* The bug could also cause post-save misses with edit stashing
* Avoid the second page parse post-redirect by making sure cache
  timestamps match up instead of calling time() at several points
* Likewise for null edits, which used a different code path
* Removed redundant purge in onArticleCreate() as the new row sets _touched
* Removed pointless purge in onArticleDelete() as there is no row to update
  (the method no-ops in that case to avoid contention already)

Change-Id: I178fe334a3f8691ffd9452bec30561a0c5d37c6c

8 years agoUpdate sinon from 1.10.3 to 1.15.0
paladox [Sat, 6 Jun 2015 19:25:55 +0000 (21:25 +0200)]
Update sinon from 1.10.3 to 1.15.0

Project
* http://sinonjs.org/
* https://github.com/cjohansen/Sinon.JS

Source code
* http://sinonjs.org/releases/sinon-1.15.0.js

Changelog
* https://github.com/cjohansen/Sinon.JS/blob/v1.15.0/Changelog.txt

Notable changes:
* 1.15.0: Deprecate sinon.mock()
* 1.12.0: Fake timers are now extracted as lolex: http://github.com/sinonjs/lolex

Change-Id: Icca3eb7ef42c0a456fd309eb0ebc09a0518517bd

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Mon, 8 Jun 2015 19:23:10 +0000 (21:23 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ib07fd19243eb0bca5bd7cb9553f20853d05135ac

8 years agoMerge "LanguageConverter fix of empty and numeric strings"
jenkins-bot [Mon, 8 Jun 2015 16:52:18 +0000 (16:52 +0000)]
Merge "LanguageConverter fix of empty and numeric strings"

8 years agoresourceloader: Audit debug log channels and messages
Timo Tijhof [Thu, 4 Jun 2015 03:53:23 +0000 (04:53 +0100)]
resourceloader: Audit debug log channels and messages

* Change "private module denied" level to 'debug'.
  This is quite unimportant and occupies over 90% of the logstash
  entries for resourceloader.

* Changes all failure signals to 'warning' and using context data.
  Left out method in most case since the messages are unambiguous.

Change-Id: Ibb2faaa54020ab0fd9685551689d9a89161e1ce7

8 years agoLanguageConverter fix of empty and numeric strings
Liangent [Tue, 6 May 2014 16:16:12 +0000 (16:16 +0000)]
LanguageConverter fix of empty and numeric strings

Bug: T51072
Bug: T48634
Bug: T53551
Change-Id: I2c88f1cf7c0014bebf5c798916b660b334a0b78b

8 years agoMerge "Run generateLocalAutoload.php to sort entries in autoload.php"
jenkins-bot [Mon, 8 Jun 2015 10:08:23 +0000 (10:08 +0000)]
Merge "Run generateLocalAutoload.php to sort entries in autoload.php"

8 years agobuild: Updating development dependencies
Kunal Mehta [Mon, 8 Jun 2015 05:41:11 +0000 (22:41 -0700)]
build: Updating development dependencies

* grunt-banana-checker: 0.2.1 → 0.2.2
* grunt-karma: 0.10.1 → 0.11.0
* karma: 0.12.31 → 0.12.36
* karma-chrome-launcher: 0.1.8 → 0.1.12
* karma-firefox-launcher: 0.1.4 → 0.1.6

Change-Id: Ic8bd8563c6f3313a7c8fc936c0753b071441c2b0

8 years agoRun generateLocalAutoload.php to sort entries in autoload.php
Kunal Mehta [Mon, 8 Jun 2015 05:27:24 +0000 (22:27 -0700)]
Run generateLocalAutoload.php to sort entries in autoload.php

Will reduce dirty diffs in future changes.

Change-Id: I4f97c1e4f9eaf0dc807435209b6a0e8494b60db1

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sun, 7 Jun 2015 19:41:03 +0000 (21:41 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ie3ce821ae62fad2938416276ed9a92448731eb39

8 years agoUpdate json2 to revision 2015-05-03
paladox [Sat, 6 Jun 2015 19:25:55 +0000 (21:25 +0200)]
Update json2 to revision 2015-05-03

Project link

* https://github.com/douglascrockford/JSON-js

File link

* https://github.com/douglascrockford/JSON-js/blob/c98948ae19/json2.js

Change-Id: Ifeb41140c13718162d1c0bd7a5a815acaf7bfd56

8 years agoUpdate es5-shim to v4.1.5
Timo Tijhof [Sun, 7 Jun 2015 11:09:59 +0000 (12:09 +0100)]
Update es5-shim to v4.1.5

Project site

* https://github.com/es-shims/es5-shim

File source

* https://github.com/es-shims/es5-shim/tree/v4.1.5

Changelog

* https://github.com/es-shims/es5-shim/blob/v4.1.5/CHANGES

Change-Id: I21ecf04e7ba82d4bd726ce9b5e84eac1046914c0

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Sat, 6 Jun 2015 19:25:55 +0000 (21:25 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ia5cb16ef86a58a1a39c0856c0261c3801363563b

8 years agoUse assertSame in LogFormatterTestCase
umherirrender [Sat, 6 Jun 2015 18:55:03 +0000 (20:55 +0200)]
Use assertSame in LogFormatterTestCase

Using assertSame also checks for internal types to be correct.

Needs the following fixes:
- MergeLogFormatterTest: Use correct array key order
- NewUsersLogFormatterTest: Input user id as integer
- PatrolLogFormatter: Ensure in LogFormatter that
  integer is not casted to float

Change-Id: I2cab5335d6654f6cda15fc4e9fbae2c1ca1b27ff

8 years agoPatrolLogFormatter: Tag curid and previd as numbers for API
Brad Jorsch [Sat, 6 Jun 2015 12:16:28 +0000 (08:16 -0400)]
PatrolLogFormatter: Tag curid and previd as numbers for API

In the database the values might be strings, depending on the source of
the RecentChanges object when the log entry was created. In
getParametersForApi(), tag the vars as 'number' so they'll always be
output as actual integers.

Bug: T101603
Change-Id: I6d3e8fd2653ce810eec59b94bf75063e5fb6bcab

8 years agoFix tab in en.json
paladox [Fri, 5 Jun 2015 22:47:58 +0000 (22:47 +0000)]
Fix tab in en.json

Change-Id: I152646a368f4b2f0142907a2fbf876f8d27eb694

8 years agoMerge "ResourceLoaderImageModule: Add missing doc stuffs"
jenkins-bot [Fri, 5 Jun 2015 22:47:58 +0000 (22:47 +0000)]
Merge "ResourceLoaderImageModule: Add missing doc stuffs"

8 years agoMerge "resourceloader: Unbreak ResourceLoaderImageModule's rasterization"
jenkins-bot [Fri, 5 Jun 2015 22:43:46 +0000 (22:43 +0000)]
Merge "resourceloader: Unbreak ResourceLoaderImageModule's rasterization"

8 years agoResourceLoaderImageModule: Add missing doc stuffs
Bartosz Dziewoński [Fri, 5 Jun 2015 22:38:06 +0000 (00:38 +0200)]
ResourceLoaderImageModule: Add missing doc stuffs

Follow-up to 1fc57830e257f47ae0508899dc35b80674475859.

Change-Id: I66985fe2edc4d0e92aebcdb39cd56d212fd3270c

8 years agoresourceloader: Unbreak ResourceLoaderImageModule's rasterization
Bartosz Dziewoński [Fri, 5 Jun 2015 22:26:56 +0000 (00:26 +0200)]
resourceloader: Unbreak ResourceLoaderImageModule's rasterization

Follow-up to 1fc57830e257f47ae0508899dc35b80674475859. Forgot to
update a method call.

Change-Id: I2b3113c853a37f802f781a848b495e036971710c

8 years agoMerge "Automatically deduplicate root jobs on insertion"
jenkins-bot [Fri, 5 Jun 2015 20:15:23 +0000 (20:15 +0000)]
Merge "Automatically deduplicate root jobs on insertion"

8 years agoMerge "Localisation updates from https://translatewiki.net."
Translation updater bot [Fri, 5 Jun 2015 19:32:42 +0000 (19:32 +0000)]
Merge "Localisation updates from https://translatewiki.net."

8 years agoMerge "Various code cleanup to JobRunner"
jenkins-bot [Fri, 5 Jun 2015 18:39:13 +0000 (18:39 +0000)]
Merge "Various code cleanup to JobRunner"

8 years agoVarious code cleanup to JobRunner
Aaron Schulz [Fri, 5 Jun 2015 18:15:57 +0000 (11:15 -0700)]
Various code cleanup to JobRunner

* Made the pickup stats name be similar to other queue stats
* Renamed $jobsRun => $jobPopped
* Simplified some code and comments

Change-Id: I8ab1a68f04fc3ab4c0ba7f6f0b428a5a811a97fb

8 years agoMerge "Make sure job queue partitions use the null aggregator"
jenkins-bot [Fri, 5 Jun 2015 18:11:41 +0000 (18:11 +0000)]
Merge "Make sure job queue partitions use the null aggregator"

8 years agoLocalisation updates from https://translatewiki.net.
Translation updater bot [Fri, 5 Jun 2015 17:49:22 +0000 (19:49 +0200)]
Localisation updates from https://translatewiki.net.

Change-Id: Ie564be94e20109b4972a5392f843ec3fc75658a5

8 years agoMerge "ApiTestCase: Set correct user for derivate requests"
jenkins-bot [Fri, 5 Jun 2015 17:46:02 +0000 (17:46 +0000)]
Merge "ApiTestCase: Set correct user for derivate requests"

8 years agoApiTestCase: Set correct user for derivate requests
Matthias Mullie [Fri, 5 Jun 2015 09:52:40 +0000 (11:52 +0200)]
ApiTestCase: Set correct user for derivate requests

RequestContext::getMain()->getUser() in a (faux) API request doesn't return the
user the (faux) API call is made with, but the user running the tests.

Bug: T101388
Change-Id: Icbbf14a6433edf5c91162a9d67899d6a2d5c33df

8 years agoMerge "Expose RL modules and js config vars in action=expandtemplates"
jenkins-bot [Fri, 5 Jun 2015 16:16:46 +0000 (16:16 +0000)]
Merge "Expose RL modules and js config vars in action=expandtemplates"

8 years agoExpose RL modules and js config vars in action=expandtemplates
Marc Ordinas i Llopis [Thu, 4 Jun 2015 10:32:23 +0000 (03:32 -0700)]
Expose RL modules and js config vars in action=expandtemplates

Adds the 'modules', 'jsconfigvars', and 'encodedjsconfigvars' props
to action=expandtemplates, that output the modules and Javascript
configuration variables added to ResourceLoader by extensions and
parser functions, in the same way action=parse does.

This is needed by Parsoid to correctly include all modules used by
parser functions.

Based on I5c3ccb25385e57633639bb0c7e6f562eb58b05a2 by @Jackmcbarn.

Bug: T69540
Change-Id: Iaf58c66c987a318c0dd1ee2b81774106c40e7561

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 agoHtml: Add buttonAttributes() more diligently
Bartosz Dziewoński [Fri, 5 Jun 2015 01:07:11 +0000 (03:07 +0200)]
Html: Add buttonAttributes() more diligently

It was done only for elements generated with linkButton() or
submitButton(), and not input().

Change-Id: Idd7e01d596997bd5cade5a7851daf64bee10bb49

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 agoMake sure job queue partitions use the null aggregator
Aaron Schulz [Thu, 4 Jun 2015 23:53:56 +0000 (16:53 -0700)]
Make sure job queue partitions use the null aggregator

* Fixes problem from 37042262e32e
* The main class already handles the calls.
* Partitions call notifyQueueNonEmpty() on pop() even
  when the other partitions have jobs, so it is also wrong
  in addition to redundant.

Bug: T101427
Change-Id: Ic3235e1f2038053fabf92f97c663479a21d75317

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 agoRevert "Implement MalformedTitleException for JS and use in constructor"
Sn1per [Thu, 4 Jun 2015 21:43:37 +0000 (21:43 +0000)]
Revert "Implement MalformedTitleException for JS and use in constructor"

This reverts commit 52bc467b31066d557ce7263b5bd448fb05742d3e.

Change-Id: I4ccd057559251317134da36d75fa8532ede4c51b

8 years agoFixed race condition in MessageCache::replace
Aaron Schulz [Wed, 20 May 2015 02:34:20 +0000 (19:34 -0700)]
Fixed race condition in MessageCache::replace

* The cache has to reload and *after* locking to avoid
  losing any concurrent changes.
* Also fixed incorrect assumption in MessageCacheTest.
  Message overrides for the content language do not use
  the language suffix.

Change-Id: I98ff158a1575330bc59efe6badb27f8de8717951

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 agoAutomatically deduplicate root jobs on insertion
Aaron Schulz [Sat, 23 May 2015 17:53:12 +0000 (10:53 -0700)]
Automatically deduplicate root jobs on insertion

* This makes lazyPush() simple to use in more cases

Change-Id: I22e74485eaf3120e5669c5ee55dc7ab7310d7300

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