diff --git a/extensions/firefox/content/PdfJsDefaultPreferences.jsm b/extensions/firefox/content/PdfJsDefaultPreferences.jsm
index 4580e83d2..cc4b7b043 100644
--- a/extensions/firefox/content/PdfJsDefaultPreferences.jsm
+++ b/extensions/firefox/content/PdfJsDefaultPreferences.jsm
@@ -18,5 +18,5 @@
 var EXPORTED_SYMBOLS = ["PdfJsDefaultPreferences"];
 
 var PdfJsDefaultPreferences = Object.freeze(
-  PDFJSDev.json("$ROOT/build/default_preferences.json")
+  PDFJSDev.eval("DEFAULT_PREFERENCES")
 );
diff --git a/gulpfile.js b/gulpfile.js
index eb515bb63..1160345b7 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -172,6 +172,7 @@ function createWebpackConfig(
     disableVersionInfo = false,
     disableSourceMaps = false,
     disableLicenseHeader = false,
+    defaultPreferencesDir = null,
   } = {}
 ) {
   const versionInfo = !disableVersionInfo
@@ -181,6 +182,9 @@ function createWebpackConfig(
     BUNDLE_VERSION: versionInfo.version,
     BUNDLE_BUILD: versionInfo.commit,
     TESTING: defines.TESTING || process.env.TESTING === "true",
+    DEFAULT_PREFERENCES: defaultPreferencesDir
+      ? getDefaultPreferences(defaultPreferencesDir)
+      : {},
   });
   const licenseHeaderLibre = fs
     .readFileSync("./src/license_header_libre.js")
@@ -283,10 +287,9 @@ function getVersionJSON() {
   return JSON.parse(fs.readFileSync(BUILD_DIR + "version.json").toString());
 }
 
