Commit graph

4736 commits

Author SHA1 Message Date
jenkins-bot 5d01b30833 Merge "Add some tests for behavior of 'count()' function" 2016-04-18 08:05:38 +00:00
Translation updater bot 63a7379bf8 Localisation updates from https://translatewiki.net.
Change-Id: Ib128af567e4ec9ea73fb94df556a410252d4c16d
2016-04-17 22:13:07 +02:00
tonythomas01 b21d6a22b1 Convert Special:AbuseFilter/examine to HTMLForm
Bug: T132284
Change-Id: Ie8bc13fd8602d94f53e574efb00f9908f0029ffd
2016-04-17 13:44:04 +05:30
Bartosz Dziewoński 5fc30112c7 Optimize 'count()' function
substr_count() is just as fast as looped strpos() when there are no
matches, and gets faster as the number of matches increases.

Note that this introduces a small change in behavior when the needle
is composed of repeated substrings, e.g. 'asdasdasd' or 'aa', and
haystack is such that the needle can be matched in overlapping
positions, e.g. 'asdasdasdasd' or 'aaaaa'. The old implementation
counted overlapping matches, the new one doesn't. I don't think this
behavior was intentional and I don't think this change will cause any
real problems.

Change-Id: Icc905ca34bf08d63e969787a5e3c119d498bf878
2016-04-17 08:32:27 +02:00
Bartosz Dziewoński 7d83540527 Add some tests for behavior of 'count()' function
Change-Id: I29a6c91d0780dc9a1eaee6d29d3b1f9c9c708df7
2016-04-17 08:18:29 +02:00
tonythomas01 3b6ca98c6e Convert Special:AbuseFilter/history to HTMLForm
Bug: T132284
Change-Id: I14b98e92fa9e5ad2401c046bbaacd4a98daa5cc0
2016-04-17 10:57:08 +05:30
Translation updater bot 246ab358d5 Localisation updates from https://translatewiki.net.
Change-Id: If91c8434c67f8b5040973446d62b1fa2b1414df6
2016-04-15 22:15:24 +02:00
Translation updater bot 5f3931cffa Localisation updates from https://translatewiki.net.
Change-Id: I8f7705e2a5fa76f72e2fcc70a59f9303171b0094
2016-04-14 22:32:25 +02:00
jenkins-bot f8391b5144 Merge "Fixes to filter profiling" 2016-04-13 21:28:54 +00:00
Aaron Schulz 43a538fe03 Fixes to filter profiling
* Defer the slow profiling updates to post-send
* Convert to the object stash, so that all DCs see
  the same values

Change-Id: I08316c6a3192bd69248cf5ab5a3ed8185341c313
2016-04-13 23:21:32 +02:00
Translation updater bot d632ac8d50 Localisation updates from https://translatewiki.net.
Change-Id: I6731dc0ab76e5190a570c13a2bd7822298c16949
2016-04-13 22:16:10 +02:00
jenkins-bot 1fdf7d0a4f Merge "Use $wgExtensionDirectory instead of hardcoding $IP/extensions" 2016-04-12 21:10:35 +00:00
Translation updater bot 957932c556 Localisation updates from https://translatewiki.net.
Change-Id: I3dcce5a683fe2dfbc8aadf031bfc89cb09bdf874
2016-04-12 22:48:30 +02:00
Kunal Mehta 5a5844b840 Use $wgExtensionDirectory instead of hardcoding $IP/extensions
Change-Id: Icf28a218d18df2ba90726f8b5a86621043138e48
2016-04-12 09:13:05 -07:00
Bartosz Dziewoński e00909b3c3 Remove unnecessary phpcs overrides
Change-Id: Ic7648c14f2ac2a07878f69e102832215af6855c8
2016-04-12 12:36:06 +00:00
Translation updater bot 9e6e484776 Localisation updates from https://translatewiki.net.
Change-Id: I53a084b707a1e629c4c17fe5e0e090086e274984
2016-04-11 22:32:18 +02:00
jenkins-bot 59842c6d0e Merge "Improve ignoring short-circuited operations" 2016-04-11 19:21:15 +00:00
jenkins-bot 9eb83364d1 Merge "Improve how the number of conditions is counted" 2016-04-11 19:15:58 +00:00
jenkins-bot fa22bdae6f Merge "Mostly unbreak profiling of number of conditions used by filters" 2016-04-11 12:56:36 +00:00
jenkins-bot 0ef2bd0dac Merge "Add $wgAbuseFilterProfile to enable filter profiling" 2016-04-11 12:56:33 +00:00
jenkins-bot e8b947d3c1 Merge "Revert "Removed filter profiling using $wgMemc"" 2016-04-11 12:56:30 +00:00
Translation updater bot 6d9d9e3a7c Localisation updates from https://translatewiki.net.
Change-Id: I61166b04cedde3bb92774ea2bef89de3190fcec6
2016-04-10 19:55:22 +02:00
Amire80 134529b517 Remove a tab from abusefilter-exception-notenoughargs
It seems generally unnecessary, looks weird in translatewiki.net,
and is not translated to most languages.

