+Typical use:
+
+ Prevent the web server from reading any cookies from your system
+
+Effect:
+
+ Deletes any "Cookie:" HTTP headers from client requests.
+
+Type:
+
+ Boolean.
+
+Parameter:
+
+ N/A
+
+Notes:
+
+ This action is only concerned with outgoing cookies. For incoming cookies,
+ use crunch-incoming-cookies. Use both to disable cookies completely.
+
+ It makes no sense at all to use this action in conjunction with the
+ session-cookies-only action, since it would prevent the session cookies
+ from being read.
+
+Example usage:
+
+ +crunch-outgoing-cookies
+
+-------------------------------------------------------------------------------
+
+8.5.9. deanimate-gifs
+
+Typical use:
+
+ Stop those annoying, distracting animated GIF images.
+
+Effect:
+
+ De-animate GIF animations, i.e. reduce them to their first or last image.
+
+Type:
+
+ Parameterized.
+
+Parameter:
+
+ "last" or "first"
+
+Notes:
+
+ This will also shrink the images considerably (in bytes, not pixels!). If
+ the option "first" is given, the first frame of the animation is used as
+ the replacement. If "last" is given, the last frame of the animation is
+ used instead, which probably makes more sense for most banner animations,
+ but also has the risk of not showing the entire last frame (if it is only a
+ delta to an earlier frame).
+
+ You can safely use this action with patterns that will also match non-GIF
+ objects, because no attempt will be made at anything that doesn't look like
+ a GIF.
+
+Example usage:
+
+ +deanimate-gifs{last}
+
+-------------------------------------------------------------------------------
+
+8.5.10. downgrade-http-version
+
+Typical use:
+
+ Work around (very rare) problems with HTTP/1.1
+
+Effect:
+
+ Downgrades HTTP/1.1 client requests and server replies to HTTP/1.0.
+
+Type:
+
+ Boolean.
+
+Parameter:
+
+ N/A
+
+Notes:
+
+ This is a left-over from the time when Privoxy didn't support important
+ HTTP/1.1 features well. It is left here for the unlikely case that you
+ experience HTTP/1.1 related problems with some server out there. Not all
+ (optional) HTTP/1.1 features are supported yet, so there is a chance you
+ might need this action.
+
+Example usage (section):
+
+ {+downgrade-http-version}
+ problem-host.example.com
+
+-------------------------------------------------------------------------------
+
+8.5.11. fast-redirects
+
+Typical use:
+
+ Fool some click-tracking scripts and speed up indirect links.
+
+Effect:
+
+ Detects redirection URLs and redirects the browser without contacting the
+ redirection server first.
+
+Type:
+
+ Parameterized.
+
+Parameter:
+
+ + "simple-check" to just search for the string "http://" to detect
+ redirection URLs.
+
+ + "check-decoded-url" to decode URLs (if necessary) before searching for
+ redirection URLs.
+
+Notes:
+
+ Many sites, like yahoo.com, don't just link to other sites. Instead, they
+ will link to some script on their own servers, giving the destination as a
+ parameter, which will then redirect you to the final target. URLs resulting
+ from this scheme typically look like: "http://www.example.org/
+ click-tracker.cgi?target=http%3a//www.example.net/".
+
+ Sometimes, there are even multiple consecutive redirects encoded in the
+ URL. These redirections via scripts make your web browsing more traceable,
+ since the server from which you follow such a link can see where you go to.
+ Apart from that, valuable bandwidth and time is wasted, while your browser
+ asks the server for one redirect after the other. Plus, it feeds the
+ advertisers.
+
+ This feature is currently not very smart and is scheduled for improvement.
+ If it is enabled by default, you will have to create some exceptions to
+ this action. It can lead to failures in several ways:
+
+ Not every URLs with other URLs as parameters is evil. Some sites offer a
+ real service that requires this information to work. For example a
+ validation service needs to know, which document to validate.
+ fast-redirects assumes that every URL parameter that looks like another URL
+ is a redirection target, and will always redirect to the last one. Most of
+ the time the assumption is correct, but if it isn't, the user gets
+ redirected anyway.
+
+ Another failure occurs if the URL contains other parameters after the URL
+ parameter. The URL: "http://www.example.org/?redirect=http%3a//
+ www.example.net/&foo=bar". contains the redirection URL "http://
+ www.example.net/", followed by another parameter. fast-redirects doesn't
+ know that and will cause a redirect to "http://www.example.net/&foo=bar".
+ Depending on the target server configuration, the parameter will be
+ silently ignored or lead to a "page not found" error. It is possible to fix
+ these redirected requests with filter-client-headers but it requires a
+ little effort.
+
+ To detect a redirection URL, fast-redirects only looks for the string
+ "http://", either in plain text (invalid but often used) or encoded as
+ "http%3a//". Some sites use their own URL encoding scheme, encrypt the
+ address of the target server or replace it with a database id. In theses
+ cases fast-redirects is fooled and the request reaches the redirection
+ server where it probably gets logged.
+
+Example usage:
+
+ { +fast-redirects{simple-check} }
+ .example.com
+
+ { +fast-redirects{check-decoded-url} }
+ another.example.com/testing
+
+-------------------------------------------------------------------------------
+
+8.5.12. filter
+
+Typical use:
+
+ Get rid of HTML and JavaScript annoyances, banner advertisements (by size),
+ do fun text replacements, etc.
+
+Effect:
+
+ All files of text-based type, most notably HTML and JavaScript, to which
+ this action applies, are filtered on-the-fly through the specified regular
+ expression based substitutions. (Note: as of version 3.0.3 plain text
+ documents are exempted from filtering, because web servers often use the
+ text/plain MIME type for all files whose type they don't know.) By default,
+ filtering works only on the raw document content itself (that which can be
+ seen with View Source), not the headers.
+
+Type:
+
+ Parameterized.
+
+Parameter:
+
+ The name of a filter, as defined in the filter file. Filters can be defined
+ in one or more files as defined by the filterfile option in the config file
+ . default.filter is the collection of filters supplied by the developers.
+ Locally defined filters should go in their own file, such as user.filter.
+
+ When used in its negative form, and without parameters, all filtering is
+ completely disabled.
+
+Notes:
+
+ For your convenience, there are a number of pre-defined filters available
+ in the distribution filter file that you can use. See the examples below
+ for a list.
+
+ Filtering requires buffering the page content, which may appear to slow
+ down page rendering since nothing is displayed until all content has passed
+ the filters. (It does not really take longer, but seems that way since the
+ page is not incrementally displayed.) This effect will be more noticeable
+ on slower connections.
+
+ "Rolling your own" filters requires a knowledge of "Regular Expressions"
+ and "HTML". This is very powerful feature, and potentially very intrusive.
+ Use with caution.
+
+ The amount of data that can be filtered is limited to the buffer-limit
+ option in the main config file. The default is 4096 KB (4 Megs). Once this
+ limit is exceeded, the buffered data, and all pending data, is passed
+ through unfiltered.
+
+ Inappropriate MIME types, such as zipped files, are not filtered at all.
+ (Again, only text-based types except plain text). Encrypted SSL data (from
+ HTTPS servers) cannot be filtered either, since this would violate the
+ integrity of the secure transaction. In some situations it might be
+ necessary to protect certain text, like source code, from filtering by
+ defining appropriate -filter exceptions.
+
+ At this time, Privoxy cannot uncompress compressed documents. If you want
+ filtering to work on all documents, even those that would normally be sent
+ compressed, use the prevent-compression action in conjunction with filter.
+
+ Filtering can achieve some of the same effects as the block action, i.e. it
+ can be used to block ads and banners. But the mechanism works quite
+ differently. One effective use, is to block ad banners based on their size
+ (see below), since many of these seem to be somewhat standardized.
+
+ Feedback with suggestions for new or improved filters is particularly
+ welcome!
+
+ The below list has only the names and a one-line description of each
+ predefined filter. There are more verbose explanations of what these
+ filters do in the filter file chapter.
+
+Example usage (with filters from the distribution default.filter file). See the
+ Predefined Filters section for more explanation on each:
+
+ +filter{js-annoyances} # Get rid of particularly annoying JavaScript abuse
+
+ +filter{js-events} # Kill all JS event bindings (Radically destructive! Only for extra nasty sites)
+
+ +filter{html-annoyances} # Get rid of particularly annoying HTML abuse
+
+ +filter{content-cookies} # Kill cookies that come in the HTML or JS content
+
+ +filter{refresh-tags} # Kill automatic refresh tags (for dial-on-demand setups)
+
+ +filter{unsolicited-popups} # Disable only unsolicited pop-up windows
+
+ +filter{all-popups} # Kill all popups in JavaScript and HTML
+
+ +filter{img-reorder} # Reorder attributes in <img> tags to make the banners-by-* filters more effective
+
+ +filter{banners-by-size} # Kill banners by size
+
+ +filter{banners-by-link} # Kill banners by their links to known clicktrackers
+
+ +filter{webbugs} # Squish WebBugs (1x1 invisible GIFs used for user tracking)
+
+ +filter{tiny-textforms} # Extend those tiny textareas up to 40x80 and kill the hard wrap
+
+ +filter{jumping-windows} # Prevent windows from resizing and moving themselves
+
+ +filter{frameset-borders} # Give frames a border and make them resizeable
+
+ +filter{demoronizer} # Fix MS's non-standard use of standard charsets
+
+ +filter{shockwave-flash} # Kill embedded Shockwave Flash objects
+
+ +filter{quicktime-kioskmode} # Make Quicktime movies savable
+
+ +filter{fun} # Text replacements for subversive browsing fun!
+
+ +filter{crude-parental} # Crude parental filtering (demo only)
+
+ +filter{ie-exploits} # Disable some known Internet Explorer bug exploits
+
+-------------------------------------------------------------------------------
+
+8.5.13. filter-client-headers
+
+Typical use:
+
+ To apply filtering to the client's (browser's) headers
+
+Effect:
+
+ By default, Privoxy's filters only apply to the document content itself.
+ This will extend those filters to include the client's headers as well.
+
+Type:
+
+ Boolean.
+
+Parameter:
+
+ N/A
+
+Notes:
+
+ Regular expressions can be used to filter headers as well. Check your
+ filters closely before activating this action, as it can easily lead to
+ broken requests.
+
+ These filters are applied to each header on its own, not to them all at
+ once. This makes it easier to diagnose problems, but on the downside you
+ can't write filters that only change header x if header y's value is z.
+
+ The filters are used after the other header actions have finished and can
+ use their output as input.
+
+ Whenever possible one should specify ^, $, the whole header name and the
+ colon, to make sure the filter doesn't cause havoc to other headers or the
+ page itself. For example if you want to transform Galeon User-Agents to
+ Firefox User-Agents you shouldn't use:
+
+ s@Galeon/\d\.\d\.\d @@
+
+ but:
+
+ s@^(User-Agent:.*) Galeon/\d\.\d\.\d (Firefox/\d\.\d\.\d\.\d)$@$1 $2@
+
+Example usage (section):
+
+ {+filter-client-headers +filter{test_filter}}
+ problem-host.example.com
+
+
+-------------------------------------------------------------------------------
+
+8.5.14. filter-server-headers
+
+Typical use:
+
+ To apply filtering to the server's headers
+
+Effect:
+
+ By default, Privoxy's filters only apply to the document content itself.
+ This will extend those filters to include the server's headers as well.
+
+Type:
+
+ Boolean.
+
+Parameter:
+
+ N/A
+
+Notes:
+
+ Similar to filter-client-headers, but works on the server instead. To
+ filter both server and client, use both.
+
+ As with filter-client-headers, check your filters before activating this
+ action, as it can easily lead to broken requests.
+
+ These filters are applied to each header on its own, not to them all at
+ once. This makes it easier to diagnose problems, but on the downside you
+ can't write filters that only change header x if header y's value is z.
+
+ The filters are used after the other header actions have finished and can
+ use their output as input.
+
+ Remember too, whenever possible one should specify ^, $, the whole header
+ name and the colon, to make sure the filter doesn't cause havoc to other
+ headers or the page itself. See above for example.
+
+Example usage (section):
+
+ {+filter-server-headers +filter{test_filter}}
+ problem-host.example.com
+
+
+-------------------------------------------------------------------------------
+
+8.5.15. force-text-mode
+
+Typical use:
+
+ Force Privoxy to treat a document as if it was in some kind of text format.
+
+Effect:
+
+ Declares a document as text, even if the "Content-Type:" isn't detected as
+ such.
+