Add changes from 3.0.6-2, 3.0.6-3 and several unreleased changes
[privoxy.git] / default.filter
index 90ae640..a0601d0 100644 (file)
@@ -2,7 +2,7 @@
 # 
 #  File        :  $Source: /cvsroot/ijbswa/current/default.filter,v $
 # 
-#  $Id: default.filter,v 1.38 2007/02/19 11:22:48 hal9 Exp $
+#  $Id: default.filter,v 1.42 2007/05/17 15:55:36 fabiankeil Exp $
 #
 #  Purpose     :  Rules to process the content of web pages
 # 
 #
 # Syntax:
 #
-# Filters start with a line "FILTER: name description". They are then referrable
-# from the actionsfile with +filter{name}
+# Generally filters start with a line like "FILTER: name description".
+# They are then referrable from the actionsfile with +filter{name}
+#
+# FILTER marks a filter as content filter, other filter
+# types are CLIENT-HEADER-FILTER, CLIENT-HEADER-TAGGER,
+# SERVER-HEADER-FILTER and SERVER-HEADER-TAGGER.
 #
 # Inside the filters, write one Perl-Style substitution (job) per line.
 # Jobs that precede the first FILTER: line are ignored.
 # For Details see the pcrs manpage contained in this distribution.
 # (and the perlre, perlop and pcre manpages)
 #
-# Note that you are free to choose the delimter as you see fit.
+# Note that you are free to choose the delimiter as you see fit.
 #
 # Note2: In addidion to the Perl options gimsx, the following nonstandard
 # options are supported:
 # 
 # 'U' turns the default to ungreedy matching.  Add ? to quantifiers to
 #     switch back to greedy.
+#
 # 'T' (trivial) prevents parsing for backreferences in the substitute.
 #     Use if you want to include text like '$&' in your substitute without
 #     quoting.
+#
+# 'D' (Dynamic) allows the use of variables. Supported variables are:
+#     $host, $origin (the IP address the request came from), $path and $url.
+#
+#     Note that '$' is a bad choice as delimiter for dynamic filters as you
+#     might end up with unintended variables if you use a variable name
+#     directly after the delimiter. Variables will be resolved without
+#     escaping anything, therefore you also have to be careful not to chose
+#     delimiters that appear in the replacement text. For example '<' should
+#     be save, while '?' will sooner or later cause conflicts with $url.
 # 
 #################################################################################
 
@@ -577,7 +592,7 @@ FILTER: yahoo CSS-based block for Yahoo text ads. Also removes a width limitatio
 s@</head>@\n<style type="text/css">\n\
  /* Style sheet inserted by Privoxy's yahoo filter. */\n\
  \#symadbn, \#ymadbn, .yschbox, \#yschsec, .yschhd, \#yschanswr, .yschftad,\
- .yschspn, .yschspns, \#ygrp-sponsored-links {display: none !important;}\n\
+ .yschspn, .yschspns, \#ygrp-sponsored-links, \#ks-ypn-ads {display: none !important;}\n\
  \#yschpri, \#yschweb {width: 100% !important; max-width: 100% !important;}\n\
  \#yschqcon, \#yschtg {width: auto !important; /* No useless horizontal scrollbar please */}\n\
 </style>\n$0@
