diff --git a/web/app.js b/web/app.js index 36ef5d47a..6014948eb 100644 --- a/web/app.js +++ b/web/app.js @@ -870,10 +870,10 @@ const PDFViewerApplication = { setTitleUsingUrl(url = "", downloadUrl = null) { this.url = url; - this.baseUrl = url.split("#")[0]; + this.baseUrl = url.split("#", 1)[0]; if (downloadUrl) { this._downloadUrl = - downloadUrl === url ? this.baseUrl : downloadUrl.split("#")[0]; + downloadUrl === url ? this.baseUrl : downloadUrl.split("#", 1)[0]; } if (isDataScheme(url)) { this._hideViewBookmark(); @@ -1020,20 +1020,20 @@ const PDFViewerApplication = { /* downloadUrl = */ args.url ); } + // Always set `docBaseUrl` in development mode, and in the (various) + // extension builds. + if (typeof PDFJSDev === "undefined") { + AppOptions.set("docBaseUrl", document.URL.split("#", 1)[0]); + } else if (PDFJSDev.test("MOZCENTRAL || CHROME")) { + AppOptions.set("docBaseUrl", this.baseUrl); + } + // Set the necessary API parameters, using all the available options. const apiParams = AppOptions.getAll(OptionKind.API); - const params = { - canvasMaxAreaInBytes: AppOptions.get("canvasMaxAreaInBytes"), + const loadingTask = getDocument({ ...apiParams, ...args, - }; - - if (typeof PDFJSDev === "undefined") { - params.docBaseUrl ||= document.URL.split("#")[0]; - } else if (PDFJSDev.test("MOZCENTRAL || CHROME")) { - params.docBaseUrl ||= this.baseUrl; - } - const loadingTask = getDocument(params); + }); this.pdfLoadingTask = loadingTask; loadingTask.onPassword = (updateCallback, reason) => { @@ -1252,7 +1252,7 @@ const PDFViewerApplication = { this.secondaryToolbar?.setPagesCount(pdfDocument.numPages); if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("CHROME")) { - const baseUrl = location.href.split("#")[0]; + const baseUrl = location.href.split("#", 1)[0]; // Ignore "data:"-URLs for performance reasons, even though it may cause // internal links to not work perfectly in all cases (see bug 1803050). this.pdfLinkService.setDocument( diff --git a/web/app_options.js b/web/app_options.js index 970b0ba83..dbde2ed7b 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -57,7 +57,7 @@ const defaultOptions = { canvasMaxAreaInBytes: { /** @type {number} */ value: -1, - kind: OptionKind.BROWSER, + kind: OptionKind.BROWSER + OptionKind.API, }, isInAutomation: { /** @type {boolean} */