Merge pull request #16141 from Snuffleupagus/FilterFactory-docId

Include the document-id in the SVG-filter names (PR 16062 follow-up)
This commit is contained in:
Tim van der Meij 2023-03-11 15:45:42 +01:00 committed by GitHub
commit 05f29c8720
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -269,6 +269,7 @@ function getDocument(src) {
);
}
const task = new PDFDocumentLoadingTask();
const { docId } = task;
const url = src.url ? getUrlProp(src.url) : null;
const data = src.data ? getDataProp(src.data) : null;
@ -339,7 +340,7 @@ function getDocument(src) {
const canvasFactory =
src.canvasFactory || new DefaultCanvasFactory({ ownerDocument });
const filterFactory =
src.filterFactory || new FilterFactory({ ownerDocument });
src.filterFactory || new FilterFactory({ docId, ownerDocument });
// Parameters only intended for development/testing purposes.
const styleElement =
@ -378,7 +379,6 @@ function getDocument(src) {
: new PDFWorker(workerParams);
task._worker = worker;
}
const docId = task.docId;
const fetchDocParams = {
docId,

View File

@ -53,11 +53,14 @@ class FilterFactory {
#_defs;
#docId;
#document;
#id = 0;
constructor({ ownerDocument = globalThis.document } = {}) {
constructor({ docId, ownerDocument = globalThis.document } = {}) {
this.#docId = docId;
this.#document = ownerDocument;
}
@ -132,7 +135,7 @@ class FilterFactory {
// We create a SVG filter: feComponentTransferElement
// https://www.w3.org/TR/SVG11/filters.html#feComponentTransferElement
const id = `transfer_map_${this.#id++}`;
const id = `g_${this.#docId}_transfer_map_${this.#id++}`;
const url = `url(#${id})`;
this.#cache.set(maps, url);
this.#cache.set(key, url);