Fix download button for top frames and sub frames
When PDF.js is the top frame, and the PDF URL is identical to
the top URL, download would fail. Fixed by adding a ? or & in these
cases.
When PDF.js is embedded in a frame from a different origin, download
would fail because window.open(url, '_parent') is ignored.
Fixed by using a.click() when available.
a.click() works in Chrome 25, Firefox 19, Opera 12.00 and IE 8.
Safari 5.1 does not support a.click()
Use a.download if available + documentation
Previously, when the XHTML doctype + header is active, checks
would fail because a <div>'s tag name is "div" instead of "DIV".
document.activeElement does not exist in Chrome for XHTML documents
== -> ===
The previous default in the absence of provided coordinates was the
bottom left, so that if you followed a PDF link annotation with a
destination of [page /XYZ null null null] then you would see a gutter
followed by the page _after_ the intended one, because pdf.js had
carefully aligned the lower left corner of the target page with the
top of the window.
As part of this change we allow missing x,y parameters in URLs with a
&zoom= parameter to propagate nulls into pageViewScrollIntoView
instead of being replaced with zero in pdfViewSetHash, so as to do
this substitution in one place.
summary: create a new Exception class for missing PDF's, use it in place of generic
add new MissingPDFException to util.js
handle MissingPDF in api.js
handle MissingPDF in viewer.js, using new missing_file_error message
add new missing_file_error to l10n/en-US/viewer.properties
send MissingPDF from WorkerMessageHandler's loadDocument
send MissingPDF from GetDocRequest handler