Java or Canvas implementation
There is now a choice about the way Screengrab! goes about its daily business. You can use Java to do the grabs, or Canvas. The decision isn’t as easy as it seems if you want complete control over what to grab.
It’s configurable in the Preferences page, but has no effect on “Copy” operations. They (currently) always use Canvas.
The Java implementation is slower, clunkier, uses more memory and can’t take shots of really long pages. Basically, you should always use Canvas unless you want to grab something with an embedded element (like a Flash plugin). Canvas doesn’t give you the contents of such components when it passes back the image data, so you’re out of luck. Java however (because its grab occurs at a system level - to the point where an overlapping window will be captured if it’s in the shot) will catch Flash content too.
How?
Enter the Screengrab! Settings page, using the Add-ons window and select “Java” or “Gecko Canvas” on the “Preferred page capture method” radio.
A bit of background
Screengrab! originally used Java to do all of its grabs, before the days of the Canvas element and, more importantly, the “toDataUrl” method. The complexity in doing it this way was, and still is, quite high - though more because of Firefox’s idiosynchracies than Java’s.
Using Java has a few negatives - for one, it requires you to have Java installed. I personally don’t see this as a problem. If you don’t have Java installed and configured in your browser then you might as well not have JavaScript enabled, or Flash working. Hell, you may as well just go get Netscape 4 or use Lynx.
The bigger problem is that the Java implementation has massive memory bloat if the page is really long, to the point where it can exhaust its allocation.