From f4e88b0a57b3ac721fa482ba0d96a3806fbdbd57 Mon Sep 17 00:00:00 2001
From: Jonas Jenwald <jonas.jenwald@gmail.com>
Date: Mon, 1 Nov 2021 17:50:49 +0100
Subject: [PATCH] [Firefox] Handle errors if loading failed before the
 "supportsRangedLoading" message was sent (bug 1732141)

This is a follow-up to PR 10675, since there I completely overlooked that we also need to handle the case where a PDF document has *failed* to load when the "supportsRangedLoading" message is sent to the viewer.
---
 web/firefoxcom.js | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/web/firefoxcom.js b/web/firefoxcom.js
index 5b3b2a351..0344f4cfb 100644
--- a/web/firefoxcom.js
+++ b/web/firefoxcom.js
@@ -332,6 +332,10 @@ class FirefoxExternalServices extends DefaultExternalServices {
       }
       switch (args.pdfjsLoadAction) {
         case "supportsRangedLoading":
+          if (args.done && !args.data) {
+            callbacks.onError();
+            break;
+          }
           pdfDataRangeTransport = new FirefoxComDataRangeTransport(
             args.length,
             args.data,
@@ -359,9 +363,7 @@ class FirefoxExternalServices extends DefaultExternalServices {
           pdfDataRangeTransport.onDataProgress(args.loaded, args.total);
           break;
         case "progressiveDone":
-          if (pdfDataRangeTransport) {
-            pdfDataRangeTransport.onDataProgressiveDone();
-          }
+          pdfDataRangeTransport?.onDataProgressiveDone();
           break;
         case "progress":
           callbacks.onProgress(args.loaded, args.total);