diff --git a/web/app.js b/web/app.js index 1dc3859db..b8b1a0a1e 100644 --- a/web/app.js +++ b/web/app.js @@ -72,6 +72,7 @@ import { PDFThumbnailViewer } from "./pdf_thumbnail_viewer.js"; import { PDFViewer } from "./pdf_viewer.js"; import { SecondaryToolbar } from "./secondary_toolbar.js"; import { Toolbar } from "./toolbar.js"; +import { viewerCompatibilityParams } from "./viewer_compatibility.js"; import { ViewHistory } from "./view_history.js"; const DEFAULT_SCALE_DELTA = 1.1; @@ -408,9 +409,7 @@ const PDFViewerApplication = { }); this.pdfLinkService = pdfLinkService; - const downloadManager = this.externalServices.createDownloadManager({ - disableCreateObjectURL: AppOptions.get("disableCreateObjectURL"), - }); + const downloadManager = this.externalServices.createDownloadManager(); this.downloadManager = downloadManager; const findController = new PDFFindController({ @@ -2225,7 +2224,7 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { } const file = evt.fileInput.files[0]; - if (!AppOptions.get("disableCreateObjectURL")) { + if (!viewerCompatibilityParams.disableCreateObjectURL) { let url = URL.createObjectURL(file); if (file.name) { url = { url, originalUrl: file.name }; diff --git a/web/app_options.js b/web/app_options.js index a38542649..27433d1ed 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -42,12 +42,6 @@ const defaultOptions = { value: "", kind: OptionKind.VIEWER + OptionKind.PREFERENCE, }, - disableCreateObjectURL: { - /** @type {boolean} */ - value: false, - compatibility: viewerCompatibilityParams.disableCreateObjectURL, - kind: OptionKind.VIEWER, - }, disableHistory: { /** @type {boolean} */ value: false, diff --git a/web/download_manager.js b/web/download_manager.js index 00ec1675d..d5b6565f1 100644 --- a/web/download_manager.js +++ b/web/download_manager.js @@ -23,9 +23,6 @@ if (typeof PDFJSDev !== "undefined" && !PDFJSDev.test("CHROME || GENERIC")) { ); } -const DISABLE_CREATE_OBJECT_URL = - viewerCompatibilityParams.disableCreateObjectURL || false; - function download(blobUrl, filename) { const a = document.createElement("a"); if (!a.click) { @@ -46,10 +43,6 @@ function download(blobUrl, filename) { } class DownloadManager { - constructor({ disableCreateObjectURL = DISABLE_CREATE_OBJECT_URL }) { - this.disableCreateObjectURL = disableCreateObjectURL; - } - downloadUrl(url, filename) { if (!createValidAbsoluteUrl(url, "http://example.com")) { return; // restricted/invalid URL @@ -66,7 +59,7 @@ class DownloadManager { const blobUrl = createObjectURL( data, contentType, - this.disableCreateObjectURL + viewerCompatibilityParams.disableCreateObjectURL ); download(blobUrl, filename); } @@ -80,7 +73,7 @@ class DownloadManager { return; } - if (this.disableCreateObjectURL) { + if (viewerCompatibilityParams.disableCreateObjectURL) { // URL.createObjectURL is not supported this.downloadUrl(url, filename); return; diff --git a/web/firefoxcom.js b/web/firefoxcom.js index e14cdcfc2..985ca0530 100644 --- a/web/firefoxcom.js +++ b/web/firefoxcom.js @@ -88,10 +88,6 @@ const FirefoxCom = (function FirefoxComClosure() { })(); class DownloadManager { - constructor(options) { - this.disableCreateObjectURL = false; - } - downloadUrl(url, filename) { FirefoxCom.request("download", { originalUrl: url, diff --git a/web/pdf_attachment_viewer.js b/web/pdf_attachment_viewer.js index b9bd851bf..0543cd6c5 100644 --- a/web/pdf_attachment_viewer.js +++ b/web/pdf_attachment_viewer.js @@ -15,6 +15,7 @@ import { createPromiseCapability, getFilenameFromUrl } from "pdfjs-lib"; import { BaseTreeViewer } from "./base_tree_viewer.js"; +import { viewerCompatibilityParams } from "./viewer_compatibility.js"; /** * @typedef {Object} PDFAttachmentViewerOptions @@ -169,7 +170,7 @@ class PDFAttachmentViewer extends BaseTreeViewer { const element = document.createElement("a"); if ( /\.pdf$/i.test(filename) && - !this.downloadManager.disableCreateObjectURL + !viewerCompatibilityParams.disableCreateObjectURL ) { this._bindPdfLink(element, { content: item.content, filename }); } else { diff --git a/web/pdf_print_service.js b/web/pdf_print_service.js index 2321f0cf3..7f2dff0ca 100644 --- a/web/pdf_print_service.js +++ b/web/pdf_print_service.js @@ -15,7 +15,7 @@ import { CSS_UNITS, NullL10n } from "./ui_utils.js"; import { PDFPrintServiceFactory, PDFViewerApplication } from "./app.js"; -import { AppOptions } from "./app_options.js"; +import { viewerCompatibilityParams } from "./viewer_compatibility.js"; let activeService = null; let overlayManager = null; @@ -78,7 +78,6 @@ function PDFPrintService( this.printContainer = printContainer; this._printResolution = printResolution || 150; this.l10n = l10n || NullL10n; - this.disableCreateObjectURL = AppOptions.get("disableCreateObjectURL"); this.currentPage = -1; // The temporary canvas where renderPage paints one page at a time. this.scratchCanvas = document.createElement("canvas"); @@ -188,7 +187,10 @@ PDFPrintService.prototype = { img.style.height = printItem.height; const scratchCanvas = this.scratchCanvas; - if ("toBlob" in scratchCanvas && !this.disableCreateObjectURL) { + if ( + "toBlob" in scratchCanvas && + !viewerCompatibilityParams.disableCreateObjectURL + ) { scratchCanvas.toBlob(function (blob) { img.src = URL.createObjectURL(blob); });