Skip to content

Commit 3909b9a

Browse files
ryzokukenAditi-1400
authored andcommitted
Add a pdf.renderer.js entrypoint and gulp function to build renderer
1 parent dfd66ee commit 3909b9a

3 files changed

Lines changed: 46 additions & 3 deletions

File tree

gulpfile.mjs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,18 @@ function createWorkerBundle(defines) {
543543
.pipe(webpack2Stream(workerFileConfig));
544544
}
545545

546+
function createRendererWorkerBundle(defines) {
547+
const rendererWorkerFileConfig = createWebpackConfig(defines, {
548+
filename: defines.MINIFIED ? "pdf.renderer.min.mjs" : "pdf.renderer.mjs",
549+
library: {
550+
type: "module",
551+
},
552+
});
553+
return gulp
554+
.src("./src/pdf.renderer.js", { encoding: false })
555+
.pipe(webpack2Stream(rendererWorkerFileConfig));
556+
}
557+
546558
function createWebBundle(defines, options) {
547559
const viewerFileConfig = createWebpackConfig(defines, {
548560
filename: "viewer.mjs",
@@ -1055,6 +1067,7 @@ function buildGeneric(defines, dir) {
10551067
return ordered([
10561068
createMainBundle(defines).pipe(gulp.dest(dir + "build")),
10571069
createWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
1070+
createRendererWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
10581071
createSandboxBundle(defines).pipe(gulp.dest(dir + "build")),
10591072
createWebBundle(defines).pipe(gulp.dest(dir + "web")),
10601073
gulp
@@ -1215,6 +1228,7 @@ function buildMinified(defines, dir) {
12151228
return ordered([
12161229
createMainBundle(defines).pipe(gulp.dest(dir + "build")),
12171230
createWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
1231+
createRendererWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
12181232
createSandboxBundle(defines).pipe(gulp.dest(dir + "build")),
12191233
createImageDecodersBundle({ ...defines, IMAGE_DECODERS: true }).pipe(
12201234
gulp.dest(dir + "image_decoders")
@@ -1344,6 +1358,9 @@ gulp.task(
13441358
createWorkerBundle(defines).pipe(
13451359
gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
13461360
),
1361+
createRendererWorkerBundle(defines).pipe(
1362+
gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
1363+
),
13471364
createWebBundle(defines).pipe(
13481365
gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")
13491366
),
@@ -1449,6 +1466,9 @@ gulp.task(
14491466
createWorkerBundle(defines).pipe(
14501467
gulp.dest(CHROME_BUILD_CONTENT_DIR + "build")
14511468
),
1469+
createRendererWorkerBundle(defines).pipe(
1470+
gulp.dest(CHROME_BUILD_CONTENT_DIR + "build")
1471+
),
14521472
createSandboxBundle(defines).pipe(
14531473
gulp.dest(CHROME_BUILD_CONTENT_DIR + "build")
14541474
),

src/display/api.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2427,9 +2427,14 @@ class RendererWorker {
24272427
#handler;
24282428

24292429
constructor(channelPort, enableHWA) {
2430-
this.#worker = new Worker("../src/display/renderer_worker.js", {
2431-
type: "module",
2432-
});
2430+
const src =
2431+
// eslint-disable-next-line no-nested-ternary
2432+
typeof PDFJSDev === "undefined"
2433+
? "../src/pdf.worker.js"
2434+
: PDFJSDev.test("MOZCENTRAL")
2435+
? "resource://pdf.js/build/pdf.worker.mjs"
2436+
: "../build/pdf.worker.mjs";
2437+
this.#worker = new Worker(src, { type: "module" });
24332438
this.#handler = new MessageHandler("main", "renderer", this.#worker);
24342439
this.#handler.send("configure", { channelPort, enableHWA }, [channelPort]);
24352440
this.#handler.on("ready", () => {

src/pdf.renderer.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/* Copyright 2025 Mozilla Foundation
2+
*
3+
* Licensed under the Apache License, Version 2.0 (the "License");
4+
* you may not use this file except in compliance with the License.
5+
* You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software
10+
* distributed under the License is distributed on an "AS IS" BASIS,
11+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
* See the License for the specific language governing permissions and
13+
* limitations under the License.
14+
*/
15+
16+
import { RendererMessageHandler } from "./display/renderer_worker.js";
17+
18+
export { RendererMessageHandler };

0 commit comments

Comments
 (0)