1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 22:58:07 +02:00

Move the auto-link handling into its own PDFPageView helper-method, and dispatch a "linkannotationsadded" event

This is similar to a lot of existing functionality for various layers, and the new event might be helpful in e.g. the integration-tests.
This commit is contained in:
Jonas Jenwald 2025-02-12 12:06:34 +01:00
parent d6f63d0e4b
commit 8727a04ae5

View file

@ -536,6 +536,28 @@ class PDFPageView {
this._textHighlighter.enable();
}
async #injectLinkAnnotations(textLayerPromise) {
let error = null;
try {
await textLayerPromise;
if (!this.annotationLayer) {
return; // Rendering was cancelled while the textLayerPromise resolved.
}
await this.annotationLayer.injectLinkAnnotations({
inferredLinks: Autolinker.processLinks(this),
viewport: this.viewport,
structTreeLayer: this.structTreeLayer,
});
} catch (ex) {
console.error("#injectLinkAnnotations:", ex);
error = ex;
}
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
this.#dispatchLayerRendered("linkannotationsadded", error);
}
}
#resetCanvas() {
const { canvas } = this;
if (!canvas) {
@ -1122,18 +1144,8 @@ class PDFPageView {
if (this.annotationLayer) {
await this.#renderAnnotationLayer();
if (this.#enableAutoLinking) {
try {
await textLayerPromise;
this.annotationLayer?.injectLinkAnnotations({
inferredLinks: Autolinker.processLinks(this),
viewport: this.viewport,
structTreeLayer: this.structTreeLayer,
});
} catch (ex) {
console.error("enableAutoLinking:", ex);
}
if (this.#enableAutoLinking && this.annotationLayer) {
await this.#injectLinkAnnotations(textLayerPromise);
}
}