Some suggestions Rated 4 out of 5 stars
Good but it'd be nice to recover the list of blacklisted sites if you make a mistake or change your mind. Maybe you could enter a password to recover them?
Also, if you follow a bunch of links on an site you shouldn't be on, you may end up filling your history with similar sites and you'd have to block each one. Maybe you could have an option that blocks all history except for sites you approve. Sort of like a reverse version?
Re: Some suggestions
Thanks for your support of HistoryBlock. I have been juggling the idea of getting the blacklist back, and I don't think that it is strictly necessary. For instance, if you accidentally type in "food.com" instead of "foo.com", you would notice that foo.com isn't being stored in history, and there is already an implementation for removing blacklisted sites. I still haven't decided if this is good enough, but it definitely is a way to solve the problem you present at the moment.
As for link-following, this is definitely something I am looking to implement (and it has been requested by at least a few people). Basically, I feel it is a slippery slope going down the white-list road, as white-lists tend to be overly restrictive and more often than not, more hassle than they are worth. On the other hand, I think that i have a good solution for this problem.
Let's say that you visit 'foo.com' and you blacklist it. However, on foo.com you followed a link to foosfriend.com, which is likely a hostname you would like blocked, if not only just for the session. The addon can get access to the referrer object and detect whether the current site was arrived at via a blacklisted site. This is likely how I will handle it.
Firefox will hit foosfriend.com and say "did you come from a blacklisted site?" If so, then HistoryBlock will attempt to block foosfriend.com. The only thing is that if you were to simply open a new tab and go directly to foosfriend.com, then it wouldn't be in the blacklist and the referrer would be empty (a brand new connection, right?).
I'm still working out the logic and how best to handle these types of scenarios, but I think I am on the right track here... look for it in a future release.