Commit graph

312 commits

Author SHA1 Message Date
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
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
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 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
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
Glaisher bbd3574731 Don't add 'anononly' flag for Abuse filter blocks
Bug: T131362
Change-Id: I6421293195d2d86574f8ecda9b467e1fedabc3ba
2016-03-31 20:42:30 +05: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
Brad Jorsch 888be5af64 Avoid unstubbing $wgUser when unsafe during filter failures
It'll be logging info for an anonymous user anyway, this just makes it
explicit.

Bug: T124367
Change-Id: I3c221d9af26b57b83e1be4db1698ca99fed9093c
Depends-On: I0b018a623fc833ca95d249ee21667a8f5690d50e
2016-02-03 16:07:25 -05:00
Siebrand Mazeland ce1396aea7 Add support for PHP CodeSniffer checks
Also fix any remaining errors and warnings.

Change-Id: Ie49c6172e6bbf8040e5524d33d2f719e96784745
2016-01-06 09:59:47 -08:00
Niklas Laxström b4748f25ad Remove unnecessary check for MW_SUPPORTS_CONTENTHANDLER
This extension already requires 1.23+

Change-Id: Id9f0c44cdd55ec024eb9cacb4d5b6e02546aea07
2015-11-23 11:17:39 +01:00
Aaron Schulz 4e83dcea4f Avoid pointless range scan for 'load-recent-authors'
This was just set the present time anyway and this
code is called from EditFilterMergedContent, before
the edit in question was saved either.

Bug: T116557
Change-Id: I2f84cff0ad4f65b6c2572a89a267cf42d4a96f94
2015-10-26 13:34:30 -07:00
jenkins-bot 55fe95e066 Merge "Don't add a log entry if the block wasn't inserted" 2015-10-23 07:15:02 +00:00
Glaisher 8f2029b1ea Don't add a log entry if the block wasn't inserted
$block->insert() would fail if there was an existing block
so these are not really inserted.
See for example:
https://www.mediawiki.org/w/index.php?title=Special:Log/block&page=User%3ARohitverma1

Change-Id: If2c4b34a97a0de9d9efc8b650881f04306c74915
2015-10-20 22:45:50 +05:00
jenkins-bot 07f95f4a33 Merge "Update getWithSetCallback() callers to the newer signature" 2015-10-17 22:40:35 +00:00
Aaron Schulz b90296d3a5 Update getWithSetCallback() callers to the newer signature
Change-Id: If97c1a7c25e1e28aaca9a105d50ed8e1bf2ef7ff
2015-10-16 23:48:20 -07:00
Brad Jorsch a926b2b44f Use new User::newSystemUser() when available
See core change I2c736ad72d946fa9b859e6cd335fa58aececc0d5.

Change-Id: I3f20b408c039937c1f08c9232c336268ba13895d
2015-09-17 11:55:15 -04:00
umherirrender 6c56c93c93 Do not produce self-closing <div/>
Validator says:
Self-closing syntax (/>) used on a non-void HTML element.

Change-Id: I9af3e3c22ce8918f0a15053d2dfa0b924c258aa7
2015-08-11 14:02:59 +02:00
addshore 093b2dba8a Remove use of deprecated wfRunHooks
Change-Id: I58776ddaae3dfb70a4ab4e83dfba544670b66fef
2015-08-06 18:15:42 +01:00
jenkins-bot be09eabbdd Merge "Conversion to using getMainStashInstance()" 2015-07-15 08:23:58 +00:00
Timo Tijhof fbbdce5d38 Clean up scary code
Change-Id: If4dd95c2b6e55a680c9faf03455288340e8164fb
2015-06-28 02:22:04 +01:00
Timo Tijhof abb31b0023 Fix "Fatal error: Call to undefined method WikiPage::getCount"
This was removed in MediaWiki 1.25 (90d90dad6e).

Bug: T104100
Change-Id: I25edf9e9f10cd3e14e02e63cab86fb5164af8d1a
2015-06-28 02:18:52 +01:00
Aaron Schulz 9ffa400322 Conversion to using getMainStashInstance()
Bug: T97620
Change-Id: I7fc2c0a42bf295d71b9e0721ab4261290334cdec
2015-06-24 20:18:22 +00:00
Aaron Schulz afb78deb84 Removed filter profiling using $wgMemc
* This is very slow as there can easily be hundreds of filters,
  each doing 6 memcached queries. Xenon flamegraphs show a lot
  of time spent in this method, slowing down editing.

Change-Id: I31e4502bbd45cc284db3cd89eb34ad365c59905b
2015-05-19 08:14:33 -07:00
Aaron Schulz 60d1eebb6b Conversion to using WAN cache
* Also removed some code duplication
* Use getConnectionRef in checkAllFilters so that the
  DB connection can be reused

Bug: T93141
Change-Id: I17c5a976b6c45029cde4ed34ad82d69e365ae8c5
2015-05-12 22:55:05 -07:00
jenkins-bot 3409e62df1 Merge "Fix for legacy testwiki AFL entries (1 to 154)" 2015-03-25 22:31:13 +00:00
Jeff Janes 942a95e80e PostgreSQL: Fix magic-value code for AbuseFilter
When importing filters, the code is using the magic value
of 'new' for the af_id field, which is of type bigint, to
indicate a not-yet-inserted record.

In MySQL, comparing a bigint to 'new' is legal but always false,
while in PostgreSQL it is illegal, and led to errors when checking
if the filter is hidden.

Fix this by adding special-case code to filterHidden so that it
always returns false for 'new' records. In PostgreSQL this fixes
the error, and in MySQL it avoids a pointless trip to the database.

