diff --git a/extensions/chromium/preferences_schema.json b/extensions/chromium/preferences_schema.json index 6f7f2004f..86d9388f3 100644 --- a/extensions/chromium/preferences_schema.json +++ b/extensions/chromium/preferences_schema.json @@ -209,12 +209,12 @@ ], "default": -1 }, - "pageBackgroundColor": { + "pageColorsBackground": { "description": "The color is a string as defined in CSS. Its goal is to help improve readability in high contrast mode", "type": "string", "default": "Canvas" }, - "pageForegroundColor": { + "pageColorsForeground": { "description": "The color is a string as defined in CSS. Its goal is to help improve readability in high contrast mode", "type": "string", "default": "CanvasText" diff --git a/src/display/canvas.js b/src/display/canvas.js index b34aba22e..469cc588b 100644 --- a/src/display/canvas.js +++ b/src/display/canvas.js @@ -1302,7 +1302,19 @@ class CanvasGraphics { typeof defaultBg === "string" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg); } - if ((fg === "#000000" && bg === "#ffffff") || !isValidDefaultBg) { + if ( + (fg === "#000000" && bg === "#ffffff") || + fg === bg || + !isValidDefaultBg + ) { + // Ignore the `pageColors`-option when: + // - The computed background/foreground colors have their default + // values, i.e. white/black. + // - The computed background/foreground colors are identical, + // since that'd render the `canvas` mostly blank. + // - The `background`-option has a value that's incompatible with + // the `pageColors`-values. + // this.foregroundColor = this.backgroundColor = null; } else { // https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_Colors_and_Luminance diff --git a/web/app.js b/web/app.js index 532ddb1a0..7c22e9c20 100644 --- a/web/app.js +++ b/web/app.js @@ -526,8 +526,8 @@ const PDFViewerApplication = { maxCanvasPixels: AppOptions.get("maxCanvasPixels"), enablePermissions: AppOptions.get("enablePermissions"), pageColors: { - background: AppOptions.get("pageBackgroundColor"), - foreground: AppOptions.get("pageForegroundColor"), + background: AppOptions.get("pageColorsBackground"), + foreground: AppOptions.get("pageColorsForeground"), }, }); pdfRenderingQueue.setViewer(this.pdfViewer); diff --git a/web/app_options.js b/web/app_options.js index e73e0c429..205f826cd 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -129,12 +129,12 @@ const defaultOptions = { compatibility: compatibilityParams.maxCanvasPixels, kind: OptionKind.VIEWER, }, - pageBackgroundColor: { + pageColorsBackground: { /** @type {string} */ value: "Canvas", kind: OptionKind.VIEWER + OptionKind.PREFERENCE, }, - pageForegroundColor: { + pageColorsForeground: { /** @type {string} */ value: "CanvasText", kind: OptionKind.VIEWER + OptionKind.PREFERENCE,