Merge pull request #15534 from Snuffleupagus/FontLoader-cleanup-3

[api-minor] Stop setting an `id` on the styleElement used with CSS font-loading
This commit is contained in:
Tim van der Meij 2022-10-02 14:22:51 +02:00 committed by GitHub
commit 4e58dabb32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 11 deletions

View File

@ -2281,7 +2281,6 @@ class WorkerTransport {
this.loadingTask = loadingTask;
this.commonObjs = new PDFObjects();
this.fontLoader = new FontLoader({
docId: loadingTask.docId,
onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
ownerDocument: params.ownerDocument,
styleElement: params.styleElement,

View File

@ -25,12 +25,10 @@ import {
class FontLoader {
constructor({
docId,
onUnsupportedFeature,
ownerDocument = globalThis.document,
styleElement = null, // For testing only.
}) {
this.docId = docId;
this._onUnsupportedFeature = onUnsupportedFeature;
this._document = ownerDocument;
@ -52,15 +50,13 @@ class FontLoader {
}
insertRule(rule) {
let styleElement = this.styleElement;
if (!styleElement) {
styleElement = this.styleElement = this._document.createElement("style");
styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;
if (!this.styleElement) {
this.styleElement = this._document.createElement("style");
this._document.documentElement
.getElementsByTagName("head")[0]
.append(styleElement);
.append(this.styleElement);
}
const styleSheet = styleElement.sheet;
const styleSheet = this.styleElement.sheet;
styleSheet.insertRule(rule, styleSheet.cssRules.length);
}

View File

@ -172,7 +172,7 @@ describe("custom ownerDocument", function () {
expect(style).toBeFalsy();
expect(ownerDocument.fonts.size).toBeGreaterThanOrEqual(1);
expect(Array.from(ownerDocument.fonts).find(checkFont)).toBeTruthy();
await doc.destroy();
await loadingTask.destroy();
CanvasFactory.destroy(canvasAndCtx);
expect(ownerDocument.fonts.size).toBe(0);
@ -204,7 +204,7 @@ describe("custom ownerDocument", function () {
const style = elements.find(element => element.tagName === "style");
expect(style.sheet.cssRules.length).toBeGreaterThanOrEqual(1);
expect(style.sheet.cssRules.find(checkFontFaceRule)).toBeTruthy();
await doc.destroy();
await loadingTask.destroy();
CanvasFactory.destroy(canvasAndCtx);
expect(style.remove.called).toBe(true);