Should be back patched to 1.23 and 1.24

Bug: T89514
Change-Id: Ib4b5585ac9889a1760ec930c555e7809a424538e
2015-03-25 22:07:55 +00:00
Alex Monk f5c4a724dc Fix for legacy testwiki AFL entries (1 to 154)
Also clean up an easy-for-users-to-break check for these legacy entries

Tested on mw1017

Change-Id: I7c1a45e39f188f4509fe4a601d2fd524717c00f8
2015-03-21 23:20:14 +00:00
Chad Horohoe 0715c05ed9 Remove obvious function-level profiling
Change-Id: I85f65a65abb5b91b44441caa21fb9c5e8edb2ebe
2015-02-04 10:26:04 -08:00
Kunal Mehta 68639158f8 Add file_size variable
To be able to filter on extremely large uploads

Change-Id: Id4c4c0f900ba6b91579211b8412ee194f09f6118
2015-01-07 20:56:53 -08:00
jenkins-bot c1aac8de74 Merge "Consistently document function parameter $group" 2014-11-15 17:00:38 +00:00
Nemo bis 936f57c0f6 Consistently document function parameter $group
Followup to 0c174aec.

Change-Id: Idbe7eee4288b5c09d3b9f373cb4eb22da659fc16
2014-11-07 13:21:45 +01:00
Nemo bis f24985e6c2 Condition match: comment says 10k, code 1k
Change-Id: Ia8cf3510a19315cd6b9610d972703a46c8eea9ef
2014-11-07 13:16:12 +01:00
Liangent a86019d2d3 Add new variable article_first_contributor
Bug: 67793
Change-Id: I725b7150de52bdc6518f73a6302f850e8d596824
2014-08-11 11:51:44 +00:00
Marius Hoch 39fb819b9c Don't try to pass non Title objects into RequestContext::setTitle
That will cause a fatal error...

Change-Id: Ib12765ca696ee9c8c5a0572dab54d30a4434e6ce
2014-07-20 22:04:37 +02:00
Kunal Mehta b40416c037 Add user_rights variable
Allows for more broad filters to check for a given right, rather
than having to check against multiple groups, which becomes useful
with global groups.

Bug: 60191
Change-Id: I95b5477d6d868d4b83bcd98e779e6d535aa755b3
2014-07-06 22:18:57 -07:00
Jackmcbarn 9409452698 Add tags from all matching filters
If multiple filters all add tags to an edit, make all of them be added
rather than just one of them.

Bug: 66387
Change-Id: Ib666c2765718d7d0603921ab94d22a7d51cbd3d2
2014-07-02 23:20:47 +00:00
Aaron Schulz 9a632d04ec Defer af_throttled query to post-commit auto-commit mode
* Due to the nature of this code (a throttle) it will likely slam the DB,
  so push it after the end of the main transaction.

bug: 60600
Change-Id: I48895358deaa1b951d849eeee14c7126cfa25ec8
2014-01-29 23:37:08 +00:00
jenkins-bot efa50efe4f Merge "Increased the number of rows in AbuseFilter's Filter testing textarea" 2014-01-24 00:27:22 +00:00
Liangent 25a15f641c New diff variables regarding pre-save transformed wikitext
Change-Id: Ie21041d96f1c4cf37d697fffcaffa1ff8242f886
2014-01-20 02:49:54 +01:00
jenkins-bot cb7dc7fa63 Merge "Make MOVED_TO* var generating from RecentChanges working" 2014-01-19 23:54:15 +00:00
nullzero 6c89ccc2fe Make MOVED_TO* var generating from RecentChanges working
This patch fixes the generation of MOVED_TO vars from
recentchanges rows.

Change-Id: I6c5471620a0fb5cb78b946fc162ff3d6a30b0e0e
2014-01-20 00:48:23 +01:00
Anjana S 4a5b76539d Increased the number of rows in AbuseFilter's Filter testing textarea
The text areas for the table row had only 5 rows, which is a lot less than
 the default number of rows.So now the number of rows in the testing textarea is changed to 15.

Bug: 59869
Change-Id: I9f221e7a49473ae1d473333f7ecf26235366d257
2014-01-12 21:04:52 +05:30
jenkins-bot 2125c3e341 Merge "Removing AbuseFilter::checkConditions' param" 2014-01-07 19:28:46 +00:00
Hoo man 91ff9853ce Merge "Add triggered filter id as parameter to messages" 2014-01-05 21:04:09 +00:00
Matthias Mullie 84536df324 Removing AbuseFilter::checkConditions' param
I'm not really sure why it exists; I assume to minimize overhead of init'ing
multiple AbuseFilterParser objects that would be exactly the same.

However, checkConditions() - which checks one specific condition - is not really
an "endpoint" you will want to call in <your-extension-that-uses-AbuseFilter>.
You're more likely to call something higher-lever (like
AbuseFilter::filterAction, which will take care of fetching all appropriate
filters, as well as run them through checkConditions, and much more). This will
trickle down to ::checkAllFilter, down to ::checkFilter, which would eventually
call ::checkConditions with the 'keepvars' argument.
Basically, unless you're re-implementing much of AbuseFilter yourself, you won't
get to pass anything other than 'keepvars' to checkFilter.
As a result, even though you may call AbuseFilter to call on multiple different
vars, it will re-use the same parser with the first vars.

I'm proposing to drop the 'keepvars' and just keep the vars around instead.
checkFilter can compare previous vars with new vars, and only init a new Parser
if the vars are different.

Change-Id: I96ccc60c77f3cdbb82c0f9f16782a1a44ffb1592
2013-12-30 12:15:59 +01:00