From 9872660a95f479f6d89e4ddd99a8f64223d727a0 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 19 Nov 2016 13:32:17 +0100 Subject: [PATCH] Return a mock object in `paintOnSvg` when SVG rendering is not supported, to prevent `TypeError`s in the addons Currently if you try to enable SVG rendering in the addons, a `TypeError` is thrown by the browser since we have code that depends on what `paintOnCanvas`/`paintOnSvg` (should) return. --- web/pdf_page_view.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js index c42bd1703..137f88432 100644 --- a/web/pdf_page_view.js +++ b/web/pdf_page_view.js @@ -612,7 +612,13 @@ var PDFPageView = (function PDFPageViewClosure() { paintOnSvg: function PDFPageView_paintOnSvg(wrapper) { if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) { - return Promise.resolve('SVG rendering is not supported.'); + // Return a mock object, to prevent errors such as e.g. + // "TypeError: paintTask.promise is undefined". + return { + promise: Promise.reject(new Error('SVG rendering is not supported.')), + onRenderContinue: function (cont) { }, + cancel: function () { }, + }; } else { var cancelled = false; var ensureNotCancelled = function () {