#
# Revisions :
# $Log: edit-actions-for-url,v $
+# Revision 1.40 2006/12/21 13:01:03 fabiankeil
+# Prepare for "split-large-forms".
+#
+# Mention that redirect{} now also understands
+# a single pcrs job as argument.
+#
+# Add some table summaries and remove useless validator link.
+#
+# Revision 1.39 2006/10/04 17:37:54 fabiankeil
+# JavaScript fix for bug report #1570678.
+#
+# Revision 1.38 2006/09/08 12:06:35 fabiankeil
+# Have hide-if-modified-since interpret the random
+# range value as minutes instead of hours. Allows
+# more fine-grained configuration.
+#
+# Revision 1.37 2006/09/05 18:20:14 fabiankeil
+# Sorted alphabetically, fixed spelling mistakes
+# and shortened some descriptions.
+#
+# Revision 1.36 2006/08/14 08:29:17 fabiankeil
+# Split filter-headers{} into filter-client-headers{}
+# and filter-server-headers{}.
+#
+# Revision 1.35 2006/08/03 02:46:42 david__schmidt
+# Incorporate Fabian Keil's patch work:\rhttp://www.fabiankeil.de/sourcecode/privoxy/
+#
# Revision 1.34 2006/07/18 14:49:13 david__schmidt
# Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
# with what was really the latest development (the v_3_0_branch branch)
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="robots" content="noindex,nofollow">
<link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
+ <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
<title>Privoxy@@my-hostname@: Edit actions</title>
<body>
+<!-- @if-one-form-only-start -->
<form method="GET" action="edit-actions-submit" id="myform" name="myform">
+<!-- if-one-form-only-end@ -->
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
+ <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
<tr>
<td class="title">
</tr>
<!-- if-unstable-end@ -->
+<!-- @if-one-form-only-start -->
<tr>
<td class="box">
<h2>Edit Actions
<p><input type="submit" value="Submit" name="Submit"></p>
</td>
</tr>
+<!-- if-one-form-only-end@ -->
<tr><td class="wrapbox">
- <table border="0" cellspacing="2" width="100%" class="wide">
+<!-- @if-multiple-forms-start -->
+<form method="GET" action="edit-actions-submit" id="myform" name="myform">
+ <h2>Edit Actions (Section 1)</h2>
+<!-- if-multiple-forms-end@ -->
+
+ <table summary="Action section 1" border="0" cellspacing="2" width="100%" class="wide">
<tr class="hdr" align="left">
<th class="enh" align="center">Enable</th>
<th class="dish" align="center">Disable</th>
<td class="action"><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></td>
<td>Block the request</td>
</tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="content_type_overwrite" value="Y" @content-type-overwrite-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="content_type_overwrite" value="N" @content-type-overwrite-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="content_type_overwrite" value="X" @content-type-overwrite-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@CONTENT_TYPE_OVERWRITE">content-type-overwrite</a></td>
+ <td>Replace Content-Type header. By default it only applies to
+ text documents, but if you know what you're doing you
+ can enable force-text-mode to modify binary content types as well.</td>
+ </tr>
+ <tr class="bg1" align="left" valign="top" id="content_type_overwrite_opts">
+ <td class="en1"> </td>
+ <td class="dis1"> </td>
+ <td class="noc1"> </td>
+ <td> </td>
+ <td>New Content-Type:<br>
+ <input type="text" name="content_type_overwrite_mode" size="40"
+ value="@content-type-overwrite-param@"></td>
+ </tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="crunch_client_header" id="crunch_client_header_y" value="Y" @crunch-client-header-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="crunch_client_header" value="N" @crunch-client-header-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="crunch_client_header" value="X" @crunch-client-header-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-CLIENT-HEADER">crunch-client-header</a></td>
+ <td>Remove header(s) matching the supplied pattern.</td>
+ </tr>
+ <tr class="bg1" align="left" valign="top" id="crunch_client_header_opts">
+ <td class="en1"> </td>
+ <td class="dis1"> </td>
+ <td class="noc1"> </td>
+ <td> </td>
+ <td>Header string to suppress:<br>
+ <input type="text" name="crunch_client_header_mode" size="40"
+ value="@crunch-client-header-param@"></td>
+ </tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="crunch_if_none_match" value="Y" @crunch-if-none-match-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="crunch_if_none_match" value="N" @crunch-if-none-match-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="crunch_if_none_match" value="X" @crunch-if-none-match-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH_IF_NONE_MATCH">crunch-if-none-match</a></td>
+ <td>Remove If-None-Match header. Useful for filter testing
+ and to make sure the header can't be used to track your visits.</td>
+ </tr>
+
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="crunch_incoming_cookies" value="Y" @crunch-incoming-cookies-y@
<td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></td>
<td>Prevent the website from reading cookies from your system.</td>
</tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="crunch_server_header" id="crunch_server_header_y" value="Y" @crunch-server-header-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="crunch_server_header" value="N" @crunch-server-header-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="crunch_server_header" value="X" @crunch-server-header-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-SERVER-HEADER">crunch-server-header</a></td>
+ <td>Remove server header(s) matching the supplied pattern.</td>
+ </tr>
+ <tr class="bg1" align="left" valign="top" id="crunch_server_header_opts">
+ <td class="en1"> </td>
+ <td class="dis1"> </td>
+ <td class="noc1"> </td>
+ <td> </td>
+ <td>Header string to suppress:<br>
+ <input type="text" name="crunch_server_header_mode" size="40"
+ value="@crunch-server-header-param@"></td>
+ </tr>
+
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="deanimate_gifs" id="deanimate_gifs_y" value="Y" @deanimate-gifs-y@
id="deanimate_last" @deanimate-gifs-param-last@><label
for="deanimate_last">last frame</label></td>
</tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="inspect_jpegs" value="Y" @inspect-jpegs-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="inspect_jpegs" value="N" @inspect-jpegs-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="inspect_jpegs" value="X" @inspect-jpegs-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@INSPECT-JPEGS">inspect-jpegs</a></td>
- <td>Checks jpeg images for malicious content.</td>
- </tr>
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="downgrade_http_version" value="Y" @downgrade-http-version-y@></td>
<td class="action"><a href="@user-manual@@actions-help-prefix@FAST-REDIRECTS">fast-redirects</a></td>
<td>Bypass some click-tracking URLs.</td>
</tr>
-<!--TODO: Document-->
<tr class="bg1" align="left" valign="top" id="fast-redirects_opts">
<td class="en1"> </td>
<td class="dis1"> </td>
id="fast_redirects_check_decoded_url" @fast-redirects-param-check-decoded-url@><label
for="fast_redirects_check_decoded_url">Decode URL before checking.</label></td>
</tr>
-<!--TODO: Document-->
+<!-- @if-multiple-forms-start -->
+ </table>
+ <p>
+ <input type="hidden" name="f" value="@f@">
+ <input type="hidden" name="v" value="@v@">
+ <input type="hidden" name="s" value="@s@">
+ <input type="submit" value="Submit changes in Section 1" name="Submit">
+ </p>
+ </form>
+ </td></tr>
+ <tr><td class="wrapbox">
+ <form method="GET" action="edit-actions-submit" id="myform-2" name="myform">
+ <h2>Edit Actions (Section 2)</h2>
+ <table summary="Action section 2" border="0" cellspacing="2" width="100%" class="wide">
+ <tr class="hdr" align="left">
+ <th class="enh" align="center">Enable</th>
+ <th class="dish" align="center">Disable</th>
+ <th class="noch" align="center">No Change</th>
+ <th>Action</th>
+ <th>Description</th>
+ </tr>
+<!-- if-multiple-forms-end@ -->
<tr class="bg1" align="left" valign="top">
<td class="en1"> </td>
<td class="dis1" align="center" valign="middle"><input type="radio"
disable the filters individually below.</td>
</tr>
@filter-params@
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="handle_as_image" value="Y" @handle-as-image-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="handle_as_image" value="N" @handle-as-image-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="handle_as_image" value="X" @handle-as-image-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE-AS-IMAGE">handle-as-image</a></td>
- <td>Request is for an image (only useful in conjunction with the <i><b><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></b></i>
- and <i><b><a href="@user-manual@@actions-help-prefix@SET-IMAGE-BLOCKER">set-image-blocker</a></b></i> actions).</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_forwarded_for_headers" value="Y" @hide-forwarded-for-headers-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_forwarded_for_headers" value="N" @hide-forwarded-for-headers-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_forwarded_for_headers" value="X" @hide-forwarded-for-headers-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-FORWARDED-FOR-HEADERS">hide-forwarded-for-headers</a></td>
- <td>Block any existing X-Forwarded-for header, and do not add a new one.</td>
- </tr>
-<!--TODO: Document-->
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_if_modified_since" value="Y" @hide-if-modified-since-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_if_modified_since" value="N" @hide-if-modified-since-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_if_modified_since" value="X" @hide-if-modified-since-x@
- ></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@HIDE_IF_MODIFIED_SINCE">-->hide-if-modified-since<!--</a>--></td>
- <td>Remove or randomize If-Modified-Since header.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="hide_if-modifed-since_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="hide_if_modified_since_mode" value="block"
- onclick="hide_if_modified_since_param_disable(true)"
- @hide-if-modified-since-param-block@ id="hide_if_modified_since_mode_block"><label
- for="hide_if_modified_since_mode_block">Remove without replacement.</label>
- Useful for filter testing.<br>
- <input type="radio" name="hide_if_modified_since_mode" value="CUSTOM"
- onclick="hide_if_modified_since_param_disable(true)"
- @hide-if-modified-since-param-custom@ id="hide_if_modified_since_mode_set"><label
- for="hide_if_modified_since_mode_set">Add random amount of seconds in the range of</label>
- <input type="text" name="hide_if_modified_since_param"
- id="hide_if_modified_since_param" size="4"
- value="@hide-if-modified-since-param@"> hour(s).
- To appreciate this option a small amount of paranoia is required,
- but at least in theory the If-Modified-Since header could be used
- to keep track of your visits.
- </td>
+<!-- @if-multiple-forms-start -->
+ </table>
+ <p>
+ <input type="hidden" name="f" value="@f@">
+ <input type="hidden" name="v" value="@v@">
+ <input type="hidden" name="s" value="@s@">
+ <input type="submit" value="Submit changes in Section 2" name="Submit">
+ </p>
+ </form>
+ </td></tr>
+ <tr><td class="wrapbox">
+ <form method="GET" action="edit-actions-submit" id="myform-3" name="myform">
+ <h2>Edit Actions (Section 3)</h2>
+ <table summary="Action section 3" border="0" cellspacing="2" width="100%" class="wide">
+ <tr class="hdr" align="left">
+ <th class="enh" align="center">Enable</th>
+ <th class="dish" align="center">Disable</th>
+ <th class="noch" align="center">No Change</th>
+ <th>Action</th>
+ <th>Description</th>
</tr>
- <!-- -->
+<!-- if-multiple-forms-end@ -->
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
- name="overwrite_last_modified" value="Y" @overwrite-last-modified-y@
+ name="filter_client_headers" value="Y" @filter-client-headers-y@
></td>
<td class="dis1" align="center" valign="middle"><input type="radio"
- name="overwrite_last_modified" value="N" @overwrite-last-modified-n@
+ name="filter_client_headers" value="N" @filter-client-headers-n@
></td>
<td class="noc1" align="center" valign="middle"><input type="radio"
- name="overwrite_last_modified" value="X" @overwrite-last-modified-x@
+ name="filter_client_headers" value="X" @filter-client-headers-x@
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@OVERWRITE_LAST_MODIFIED">-->overwrite-last-modified<!--</a>--></td>
- <td>Remove or randomize If-Modified-Since header.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="overwrite_last_modified_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="overwrite_last_modified_mode" value="block"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-block@ id="overwrite_last_modified_mode_block"><label
- for="overwrite_last_modified_mode_block">Remove without replacement.</label>
- <strong>Useless</strong>.<br>
- <input type="radio" name="overwrite_last_modified_mode" value="reset-to-request-time"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-reset-to-request-time@
- id="overwrite_last_modified_mode_reset-to-request-time"><label
- for="overwrite_last_modified_mode_reset-to-request-time">Reset to the time of the request.</label>
- <br>
- <input type="radio" name="overwrite_last_modified_mode" value="randomize"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-randomize@
- id="overwrite_last_modified_mode_randomize"><label
- for="overwrite_last_modified_mode_randomize">Overwrite with random value
- between original header value and the time of the request.</label>
- <br>
- <!--
- <input type="radio" name="overwrite_last_modified_mode" value="CUSTOM"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-custom@ id="overwrite_last_modified_mode_set"><label
- for="overwrite_last_modified_mode_set">Add random amount of seconds in the range of</label>
- <input type="text" name="overwrite_last_modified_param"
- id="overwrite_last_modified_param" size="4"
- value="@overwrite-last-modified-param@"> hour(s).
- To appreciate this option a small amount of paranoia is required,
- but at least in theory the If-Modified-Since header could be used
- to keep track of your visits.-->
- </td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@FILTER-CLIENT-HEADERS">filter-client-headers</a></td>
+ <td>Apply filters to the client headers as well. Only enable this if you know what you're doing.</td>
</tr>
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_if_none_match" value="Y" @crunch-if-none-match-y@
+ name="filter_server_headers" value="Y" @filter-server-headers-y@
></td>
<td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_if_none_match" value="N" @crunch-if-none-match-n@
+ name="filter_server_headers" value="N" @filter-server-headers-n@
></td>
<td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_if_none_match" value="X" @crunch-if-none-match-x@
+ name="filter_server_headers" value="X" @filter-server-headers-x@
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@CRUNCH_IF_NONE_MATCH">-->crunch-if-none-match<!--</a>--></td>
- <td>Remove If-None-Match header to circumvent browser cache. Useful for filter testing,
- but hurts performance.</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="content_type_overwrite" value="Y" @content-type-overwrite-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="content_type_overwrite" value="N" @content-type-overwrite-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="content_type_overwrite" value="X" @content-type-overwrite-x@
- ></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@CONTENT_TYPE_OVERWRITE">-->content-type-overwrite<!--</a>--></td>
- <td>Replace Content-Type header. Useful to let the browser render broken
- <abbr title="EXtensible HyperText Markup Language">XHTML</abbr> as broken
- <abbr title="HyperText Markup Language">HTML</abbr>. By default it only applies to
- text documents, if you know what you're doing you
- can enable force-text-mode to modify binary content types as well.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="content_type_overwrite_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>New Content-Type:<br>
- <input type="text" name="content_type_overwrite_mode" size="40"
- value="@content-type-overwrite-param@"></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@FILTER-SERVER-HEADERS">filter-server-headers</a></td>
+ <td>Apply filters to the server headers as well. Only enable this if you know what you're doing.</td>
</tr>
<tr class="bg1" align="left" valign="top">
<td class="noc1" align="center" valign="middle"><input type="radio"
name="force_text_mode" value="X" @force-text-mode-x@
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@FORCE_TEXT_MODE">-->force-text-mode<!--</a>--></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@FORCE_TEXT_MODE">force-text-mode</a></td>
<td>
Enable filtering on documents whose Content-Type wasn't recognized as text.
Do think twice, nothing is alright.
<td class="noc1" align="center" valign="middle"><input type="radio"
name="handle_as_empty_document" value="X" @handle-as-empty-document-x@
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@HANDLE_AS_EMPTY_DOCUMENT">-->handle-as-empty-document<!--</a>--></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE_AS_EMPTY_DOCUMENT">handle-as-empty-document</a></td>
<td>
Block with an <em>empty</em> document instead of an Image or HTML message.
The <em>empty</em> document contains only a space and can safely be parsed
as JavaScript or Style Sheet. Use content-type-overwrite to specify the
- Content-Type, default is <q>test/html</q>.
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="treat_forbidden_connects_like_blocks" value="Y" @treat-forbidden-connects-like-blocks-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="treat_forbidden_connects_like_blocks" value="N" @treat-forbidden-connects-like-blocks-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="treat_forbidden_connects_like_blocks" value="X" @treat-forbidden-connects-like-blocks-x@
- ></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@TREAT_FORBIDDEN_CONNECTS_LIKE_BLOCKS">-->treat-forbidden-connects-like-blocks<!--</a>--></td>
- <td>
- Answer forbidden Connect requests with the usual block message.
- May be a protocol violation, but makes unblocking easier.
+ Content-Type, default is <q>text/html</q>.
</td>
</tr>
-<!--crunch-client-header-->
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_client_header" id="crunch_client_header_y" value="Y" @crunch-client-header-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_client_header" value="N" @crunch-client-header-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_client_header" value="X" @crunch-client-header-x@
- ></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@CRUNCH-CLIENT-HEADER">-->crunch-client-header<!--</a>--></td>
- <td>Remove header(s) matching the supplied pattern. Together with add-header you can
- build a custom header replacement action.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="crunch_client_header_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Header string to suppress:<br>
- <input type="text" name="crunch_client_header_mode" size="40"
- value="@crunch-client-header-param@"></td>
- </tr>
-<!--/crunch-client-header-->
-<!--crunch-server-header-->
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_server_header" id="crunch_server_header_y" value="Y" @crunch-server-header-y@
+ name="handle_as_image" value="Y" @handle-as-image-y@
></td>
<td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_server_header" value="N" @crunch-server-header-n@
+ name="handle_as_image" value="N" @handle-as-image-n@
></td>
<td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_server_header" value="X" @crunch-server-header-x@
+ name="handle_as_image" value="X" @handle-as-image-x@
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@CRUNCH-SERVER-HEADER">-->crunch-server-header<!--</a>--></td>
- <td>Remove server header(s) matching the supplied pattern.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="crunch_server_header_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Header string to suppress:<br>
- <input type="text" name="crunch_server_header_mode" size="40"
- value="@crunch-server-header-param@"></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE-AS-IMAGE">handle-as-image</a></td>
+ <td>Request is for an image (only useful in conjunction with the <i><b><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></b></i>
+ and <i><b><a href="@user-manual@@actions-help-prefix@SET-IMAGE-BLOCKER">set-image-blocker</a></b></i> actions).</td>
</tr>
-<!--/crunch-server-header-->
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="hide_accept_language" id="hide_accept_language_y" value="Y" @hide-accept-language-y@
name="hide_accept_language" id="hide_accept_language_x" value="X" @hide-accept-language-x@
onclick="show_hide_accept_language_opts(false)"
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@HIDE-ACCEPT-LANGUAGE">-->hide-accept-language<!--</a>--></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-ACCEPT-LANGUAGE">hide-accept-language</a></td>
<td>Pretend to have different language settings. (Makes a fake User-Agent more believable,
but can lead to foreign content.)</td>
</tr>
onclick="hide_accept_language_param_disable(true)"
@hide-accept-language-param-block@ id="hide_accept_language_mode_block"><label
for="hide_accept_language_mode_block">Remove Accept-Language header without replacement.</label>
- This isn't the option you're looking for.<br>
+ <br>
<input type="radio" name="hide_accept_language_mode" value="CUSTOM"
onclick="hide_accept_language_param_disable(false)"
@hide-accept-language-param-custom@ id="hide_accept_language_mode_set"><label
id="hide_accept_language_param" size="40"
value="@hide-accept-language-param@"><br>
</td>
-<!--content-dispostion-->
- </tr> <tr class="bg1" align="left" valign="top">
+ </tr>
+ <tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="hide_content_disposition" id="hide_content_disposition_y" value="Y" @hide-content-disposition-y@
onclick="show_hide_content_disposition_opts(true)"></td>
name="hide_content_disposition" id="hide_content_disposition_x" value="X" @hide-content-disposition-x@
onclick="show_hide_content_disposition_opts(false)"
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@HIDE-CONTENT-DISPOSITION">-->hide-content-disposition<!--</a>--></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></td>
<td>Block or overwrite the content-disposition header. Useful to view a document inside the browser,
even if you were supposed to save it first, or to change the suggested file name.</td>
</tr>
value="@hide-content-disposition-param@"><br>
</td>
</tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="redirect" value="Y" @redirect-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="redirect" value="N" @redirect-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="redirect" value="X" @redirect-x@
- ></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@REDIRECT">-->redirect<!--</a>--></td>
- <td>Redirect to another address.
- </tr>
- <tr class="bg1" align="left" valign="top" id="redirect_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Address to redirect to:<br>
- <input type="text" name="redirect_mode" size="40"
- value="@redirect-param@"></td>
- </tr>
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
- name="filter_headers" value="Y" @filter-headers-y@
+ name="hide_forwarded_for_headers" value="Y" @hide-forwarded-for-headers-y@
></td>
<td class="dis1" align="center" valign="middle"><input type="radio"
- name="filter_headers" value="N" @filter-headers-n@
+ name="hide_forwarded_for_headers" value="N" @hide-forwarded-for-headers-n@
></td>
<td class="noc1" align="center" valign="middle"><input type="radio"
- name="filter_headers" value="X" @filter-headers-x@
+ name="hide_forwarded_for_headers" value="X" @hide-forwarded-for-headers-x@
></td>
- <td class="action"><!--<a href="@user-manual@@actions-help-prefix@FILTER-HEADERS">-->filter-headers<!--</a>--></td>
- <td>Apply filters to the headers as well. <strong>Only enable this if you know what you're doing.</strong></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-FORWARDED-FOR-HEADERS">hide-forwarded-for-headers</a></td>
+ <td>Block any existing X-Forwarded-for header, and do not add a new one.</td>
</tr>
-
-
-
-<!--TODO: Document-->
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="hide_from_header" id="hide_from_header_y" value="Y" @hide-from-header-y@
<input type="text" name="hide_from_header_param" id="hide_from_header_param"
size="40" value="@hide-from-header-param@"></td>
</tr>
+
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="hide_if_modified_since" value="Y" @hide-if-modified-since-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="hide_if_modified_since" value="N" @hide-if-modified-since-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="hide_if_modified_since" value="X" @hide-if-modified-since-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE_IF_MODIFIED_SINCE">hide-if-modified-since</a></td>
+ <td>Remove or randomize If-Modified-Since header.</td>
+ </tr>
+ <tr class="bg1" align="left" valign="top" id="hide_if-modifed-since_opts">
+ <td class="en1"> </td>
+ <td class="dis1"> </td>
+ <td class="noc1"> </td>
+ <td> </td>
+ <td><input type="radio" name="hide_if_modified_since_mode" value="block"
+ onclick="hide_if_modified_since_param_disable(true)"
+ @hide-if-modified-since-param-block@ id="hide_if_modified_since_mode_block"><label
+ for="hide_if_modified_since_mode_block">Remove without replacement.</label>
+ Useful for filter testing.<br>
+ <input type="radio" name="hide_if_modified_since_mode" value="CUSTOM"
+ onclick="hide_if_modified_since_param_disable(true)"
+ @hide-if-modified-since-param-custom@ id="hide_if_modified_since_mode_set"><label
+ for="hide_if_modified_since_mode_set">Add random amount of seconds in the range of</label>
+ <input type="text" name="hide_if_modified_since_param"
+ id="hide_if_modified_since_param" size="4"
+ value="@hide-if-modified-since-param@"> minute(s).
+ To appreciate this option a small amount of paranoia is required,
+ but at least in theory the If-Modified-Since header could be used
+ to keep track of your visits.
+ </td>
+ </tr>
+<!-- @if-multiple-forms-start -->
+ </table>
+ <p>
+ <input type="hidden" name="f" value="@f@">
+ <input type="hidden" name="v" value="@v@">
+ <input type="hidden" name="s" value="@s@">
+ <input type="submit" value="Submit changes in Section 3" name="Submit">
+ </p>
+ </form>
+ </td></tr>
+ <tr><td class="wrapbox">
+ <form method="GET" action="edit-actions-submit" id="myform-4" name="myform">
+ <h2>Edit Actions (Section 4)</h2>
+ <table summary="Action section 4" border="0" cellspacing="2" width="100%" class="wide">
+ <tr class="hdr" align="left">
+ <th class="enh" align="center">Enable</th>
+ <th class="dish" align="center">Disable</th>
+ <th class="noch" align="center">No Change</th>
+ <th>Action</th>
+ <th>Description</th>
+ </tr>
+<!-- if-multiple-forms-end@ -->
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="hide_referrer" id="hide_referrer_y" value="Y" @hide-referrer-y@
<input type="text" name="hide_referrer_param"
id="hide_referrer_param" size="40"
value="@hide-referrer-param@"><br>
-<!--TODO: Document-->
<input type="radio" name="hide_referrer_mode" value="conditional-block"
onclick="hide_referrer_param_disable(true)"
@hide-referrer-param-conditional-block@ id="hide_referrer_mode_conditional-block"><label
for="hide_referrer_mode_conditional-block">Remove completely if host has changed,
but don't touch in-site referrers.
Less suspicious than the options above.</label><br></td>
-<!--TODO: Document-->
</tr>
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
<input type="text" name="hide_user_agent_mode" size="40"
value="@hide-user-agent-param@"></td>
</tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="inspect_jpegs" value="Y" @inspect-jpegs-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="inspect_jpegs" value="N" @inspect-jpegs-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="inspect_jpegs" value="X" @inspect-jpegs-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@INSPECT-JPEGS">inspect-jpegs</a></td>
+ <td>Checks jpeg images for malicious content.</td>
+ </tr>
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="kill_popups" value="Y" @kill-popups-y@
<input type="text" name="limit_connect_mode" size="40"
value="@limit-connect-param@"></td>
</tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="overwrite_last_modified" value="Y" @overwrite-last-modified-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="overwrite_last_modified" value="N" @overwrite-last-modified-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="overwrite_last_modified" value="X" @overwrite-last-modified-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@OVERWRITE_LAST_MODIFIED">overwrite-last-modified</a></td>
+ <td>Remove or randomize If-Modified-Since header.</td>
+ </tr>
+ <tr class="bg1" align="left" valign="top" id="overwrite_last_modified_opts">
+ <td class="en1"> </td>
+ <td class="dis1"> </td>
+ <td class="noc1"> </td>
+ <td> </td>
+ <td><input type="radio" name="overwrite_last_modified_mode" value="block"
+ onclick="overwrite_last_modified_param_disable(true)"
+ @overwrite-last-modified-param-block@ id="overwrite_last_modified_mode_block"><label
+ for="overwrite_last_modified_mode_block">Remove without replacement.</label>
+ <br>
+ <input type="radio" name="overwrite_last_modified_mode" value="reset-to-request-time"
+ onclick="overwrite_last_modified_param_disable(true)"
+ @overwrite-last-modified-param-reset-to-request-time@
+ id="overwrite_last_modified_mode_reset-to-request-time"><label
+ for="overwrite_last_modified_mode_reset-to-request-time">Reset to the time of the request.</label>
+ <br>
+ <input type="radio" name="overwrite_last_modified_mode" value="randomize"
+ onclick="overwrite_last_modified_param_disable(true)"
+ @overwrite-last-modified-param-randomize@
+ id="overwrite_last_modified_mode_randomize"><label
+ for="overwrite_last_modified_mode_randomize">Overwrite with random value
+ between original header value and the time of the request.</label>
+ </td>
+ </tr>
+
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="prevent_compression" value="Y" @prevent-compression-y@
This setting only affects the few web sites which support
compression.</td>
</tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="redirect" value="Y" @redirect-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="redirect" value="N" @redirect-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="redirect" value="X" @redirect-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@REDIRECT">redirect</a></td>
+ <td>Redirect to another address.
+ </tr>
+ <tr class="bg1" align="left" valign="top" id="redirect_opts">
+ <td class="en1"> </td>
+ <td class="dis1"> </td>
+ <td class="noc1"> </td>
+ <td> </td>
+ <td>Static address or a single pcrs command to redirect to a rewritten version of the original URL:<br>
+ <input type="text" name="redirect_mode" size="40"
+ value="@redirect-param@"></td>
+ </tr>
+
<tr class="bg1" align="left" valign="top">
<td class="en1" align="center" valign="middle"><input type="radio"
name="send_vanilla_wafer" value="Y" @send-vanilla-wafer-y@
<input type="text" name="set_image_blocker_param" id="set_image_blocker_param"
size="40" value="@set-image-blocker-param@"></td>
</tr>
+ <tr class="bg1" align="left" valign="top">
+ <td class="en1" align="center" valign="middle"><input type="radio"
+ name="treat_forbidden_connects_like_blocks" value="Y" @treat-forbidden-connects-like-blocks-y@
+ ></td>
+ <td class="dis1" align="center" valign="middle"><input type="radio"
+ name="treat_forbidden_connects_like_blocks" value="N" @treat-forbidden-connects-like-blocks-n@
+ ></td>
+ <td class="noc1" align="center" valign="middle"><input type="radio"
+ name="treat_forbidden_connects_like_blocks" value="X" @treat-forbidden-connects-like-blocks-x@
+ ></td>
+ <td class="action"><a href="@user-manual@@actions-help-prefix@TREAT_FORBIDDEN_CONNECTS_LIKE_BLOCKS">treat-forbidden-connects-like-blocks</a></td>
+ <td>
+ Answer forbidden Connect requests with the usual block message.
+ Makes unblocking easier, but the <q>go there anyway</q> link will not work
+ as expected.
+ </td>
+ </tr>
</table>
+<!-- @if-multiple-forms-start -->
+ <p>
+ <input type="hidden" name="f" value="@f@">
+ <input type="hidden" name="v" value="@v@">
+ <input type="hidden" name="s" value="@s@">
+ <input type="submit" value="Submit changes in Section 4" name="Submit">
+ </p>
+ </form>
+<!-- if-multiple-forms-end@ -->
</td></tr>
-
+<!-- @if-one-form-only-start -->
<tr>
<td class="green" align="center">
<p><input type="submit" value="Submit" name="Submit"></p>
</td>
</tr>
-
+<!-- if-one-form-only-end@ -->
<tr>
<td class="box">
<h2>More Privoxy:</h2>
</tr>
<!-- if-have-help-info-end@ -->
- <tr>
- <td>
- <small><small>Valid <a href="http://validator.w3.org/">HTML 4.01 Strict</a></small></small>
- </td>
- </tr>
-
</table>
+<!-- @if-one-form-only-start -->
</form>
-
+<!-- if-one-form-only-end@ -->
<script type="text/javascript">
<!--
show_user_agent_opts (document.getElementById("hide_user_agent_y").checked);
show_set_image_blocker_opts (document.getElementById("set_image_blocker_y").checked);
show_limit_connect_opts (document.getElementById("limit_connect_y").checked);
- show_send_wafer_opts (document.getElementById("wafer_y").checked);
+ show_send_wafer_opts (document.getElementById("send_wafer_y").checked);
} else if (document.all) {
// alert("IE4");
document.myform.hide_from_header_param.disabled = !(document.myform.hide_from_header_mode_set.checked);
show_user_agent_opts (document.myform.hide_user_agent_y.checked);
show_set_image_blocker_opts (document.myform.set_image_blocker_y.checked);
show_limit_connect_opts (document.myform.limit_connect_y.checked);
- show_send_wafer_opts (document.myform.wafer_y.checked);
+ show_send_wafer_opts (document.myform.send_wafer_y.checked);
} else if (document.layers) {
// alert("Netscape 4");
}