Recently we upgraded to Gulp 4. However, the following things still need to be addressed in some way:

- If a task series is executed with an anonymous function inside it, we'll see `Starting '<anonymous>'` in the output, which isn't that great. We need to either suppress it or use named functions.
- If a task is private, it should be hidden in some way. For example, `gh-pages-prepare` is only used in the public `web` target and should not be used on its own, however currently it shows in the default `gulp` output since it's a regular task. Perhaps we should mark them with an underscore?
}),
            ])
          )
          .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")),
        gulp
          .src("l10n/en-US/*.properties")
          .pipe(gulp.dest(MOZCENTRAL_L10N_DIR)),
        gulp
          .src(FIREFOX_EXTENSION_DIR + "README.mozilla")
          .pipe(replace(/\bPDFJSSCRIPT_VERSION\b/g, version))
          .pipe(replace(/\bPDFJSSCRIPT_COMMIT\b/g, commit))
          .pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)),
        gulp.src("LICENSE").pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)),
        gulp
          .src(FIREFOX_CONTENT_DIR + "PdfJsDefaultPreferences.jsm")
          .pipe(transform("utf8", preprocessDefaultPreferences))
          .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)),
      ]);
    }
  )
);
gulp.task("mozcentral", gulp.series("mozcentral-pre"));
gulp.task(
  "chromium-pre",
  gulp.series(
    "buildnumber",
    "locale",
    function scripting() {
      const defines = builder.merge(DEFINES, {
        CHROME: true,