diff --git a/external/builder/builder.js b/external/builder/builder.js index e5643cb1f..f0b3d53b7 100644 --- a/external/builder/builder.js +++ b/external/builder/builder.js @@ -270,12 +270,6 @@ function preprocessCSS(mode, source, destination) { content = expandImports(content, source); if (mode === "mozcentral") { content = removePrefixed(content, hasPrefixedMozcentral); - // In the mozcentral version the color theme should be based on the Firefox - // theme instead of the system theme. - content = content.replace( - "prefers-color-scheme", - "-moz-toolbar-prefers-color-scheme" - ); } fs.writeFileSync(destination, content); } diff --git a/web/app.js b/web/app.js index 0f7fb7d6a..bde59a9d2 100644 --- a/web/app.js +++ b/web/app.js @@ -431,23 +431,21 @@ const PDFViewerApplication = { try { const styleSheet = document.styleSheets[0]; const cssRules = styleSheet?.cssRules || []; - const mediaMatcher = - typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL") - ? "-moz-toolbar-prefers-color-scheme" - : "prefers-color-scheme"; - const mediaRule = `(${mediaMatcher}: dark)`; - const mediaRegex = new RegExp( - `^@media \\(${mediaMatcher}: dark\\) {\\n\\s*([\\w\\s-.,:;/\\\\{}()]+)\\n}$` - ); for (let i = 0, ii = cssRules.length; i < ii; i++) { const rule = cssRules[i]; - if (rule instanceof CSSMediaRule && rule.media?.[0] === mediaRule) { + if ( + rule instanceof CSSMediaRule && + rule.media?.[0] === "(prefers-color-scheme: dark)" + ) { if (cssTheme === ViewerCssTheme.LIGHT) { styleSheet.deleteRule(i); return; } // cssTheme === ViewerCssTheme.DARK - const darkRules = mediaRegex.exec(rule.cssText); + const darkRules = + /^@media \(prefers-color-scheme: dark\) {\n\s*([\w\s-.,:;/\\{}()]+)\n}$/.exec( + rule.cssText + ); if (darkRules?.[1]) { styleSheet.deleteRule(i); styleSheet.insertRule(darkRules[1], i);