diff options
author | Florian Bruhin <me@the-compiler.org> | 2023-03-14 15:00:39 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2023-03-14 15:58:03 +0100 |
commit | 5149fcda2a9a6fe1d35dfed1bade1444a11ef271 (patch) | |
tree | efc440a90989880aef29736c7bb7b17ca4f30d1e | |
parent | 09761e2556e045cd299d30e94d39aeb17b7529ff (diff) | |
download | qutebrowser-5149fcda2a9a6fe1d35dfed1bade1444a11ef271.tar.gz qutebrowser-5149fcda2a9a6fe1d35dfed1bade1444a11ef271.zip |
PDF.js: Update to newer API to avoid deprecation warnings
A quick tour through the PDF.js API:
v1.0.1040 introduced the ability to pass an object to PDFView.open()
instead of passing an URL:
https://github.com/mozilla/pdf.js/pull/5254
v1.6.210 (?) renamed PDFView to PDFViewerApplication:
ffa276a1826a95bf1f80b15f48cfbf2b9cfe6dad
v3.3.122 made it mandatory to pass an object (and also made originalURL
optional when doing so):
https://github.com/mozilla/pdf.js/pull/15972
We should probably properly get rid of old version support at some point
(see #7619), but until then, I *think* this approach should work with
older versions still.
Fixes #7618
(cherry picked from commit 924a7a5907124a0a33e2cc9454e389b7a2634244)
-rw-r--r-- | qutebrowser/browser/pdfjs.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/qutebrowser/browser/pdfjs.py b/qutebrowser/browser/pdfjs.py index 4b86b4c27..737a9cc87 100644 --- a/qutebrowser/browser/pdfjs.py +++ b/qutebrowser/browser/pdfjs.py @@ -100,17 +100,25 @@ def _generate_pdfjs_script(filename): return jinja.js_environment.from_string(""" document.addEventListener("DOMContentLoaded", function() { - if (typeof window.PDFJS !== 'undefined') { - // v1.x - window.PDFJS.verbosity = window.PDFJS.VERBOSITY_LEVELS.info; - } else { - // v2.x - const options = window.PDFViewerApplicationOptions; - options.set('verbosity', pdfjsLib.VerbosityLevel.INFOS); - } - - const viewer = window.PDFView || window.PDFViewerApplication; - viewer.open({{ url }}); + if (typeof window.PDFJS !== 'undefined') { + // v1.x + window.PDFJS.verbosity = window.PDFJS.VERBOSITY_LEVELS.info; + } else { + // v2.x+ + const options = window.PDFViewerApplicationOptions; + options.set('verbosity', pdfjsLib.VerbosityLevel.INFOS); + } + + if (typeof window.PDFView !== 'undefined') { + // < v1.6 + window.PDFView.open({{ url }}); + } else { + // v1.6+ + window.PDFViewerApplication.open({ + url: {{ url }}, + originalUrl: {{ url }} + }); + } }); """).render(url=js_url) |