mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-13 15:14:40 +00:00
28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import * as pdfjs from "pdfjs-dist";
|
|
import browser from "webextension-polyfill";
|
|
|
|
/** Static copies in `src/public` (see `scripts/copy-pdfjs-assets.mjs`, manifest web_accessible_resources). */
|
|
const PDF_WORKER_RESOURCE = "resources/pdfjs/pdf.worker.min.mjs";
|
|
const PDF_LEGACY_RESOURCE = "resources/pdfjs/pdf.legacy.min.mjs";
|
|
|
|
function extensionAssetUrl(relativePath: string): string {
|
|
return browser.runtime.getURL(relativePath.replace(/^\/+/, ""));
|
|
}
|
|
|
|
let workerConfigured = false;
|
|
|
|
/** Required before pdfjs spawns a worker (content-script / extension isolate). */
|
|
export function ensurePdfjsWorker(): void {
|
|
if (workerConfigured) return;
|
|
pdfjs.GlobalWorkerOptions.workerSrc = extensionAssetUrl(PDF_WORKER_RESOURCE);
|
|
workerConfigured = true;
|
|
}
|
|
|
|
/** Page-context script on Firefox must load these chrome-extension:// URLs (see web_accessible_resources). */
|
|
export function getPdfjsPageContextUrls(): { lib: string; worker: string } {
|
|
return {
|
|
lib: extensionAssetUrl(PDF_LEGACY_RESOURCE),
|
|
worker: extensionAssetUrl(PDF_WORKER_RESOURCE),
|
|
};
|
|
}
|