From ba2c042a750192646923d0025d74cf275487b49c Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 20 Jul 2019 13:39:34 +0200 Subject: [PATCH] Add the `docBaseUrl` API parameter to `AppOptions` in the viewer This unfortunately required a bit of special handling, to correctly deal with the various extension builds. --- web/app.js | 18 +++++++++++------- web/app_options.js | 8 ++++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/web/app.js b/web/app.js index e1a04c4a8..6be712dd1 100644 --- a/web/app.js +++ b/web/app.js @@ -642,16 +642,20 @@ let PDFViewerApplication = { this.setTitleUsingUrl(file.originalUrl); parameters.url = file.url; } - if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) { - parameters.docBaseUrl = document.URL.split('#')[0]; - } else if (typeof PDFJSDev !== 'undefined' && - PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) { - parameters.docBaseUrl = this.baseUrl; - } // Set the necessary API parameters, using the available options. const apiParameters = AppOptions.getAll(OptionKind.API); for (let key in apiParameters) { - parameters[key] = apiParameters[key]; + let value = apiParameters[key]; + + if (key === 'docBaseUrl' && !value) { + if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) { + value = document.URL.split('#')[0]; + } else if (typeof PDFJSDev !== 'undefined' && + PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) { + value = this.baseUrl; + } + } + parameters[key] = value; } if (args) { diff --git a/web/app_options.js b/web/app_options.js index 73c86c765..5ad60b6d7 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -105,6 +105,9 @@ const defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE, }, + /** + * The `printResolution` is, conditionally, defined below. + */ renderer: { /** @type {string} */ value: 'canvas', @@ -183,6 +186,11 @@ const defaultOptions = { value: false, kind: OptionKind.API + OptionKind.PREFERENCE, }, + docBaseUrl: { + /** @type {string} */ + value: '', + kind: OptionKind.API, + }, isEvalSupported: { /** @type {boolean} */ value: true,