I'm having a problem (sometimes, not always) printing from Firefox. But it's not really a Firefox problem, it's a case of incompatibility between cairo and ghostscript. From reading CUPS error logs and source code and massive amounts of googling, I have an idea where the problem is:
When Firefox prints, it first uses cairo to generate a PDF file, then CUPS invokes ghostscript's pdf2ps filter to create a postscript file. It processes the postscript file some more before it sends anything to the printer. Unfortunately, in some cases, cairo creates a PDF file that ghostscript can't understand, and it bombs. Then you wait in vain for your printout.
I can test this theory by printing to a PDF file, then trying to print it with lp. It doesn't work. Running pdf2ps on the file produces a segmentation fault. However, if I print to a PS file, lp works fine.
This printing method is not at all unique to Firefox; in fact it's standard, so the problem may not be limited to Firefox, though I haven't had problems with anything else.
I can think of several things that could be done, that may or may not solve the problem:
1. Update the ghostscript extension to the latest version (9.04). This may work, but it may not. It's probably a good idea anyway. Please.
2. Recompile cairo, using options to tell it to create PDF-1.4 files instead of PDF-1.5. I think this is possible, but I'm not sure. I'm not sure if it would work either.
3. Recompile the CUPS filters to use pdftops from the poppler-bin package instead of ghostscript. I'm sure this is possible, and I'm also pretty sure it would work. Files that gs segfaults on, pdftops handles fine. CUPS would then depend on poppler-bin though, and I think you would still need ghostscript.
I've attached one of the PDF files that causes trouble.