diff --git a/README.md b/README.md index b97ac63d9..fcaeb91d7 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ nullish coalescing. + Modern browsers: https://mozilla.github.io/pdf.js/web/viewer.html -+ Older browsers: https://mozilla.github.io/pdf.js/es5/web/viewer.html ++ Older browsers: https://mozilla.github.io/pdf.js/legacy/web/viewer.html ### Browser Extensions @@ -86,9 +86,9 @@ viewer, run: If you need to support older browsers, run: - $ gulp generic-es5 + $ gulp generic-legacy -This will generate `pdf.js` and `pdf.worker.js` in the `build/generic/build/` directory (respectively `build/generic-es5/build/`). +This will generate `pdf.js` and `pdf.worker.js` in the `build/generic/build/` directory (respectively `build/generic-legacy/build/`). Both scripts are needed but only `pdf.js` needs to be included since `pdf.worker.js` will be loaded by `pdf.js`. The PDF.js files are large and should be minified for production. diff --git a/docs/contents/getting_started/index.md b/docs/contents/getting_started/index.md index 63fcbabe9..4cbed2065 100644 --- a/docs/contents/getting_started/index.md +++ b/docs/contents/getting_started/index.md @@ -54,8 +54,8 @@ Before downloading PDF.js please take a moment to understand the different layer Includes the generic build of PDF.js and the viewer.

