Merge pull request #21460 from Snuffleupagus/autolinking-check-every-LinkAnnotation

Check every LinkAnnotation when testing if inferred links overlap (issue 21458)
This commit is contained in:
Jonas Jenwald 2026-06-16 22:32:07 +02:00 committed by GitHub
commit 2ed018ec2d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 47 additions and 4 deletions

View File

@ -169,6 +169,43 @@ describe("autolinker", function () {
});
});
describe("issue21458.pdf", function () {
let pages;
beforeEach(async () => {
pages = await loadAndWait(
"issue21458.pdf",
".page[data-page-number='1'] .annotationLayer",
null,
null,
{ enableAutoLinking: true }
);
});
afterEach(async () => {
await closePages(pages);
});
it("must not add links that overlap internal destinations", async () => {
await Promise.all(
pages.map(async ([browserName, page]) => {
await waitForLinkAnnotations(page);
const linkIds = await page.$$eval(
".page[data-page-number='1'] .annotationLayer > .linkAnnotation > a",
annotations =>
annotations.map(a => a.getAttribute("data-element-id"))
);
expect(linkIds.length).withContext(`In ${browserName}`).toEqual(42);
linkIds.forEach(id =>
expect(id)
.withContext(`In ${browserName}`)
.not.toContain("inferred_link_")
);
})
);
});
});
describe("PR 19470", function () {
let pages;

View File

@ -0,0 +1 @@
https://github.com/user-attachments/files/28985267/Gumbel.Distillation.pdf

View File

@ -31,6 +31,14 @@
"link": true,
"type": "other"
},
{
"id": "issue21458",
"file": "pdfs/issue21458.pdf",
"md5": "875754beca276ab63568e06fd49e8375",
"rounds": 1,
"link": true,
"type": "other"
},
{
"id": "filled-background-range",
"file": "pdfs/filled-background.pdf",

View File

@ -332,10 +332,7 @@ class AnnotationLayerBuilder {
let linkAreaRects;
for (const annotation of this.#annotations) {
if (
annotation.annotationType !== AnnotationType.LINK ||
!annotation.url
) {
if (annotation.annotationType !== AnnotationType.LINK) {
continue;
}
// TODO: Add a test case to verify that we can find the intersection