diff --git a/extensions/chromium/preferences_schema.json b/extensions/chromium/preferences_schema.json index 80f2716d1..fc08e6933 100644 --- a/extensions/chromium/preferences_schema.json +++ b/extensions/chromium/preferences_schema.json @@ -51,7 +51,7 @@ "type": "boolean", "default": true }, - "enableML": { + "enableAltText": { "type": "boolean", "default": false }, diff --git a/src/display/editor/stamp.js b/src/display/editor/stamp.js index ed1759339..f4f1387a6 100644 --- a/src/display/editor/stamp.js +++ b/src/display/editor/stamp.js @@ -430,7 +430,7 @@ class StampEditor extends AnnotationEditor { return; } this.#hasMLBeenQueried = true; - if (!this._uiManager.hasMLManager || this.hasAltText()) { + if (!this._uiManager.isMLEnabledFor("altText") || this.hasAltText()) { return; } const offscreen = new OffscreenCanvas(width, height); diff --git a/src/display/editor/tools.js b/src/display/editor/tools.js index 2fb916c72..4adebd986 100644 --- a/src/display/editor/tools.js +++ b/src/display/editor/tools.js @@ -851,8 +851,8 @@ class AnnotationEditorUIManager { return this.#mlManager?.guess(data) || null; } - get hasMLManager() { - return !!this.#mlManager; + isMLEnabledFor(name) { + return !!this.#mlManager?.isEnabledFor(name); } get hcmFilter() { diff --git a/web/app.js b/web/app.js index 5dec14086..e25cb8c74 100644 --- a/web/app.js +++ b/web/app.js @@ -752,10 +752,11 @@ const PDFViewerApplication = { }, get mlManager() { + const enableAltText = AppOptions.get("enableAltText"); return shadow( this, "mlManager", - AppOptions.get("enableML") === true ? new MLManager() : null + enableAltText === true ? new MLManager({ enableAltText }) : null ); }, diff --git a/web/app_options.js b/web/app_options.js index 3df0a95c2..769ca021f 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -136,6 +136,11 @@ const defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE, }, + enableAltText: { + /** @type {boolean} */ + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE, + }, enableHighlightEditor: { // We'll probably want to make some experiments before enabling this // in Firefox release, but it has to be temporary. @@ -152,11 +157,6 @@ const defaultOptions = { value: typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING"), kind: OptionKind.VIEWER + OptionKind.PREFERENCE, }, - enableML: { - /** @type {boolean} */ - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE, - }, enablePermissions: { /** @type {boolean} */ value: false, diff --git a/web/chromecom.js b/web/chromecom.js index 7f26b70db..b33e44537 100644 --- a/web/chromecom.js +++ b/web/chromecom.js @@ -436,6 +436,10 @@ class ExternalServices extends BaseExternalServices { } class MLManager { + isEnabledFor(_name) { + return false; + } + async guess() { return null; } diff --git a/web/firefoxcom.js b/web/firefoxcom.js index e431f4a08..a7cd0068b 100644 --- a/web/firefoxcom.js +++ b/web/firefoxcom.js @@ -303,6 +303,16 @@ class FirefoxScripting { } class MLManager { + #enabled = new Map(); + + constructor({ enableAltText }) { + this.#enabled.set("altText", enableAltText); + } + + isEnabledFor(name) { + return this.#enabled.get(name); + } + guess(data) { return FirefoxCom.requestAsync("mlGuess", data); } diff --git a/web/genericcom.js b/web/genericcom.js index 996051018..6ab2766ef 100644 --- a/web/genericcom.js +++ b/web/genericcom.js @@ -48,6 +48,10 @@ class ExternalServices extends BaseExternalServices { } class MLManager { + isEnabledFor(_name) { + return false; + } + async guess() { return null; }