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:00:39 +0100 |
commit | 924a7a5907124a0a33e2cc9454e389b7a2634244 (patch) | |
tree | 6bfed595b7da453256b4664081a4ea43e6b71aab | |
parent | 9fdd737966f00ec2fde740571e08d8a2bcfda4dd (diff) | |
download | qutebrowser-924a7a5907124a0a33e2cc9454e389b7a2634244.tar.gz qutebrowser-924a7a5907124a0a33e2cc9454e389b7a2634244.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
-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 c180c55f8..f8b000807 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) |