Merge pull request #17397 from Snuffleupagus/app-createScripting-move-options

Re-factor how the `sandboxBundleSrc` option is passed to `PDFScriptingManager`
This commit is contained in:
Jonas Jenwald 2023-12-09 14:33:42 +01:00 committed by GitHub
commit 553729869b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 12 additions and 28 deletions

View File

@ -110,7 +110,7 @@ class DefaultExternalServices {
throw new Error("Not implemented: createL10n");
}
static createScripting(options) {
static createScripting() {
throw new Error("Not implemented: createScripting");
}
@ -395,10 +395,6 @@ const PDFViewerApplication = {
const pdfScriptingManager = new PDFScriptingManager({
eventBus,
sandboxBundleSrc:
typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC || CHROME")
? AppOptions.get("sandboxBundleSrc")
: null,
externalServices,
docProperties: this._scriptingDocProperties.bind(this),
});

View File

@ -439,8 +439,8 @@ class ChromeExternalServices extends DefaultExternalServices {
return new GenericL10n(navigator.language);
}
static createScripting({ sandboxBundleSrc }) {
return new GenericScripting(sandboxBundleSrc);
static createScripting() {
return new GenericScripting(AppOptions.get("sandboxBundleSrc"));
}
}
PDFViewerApplication.externalServices = ChromeExternalServices;

View File

@ -402,7 +402,7 @@ class FirefoxExternalServices extends DefaultExternalServices {
return new L10n(localeProperties, document.l10n);
}
static createScripting(options) {
static createScripting() {
return FirefoxScripting;
}

View File

@ -51,8 +51,8 @@ class GenericExternalServices extends DefaultExternalServices {
return new GenericL10n(AppOptions.get("locale"));
}
static createScripting({ sandboxBundleSrc }) {
return new GenericScripting(sandboxBundleSrc);
static createScripting() {
return new GenericScripting(AppOptions.get("sandboxBundleSrc"));
}
}
PDFViewerApplication.externalServices = GenericExternalServices;

View File

@ -30,8 +30,8 @@ class PDFScriptingManagerComponents extends PDFScriptingManager {
}
options.externalServices ||= {
createScripting: ({ sandboxBundleSrc }) => {
return new GenericScripting(sandboxBundleSrc);
createScripting: () => {
return new GenericScripting(options.sandboxBundleSrc);
},
};
options.docProperties ||= pdfDocument => {

View File

@ -21,8 +21,8 @@ import { PromiseCapability, shadow } from "pdfjs-lib";
/**
* @typedef {Object} PDFScriptingManagerOptions
* @property {EventBus} eventBus - The application event bus.
* @property {string} sandboxBundleSrc - The path and filename of the scripting
* bundle.
* @property {string} [sandboxBundleSrc] - The path and filename of the
* scripting bundle.
* @property {Object} [externalServices] - The factory that is used when
* initializing scripting; must contain a `createScripting` method.
* PLEASE NOTE: Primarily intended for the default viewer use-case.
@ -47,8 +47,6 @@ class PDFScriptingManager {
#ready = false;
#sandboxBundleSrc = null;
#scripting = null;
#willPrintCapability = null;
@ -56,16 +54,8 @@ class PDFScriptingManager {
/**
* @param {PDFScriptingManagerOptions} options
*/
constructor({
eventBus,
sandboxBundleSrc = null,
externalServices = null,
docProperties = null,
}) {
constructor({ eventBus, externalServices = null, docProperties = null }) {
this.#eventBus = eventBus;
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC || CHROME")) {
this.#sandboxBundleSrc = sandboxBundleSrc;
}
this.#externalServices = externalServices;
this.#docProperties = docProperties;
}
@ -421,9 +411,7 @@ class PDFScriptingManager {
if (this.#scripting) {
throw new Error("#initScripting: Scripting already exists.");
}
return this.#externalServices.createScripting({
sandboxBundleSrc: this.#sandboxBundleSrc,
});
return this.#externalServices.createScripting();
}
async #destroyScripting() {