Table of Contents
1. Brief Introduction For 2.0 (v40)
Most of this is now woefully out of date. As of PithHelmet 2.0-40 the rule editor has been substantially remodeled to make it a bit more usable to the average human. The documentation here will be updated eventually.
The most important thing to note is that site preferences can be set to "default". This is indicated by a small dash showing up in the checkbox for a particular setting. Some settings can be set to default, some cannot. This is to allow you to tweak only the setting you need to, while leaving the rest up to your main site defaults.
2. Rule Explanation
There are really two types of rules. Filter rules and site rules. They are implemented in exactly the same way underneath, but logically they do two separate things.
Filter rules block content items that match a given pattern. Site rules alter the web and PithHelmet preferences for a site that matches a particular pattern. Normally, site rules only apply to one site, but there are times when harnessing the rule engine is handy for catching a group of sites. There is a special "Default Site Rule" - this defines how PithHelmet acts if there is no other, more specific rule can be found.
The rules should probably be split between Filter and Site in a hierarchical view. Additionally, the tabs should be recategorized more along the lines of OmniWeb's site preferences.
I have attached a PDF flow chart that I used as a reference during design:
http://culater.net/dl/files/PithHelmetFlowChart.pdf
URL's in the location bar never get blocked
3. Filter Settings
These control how various areas of PithHelmet functionality will use a particular pattern.
Some of this is not quite implemented in the current version, PithHelmet 2.0 (v40)
Main URL Loading: Whether or not to load a top-level page (typed in the location field) at all
Main Cookie Loading: Whether or not to allow cookies for a top-level page
Content URL Loading: Whether or not to load inline content (iframes, images, css, flash, java, etc.)
Content Cookie Loading: Whether or not to allow cookies for a inline content.
Note: In the current implementation, the difference between Main/Content URLs and cookies is not implemented. Additionally, the Cookie preferences really function more like a Site Preference. This is not remotely clear from the interface and I need to fix that up.
Embedded Content: Use this pattern to collapse inline/embedded content like images, iframes and plugins.
Linked Content: Use this pattern to collapse content that has been linked to a matching url.
Replacement Action: Currently, the only functional option is "Replace by extension." This attempts to select an appropriate blocked file based on the file path portion of the url. Thus, a url ending in .gif would be replaced with a local file block.gif. The other options are for future expansion.
4. Site Settings
The purpose of a site setting, as I may have mentioned before, is to control how PithHelmet and Safari behave when you are using a particular site. This is very similar to the idea of "Site Preferences." Site settings that are left set to "Default" inherit their value from the Default Site Rule.
Again, these need some renaming and recategorization to make more sense to the average user. A lot of these have been named after the functions in the code.
URL Filter: Enable the URL Filter for this site's inline content.
Cookie Filter: ignored
Cross-site URL Filter: When enabled, this blocks all inline content from 3rd party sites.
Cross-site Cookie Filter: When enabled, this blocks all cookies going to content from 3rd party sites. This is much different than the Safari preference that doesn't accept cookies from 3rd-party advertisers. This actively scans outgoing cookies. For instance, assume you already have an Amazon account and a cookie. If you visit a blog site that has an Amazon iframe, it can use your cookie to personalize that content, and also snoop where you are browsing. Enabling the cross-site cookie filter prevents this kind of information sharing.
Blocked Content: Apply the content collapsing routines once this page has loaded.
Ad-Sized Content: Collapse images, iframe, plugins that match know advertising dimensions.
Ad-Linked Content: Collapse any content linked to advertisement sites.
Referrer Header: Block referrer header or not.
Cross-site content: ignored
5. Site Preferences
Override settings in Safari on a site by site basis. These have scope over all various kinds of content the page loaded, based on whether the main url matches.
Load images: default in appearance preference pane
Enable plug-ins: default in security preference pane
Enable Java: default in security preference pane
Enable Javascript: default in security preference pane
Block pop-up windows: default in safari menu
Machete: Run script on the contents of the main url before it gets rendered by the browser.
samples included in the Sample Rules folder in the downloadable archive
http://culater.net/dl/files/AllowAutofill.tbz extract the AllowAutofill.py file
create a site rule for the site you want to turn on autofill for
in the advanced tab, select the AllowAutofill.py script in the Machete popup
in the preferences pane, make sure "Enable Machete" is checked - if you are turning it on for the first time, make sure to restart Safari
you should be all set
Custom Style Sheet: default in advanced preference pane
Use site settings: Whether or not to pay attention to the choices in site settings or site preferences.
Block all button: setup the current rule to block everything.
Exempt button: setup a rule to allow everything.
Transmogrify: rewrite a url before following it. unimplemented
Wikir