page_saver_server is a loopback HTTP server that supports two POST
clip_this) and a single GET (
other tools use these.
page_clipper_user.js is a Greasemonkey app that posts the current
page, selection, url, and other metadata to the server, which stashes
it for later remembrance.
page_saver.user.js just runs on load and unload of every page, and
throws the state change at the server, which logs it.
restore_firefox takes those load/unload logs, collapses them into a
"currently open" url list, and restarts firefox with the new list of
page_clipper_user.jscan't reliably encode a page (it gets it after entity operations, so
btoa()fails because it's getting unicode.)