PithHelmet
Links and Downloads
Documentation
Download
PithHelmet-2.5.1.tbz (10.4 only)
PithHelmet-2.4.2.tbz (10.3.9 only)
PithHelmet-2.3.3.tbz (<= 10.3.8 only)
Purchase your copy today for only
Wiki Support
Latest News
PithHelmet Bugs
PithHelmet FAQ
PithHelmet Features
PithHelmet Installation
PithHelmet Localization
Older Software Versions
PithHelmet-0.7.3.tbz (Panther only)
PithHelmet-0.7.1.tgz (v85.x only)
PithHelmet-0.6.1.tgz (v74 only)
PithHelmet-src-0.7.2.tgz (source only)
Older Site Versions
0.0 Latest Announcements
I recently added the PithHelmet Rule Exchange so users can request and share custom scripts for particular sites. There isn't much there right now, but hopefully more to come soon. I realize there are now 3 different releases to match the 3 different variations of Safari - this may be a little confusing, just try and follow the notes by the download links. Also, the PithHelmet Version Check should get you updated to the appropriate version, thought you might want to run it twice, there are a couple of back-to-back updates for older versions.
0.1 What's New in v2.5.1
Support for Safari 2.0 on Tiger. No new features, just a compatibility fix. This is Tiger-only, so don't try this on Panther.
0.2 What's New in v2.4.2
Support for Safari 1.3 has been refined. Unfortunately, there are many interactions with this new version of Safari. I believe these interactions are bugs in WebCore/JavascriptCore and I will try to isolate them and report bugs to Apple as necessary. In the meantime, the content collapsing feature is turned off by default to keep Safari stable. This also fixes a couple of crash bugs.
0.3 What's New in v2.3.3
This release is long overdue. It fixes a few minor issues that should improve PithHelmet's behavior and make it more usable. There are a few crash bugs and "hang" issues that have been resolved (mostly related to Java-enabled web sites). I also fixed a freeze related to streaming media (QuickTime streams).
New countermeasures for popunder ads have been deployed. These are fairly aggressive, so I have shipped them turned off for the time being. They are the kind of thing that will likely wreak havoc on banking and other service sites / intranets that make heavy use of Javascript. There are new options in the "Ad Blocking" tab in the rule editor that should help get you sorted.
As a treat for the web designers, I've added in a Javascript console that will allow you to run a script in the context of the current web page and interactively tinker and inspect the results. Nothing too sophisticated, but it seemed useful to me when wacking the popunders.
1.1 What It Does
PithHelmet is an extended site preferences and ad blocking plugin for Apple's Safari browser. The basic purpose of the plugin is to empower you the user to view the web as you like. You can block ad images, Flash, Shockwave or horrible midi loops - the world is your oyster.
This is just a series of hacks on top of Apple's WebKit framework, but it seems to work rather effectively.
Due to the manner in which PithHelmet blocks ad content, most types of advertising content can be caught in the filter - this includes images, javascript, css, text, iframes, popups and popunders.
1.2 More Detailed Information
Progress reports are regularly written to the PithHelmet Development section of my development log. One of these days I will get around to hosting the source somewhere, but for now, inquiring minds can send me a quick email and get the latest branch.
2.1 Installing and Upgrading
PithHelmet is a plugin for SIMBL. This keeps PithHelmet from unintentionally interfering with other applications, such as the screen saver.
PithHelmet is distributed as a metapackage and installed by Apple's Installer.app. The PithHelmet.mpkg file will automatically update or install the lastest version of SIMBL and the PithHelmet plugin. The installed components are listed below.
The actual PithHelmet.bundle will now be installed in the /Library/Application Supports/SIMBL/Plugins
folder.
If you have added you own rules, they will get saved in a backup file in ~/Library/Application Support/PithHelmet
before they are automatically upgraded.
For additional installation information and trouble shooting, check PithHelmet Installation Notes. These notes are updated more frequently than the main site.
2.2 Uninstalling PithHelmet
Removing (trashing) the PithHelment.bundle from /Library/Application Support/SIMBL/Plugins
folder will effectively remove PithHelmet from Safari.
2.3 Installed Files and Folders
/Library/InputManagers/SIMBL
- (more info)/Library/Application Support/SIMBL/Plugins/PithHelmet.bundle
- this is the actual code section of PithHelmet - this is what gets upgraded/Library/Frameworks/DuctTape.framework
- a framework I wrote for my plug-ins and applications~/Library/Application Support/PithHelmet/PithHelmet.log
- logs all blocked urls if logging is enabled~/Library/Application Support/PithHelmet/com.apple.Safari/PHRuleSet.ka
- stores all the rules
3.1 How To Block A URL
Once you've installed the files, start Safari (restart it if it's been running during the install process). Try browsing a few sites and you should see markedly less advertisements. (I like cnn.com or msn.com for a good demo site)
If some undesirable content isn't blocked, you can add it to the "block list" in one of the following ways:
- Right click (Control-Click) an image and select Block Images from this Server
- Use the rules editor in the PithHelmet Preferences pane
- Open the rule editor (PithHelmet Menu -> Show Rule Editor)
- Click the New button
- The pattern value is a Perl-compatible regular expression - any matches will be blocked. For an explanation of Perl-compatible regular expressions, open the Terminal and type "man perlre".
- Under the "Filter" tab, select which types of content you would like to block.
You can test the rules on a particular URL by clicking the "Show Rule Tester" button. That will give you some information about whether or not the url was blocked or allowed, and for what reason. Once you close the rules editor or click the Apply button, the new rules will be active.
3.2 How To Allow A URL
If some desirable content is accidentally getting caught by the Block rules (a false positive), you can specifically allow content via an Allow rule. The method is similar to adding an Block rule, simply add the rule and under the filter tab select "Allow" instead of "Block". Allow rules are applied only after an Block rule has been matched.
You can use the same testing method described in the previous section.
3.3 How To Build Better Blocking Rules
PithHelmet has a test panel (accessibly via the rule editor) which will give you an explanation of what exactly PithHelmet thinks about a specified URL.
In addition, the curious user can enable the PithHelmet.log file (from the preferences pane) and all urls matching a rule will be logged to this file.
4.0 Quick Explanation of the Preferences Pane
5.0 Quick Explanation of the Rule Editor
- Sample Block Rule
- Sample Transmogrification
- Site Preferences - Ad Blocking
- Site Preferences - Security
- Site Preferences - Style
- Site Preferences - Advanced
6.0 Quick Explanation of Menu Items and Keyboard Shortcuts
7.0 Questions | Comments | Feedback
Please feel free to contact me via email - I'm interested to here your criticisms and thoughts.
You can always read about the latest PithHelmet status in my development journal. There are also a number of pages on the PithHelmet section of my collaborative web site, Wikir.
If you enjoy PithHelmet, please take a moment to register your copy.
8.0 Revision History
v2.5.1/v2.4.2/v2.3.3 - released 2005-05-05
- fixed: occasional hang when accessing certain sites, this is the same fix applied to different versions
v2.5 - released 2005-04-29
- compatibility release for Safari 2.0 on Mac OS X 10.4 (Tiger)
v2.4.1 - released 2005-04-27
- removed support for Shiira
- fixed: crash bug in the url tracker
- fixed: cookie expiring (discard-on-quit now works properly)
v2.4 - released 2005-04-18
- properly updated internal structure to match Safari 1.3 (compatible only with Safari 1.3)
- content collapsing is now turned off by default due to bugs in WebCore/JavascriptCore
- updated French and Italian translation
- fixed: cookie blocking
- fixed: GIF animation blocking
v2.3.2 - released 2005-04-27
- compatible only with Safari 1.2.x
- removed support for Shiira
- fixed: crash bug in the url tracker
v2.3.1 - released 2005-04-17
- fixed version checking
- updated localizations
v2.3 - released 2005-03-21
- added new check for host spoofing (homograph/IDN attacks)
- added new options to aggressively attack popunder ads (off by default)
- added pref to turn off the version check window unless there is an update
- added Javascript console for interactive sessions (in the PithHelmet Debug menu)
- added faster vs. safer mode for blocking (faster may crash some Java-enabled sites)
- changed contextual menu to be on by default
- fixed: bug in regex domain rules that prevented proper operation
- fixed: rare crash on startup
- fixed: rule set upgrading
- fixed: intermittent crash with Java-enabled pages in tabs
v2.2 - released 2005-01-07
- matching engine 35% faster
- content collapsing 2-40x faster (that is not a typo)
- animated image preferences no longer add any overhead - fixes high CPU usage on sites using GIFs
- automatic version checking
- search filter in the cookie editor
- proper sorting for cookies (groups by domain)
- rule list supports find-as-you-type
- allow custom "onLoad" javascript per site
- menubar icon indicates enabled/disabled status
- better validation in the Rule Editor prevents bad settings
- custom css/javascript can be used to "theme" a web site with attached images
- automatically resolves file urls with ~ (useful for theme images)
- machete scripts now alert on incorrect file permissions
- localized for French, German and Italian
- new, optimized rule set (should be much better for users in Europe)
- fixed: focus/rename issues in the rule list
- fixed: rules were not saved properly on quit
- fixed: custom css was not applied 100% of the time
- fixed: Java/Javascript preferences were not saved reliably
- fixed: rule tester crashed on malformed url
- fixed: block referer did not work in certain cases
- fixed: occasional appearances of the "spinning pinwheel of death"
v2.1.1 - released 2004-10-07
- fixed default site rule to no longer delete cookies on exit
- fixed bug with Machete popup
v2.1 - released 2004-09-26
- overlapping Safari and PithHelmet preferences are properly synchronized
- faster performance (starting up, quitting and general use)
- smaller rules files
- fixed potential crash bug when quitting Safari
- fixed content collapsing to respect the block rules properly
- fixed the "None Selected" option in the custom css and Machete file popups
v2.0.1 - released 2004-08-26
- added preferences to move the PithHelmet menu or bury it under the Safari menu
v2.0 - released 2004-08-12
- entirely new and improved blocking engine
- simplied preferences for ad blocking and cookie privacy
- Site Preferences - change Safari and PithHelmet settings per site
- cookie filtering adds new privacy settings
- Machete allows you to clean up or remix web sites with small scripts
- drag-n-drop rule sharing - create rule files that are easy to share with friends via email
- transmogrifier editor
- enable/disable particular rules
- works in other WebKit applications like Shiira
- block sending the referrer header
- cookie editor allows you to view cookies as they are sent
- menu items for clearing site or session cookies
Show Complete History