From 06cf7dd7b045f929a7c51bf8cef94fa0c737ee6a Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 30 Jan 2026 09:31:28 +0100 Subject: [PATCH] Stop pre-building the preference defaults, to simplify the build scripts This is a left-over from before the introduction of `AppOptions`, but is no longer necessary now. --- gulpfile.mjs | 103 ++++++++-------------------------- test/unit/app_options_spec.js | 18 ++++++ web/preferences.js | 16 ++---- 3 files changed, 45 insertions(+), 92 deletions(-) diff --git a/gulpfile.mjs b/gulpfile.mjs index b5c333617..e46b82292 100644 --- a/gulpfile.mjs +++ b/gulpfile.mjs @@ -284,7 +284,6 @@ function createWebpackConfig( disableVersionInfo = false, disableSourceMaps = false, disableLicenseHeader = false, - defaultPreferencesDir = null, } = {} ) { const versionInfo = !disableVersionInfo @@ -295,9 +294,6 @@ function createWebpackConfig( BUNDLE_VERSION: versionInfo.version, BUNDLE_BUILD: versionInfo.commit, TESTING: defines.TESTING ?? process.env.TESTING === "true", - DEFAULT_PREFERENCES: defaultPreferencesDir - ? getDefaultPreferences(defaultPreferencesDir) - : {}, DEFAULT_FTL: defines.GENERIC ? getDefaultFtl() : "", }; const licenseHeaderLibre = fs @@ -546,36 +542,24 @@ function createWorkerBundle(defines) { } function createWebBundle(defines, options) { - const viewerFileConfig = createWebpackConfig( - defines, - { - filename: "viewer.mjs", - library: { - type: "module", - }, + const viewerFileConfig = createWebpackConfig(defines, { + filename: "viewer.mjs", + library: { + type: "module", }, - { - defaultPreferencesDir: options.defaultPreferencesDir, - } - ); + }); return gulp .src("./web/viewer.js", { encoding: false }) .pipe(webpack2Stream(viewerFileConfig)); } function createGVWebBundle(defines, options) { - const viewerFileConfig = createWebpackConfig( - defines, - { - filename: "viewer-geckoview.mjs", - library: { - type: "module", - }, + const viewerFileConfig = createWebpackConfig(defines, { + filename: "viewer-geckoview.mjs", + library: { + type: "module", }, - { - defaultPreferencesDir: options.defaultPreferencesDir, - } - ); + }); return gulp .src("./web/viewer-geckoview.js", { encoding: false }) .pipe(webpack2Stream(viewerFileConfig)); @@ -1063,11 +1047,7 @@ 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, { - defaultPreferencesDir: defines.SKIP_BABEL - ? "generic/" - : "generic-legacy/", - }).pipe(gulp.dest(dir + "web")), + createWebBundle(defines).pipe(gulp.dest(dir + "web")), gulp .src(COMMON_WEB_FILES, { base: "web/", encoding: false }) .pipe(gulp.dest(dir + "web")), @@ -1111,13 +1091,7 @@ gulp.task( "locale", function scriptingGeneric() { const defines = { ...DEFINES, GENERIC: true }; - return ordered([ - buildDefaultPreferences(defines, "generic/"), - createTemporaryScriptingBundle(defines), - ]); - }, - async function prefsGeneric() { - await parseDefaultPreferences("generic/"); + return createTemporaryScriptingBundle(defines); }, function createGeneric() { console.log(); @@ -1138,13 +1112,7 @@ gulp.task( "locale", function scriptingGenericLegacy() { const defines = { ...DEFINES, GENERIC: true, SKIP_BABEL: false }; - return ordered([ - buildDefaultPreferences(defines, "generic-legacy/"), - createTemporaryScriptingBundle(defines), - ]); - }, - async function prefsGenericLegacy() { - await parseDefaultPreferences("generic-legacy/"); + return createTemporaryScriptingBundle(defines); }, function createGenericLegacy() { console.log(); @@ -1258,13 +1226,7 @@ gulp.task( "locale", function scriptingMinified() { const defines = { ...DEFINES, MINIFIED: true, GENERIC: true }; - return ordered([ - buildDefaultPreferences(defines, "minified/"), - createTemporaryScriptingBundle(defines), - ]); - }, - async function prefsMinified() { - await parseDefaultPreferences("minified/"); + return createTemporaryScriptingBundle(defines); }, function createMinified() { console.log(); @@ -1288,13 +1250,7 @@ gulp.task( GENERIC: true, SKIP_BABEL: false, }; - return ordered([ - buildDefaultPreferences(defines, "minified-legacy/"), - createTemporaryScriptingBundle(defines), - ]); - }, - async function prefsMinifiedLegacy() { - await parseDefaultPreferences("minified-legacy/"); + return createTemporaryScriptingBundle(defines); }, function createMinifiedLegacy() { console.log(); @@ -1389,12 +1345,12 @@ gulp.task( createWorkerBundle(defines).pipe( gulp.dest(MOZCENTRAL_CONTENT_DIR + "build") ), - createWebBundle(defines, { defaultPreferencesDir: "mozcentral/" }).pipe( + createWebBundle(defines).pipe( + gulp.dest(MOZCENTRAL_CONTENT_DIR + "web") + ), + createGVWebBundle(gvDefines).pipe( gulp.dest(MOZCENTRAL_CONTENT_DIR + "web") ), - createGVWebBundle(gvDefines, { - defaultPreferencesDir: "mozcentral/", - }).pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")), gulp .src(MOZCENTRAL_WEB_FILES, { base: "web/", encoding: false }) .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + "web")), @@ -1499,7 +1455,7 @@ gulp.task( createSandboxBundle(defines).pipe( gulp.dest(CHROME_BUILD_CONTENT_DIR + "build") ), - createWebBundle(defines, { defaultPreferencesDir: "chromium/" }).pipe( + createWebBundle(defines).pipe( gulp.dest(CHROME_BUILD_CONTENT_DIR + "web") ), gulp @@ -1634,9 +1590,6 @@ function buildLib(defines, dir) { BUNDLE_VERSION: versionInfo.version, BUNDLE_BUILD: versionInfo.commit, TESTING: defines.TESTING ?? process.env.TESTING === "true", - DEFAULT_PREFERENCES: getDefaultPreferences( - defines.SKIP_BABEL ? "lib/" : "lib-legacy/" - ), DEFAULT_FTL: getDefaultFtl(), }; @@ -1667,13 +1620,7 @@ gulp.task( createBuildNumber, function scriptingLib() { const defines = { ...DEFINES, GENERIC: true, LIB: true }; - return ordered([ - buildDefaultPreferences(defines, "lib/"), - createTemporaryScriptingBundle(defines), - ]); - }, - async function prefsLib() { - await parseDefaultPreferences("lib/"); + return createTemporaryScriptingBundle(defines); }, function createLib() { const defines = { ...DEFINES, GENERIC: true, LIB: true }; @@ -1697,13 +1644,7 @@ gulp.task( LIB: true, SKIP_BABEL: false, }; - return ordered([ - buildDefaultPreferences(defines, "lib-legacy/"), - createTemporaryScriptingBundle(defines), - ]); - }, - async function prefsLibLegacy() { - await parseDefaultPreferences("lib-legacy/"); + return createTemporaryScriptingBundle(defines); }, function createLibLegacy() { const defines = { diff --git a/test/unit/app_options_spec.js b/test/unit/app_options_spec.js index 13128404f..8aa945b7b 100644 --- a/test/unit/app_options_spec.js +++ b/test/unit/app_options_spec.js @@ -14,6 +14,7 @@ */ import { AppOptions, OptionKind } from "../../web/app_options.js"; +import { BasePreferences } from "../../web/preferences.js"; import { objectSize } from "../../src/shared/util.js"; describe("AppOptions", function () { @@ -39,3 +40,20 @@ describe("AppOptions", function () { expect(objectSize(options)).toBeLessThanOrEqual(MAX_NUMBER_OF_PREFS); }); }); + +describe("BasePreferences", function () { + it("checks that preference defaults are correct", async function () { + const TestPreferences = class extends BasePreferences { + async _readFromStorage(prefObj) { + return { prefs: Object.create(null) }; + } + }; + + const testPrefs = new TestPreferences(); + await testPrefs.initializedPromise; + + expect(testPrefs.defaults).toEqual( + AppOptions.getAll(OptionKind.PREFERENCE, /* defaultOnly = */ true) + ); + }); +}); diff --git a/web/preferences.js b/web/preferences.js index f290ed9d7..1978be96a 100644 --- a/web/preferences.js +++ b/web/preferences.js @@ -22,9 +22,7 @@ import { AppOptions, OptionKind } from "./app_options.js"; */ class BasePreferences { #defaults = Object.freeze( - typeof PDFJSDev === "undefined" - ? AppOptions.getAll(OptionKind.PREFERENCE, /* defaultOnly = */ true) - : PDFJSDev.eval("DEFAULT_PREFERENCES") + AppOptions.getAll(OptionKind.PREFERENCE, /* defaultOnly = */ true) ); #initializedPromise = null; @@ -37,14 +35,6 @@ class BasePreferences { throw new Error("Cannot initialize BasePreferences."); } - if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("CHROME")) { - Object.defineProperty(this, "defaults", { - get() { - return this.#defaults; - }, - }); - } - this.#initializedPromise = this._readFromStorage(this.#defaults).then( ({ browserPrefs, prefs }) => { if ( @@ -135,6 +125,10 @@ class BasePreferences { return AppOptions.get(name); } + get defaults() { + return this.#defaults; + } + get initializedPromise() { return this.#initializedPromise; }