Change-Id: If17cd4594b283cbadfda7dd0135cc5a5b2931f25
2016-04-09 23:22:02 +03:00
Bartosz Dziewoński e79b45b71f Improve ignoring short-circuited operations
Previously, 'false & a == b' would actually execute the comparison and
count it against the condition limit, while 'false & (a == b)' wouldn't.
They behave the same now.

mShortCircuit was only checked for the most potentially expensive
operations (computing functions and getting variables), all the other
operations on bogus values generated by this would be executed and the
results ignored later.

This probably doesn't noticeably improve performance, but it corrects
how the condition limit is counted.

Bug: T43693
Change-Id: Id1d5f577b14b6ae6d987ded12689788eb7922474
2016-04-09 16:25:52 +02:00
Bartosz Dziewoński 3b32cf00e9 Improve how the number of conditions is counted
With the new behavior, the number of conditions in incremented when:
* Evaluating a function
* Evaluating a comparison operator (== === != !== < > <= >= =)
* Evaluating a keyword (in like matches contains rlike irlike regex)

Previously, the number of conditions was incremented when:
* Evaluating a function
* Entering the comparison operator evaluation mode

This resulted in a number of surprising behaviors. In particular:
* '(((a == b)))' counted as 4 conditions, not 1
* 'contains_any(a, b, c)' counted as 5 conditions, not 1
* 'a == b == c' counted as 1 condition, not 2
* 'a in b + c in d + e in f' counted as 1 condition, not 3
* 'true' counted as 1 condition, not 0

It is still possible to easily cheat the count by rewriting comparisons
as arithmetic operations. I believe this is meant to advise users of
the complexity of their rules and not really enforce strict limits.

Bug: T132190
Change-Id: I897769db4c2ceac802e3ae5d6fa8e9c9926ef246
2016-04-09 16:16:27 +02:00
Bartosz Dziewoński e0ff347e29 Interpret data correctly in getMoveVarsFromRCRow()
$params[0] is the full prefixed page title, with namespace.
$params[1] is whether the move was with or without a redirect.

Bug: T121963
Change-Id: I880bb227f2fc97394a68187e7b8391acf5aeaf5e
2016-04-09 01:29:27 +00:00
Bartosz Dziewoński 8e48a8eb37 Avoid crippled APIEditBeforeSave hook, use new features of EditFilterMergedContent instead
Back when APIEditBeforeSave was being introduced here, it was
impossible to return error data for API requests from it (T34216). But
this hook runs a lot earlier than EditFilterMergedContent, and only
gives us the text submitted in the action=edit API call and not the
actual text that's going to be saved, which are different for section
edits (T54077) or edits where an edit conflict is automatically
resolved (T73947).

T54077 was solved by making the APIEditBeforeSave lie that there are
no sections edits in the API. Perhaps T73947 could also be resolved by
lying that there are no edit conflicts in the API, but it seemed that
this would require duplicating even more logic from EditPage in the
API than T54077.

And luckily, EditFilterMergedContent recently gained the ability to
return precise error messages to the API (in MediaWiki 1.25,
I4b4270dd868a643512d4717927858b6ef0556d8a). So let's use that if
available and only fall back to APIEditBeforeSave on older versions.

Bug: T73947
Change-Id: I30c1e3d0a6c10888e6ac53745313434474663cce
2016-04-09 01:16:28 +00:00
Bartosz Dziewoński ca0b0c081d Mostly unbreak profiling of number of conditions used by filters
We were only recording the total number of conditions used by all filters,
then treating it as if it was the per-filter number, resulting in crazy
stupid values. We were also not clearing this when a filter was edited.

(This does not fix the remaining problems mentioned on the task.)

Bug: T53294
Change-Id: I4f9f88f94469b977fe60c554b76e94edacac3462
2016-04-08 19:51:16 +02:00
Bartosz Dziewoński 337cad30d9 Add $wgAbuseFilterProfile to enable filter profiling
Follow-up to b60829a60c.

I'll fix up message translations on Translatewiki when this is merged.

Bug: T132189
Change-Id: I1ecaedd7489b264ed621309b6fbfb63b9287a437
2016-04-08 16:53:45 +00:00
Bartosz Dziewoński 39261ff5cd Revert "Removed filter profiling using $wgMemc"
This reverts commit afb78deb84.

I'll guard this behind a global and fix up the localisation messages
in a separate commit. This is a straight revert.

Bug: T132189
Change-Id: Iff4aa6d7d543db8f47c5f81f3c206dafcd5373dc
2016-04-08 16:53:34 +00:00
Bartosz Dziewoński 6298c91bde Remove executable bit from files
find . -perm /111 -type f | grep -v .git | xargs chmod ago-x

