Another beta to address a lot of the problems of the previous releases
and to start to finalize v4.41 for release. This version includes a
few new features, a lot more bug fixes, plus (finally) an updated help
file to document all the new things in v4.41.
Thanks very much to everyone trying the betas, your bug reports and
suggestions have been invariably amazingly helpful, so please do keep
them coming.
v4.41 beta build 4186 is available from:
http://www.admuncher.com/B-4.41.4186.exe And a changelog is included below.
Again my sincere thanks, if anyone has been holding back some bug
reports please do send them along as I'm beginning to run low on
things to fix ;-
Ad Muncher v4.41 Changelog (changes from 3042-4186)
Release date: TBA
===FEATURES===
- Added option to "Prevent sites changing scrollbar colors".
- Implemented extra code into the helper script so that the "prevent
window move/resize commands" option now also applies to
top/left/width/height specs in window.open() commands.
- Above behavior was later moved to it's own option, "Force new windows
to default width/height".
- Added new option to "Force new windows to always have toolbars".
- Improved popup removal when window.open functions are obfuscated.
- Added code to the registration code interpretation to automatically
change "O"'s to zeros, I'd been getting a few complaints a day of
registration codes not working where invariably it was because of
people misreading the code in this way
- Automatic updates to Ad Muncher now download new versions of the
installer, not just the admunch.dll file, in anticipation of
different patching systems I'm planning on using for the next version.
This also allows me to not compress admunch.dll (as was done
previously to reduce the update size) - which greatly reduces memory
usage when loading admunch.dll into SetWindowsHookEx, as well as
allowing me to use a shared memory section in the admunch.dll file.
- Removed the "Notify user before applying +* entries" option; with
the new default-exclude format of the server-supplied filter targets
the nasty natures of the previous "+*:80" entry are gone so this
option is made somewhat redundant.
- Implemented new filter targets setup with custom and server-supplied
targets lists; with the latter being delivered via entries in the
normal server-supplied list (and hence automatically updated with it
also).
- The first time v4.41 is run it will remove any +* entries from the
filter targets list imported from previous versions - these entries
would make the new default-exclude format useless, but of course you
can add them again if required.
- Error message windows now have "MB_TOPMOST" to prevent them getting
lost in the background
- Added new option to "Prevent customized bookmark/address icons",
which prevents "favicon.ico" retrieval and removes
"<link rel='shortcut icon' ...>" tags.
- If removing an anchor and there's insufficient space to insert the
full "[AD-MUNCHED]", Ad Muncher will now just insert "[AD]" (rather
than removing the link altogether).
- The "Email Ad Muncher Author" feature now connects to a script on
admuncher.com's http server, rather than it's smtp server, to avoid
problems where people had firewalls preventing outbound access on
port 25.
- Added option: "Don't remove text-only advert links", enabled by
default on new installs.
- More improvements to the patching system - it can now automatically
remove patches installed by other Ad Muncher versions, and will now
not write over patches when being unloaded unless it's absolutely
sure the patch is it's own.
- Connections are now routed through Ad Muncher regardless of whether
it's enabled or not - this was changed because too many people were
getting confused when browsers used persistent connections and were
reusing connections which were established when Ad Muncher was
disabled (and hence not routed through AM); filtering can now be
reliably turned on and off without worrying about getting a browser
to establish the connection again.
- Modified POST content length handling to check for extra
unnecessary crlf characters after the specified content-length,
as it appears IE 6 (and possibly others) are sending them.
- Extended onmouseover handling to handle onmouseleave events too.
- Added option to "Replace removed images with their "ALT" text.
- Clicking "new" on the advanced filter tab now also focuses the
new filter entry.
- HTML tag filtering now correctly interprets (and ignores) content
between comment tags ("<!-- -->").
- Improvements to overlap correction when filtering javascript files
(.js)
- Added option to "Prevent mouse-trail visual effects".
- Added new filter category, "Remove div tags with text", to help
combat floating CSS adverts.
- Sorting of the custom list is now done based on the order of the
filter categories in the drop-down category box, instead of simply
the alphabetical order of the category prefixes in the
CustomStrings.dat file.
- Recent items div/script/table lists now remove white space before
and after the asterisks.
- Extended option to "prevent status bar modifiers" so it also
removes "defaultstatus" modifications. Originally this was
intentionally left alone because it doesn't obscure the targets
of links etc, but too many people didn't like the behavior so out
it goes
- Improvements to overlap correction in regards to dealing with
</> brackets inside of scripts, resulting in more reliable script
filtering.
- Lots more improvements to overlap correction in regards to
alignment of script functions in <script tags of html files.
- Javascript interpretation now correctly handles .js files sent
back with "content-type: application/octet-stream".
- Added option to "Set maximum receive buffer size", added to allow
people on faster connections to have better filtering while still
allowing those on slower connections to browse without delays.
Maximum buffer size is set to 64kb simply because anything much
larger would induce a too noticeable cpu-usage spike when
Ad Muncher started processing that chunk of data (during tests a
128kb chunk of anchor/img tags produced about 2 solid seconds of
cpu usage on a duron 700, still a bit excessive though).
- Network installations of Ad Muncher can now be automatically
updated by exporting the desired Ad Muncher configuration to
a file named "update.amc", then placing that file into the
"c:\program files\ad muncher" directory. Ad Muncher will then
load the new configuration automatically either when it's first
loaded or every thirty seconds while it's loaded.
- Added command line options to installer to automate network
installs, please consult the Ad Muncher help file for information
on how to use these.
- Extended option to "prevent pages focusing their own window" so
it removes blur() instructions too to prevent pages removing
their own window from focus. Stops those annoying sites which
un-focus themselves repeatedly when you try to view them.
===BUGS===
- Fixed crash when using advanced filters with mismatched asterisks.
- When inserting the helper script, Ad Muncher now properly deals with
modifying the fields when there are mutliple content-length fields
present (though why the heck this happens I have no idea).
- HTTP reply interpretation now correctly deals with replies with
"connection: keep-alive" and no content-length field (it now just
reverts to "connection: close" interpretation).
- Reply interpretation now assumes content-length = 0 on reply codes
1xx/204/304.
- Limited focus() removal to scripts and body tags.
- OnUnload popup removal now properly interprets tags like:
<script for=window event=onunload>
- Fixed removal of document.referrer tags when they were contained in
certain conditional structures.
- Status bar notices in the helper script now work correctly in Opera,
from my tests it seems Opera has trouble with:
defaultStatus=varname;
but works okay with
defaultStauts="text";
so formatting the whole command and varname into another variable
and then passing that into an eval() seems to keep opera happy
- Shortly after fixing the above Opera problem I discovered that the
newly released Opera 7 doesn't allow changing of the status bar at
all, *sigh*. I've contacted the opera people in the hopes of finding
a workaround but my hopes aren't high. If you object to this
restriction a little email to the Opera folks (who otherwise make
extremely good software) expressing your concern might help
- Fixed bug in javascript spacer removal which could corrupt scripts
under certain conditions.
- HTTP request filtering now also disables content encoding when a
URL is excluded from filtering to prevent problems when multiple
pages were being requested over a persistent connection and only
some of them were excluded.
- Fixed problem where Internet Explorer would experience page
retrieval problems when using automatic proxy configuration scripts
retrieved from remote hosts.
- Fixed bug when certain frameset combinations could confuse Ad
Muncher's row/col fixing when removing <frame tags (usually
resulting in oddly sized frames).
- When removing the focus() command from:
window.open(...).focus();
Ad Muncher now doesn't remove the window.open section as well.
- Lots of bug fixes to the tag removal code.
- When replacing html tags, Ad Muncher now doesn't use <!!!!!>
replacement tags, instead using "<b ...space... ></b>" to avoid
problems with validation.
- Changed <font size=1> replacement to just <small> - not exactly
the same but prevents having to decide whether to use single
or double quotation marks to again avoid validation problems.
- Fixed bug where under certain circumstances the last entry in the
custom filter list could have it's last character removed.
- Fixed bug in tag removal when certain removed tags were
immediately preceded by html comment tags ("<!-- -->"), causing
the comment-end tag to be extended to "-- ... >",
invalidating it.
- Javascript interpretation now correctly handles:
document.forms[0][0].focus();
(and other structures with double brackets).
- Fixed bug where under certain conditions IP Scramble proxy
connection fields weren't added to scrambled connection requests.
- Ad Muncher now correctly handles HTTP "100 Continue" replies.
- Fixed occasional misinterpretation of HTTP replies if multiple
headers were received within the same packet.
- Fixed removal of focus() commands with no prefix (ie: "self."
implied).
- Popup removal now correctly deals with:
xxx = window.open;
xxx("annoyingpopup.html");
- OnUnload popup removal now correctly deals with:
<body onunload="if (varname) open("popup.html");">
- Fixed problem where SetTimeout/SetInterval instructions wouldn't
be properly analyzed if they directly followed a javascript
comment with a single-character crlf (0x0a) seperating them and
no white space.
=================
Murray Hurps - Thursday, February 20, 2003
Ad Muncher Programmer and General Administrator
admin@admuncher.com