#
# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
#
-# $Id: default.filter,v 1.75 2009/10/03 10:39:33 fabiankeil Exp $
+# $Id: default.filter,v 1.84 2012/03/18 15:45:44 fabiankeil Exp $
#
# Purpose : Rules to process the content of web pages
#
-# Copyright : Written by and Copyright (C) 2001-2009 the
+# Copyright : Written by and Copyright (C) 2001-2010 the
# Privoxy team. http://www.privoxy.org/
#
# We value your feedback. However, to provide you with the best support,
#################################################################################
#
-# js-events: Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
+# js-events: Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
#
#################################################################################
-FILTER: js-events Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
+FILTER: js-events Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
s/(on|event\.)((mouse(over|out|down|up|move))|(un)?load|contextmenu|selectstart)/never/ig
# Not events, but abused on the same type of sites:
s/(alert|confirm)\s*\(/concat(/ig
-s/settimeout\(/concat(/ig
+s/set(timeout|interval)\(/concat(/ig
#################################################################################
#
#################################################################################
#
-# refresh-tags: Kill automatic refresh tags (for dial-on-demand setups).
+# refresh-tags: Kill automatic refresh tags if refresh time is larger than 9 seconds.
#
#################################################################################
-FILTER: refresh-tags Kill automatic refresh tags (for dial-on-demand setups).
+FILTER: refresh-tags Kill automatic refresh tags if refresh time is larger than 9 seconds.
# Note: Only deactivates refreshes with more than 9 seconds delay to
# preserve monster-stupid but common redirections via meta tags.
#
-s/<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;\s*url\s*=\s*([^>\2]*))?\2/<link rev="x-refresh" href="$4"/iU
+s@<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;(?:\s*url\s*=\s*)?([^>\2]*))?\2@<link rev="x-refresh" href="$4"@ig
#################################################################################
# SCNR
#
-s/microsoft(?!.[^\s])/MicroSuck/ig
+s/microsoft(?!\.[^\s])/MicroSuck/ig
# Buzzword Bingo (example for extended regex syntax)
#
#################################################################################
FILTER: google CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.
-s@</head>@<style type="text/css">\n\
+s@</head>[^\\]@<style type="text/css">\n\
/* Style sheet inserted by Privoxy's google filter. */\n\
\#fbc, \#fbl, \#ra, .rhh {visibility: hidden !important;}\n\
\#tpa1,\#tpa2,\#tpa3,\#tpa4,\#tpa5,\#tpa5, \#spl, .ch, \#ads,\
\#symadbn, \#ymadbn, .yschbox, .yschhd, .bbox, \#yschsec, \#sec,\
\#yschanswr, .yschftad, .yschspn, .yschspns, \#ygrp-sponsored-links,\
\#nwad, \#MWA2, \#MSCM, \#yregad, \#sponsored-links,\
- \#ks-ypn-ads, .ad, \#east, \#ygrp-vital {display: none !important;}\n\
+ \#ks-ypn-ads, .ad, \#east, \#ygrp-vital, .ads {display: none !important;}\n\
\#yschpri, \#yschweb, \#pri, \#web, \#main, .yschttl, .abstr, .res \n\
{width: 99% !important; max-width: 100% !important;}\n\
.yschttl, .res, .res.indent, \#web {padding: 0px; margin: 0px !important;}\n\
max-width: 100% !important; /* width:100% sometimes causes horizontal scrollbars */}\n\
/* Remove "suggestions". They are next to worthless but partly overlap with the search results */\n\
.suggestion, \#nys_right, \#nys {clear: both; display:none;}\n\
+ \#s_notf_div,\n \
+ /* Overlay ads to enable Facebook 'likes' in search results. */\n\
+ .sn_container {display:none !important;}\n\
\#content {padding-right: 0;}\n\
</style>\n$0@
# Are these ids still in use?
s@^Accept:\s*text/css.*@CSS-REQUEST@i
+#################################################################################
+#
+# range-requests: Tags range requests as "RANGE-REQUEST".
+#
+# By default Privoxy removes Range headers for requests to
+# ressources that will be filtered to make sure the filters
+# get the whole picture. Otherwise Range requests could be
+# intentionally used to circumvent filters or, less likely,
+# filtering a partial response may damage it because it matched
+# a pattern that the ressource as a whole wouldn't.
+#
+# Range requests can be useful and save bandwidth so instead
+# of removing Range headers for requests to ressources that
+# will be filtered, you may prefer to simply disable filtering
+# for those requests.
+#
+# That's what this tagger is all about. After enabling it,
+# you can disable filtering for range requests using the following
+# action section:
+#
+# {-filter -deanimate-gifs}
+# TAG:^RANGE-REQUEST
+#
+#################################################################################
+CLIENT-HEADER-TAGGER: range-requests Tags range requests as "RANGE-REQUEST".
+
+s@^Range:.*@RANGE-REQUEST@i
+
#################################################################################
#
# client-ip-address: Tags the request with the client's IP address.
s@^User-Agent:.*@$0@i
+#################################################################################
+#
+# referer: Tags the request with the complete Referer header.
+#
+#################################################################################
+CLIENT-HEADER-TAGGER: referer Tags the request with the complete Referer header.
+
+s@^Referer:.*@$0@i
+
#################################################################################
#
# content-type: Tags the request with the content type declared by the server.