-function checkChromePreferencesFile(chromePrefsPath, webPrefsPath) {
+function checkChromePreferencesFile(chromePrefsPath, webPrefs) {
   const chromePrefs = JSON.parse(fs.readFileSync(chromePrefsPath).toString());
-  let chromePrefsKeys = Object.keys(chromePrefs.properties);
-  chromePrefsKeys = chromePrefsKeys.filter(function (key) {
+  const chromePrefsKeys = Object.keys(chromePrefs.properties).filter(key => {
     const description = chromePrefs.properties[key].description;
     // Deprecated keys are allowed in the managed preferences file.
     // The code maintained is responsible for adding migration logic to
@@ -294,18 +297,12 @@ function checkChromePreferencesFile(chromePrefsPath, webPrefsPath) {
     return !description || !description.startsWith("DEPRECATED.");
   });
   chromePrefsKeys.sort();
-  const webPrefs = JSON.parse(fs.readFileSync(webPrefsPath).toString());
+
   const webPrefsKeys = Object.keys(webPrefs);
   webPrefsKeys.sort();
-  const telemetryIndex = chromePrefsKeys.indexOf("disableTelemetry");
-  if (telemetryIndex >= 0) {
-    chromePrefsKeys.splice(telemetryIndex, 1);
-  } else {
-    console.log("Warning: disableTelemetry key not found in chrome prefs!");
-    return false;
-  }
+
   if (webPrefsKeys.length !== chromePrefsKeys.length) {
-    console.log("Warning: Prefs objects haven't the same length");
+    console.log("Warning: Pref objects doesn't have the same length.");
     return false;
   }
 
@@ -320,7 +317,8 @@ function checkChromePreferencesFile(chromePrefsPath, webPrefsPath) {
     } else if (chromePrefs.properties[value].default !== webPrefs[value]) {
       ret = false;
       console.log(
-        `Warning: not the same values: ${chromePrefs.properties[value].default} !== ${webPrefs[value]}`
+        `Warning: not the same values (for "${value}"): ` +
+          `${chromePrefs.properties[value].default} !== ${webPrefs[value]}`
       );
     }
   }
@@ -454,12 +452,18 @@ function createWorkerBundle(defines) {
     .pipe(replaceJSRootName(workerAMDName, "pdfjsWorker"));
 }
 
-function createWebBundle(defines) {
+function createWebBundle(defines, options) {
   const viewerOutputName = "viewer.js";
 
-  const viewerFileConfig = createWebpackConfig(defines, {
-    filename: viewerOutputName,
-  });
+  const viewerFileConfig = createWebpackConfig(
+    defines,
+    {
+      filename: viewerOutputName,
+    },
+    {
+      defaultPreferencesDir: options.defaultPreferencesDir,
+    }
+  );
   return gulp.src("./web/viewer.js").pipe(webpack2Stream(viewerFileConfig));
 }
 
@@ -647,75 +651,39 @@ gulp.task("buildnumber", function (done) {
   );
 });
 
-gulp.task("default_preferences-pre", function () {
+function buildDefaultPreferences(defines, dir) {
   console.log();
-  console.log("### Building `default_preferences.json`");
+  console.log("### Building default preferences");
 
-  // Refer to the comment in the 'lib' task below.
-  function babelPluginReplaceNonWebPackRequire(babel) {
-    return {
-      visitor: {
-        Identifier(curPath, state) {
-          if (curPath.node.name === "__non_webpack_require__") {
-            curPath.replaceWith(babel.types.identifier("require"));
-          }
-        },
-      },
-    };
-  }
-  function preprocess(content) {
-    content = preprocessor2.preprocessPDFJSCode(ctx, content);
-    return babel.transform(content, {
-      sourceType: "module",
-      presets: undefined, // SKIP_BABEL
-      plugins: [
-        "@babel/plugin-proposal-logical-assignment-operators",
-        "@babel/plugin-transform-modules-commonjs",
-        babelPluginReplaceNonWebPackRequire,
-      ],
-    }).code;
-  }
-  const babel = require("@babel/core");
-  const ctx = {
-    rootPath: __dirname,
-    saveComments: false,
-    defines: builder.merge(DEFINES, {
-      GENERIC: true,
-      LIB: true,
-      BUNDLE_VERSION: 0, // Dummy version
-      BUNDLE_BUILD: 0, // Dummy build
-    }),
-    map: {
-      "pdfjs-lib": "../pdf",
-    },
-  };
-  const preprocessor2 = require("./external/builder/preprocessor2.js");
-  return merge([
+  const bundleDefines = builder.merge(defines, {
+    LIB: true,
+    SKIP_BABEL: false,
+    BUNDLE_VERSION: 0, // Dummy version
+    BUNDLE_BUILD: 0, // Dummy build
+    TESTING: defines.TESTING || process.env.TESTING === "true",
+  });
+
+  const inputStream = merge([
     gulp.src(["web/{app_options,viewer_compatibility}.js"], {
       base: ".",
     }),
-  ])
-    .pipe(transform("utf8", preprocess))
-    .pipe(gulp.dest(DEFAULT_PREFERENCES_DIR + "lib/"));
-});
+  ]);
 
-gulp.task(
-  "default_preferences",
-  gulp.series("default_preferences-pre", function (done) {
-    const AppOptionsLib = require("./" +
-      DEFAULT_PREFERENCES_DIR +
-      "lib/web/app_options.js");
-    const AppOptions = AppOptionsLib.AppOptions;
-    const OptionKind = AppOptionsLib.OptionKind;
+  return buildLibHelper(
+    bundleDefines,
+    inputStream,
+    DEFAULT_PREFERENCES_DIR + dir
+  );
+}
 
-    createStringSource(
-      "default_preferences.json",
-      JSON.stringify(AppOptions.getAll(OptionKind.PREFERENCE), null, 2)
-    )
-      .pipe(gulp.dest(BUILD_DIR))
-      .on("end", done);
-  })
-);
+function getDefaultPreferences(dir) {
+  const { AppOptions, OptionKind } = require("./" +
+    DEFAULT_PREFERENCES_DIR +
+    dir +
+    "web/app_options.js");
+
+  return AppOptions.getAll(OptionKind.PREFERENCE);
+}
 
 gulp.task("locale", function () {
   const VIEWER_LOCALE_OUTPUT = "web/locale/";
@@ -827,7 +795,11 @@ function buildGeneric(defines, dir) {
     createMainBundle(defines).pipe(gulp.dest(dir + "build")),
     createWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
     createSandboxBundle(defines).pipe(gulp.dest(dir + "build")),
-    createWebBundle(defines).pipe(gulp.dest(dir + "web")),
+    createWebBundle(defines, {
+      defaultPreferencesDir: defines.SKIP_BABEL
+        ? "generic/"
+        : "generic-legacy/",
+    }).pipe(gulp.dest(dir + "web")),
     gulp.src(COMMON_WEB_FILES, { base: "web/" }).pipe(gulp.dest(dir + "web")),
     gulp.src("LICENSE").pipe(gulp.dest(dir)),
     gulp
@@ -857,11 +829,13 @@ gulp.task(
   "generic",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     "locale",
     function scripting() {
       const defines = builder.merge(DEFINES, { GENERIC: true });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "generic/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       console.log();
@@ -879,14 +853,16 @@ gulp.task(
   "generic-legacy",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     "locale",
     function scripting() {
       const defines = builder.merge(DEFINES, {
         GENERIC: true,
         SKIP_BABEL: false,
       });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "generic-legacy/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       console.log();
@@ -985,7 +961,11 @@ function buildMinified(defines, dir) {
     createMainBundle(defines).pipe(gulp.dest(dir + "build")),
     createWorkerBundle(defines).pipe(gulp.dest(dir + "build")),
     createSandboxBundle(defines).pipe(gulp.dest(dir + "build")),
-    createWebBundle(defines).pipe(gulp.dest(dir + "web")),
+    createWebBundle(defines, {
+      defaultPreferencesDir: defines.SKIP_BABEL
+        ? "minified/"
+        : "minified-legacy/",
+    }).pipe(gulp.dest(dir + "web")),
     createImageDecodersBundle(
       builder.merge(defines, { IMAGE_DECODERS: true })
     ).pipe(gulp.dest(dir + "image_decoders")),
@@ -1016,11 +996,13 @@ gulp.task(
   "minified-pre",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     "locale",
     function scripting() {
       const defines = builder.merge(DEFINES, { MINIFIED: true, GENERIC: true });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "minified/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       console.log();
@@ -1036,7 +1018,6 @@ gulp.task(
   "minified-legacy-pre",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     "locale",
     function scripting() {
       const defines = builder.merge(DEFINES, {
@@ -1044,7 +1025,10 @@ gulp.task(
         GENERIC: true,
         SKIP_BABEL: false,
       });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "minified-legacy/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       console.log();
@@ -1155,10 +1139,14 @@ function preprocessDefaultPreferences(content) {
   const MODIFICATION_WARNING =
     "//\n// THIS FILE IS GENERATED AUTOMATICALLY, DO NOT EDIT MANUALLY!\n//\n";
 
+  const bundleDefines = builder.merge(DEFINES, {
+    DEFAULT_PREFERENCES: getDefaultPreferences("mozcentral/"),
+  });
+
   content = preprocessor2.preprocessPDFJSCode(
     {
       rootPath: __dirname,
-      defines: DEFINES,
+      defines: bundleDefines,
     },
     content
   );
@@ -1177,78 +1165,93 @@ function preprocessDefaultPreferences(content) {
 
 gulp.task(
   "mozcentral-pre",
-  gulp.series("buildnumber", "default_preferences", function () {
-    console.log();
-    console.log("### Building mozilla-central extension");
-    const defines = builder.merge(DEFINES, { MOZCENTRAL: true });
+  gulp.series(
+    "buildnumber",
+    function scripting() {
+      const defines = builder.merge(DEFINES, { MOZCENTRAL: true });
+      return buildDefaultPreferences(defines, "mozcentral/");
+    },
+    function () {
+      console.log();
+      console.log("### Building mozilla-central extension");
+      const defines = builder.merge(DEFINES, { MOZCENTRAL: true });
 
-    const MOZCENTRAL_DIR = BUILD_DIR + "mozcentral/",
-      MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + "browser/extensions/pdfjs/",
-      MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + "content/",
-      FIREFOX_EXTENSION_DIR = "extensions/firefox/",
-      MOZCENTRAL_L10N_DIR = MOZCENTRAL_DIR + "browser/locales/en-US/pdfviewer/",
-      FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + "/firefox/content/";
+      const MOZCENTRAL_DIR = BUILD_DIR + "mozcentral/",
+        MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + "browser/extensions/pdfjs/",
+        MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + "content/",
+        FIREFOX_EXTENSION_DIR = "extensions/firefox/",
+        MOZCENTRAL_L10N_DIR =
+          MOZCENTRAL_DIR + "browser/locales/en-US/pdfviewer/",
+        FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + "/firefox/content/";
 
-    // Clear out everything in the firefox extension build directory
-    rimraf.sync(MOZCENTRAL_DIR);
+      // Clear out everything in the firefox extension build directory
+      rimraf.sync(MOZCENTRAL_DIR);
 
-    const versionJSON = getVersionJSON();
-    const version = versionJSON.version,
-      commit = versionJSON.commit;
+      const versionJSON = getVersionJSON();
+      const version = versionJSON.version,
+        commit = versionJSON.commit;
 
-    // Ignore the fallback cursor images, since they're unnecessary in Firefox.
-    const MOZCENTRAL_COMMON_WEB_FILES = [
-      ...COMMON_WEB_FILES,
-      "!web/images/*.cur",
-    ];
+      // Ignore the fallback cursor images, since they're unnecessary in
+      // Firefox.
+      const MOZCENTRAL_COMMON_WEB_FILES = [
+        ...COMMON_WEB_FILES,
+        "!web/images/*.cur",
+      ];
 
-    return merge([
-      createMainBundle(defines).pipe(
-        gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
-      ),
-      createScriptingBundle(defines).pipe(
-        gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
-      ),
-      createSandboxExternal(defines).pipe(
-        gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
-      ),
-      createWorkerBundle(defines).pipe(
-        gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
-      ),
-      createWebBundle(defines).pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")),
-      gulp
-        .src(MOZCENTRAL_COMMON_WEB_FILES, { base: "web/" })
-        .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")),
-      gulp
-        .src(["external/bcmaps/*.bcmap", "external/bcmaps/LICENSE"], {
-          base: "external/bcmaps",
-        })
-        .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web/cmaps")),
+      return merge([
+        createMainBundle(defines).pipe(
+          gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
+        ),
+        createScriptingBundle(defines).pipe(
+          gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
+        ),
+        createSandboxExternal(defines).pipe(
+          gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
+        ),
+        createWorkerBundle(defines).pipe(
+          gulp.dest(MOZCENTRAL_CONTENT_DIR + "build")
+        ),
+        createWebBundle(defines, { defaultPreferencesDir: "mozcentral/" }).pipe(
+          gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")
+        ),
+        gulp
+          .src(MOZCENTRAL_COMMON_WEB_FILES, { base: "web/" })
+          .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")),
+        gulp
+          .src(["external/bcmaps/*.bcmap", "external/bcmaps/LICENSE"], {
+            base: "external/bcmaps",
+          })
+          .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web/cmaps")),
 
-      preprocessHTML("web/viewer.html", defines).pipe(
-        gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")
-      ),
-      preprocessCSS("web/viewer.css", "mozcentral", defines, true)
-        .pipe(
-          postcss([
-            autoprefixer({ overrideBrowserslist: ["last 1 firefox versions"] }),
-          ])
-        )
-        .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")),
+        preprocessHTML("web/viewer.html", defines).pipe(
+          gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")
+        ),
+        preprocessCSS("web/viewer.css", "mozcentral", defines, true)
+          .pipe(
+            postcss([
+              autoprefixer({
+                overrideBrowserslist: ["last 1 firefox versions"],
+              }),
+            ])
+          )
+          .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
+          .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"));
@@ -1257,14 +1260,16 @@ gulp.task(
   "chromium-pre",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     "locale",
     function scripting() {
       const defines = builder.merge(DEFINES, {
         CHROME: true,
         SKIP_BABEL: false,
       });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "chromium/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       console.log();
@@ -1292,7 +1297,7 @@ gulp.task(
         createSandboxBundle(defines).pipe(
           gulp.dest(CHROME_BUILD_CONTENT_DIR + "build")
         ),
-        createWebBundle(defines).pipe(
+        createWebBundle(defines, { defaultPreferencesDir: "chromium/" }).pipe(
           gulp.dest(CHROME_BUILD_CONTENT_DIR + "web")
         ),
         gulp
@@ -1374,7 +1379,7 @@ gulp.task("types", function (done) {
   exec(`"node_modules/.bin/tsc" --${args} src/pdf.js`, done);
 });
 
-function buildLib(defines, dir) {
+function buildLibHelper(bundleDefines, inputStream, outputDir) {
   // When we create a bundle, webpack is run on the source and it will replace
   // require with __webpack_require__. When we want to use the real require,
   // __non_webpack_require__ has to be used.
@@ -1418,12 +1423,6 @@ function buildLib(defines, dir) {
     return licenseHeaderLibre + content;
   }
   const babel = require("@babel/core");
-  const versionInfo = getVersionJSON();
-  const bundleDefines = builder.merge(defines, {
-    BUNDLE_VERSION: versionInfo.version,
-    BUNDLE_BUILD: versionInfo.commit,
-    TESTING: process.env.TESTING === "true",
-  });
   const ctx = {
     rootPath: __dirname,
     saveComments: false,
@@ -1436,7 +1435,24 @@ function buildLib(defines, dir) {
     .readFileSync("./src/license_header_libre.js")
     .toString();
   const preprocessor2 = require("./external/builder/preprocessor2.js");
-  return merge([
+  return inputStream
+    .pipe(transform("utf8", preprocess))
+    .pipe(gulp.dest(outputDir));
+}
+
+function buildLib(defines, dir) {
+  const versionInfo = getVersionJSON();
+
+  const bundleDefines = builder.merge(defines, {
+    BUNDLE_VERSION: versionInfo.version,
+    BUNDLE_BUILD: versionInfo.commit,
+    TESTING: defines.TESTING || process.env.TESTING === "true",
+    DEFAULT_PREFERENCES: getDefaultPreferences(
+      defines.SKIP_BABEL ? "lib/" : "lib-legacy/"
+    ),
+  });
+
+  const inputStream = merge([
     gulp.src(
       [
         "src/{core,display,shared}/**/*.js",
@@ -1450,19 +1466,21 @@ function buildLib(defines, dir) {
       { base: "." }
     ),
     gulp.src("test/unit/*.js", { base: "." }),
-  ])
-    .pipe(transform("utf8", preprocess))
-    .pipe(gulp.dest(dir));
+  ]);
+
+  return buildLibHelper(bundleDefines, inputStream, dir);
 }
 
 gulp.task(
   "lib",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     function scripting() {
       const defines = builder.merge(DEFINES, { GENERIC: true, LIB: true });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "lib/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       const defines = builder.merge(DEFINES, { GENERIC: true, LIB: true });
@@ -1479,14 +1497,16 @@ gulp.task(
   "lib-legacy",
   gulp.series(
     "buildnumber",
-    "default_preferences",
     function scripting() {
       const defines = builder.merge(DEFINES, {
         GENERIC: true,
         LIB: true,
         SKIP_BABEL: false,
       });
-      return createTemporaryScriptingBundle(defines);
+      return merge([
+        buildDefaultPreferences(defines, "lib-legacy/"),
+        createTemporaryScriptingBundle(defines),
+      ]);
     },
     function () {
       const defines = builder.merge(DEFINES, {
@@ -1747,21 +1767,30 @@ gulp.task("lint", function (done) {
 
 gulp.task(
   "lint-chromium",
-  gulp.series("default_preferences", function (done) {
-    console.log();
-    console.log("### Checking supplemental Chromium files");
+  gulp.series(
+    function scripting() {
+      const defines = builder.merge(DEFINES, {
+        CHROME: true,
+        SKIP_BABEL: false,
+      });
+      return buildDefaultPreferences(defines, "lint-chromium/");
+    },
+    function (done) {
+      console.log();
+      console.log("### Checking supplemental Chromium files");
 
-    if (
-      !checkChromePreferencesFile(
-        "extensions/chromium/preferences_schema.json",
-        "build/default_preferences.json"
-      )
-    ) {
-      done(new Error("chromium/preferences_schema is not in sync."));
-      return;
+      if (
+        !checkChromePreferencesFile(
+          "extensions/chromium/preferences_schema.json",
+          getDefaultPreferences("lint-chromium/")
+        )
+      ) {
+        done(new Error("chromium/preferences_schema is not in sync."));
+        return;
+      }
+      done();
     }
-    done();
-  })
+  )
 );
 
 gulp.task(
@@ -2270,7 +2299,8 @@ gulp.task("externaltest", function (done) {
 gulp.task(
   "npm-test",
   gulp.series(
-    gulp.parallel("lint", "externaltest", "unittestcli", "typestest"),
-    "lint-chromium"
+    gulp.parallel("lint", "externaltest", "unittestcli"),
+    "lint-chromium",
+    "typestest"
   )
 );
diff --git a/web/app_options.js b/web/app_options.js
index 3382e241e..df3d1dc46 100644
--- a/web/app_options.js
+++ b/web/app_options.js
@@ -250,7 +250,7 @@ const defaultOptions = {
 };
 if (
   typeof PDFJSDev === "undefined" ||
-  PDFJSDev.test("!PRODUCTION || (GENERIC && !LIB)")
+  PDFJSDev.test("!PRODUCTION || GENERIC")
 ) {
   defaultOptions.disablePreferences = {
     /** @type {boolean} */
@@ -271,6 +271,11 @@ if (
     kind: OptionKind.VIEWER,
   };
 } else if (PDFJSDev.test("CHROME")) {
+  defaultOptions.disableTelemetry = {
+    /** @type {boolean} */
+    value: false,
+    kind: OptionKind.VIEWER + OptionKind.PREFERENCE,
+  };
   defaultOptions.sandboxBundleSrc = {
     /** @type {string} */
     value: "../build/pdf.sandbox.js",
@@ -292,7 +297,7 @@ class AppOptions {
     }
     const defaultOption = defaultOptions[name];
     if (defaultOption !== undefined) {
-      return defaultOption.compatibility || defaultOption.value;
+      return defaultOption.compatibility ?? defaultOption.value;
     }
     return undefined;
   }
@@ -324,7 +329,7 @@ class AppOptions {
       options[name] =
         userOption !== undefined
           ? userOption
-          : defaultOption.compatibility || defaultOption.value;
+          : defaultOption.compatibility ?? defaultOption.value;
     }
     return options;
   }
diff --git a/web/preferences.js b/web/preferences.js
index 7edbd628f..125007031 100644
--- a/web/preferences.js
+++ b/web/preferences.js
@@ -29,7 +29,7 @@ class BasePreferences {
       value: Object.freeze(
         typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")
           ? AppOptions.getAll(OptionKind.PREFERENCE)
-          : PDFJSDev.json("$ROOT/build/default_preferences.json")
+          : PDFJSDev.eval("DEFAULT_PREFERENCES")
       ),
       writable: false,
       enumerable: true,