mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 01:10:08 +02:00
Load the image-to-text model when opening the pdf viewer in Firefox (bug 1908938)
This commit is contained in:
parent
5b0e15ab18
commit
b71fa727e1
5 changed files with 62 additions and 24 deletions
|
@ -308,19 +308,56 @@ class FirefoxScripting {
|
|||
}
|
||||
|
||||
class MLManager {
|
||||
#enabled = new Map();
|
||||
#enabled = null;
|
||||
|
||||
constructor({ enableAltText }) {
|
||||
this.#enabled.set("altText", enableAltText);
|
||||
eventBus = null;
|
||||
|
||||
constructor(options) {
|
||||
this.enable({ ...options, listenToProgress: false });
|
||||
}
|
||||
|
||||
isEnabledFor(name) {
|
||||
return this.#enabled.get(name);
|
||||
async isEnabledFor(name) {
|
||||
return !!(await this.#enabled?.get(name));
|
||||
}
|
||||
|
||||
guess(data) {
|
||||
return FirefoxCom.requestAsync("mlGuess", data);
|
||||
}
|
||||
|
||||
enable({ enableAltText, listenToProgress }) {
|
||||
if (enableAltText) {
|
||||
this.#loadAltTextEngine(listenToProgress);
|
||||
}
|
||||
}
|
||||
|
||||
async #loadAltTextEngine(listenToProgress) {
|
||||
if (this.#enabled?.has("altText")) {
|
||||
// We already have a promise for the "altText" service.
|
||||
return;
|
||||
}
|
||||
const promise = FirefoxCom.requestAsync("loadAIEngine", {
|
||||
service: "moz-image-to-text",
|
||||
listenToProgress,
|
||||
});
|
||||
(this.#enabled ||= new Map()).set("altText", promise);
|
||||
if (listenToProgress) {
|
||||
const callback = ({ detail }) => {
|
||||
this.eventBus.dispatch("loadaiengineprogress", {
|
||||
source: this,
|
||||
detail,
|
||||
});
|
||||
if (detail.finished) {
|
||||
window.removeEventListener("loadAIEngineProgress", callback);
|
||||
}
|
||||
};
|
||||
window.addEventListener("loadAIEngineProgress", callback);
|
||||
promise.then(ok => {
|
||||
if (!ok) {
|
||||
window.removeEventListener("loadAIEngineProgress", callback);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class ExternalServices extends BaseExternalServices {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue