#
# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
#
-# $Id: default.filter,v 1.11 2002/05/24 00:57:18 oes Exp $
+# $Id: default.filter,v 1.11.2.5 2002/08/22 15:05:20 oes Exp $
#
# Purpose : Rules to process the content of web pages
#
#################################################################################
FILTER: webbugs Squish WebBugs (1x1 invisible GIFs used for user tracking)
-s/<img\s+[^>]*(?:width|height)\s*=\s*['"]?1\D[^>]*(?:width|height)\s*=\s*['"]?1\D[^>]*>//siUg
+s/<img\s+[^>]*(?:width|height)\s*=\s*['"]?1(?=\D)[^>]*(?:width|height)\s*=\s*['"]?1(?=\D)[^>]*?>//siUg
##################################################################################
#################################################################################
FILTER: popups Kill all popups in JS and HTML
-s/([\n =;{}]|window\.)open\s*\\?\(/$1concat(/ig # JavaScript
-s/target\s*=\s*['"]?(_blank|_new)['"]?/notarget/ig # HTML
+s/([\n =;{}]|window\.)open\s*\\?\(/$1concat(/ig # JavaScript
+s/ target\s*=\s*(['"]?)(_blank|_new)\1?/ notarget/ig # HTML
#################################################################################
FILTER: frameset-borders Give frames a border and make them resizable
s/(<frameset\s+[^>]*)framespacing=(['"]?)(no|0)\2/$1/igU
-s/(<frameset\s+[^>]*)(?:frame)?border=(['"]?)(no|0)\2/$1/igU
+s/(<frameset\s+[^>]*)frameborder=(['"]?)(no|0)\2/$1/igU
+s/(<frameset\s+[^>]*)border=(['"]?)(no|0)\2/$1/igU
s/(<frame\s+[^>]*)noresize/$1/igU
s/(<frame\s+[^>]*)frameborder=(['"]?)(no|0)\2/$1/igU
s/(<frame\s+[^>]*)scrolling=(['"]?)(no|0)\2/$1/igU
# 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\s*>/<link rev="x-refresh" href="$3">/iU
+s/<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;\s*url\s*=\s*([^>\2]*))?\2\s*>/<link rev="x-refresh" href="$4">/iU
#################################################################################
FILTER: banners-by-size Kill banners by size
# 88*31
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)88\3)[^>]*(height=(['"]?)31\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)88\3)[^>]*(height=(['"]?)31\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 120*60, 120*90, 120*240, 120*600
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)120\3)[^>]*(height=(['"]?)(?:600?|90|240)\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)120\3)[^>]*(height=(['"]?)(?:600?|90|240)\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 125*125
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)125\3)[^>]*(height=(['"]?)125\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)125\3)[^>]*(height=(['"]?)125\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 160*600
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)160\3)[^>]*(height=(['"]?)600\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)160\3)[^>]*(height=(['"]?)600\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 180*150
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)180\3)[^>]*(height=(['"]?)150\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)180\3)[^>]*(height=(['"]?)150\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 234*60, 468*60 (Most Banners!)
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)(?:234|468)\3)[^>]*(height=(['"]?)60\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)(?:234|468)\3)[^>]*(height=(['"]?)60\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 240*400
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)240\3)[^>]*(height=(['"]?)400\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)240\3)[^>]*(height=(['"]?)400\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 250*250, 300*250
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)(?:250|300)\3)[^>]*(height=(['"]?)250\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)(?:250|300)\3)[^>]*(height=(['"]?)250\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# 336*280
-s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)336\3)[^>]*(height=(['"]?)280\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)336\3)[^>]*(height=(['"]?)280\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
# Note: 200*50 was also proposed, but it probably causes too much collateral damage:
#
-#s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)200\3)[^>]*(height=(['"]?)50\5)[^>]*>@<img src="http://config.privoxy.org/send-banner?type=auto" alt="Killed $1 by size" $2 $4>@sigU
+#s@<img(?: src="([^"]*)")??[^>]*(width=(['"]?)200\3)[^>]*(height=(['"]?)50\5)[^>]*>@<img src=http://config.privoxy.org/send-banner?type=auto alt=Killed-$1-by-size $2 $4>@sigU
#################################################################################
s|<embed [^>]*application/x-shockwave-flash.*</embed>|<!-- Squished Shockwave Flash Embed -->|sigU
+#################################################################################
+#
+# quicktime-kioskmode: Make Quicktime movies saveable
+#
+#################################################################################
+FILTER: quicktime-kioskmode Make Quicktime movies saveable
+
+s/(<embed\s+[^>]*)kioskmode\s*=\s*(["']?)true\2/$1/ig
+
+
#################################################################################
#
# js-events: Kill all JS event bindings (Radically destructive! Only for extra nasty sites)
#
# Revisions :
# $Log: default.filter,v $
+# Revision 1.11.2.5 2002/08/22 15:05:20 oes
+# Added Filter to make Quicktime movies saveable (thanks to aaron@linville.org for the idea)
+#
+# Revision 1.11.2.4 2002/08/10 11:32:29 oes
+# Attribute values in replacement tags of banners-by-size filter now undelimited. (Fixes bug #592493)
+#
+# Revision 1.11.2.3 2002/08/05 11:43:56 oes
+# Fixed a bug in the popups filter that was introduced with the last fix :-(
+#
+# Revision 1.11.2.2 2002/08/01 11:20:13 oes
+# Fixed bugs 587802, 577802 and an unreported one
+#
+# Revision 1.11.2.1 2002/07/26 15:18:26 oes
+# - All filters reviewed and many shorcomings fixed
+# - New filters: img-reorder, banners-by-link and js-events
+# - Jobs reorderd because they are now executed in order of
+# appearance
+#
# Revision 1.11 2002/05/24 00:57:18 oes
# Made WeBugs job ungreedy; Fixes bug 559190
#