- Stable (vSTABLE_VERSION) - Beta (vBETA_VERSION) + Stable (vSTABLE_VERSION) + Beta (vBETA_VERSION)
diff --git a/examples/node/getinfo.js b/examples/node/getinfo.js index f58bb02b8..fccb984c5 100644 --- a/examples/node/getinfo.js +++ b/examples/node/getinfo.js @@ -8,7 +8,7 @@ // // Run `gulp dist-install` to generate 'pdfjs-dist' npm package files. -var pdfjsLib = require("pdfjs-dist/es5/build/pdf.js"); +var pdfjsLib = require("pdfjs-dist/legacy/build/pdf.js"); // Loading file from file system into typed array var pdfPath = process.argv[2] || "../../web/compressed.tracemonkey-pldi-09.pdf"; diff --git a/examples/node/pdf2png/pdf2png.js b/examples/node/pdf2png/pdf2png.js index b33c5404d..423533001 100644 --- a/examples/node/pdf2png/pdf2png.js +++ b/examples/node/pdf2png/pdf2png.js @@ -48,7 +48,7 @@ NodeCanvasFactory.prototype = { }, }; -var pdfjsLib = require("pdfjs-dist/es5/build/pdf.js"); +var pdfjsLib = require("pdfjs-dist/legacy/build/pdf.js"); // Some PDFs need external cmaps. var CMAP_URL = "../../../node_modules/pdfjs-dist/cmaps/"; diff --git a/examples/node/pdf2svg.js b/examples/node/pdf2svg.js index d95737df2..f5b307023 100644 --- a/examples/node/pdf2svg.js +++ b/examples/node/pdf2svg.js @@ -14,7 +14,7 @@ var stream = require("stream"); require("./domstubs.js").setStubs(global); // Run `gulp dist-install` to generate 'pdfjs-dist' npm package files. -var pdfjsLib = require("pdfjs-dist/es5/build/pdf.js"); +var pdfjsLib = require("pdfjs-dist/legacy/build/pdf.js"); // Some PDFs need external cmaps. var CMAP_URL = "../../node_modules/pdfjs-dist/cmaps/"; diff --git a/external/dist/README.md b/external/dist/README.md index 75109c2bb..c812ab36e 100644 --- a/external/dist/README.md +++ b/external/dist/README.md @@ -9,6 +9,6 @@ generated by the build scripts. For usage with older browsers or environments, without support for modern features such as e.g. `async`/`await`, `ReadableStream`, optional chaining, and -nullish coalescing; please see the `es5` folder. +nullish coalescing; please see the `legacy` folder. See https://github.com/mozilla/pdf.js for learning and contributing. diff --git a/external/dist/es5/build/pdf.d.ts b/external/dist/legacy/build/pdf.d.ts similarity index 100% rename from external/dist/es5/build/pdf.d.ts rename to external/dist/legacy/build/pdf.d.ts diff --git a/gulpfile.js b/gulpfile.js index 1ec7387e2..0c1c4ea2f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -48,14 +48,14 @@ var EXTENSION_SRC_DIR = "extensions/"; var BASELINE_DIR = BUILD_DIR + "baseline/"; var MOZCENTRAL_BASELINE_DIR = BUILD_DIR + "mozcentral.baseline/"; var GENERIC_DIR = BUILD_DIR + "generic/"; -var GENERIC_ES5_DIR = BUILD_DIR + "generic-es5/"; +var GENERIC_LEGACY_DIR = BUILD_DIR + "generic-legacy/"; var COMPONENTS_DIR = BUILD_DIR + "components/"; -var COMPONENTS_ES5_DIR = BUILD_DIR + "components-es5/"; +var COMPONENTS_LEGACY_DIR = BUILD_DIR + "components-legacy/"; var IMAGE_DECODERS_DIR = BUILD_DIR + "image_decoders/"; -var IMAGE_DECODERS_ES5_DIR = BUILD_DIR + "image_decoders-es5/"; +var IMAGE_DECODERS_LEGACY_DIR = BUILD_DIR + "image_decoders-legacy/"; var DEFAULT_PREFERENCES_DIR = BUILD_DIR + "default_preferences/"; var MINIFIED_DIR = BUILD_DIR + "minified/"; -var MINIFIED_ES5_DIR = BUILD_DIR + "minified-es5/"; +var MINIFIED_LEGACY_DIR = BUILD_DIR + "minified-legacy/"; var JSDOC_BUILD_DIR = BUILD_DIR + "jsdoc/"; var GH_PAGES_DIR = BUILD_DIR + "gh-pages/"; var SRC_DIR = "src/"; @@ -876,7 +876,7 @@ gulp.task( // Builds the generic production viewer that should be compatible with most // older HTML5 browsers. gulp.task( - "generic-es5", + "generic-legacy", gulp.series( "buildnumber", "default_preferences", @@ -890,13 +890,13 @@ gulp.task( }, function () { console.log(); - console.log("### Creating generic (ES5) viewer"); + console.log("### Creating generic (legacy) viewer"); var defines = builder.merge(DEFINES, { GENERIC: true, SKIP_BABEL: false, }); - return buildGeneric(defines, GENERIC_ES5_DIR); + return buildGeneric(defines, GENERIC_LEGACY_DIR); } ) ); @@ -931,17 +931,17 @@ gulp.task( ); gulp.task( - "components-es5", + "components-legacy", gulp.series("buildnumber", function () { console.log(); - console.log("### Creating generic (ES5) components"); + console.log("### Creating generic (legacy) components"); var defines = builder.merge(DEFINES, { COMPONENTS: true, GENERIC: true, SKIP_BABEL: false, }); - return buildComponents(defines, COMPONENTS_ES5_DIR); + return buildComponents(defines, COMPONENTS_LEGACY_DIR); }) ); @@ -962,10 +962,10 @@ gulp.task( ); gulp.task( - "image_decoders-es5", + "image_decoders-legacy", gulp.series("buildnumber", function () { console.log(); - console.log("### Creating (ES5) image decoders"); + console.log("### Creating (legacy) image decoders"); var defines = builder.merge(DEFINES, { GENERIC: true, IMAGE_DECODERS: true, @@ -973,7 +973,7 @@ gulp.task( }); return createImageDecodersBundle(defines).pipe( - gulp.dest(IMAGE_DECODERS_ES5_DIR) + gulp.dest(IMAGE_DECODERS_LEGACY_DIR) ); }) ); @@ -1033,7 +1033,7 @@ gulp.task( ); gulp.task( - "minified-es5-pre", + "minified-legacy-pre", gulp.series( "buildnumber", "default_preferences", @@ -1048,14 +1048,14 @@ gulp.task( }, function () { console.log(); - console.log("### Creating minified (ES5) viewer"); + console.log("### Creating minified (legacy) viewer"); var defines = builder.merge(DEFINES, { MINIFIED: true, GENERIC: true, SKIP_BABEL: false, }); - return buildMinified(defines, MINIFIED_ES5_DIR); + return buildMinified(defines, MINIFIED_LEGACY_DIR); } ) ); @@ -1138,9 +1138,9 @@ gulp.task( ); gulp.task( - "minified-es5", - gulp.series("minified-es5-pre", async function (done) { - await parseMinified(MINIFIED_ES5_DIR); + "minified-legacy", + gulp.series("minified-legacy-pre", async function (done) { + await parseMinified(MINIFIED_LEGACY_DIR); done(); }) ); @@ -1468,7 +1468,7 @@ gulp.task( ); gulp.task( - "lib-es5", + "lib-legacy", gulp.series( "buildnumber", "default_preferences", @@ -1488,8 +1488,8 @@ gulp.task( }); return merge([ - buildLib(defines, "build/lib-es5/"), - createSandboxBundle(defines).pipe(gulp.dest("build/lib-es5/")), + buildLib(defines, "build/lib-legacy/"), + createSandboxBundle(defines).pipe(gulp.dest("build/lib-legacy/")), ]); } ) @@ -1507,7 +1507,7 @@ function compressPublish(targetName, dir) { gulp.task( "publish", - gulp.series("generic", "generic-es5", function (done) { + gulp.series("generic", "generic-legacy", function (done) { var version = JSON.parse( fs.readFileSync(BUILD_DIR + "version.json").toString() ).version; @@ -1520,7 +1520,10 @@ gulp.task( gulp.dest(".") ), compressPublish("pdfjs-" + version + "-dist.zip", GENERIC_DIR), - compressPublish("pdfjs-" + version + "-es5-dist.zip", GENERIC_ES5_DIR), + compressPublish( + "pdfjs-" + version + "-legacy-dist.zip", + GENERIC_LEGACY_DIR + ), ]); }) ); @@ -1674,7 +1677,7 @@ gulp.task("baseline", function (done) { gulp.task( "unittestcli", - gulp.series("testing-pre", "lib-es5", function (done) { + gulp.series("testing-pre", "lib-legacy", function (done) { var options = [ "node_modules/jasmine/bin/jasmine", "JASMINE_CONFIG_PATH=test/unit/clitests.json", @@ -1846,8 +1849,11 @@ gulp.task("gh-pages-prepare", function () { .src(GENERIC_DIR + "**/*", { base: GENERIC_DIR, stripBOM: false }) .pipe(gulp.dest(GH_PAGES_DIR)), vfs - .src(GENERIC_ES5_DIR + "**/*", { base: GENERIC_ES5_DIR, stripBOM: false }) - .pipe(gulp.dest(GH_PAGES_DIR + "es5/")), + .src(GENERIC_LEGACY_DIR + "**/*", { + base: GENERIC_LEGACY_DIR, + stripBOM: false, + }) + .pipe(gulp.dest(GH_PAGES_DIR + "legacy/")), gulp .src("test/features/**/*", { base: "test/" }) .pipe(gulp.dest(GH_PAGES_DIR)), @@ -1865,20 +1871,36 @@ gulp.task("wintersmith", function (done) { done(error); return; } + const { stableVersion, betaVersion } = config; + + // Create appropriate file names for the legacy builds. This logic can be + // removed and/or simplified, once the stable version is past the cutoff. + const CUTOFF_VERSION = "2.7.570"; + replaceInFile( + GH_PAGES_DIR + "/getting_started/index.html", + /STABLE_VERSION_LEGACY/g, + stableVersion + (stableVersion <= CUTOFF_VERSION ? "-es5" : "-legacy") + ); + replaceInFile( + GH_PAGES_DIR + "/getting_started/index.html", + /BETA_VERSION_LEGACY/g, + betaVersion + (betaVersion <= CUTOFF_VERSION ? "-es5" : "-legacy") + ); + replaceInFile( GH_PAGES_DIR + "/getting_started/index.html", /STABLE_VERSION/g, - config.stableVersion + stableVersion ); replaceInFile( GH_PAGES_DIR + "/getting_started/index.html", /BETA_VERSION/g, - config.betaVersion + betaVersion ); // Hide the beta version button if there is only a stable version. - const groupClass = config.betaVersion ? "btn-group-vertical centered" : ""; - const hiddenClass = config.betaVersion ? "" : "hidden"; + const groupClass = betaVersion ? "btn-group-vertical centered" : ""; + const hiddenClass = betaVersion ? "" : "hidden"; replaceInFile( GH_PAGES_DIR + "/getting_started/index.html", /GROUP_CLASS/g, @@ -1926,7 +1948,7 @@ gulp.task( "web", gulp.series( "generic", - "generic-es5", + "generic-legacy", "jsdoc", "gh-pages-prepare", "wintersmith", @@ -1990,14 +2012,14 @@ gulp.task( "dist-pre", gulp.series( "generic", - "generic-es5", + "generic-legacy", "components", - "components-es5", + "components-legacy", "image_decoders", - "image_decoders-es5", + "image_decoders-legacy", "lib", "minified", - "minified-es5", + "minified-legacy", "types", function () { console.log(); @@ -2033,11 +2055,11 @@ gulp.task( .pipe(gulp.dest(DIST_DIR + "build/")), gulp .src([ - GENERIC_ES5_DIR + "build/{pdf,pdf.worker,pdf.sandbox}.js", - GENERIC_ES5_DIR + "build/{pdf,pdf.worker,pdf.sandbox}.js.map", + GENERIC_LEGACY_DIR + "build/{pdf,pdf.worker,pdf.sandbox}.js", + GENERIC_LEGACY_DIR + "build/{pdf,pdf.worker,pdf.sandbox}.js.map", SRC_DIR + "pdf.worker.entry.js", ]) - .pipe(gulp.dest(DIST_DIR + "es5/build/")), + .pipe(gulp.dest(DIST_DIR + "legacy/build/")), gulp .src(MINIFIED_DIR + "build/pdf.js") .pipe(rename("pdf.min.js")) @@ -2055,35 +2077,35 @@ gulp.task( .pipe(rename("pdf.image_decoders.min.js")) .pipe(gulp.dest(DIST_DIR + "image_decoders/")), gulp - .src(MINIFIED_ES5_DIR + "build/pdf.js") + .src(MINIFIED_LEGACY_DIR + "build/pdf.js") .pipe(rename("pdf.min.js")) - .pipe(gulp.dest(DIST_DIR + "es5/build/")), + .pipe(gulp.dest(DIST_DIR + "legacy/build/")), gulp - .src(MINIFIED_ES5_DIR + "build/pdf.worker.js") + .src(MINIFIED_LEGACY_DIR + "build/pdf.worker.js") .pipe(rename("pdf.worker.min.js")) - .pipe(gulp.dest(DIST_DIR + "es5/build/")), + .pipe(gulp.dest(DIST_DIR + "legacy/build/")), gulp - .src(MINIFIED_ES5_DIR + "build/pdf.sandbox.js") + .src(MINIFIED_LEGACY_DIR + "build/pdf.sandbox.js") .pipe(rename("pdf.sandbox.min.js")) - .pipe(gulp.dest(DIST_DIR + "es5/build/")), + .pipe(gulp.dest(DIST_DIR + "legacy/build/")), gulp - .src(MINIFIED_ES5_DIR + "image_decoders/pdf.image_decoders.js") + .src(MINIFIED_LEGACY_DIR + "image_decoders/pdf.image_decoders.js") .pipe(rename("pdf.image_decoders.min.js")) - .pipe(gulp.dest(DIST_DIR + "es5/image_decoders/")), + .pipe(gulp.dest(DIST_DIR + "legacy/image_decoders/")), gulp .src(COMPONENTS_DIR + "**/*", { base: COMPONENTS_DIR }) .pipe(gulp.dest(DIST_DIR + "web/")), gulp - .src(COMPONENTS_ES5_DIR + "**/*", { base: COMPONENTS_ES5_DIR }) - .pipe(gulp.dest(DIST_DIR + "es5/web/")), + .src(COMPONENTS_LEGACY_DIR + "**/*", { base: COMPONENTS_LEGACY_DIR }) + .pipe(gulp.dest(DIST_DIR + "legacy/web/")), gulp .src(IMAGE_DECODERS_DIR + "**/*", { base: IMAGE_DECODERS_DIR }) .pipe(gulp.dest(DIST_DIR + "image_decoders/")), gulp - .src(IMAGE_DECODERS_ES5_DIR + "**/*", { - base: IMAGE_DECODERS_ES5_DIR, + .src(IMAGE_DECODERS_LEGACY_DIR + "**/*", { + base: IMAGE_DECODERS_LEGACY_DIR, }) - .pipe(gulp.dest(DIST_DIR + "es5/image_decoders/")), + .pipe(gulp.dest(DIST_DIR + "legacy/image_decoders/")), gulp .src(LIB_DIR + "**/*", { base: LIB_DIR }) .pipe(gulp.dest(DIST_DIR + "lib/")), diff --git a/src/core/worker.js b/src/core/worker.js index 2ac51bf73..25950cf73 100644 --- a/src/core/worker.js +++ b/src/core/worker.js @@ -147,7 +147,7 @@ class WorkerMessageHandler { throw new Error( "The browser/environment lacks native support for critical " + "functionality used by the PDF.js library (e.g. `ReadableStream`); " + - "please use an `es5`-build instead." + "please use a `legacy`-build instead." ); } } diff --git a/test/unit/clitests.json b/test/unit/clitests.json index 1d7b19bad..2ccdc87ed 100644 --- a/test/unit/clitests.json +++ b/test/unit/clitests.json @@ -1,5 +1,5 @@ { - "spec_dir": "build/lib-es5/test/unit", + "spec_dir": "build/lib-legacy/test/unit", "helpers": [ "clitests_helper.js"