Here is a snippet for Firefox. In your XUL overlay, add:
<html:canvas id="my-canvas" style="display: none;" />
Then, in your javascript overlay, listen for new document downloads , and this fragment will save the screenshot in a file:
var canvas = document.getElementById('my-canvas');
var context = canvas.getContext('2d');
canvas.height = doc.defaultView.innerHeight;
canvas.width = doc.defaultView.innerWidth;
context.drawWindow(doc.defaultView, 0, 0, canvas.width, canvas.height, "rgba(0,0,0,0)");
var dataUrl = canvas.toDataURL("image/png");
Read about nsiIOService and nsiWebBrowserPersist to create nsiURI from a data URL, and then save it locally.
source
share