Change-Id: I1e5994ba0a74eafdeff262017f90d4c0f09f3ab4
2016-04-08 14:00:52 +00:00
Translation updater bot 19731a94df Localisation updates from https://translatewiki.net.
Change-Id: I51e55f2add8c046b99940480bad830166a0b73b7
2016-04-07 22:57:40 +02:00
Translation updater bot 3d9c10d314 Localisation updates from https://translatewiki.net.
Change-Id: Ia1b8e584e75a958f1efcfdddf0d243cf8aa87824
2016-04-06 23:08:42 +02:00
Translation updater bot 3ffd6b039e Localisation updates from https://translatewiki.net.
Change-Id: Ia257e801a88fd13cfded1e6e1f5bd2528c98a177
2016-04-05 22:52:01 +02:00
jenkins-bot ff09b901d8 Merge "Add more file_* variables for file metadata" 2016-04-05 19:38:06 +00:00
Bartosz Dziewoński 8858cdd42a Add more file_* variables for file metadata
* file_mime
  The MIME type of the file, e.g. 'image/png'.

* file_mediatype
  The media type of the file, one of 'UNKNOWN', 'BITMAP', 'DRAWING',
  'AUDIO', 'VIDEO', 'MULTIMEDIA', 'OFFICE', 'TEXT', 'EXECUTABLE', 'ARCHIVE'.

* file_width
  Width of the image in pixels, or 0 if it's inapplicable (e.g. for
  audio files).

* file_height
  Height of the image in pixels, or 0 if it's inapplicable (e.g. for
  audio files).

* file_bits_per_channel
  Bits per color channel of the image, or 0 if it's inapplicable (e.g.
  for audio files). The most common value is 8.

Bug: T131643
Change-Id: Id355515a18d3674393332c0f4094e34f9f522623
2016-04-04 23:40:03 +02:00
Translation updater bot 251f5d2452 Localisation updates from https://translatewiki.net.
Change-Id: Icb49d8eabd0ef30976ce60f23790c20a16d5a435
2016-04-04 22:11:00 +02:00
jenkins-bot 6d2acf6e6b Merge "Save upload related title vars in ARTICLE prefix not FILE" 2016-04-04 18:53:45 +00:00
Reedy f2715ee51c Save upload related title vars in ARTICLE prefix not FILE
We don't define FILE_* as useable title variables, so they're
not accessible

Change-Id: I857b55937204c9ecd2bbd433a33f360b7d3e3aa7
2016-04-02 23:13:38 +01:00
Bartosz Dziewoński d2f7f86160 AbuseFilterViewEdit: Correctly reject non-existent historical versions
Return value of this function is already being checked for this.

Bug: T125572
Change-Id: I6f1d77d335a7ed269e6fbb9aaf2c3a7a566ae992
2016-04-03 00:11:29 +02:00
Florian 98cb0973cd Remove usage of DifferenceEngine::generateDiffBody()
Bug: T122754
Change-Id: Ic13c22169317150ee9fe00a0334eed7e3623c5cf
2016-04-02 13:10:23 +00:00
Glaisher bbd3574731 Don't add 'anononly' flag for Abuse filter blocks
Bug: T131362
Change-Id: I6421293195d2d86574f8ecda9b467e1fedabc3ba
2016-03-31 20:42:30 +05:00
Translation updater bot 0c40e76a3e Localisation updates from https://translatewiki.net.
Change-Id: I67c5260ecc8e1b8733dfa42b7782ecc10f0dd5db
2016-03-28 22:38:31 +02:00
Translation updater bot 009ecee5de Localisation updates from https://translatewiki.net.
Change-Id: Ib3f63579df062a4e68a9c88a91bc868a71174abf
2016-03-27 21:06:27 +02:00
Translation updater bot 851fb2e7f9 Localisation updates from https://translatewiki.net.
Change-Id: Ic3343aa0c3f7467866fd7a5b95059b3e43e3dc6b
2016-03-24 22:31:44 +01:00
Translation updater bot aeab5724b0 Localisation updates from https://translatewiki.net.
Change-Id: Icaa8a00b37e5c9519147d5c09446ebdbdc0f64c2
2016-03-23 22:17:54 +01:00
Translation updater bot 1eed48e09d Localisation updates from https://translatewiki.net.
Change-Id: Ie64837fea3e0935678133ac8dceeb14d21c86024
2016-03-22 22:27:10 +01:00
jenkins-bot 9994de1062 Merge "Migrate (un)block logging to new system" 2016-03-21 12:53:51 +00:00
Glaisher ffcb4d945d Migrate (un)block logging to new system
Also
* Fix a bug where action-reverts doesn't work for anons
since the userid is always 0 for them, instead use the username.
* Start adding block log flags consistently with core

Bug: T124789
Change-Id: Ic6680dad891e2169b392fcfefc1e313af85bc92f
2016-03-21 15:26:59 +05:00
Translation updater bot 58e883c277 Localisation updates from https://translatewiki.net.
Change-Id: I7e362c7cc29504a1553eb0dadef02c16c4dc1efc
2016-03-20 22:35:28 +01:00