Skip to content

Commit

Permalink
[WIP] Remove SystemJS usage, in development mode, from the worker
Browse files Browse the repository at this point in the history
*Please note:* Unfortunately this can't land until https://bugzilla.mozilla.org/show_bug.cgi?id=1247687 is fixed in Firefox. (The patch has, however, been successfully tested in Google Chrome 87.)

This removes the final piece of SystemJS usage from the PDF.js library, thus allowing a fair bit of clean-up, and we now use *only* native `import`/`export` statements everywhere in development mode.
  • Loading branch information
Snuffleupagus committed Mar 11, 2021
1 parent 3d4bb5e commit e3103db
Show file tree
Hide file tree
Showing 12 changed files with 18 additions and 332 deletions.
1 change: 0 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
"globals": {
"PDFJSDev": false,
"exports": false,
"SystemJS": false,
},

"rules": {
Expand Down
147 changes: 0 additions & 147 deletions external/systemjs/plugin-babel-cached.js

This file was deleted.

12 changes: 0 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@
"stylelint": "^13.12.0",
"stylelint-config-prettier": "^8.0.2",
"stylelint-prettier": "^1.2.0",
"systemjs": "^0.21.6",
"systemjs-plugin-babel": "^0.0.25",
"terser": "^5.6.0",
"through2": "^4.0.2",
"ttest": "^3.0.0",
Expand Down
13 changes: 0 additions & 13 deletions src/core/.eslintrc

This file was deleted.

25 changes: 12 additions & 13 deletions src/display/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -1753,11 +1753,10 @@ const PDFWorker = (function PDFWorkerClosure() {
// Workers aren't supported in Node.js, force-disabling them there.
isWorkerDisabled = true;

if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("LIB")) {
fallbackWorkerSrc = "../pdf.worker.js";
} else {
fallbackWorkerSrc = "./pdf.worker.js";
}
fallbackWorkerSrc =
typeof PDFJSDev !== "undefined" && PDFJSDev.test("LIB")
? "../pdf.worker.js"
: "./pdf.worker.js";
} else if (typeof document === "object" && "currentScript" in document) {
const pdfjsFilePath = document.currentScript?.src;
if (pdfjsFilePath) {
Expand All @@ -1783,13 +1782,11 @@ const PDFWorker = (function PDFWorkerClosure() {
}

function getMainThreadWorkerMessageHandler() {
let mainWorkerMessageHandler;
try {
mainWorkerMessageHandler = globalThis.pdfjsWorker?.WorkerMessageHandler;
return globalThis.pdfjsWorker?.WorkerMessageHandler || null;
} catch (ex) {
/* Ignore errors. */
return null; // Ignore errors.
}
return mainWorkerMessageHandler || null;
}

// Loads worker code into main thread.
Expand All @@ -1807,7 +1804,7 @@ const PDFWorker = (function PDFWorkerClosure() {
return mainWorkerMessageHandler;
}
if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) {
const worker = await import("pdfjs/core/worker.js");
const worker = await import("pdfjs/pdf.worker.js");
return worker.WorkerMessageHandler;
}
if (
Expand Down Expand Up @@ -1934,9 +1931,11 @@ const PDFWorker = (function PDFWorkerClosure() {
);
}

// Some versions of FF can't create a worker on localhost, see:
// https://bugzilla.mozilla.org/show_bug.cgi?id=683280
const worker = new Worker(workerSrc);
const worker =
(typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) &&
!workerSrc.endsWith("/build/pdf.worker.js")
? new Worker(workerSrc, { type: "module" })
: new Worker(workerSrc);
const messageHandler = new MessageHandler("main", "worker", worker);
const terminateEarly = () => {
worker.removeEventListener("error", onWorkerError);
Expand Down
6 changes: 4 additions & 2 deletions src/pdf.worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
import { WorkerMessageHandler } from "./core/worker.js";

/* eslint-disable-next-line no-unused-vars */
const pdfjsVersion = PDFJSDev.eval("BUNDLE_VERSION");
const pdfjsVersion =
typeof PDFJSDev !== "undefined" ? PDFJSDev.eval("BUNDLE_VERSION") : void 0;
/* eslint-disable-next-line no-unused-vars */
const pdfjsBuild = PDFJSDev.eval("BUNDLE_BUILD");
const pdfjsBuild =
typeof PDFJSDev !== "undefined" ? PDFJSDev.eval("BUNDLE_BUILD") : void 0;

export { WorkerMessageHandler };
13 changes: 0 additions & 13 deletions src/shared/.eslintrc

This file was deleted.

32 changes: 0 additions & 32 deletions src/worker_loader.js

This file was deleted.

Loading

0 comments on commit e3103db

Please sign in to comment.