@@ -638,36 +653,35 @@ s@(background:\#[a-f\d]{3})( url\(\"http://www.blogblog.com/rounders[^\"]*\"\).*
 
 #################################################################################
 #
-# x-httpd-php-to-html: Header filter to change the Content-Type from
+# x-httpd-php-to-html: Changes the Content-Type header from
 #                      x-httpd-php to html. "Content-Type: x-httpd-php"
 #                      is set by clueless PHP users and causes many
 #                      browsers do open a download menu instead of
 #                      rendering the page.
 #
 #################################################################################
-FILTER: x-httpd-php-to-html Header filter to change the Content-Type from x-httpd-php to html.
-s@^(Content-Type:) application/x-httpd-php@$1 text/html@
+SERVER-HEADER-FILTER: x-httpd-php-to-html Changes the Content-Type header from x-httpd-php to html.
+s@^(Content-Type:)\s*application/x-httpd-php@$1 text/html@i
 
 #################################################################################
 #
-# html-to-xml: Header filter to change the Content-Type from html to xml.
+# html-to-xml: Changes the Content-Type header from html to xml.
 #
 #################################################################################
-FILTER: html-to-xml Header filter to change the Content-Type from html to xml.
-s@^(Content-Type:) text/html(;.*)?$@$1 application/xhtml+xml$2@
+SERVER-HEADER-FILTER: html-to-xml Changes the Content-Type header from html to xml.
+s@^(Content-Type:)\s*text/html(;.*)?$@$1 application/xhtml+xml$2@i
 
 #################################################################################
 #
-# xml-to-html: Header filter to change the Content-Type from xml to html.
+# xml-to-html: Changes the Content-Type header from xml to html.
 #
 #################################################################################
-FILTER: xml-to-html Header filter to change the Content-Type from xml to html.
-s@^(Content-Type:) (?:application|text)/(?:xhtml\+)?xml(;.*)?$@$1 text/html$2@
+SERVER-HEADER-FILTER: xml-to-html Changes the Content-Type header from xml to html.
+s@^(Content-Type:)\s*(?:application|text)/(?:xhtml\+)?xml(;.*)?$@$1 text/html$2@i
 
 #################################################################################
 #
-# hide-tor-exit-notation: Header filter to remove the Tor exit node notation
-#                         in Host and Referer headers.
+# hide-tor-exit-notation: Remove the Tor exit node notation in Host and Referer headers.
 #
 #   Note: If Privoxy and Tor are chained and Privoxy is configured to
 #         use socks4a, one can use http://www.example.org.foobar.exit/
@@ -689,14 +703,62 @@ s@^(Content-Type:) (?:application|text)/(?:xhtml\+)?xml(;.*)?$@$1 text/html$2@
 #         coming from.
 #
 #################################################################################
-FILTER: hide-tor-exit-notation Header filter to remove the Tor exit node notation in Host and Referer headers.
+CLIENT-HEADER-FILTER: hide-tor-exit-notation Removes the Tor exit node notation in Host and Referer headers.
 s@^((?:Referer|Host):\s*(?:https?://)?[^/]*)\.[^\./]*?\.exit@$1@i
 
+#################################################################################
+#
+# less-download-windows: Prevents annoying download windows for content types
+#                        the browser can handle itself.
+#
+#################################################################################
+SERVER-HEADER-FILTER: less-download-windows Prevent annoying download windows for content types the browser can handle itself
+s@^Content-Disposition:.*filename=(["']?).*\.(png|gif|jpe?g|diff?|d?patch|c|h|pl|shar)\1.*$@@i
+s@^(Content-Type:)\s*(?:message/(?:news|rfc822)|text/x-.*|application/x-sh)\s*@$1 text/plain@i
+
+#################################################################################
+#
+# image-requests: Tags detected image requests as "IMAGE-REQUEST". Whether
+#                 or not the detection actually works depends on the browser.
+#
+#################################################################################
+CLIENT-HEADER-TAGGER: image-requests Tags detected image requests as "IMAGE-REQUEST".
+s@Accept:\s*image/.*@IMAGE-REQUEST@i
+
+#################################################################################
+#
+# css-requests:  Tags detected CSS requests as "CSS-REQUEST". Whether
+#                or not the detection actually works depends on the browser.
+#
+#################################################################################
+CLIENT-HEADER-TAGGER: text-requests Tags detected CSS requests as "CSS-REQUEST".
+s@Accept:\s*text/css.*@CSS-REQUEST@i
 
 ############################################################################## 
 #
 #  Revisions   :
 #     $Log: default.filter,v $
+#     Revision 1.42  2007/05/17 15:55:36  fabiankeil
+#     Undo an improperly tested last-minute change
+#     and turn "text-requests" back into "css-requests".
+#
+#     Revision 1.41  2007/05/17 15:45:41  fabiankeil
+#     - Mention new filter types and the 'D' option.
+#     - Header filters are now case-insensitive and accept a
+#       varying amount of whitespace after the colon.
+#     - Add another selector for yahoo ads.
+#     - New server-header filter: less-download-windows
+#     - New client-header taggers: text-requests and image-requests.
+#
+#     Revision 1.40  2007/03/20 15:40:00  fabiankeil
+#     Adjust to new world order with dedicated header-filter actions.
+#
+#     Revision 1.39  2007/02/21 14:10:23  fabiankeil
+#     - Fix a js-annoyances pcrs command that broke
+#       evaluated code. (BR #1124071, thanks to Bor Gergely)
+#     - Have unsolicited-popups and all-popups catch the
+#       wheather.com popup reported in in AF #1640173.
+#
 #     Revision 1.38  2007/02/19 11:22:48  hal9
 #     Adding back the orginal filter content to offset problems found by Fabian.
 #