diff --git a/src/display/node_utils.js b/src/display/node_utils.js index 0085825f6..724cca78b 100644 --- a/src/display/node_utils.js +++ b/src/display/node_utils.js @@ -67,6 +67,13 @@ if (isNodeJS) { warn("Cannot polyfill `Path2D`, rendering may be broken."); } } + if (!globalThis.navigator?.language) { + globalThis.navigator = { + language: "en-US", + platform: "", + userAgent: "", + }; + } } } diff --git a/src/shared/util.js b/src/shared/util.js index a0eaf7c01..0ced6e137 100644 --- a/src/shared/util.js +++ b/src/shared/util.js @@ -643,30 +643,16 @@ class FeatureTest { } static get platform() { - if ( - (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) || - (typeof navigator !== "undefined" && - typeof navigator?.platform === "string" && - typeof navigator?.userAgent === "string") - ) { - const { platform, userAgent } = navigator; + const { platform, userAgent } = navigator; - return shadow(this, "platform", { - isAndroid: userAgent.includes("Android"), - isLinux: platform.includes("Linux"), - isMac: platform.includes("Mac"), - isWindows: platform.includes("Win"), - isFirefox: - (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) || - userAgent.includes("Firefox"), - }); - } return shadow(this, "platform", { - isAndroid: false, - isLinux: false, - isMac: false, - isWindows: false, - isFirefox: false, + isAndroid: userAgent.includes("Android"), + isLinux: platform.includes("Linux"), + isMac: platform.includes("Mac"), + isWindows: platform.includes("Win"), + isFirefox: + (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) || + userAgent.includes("Firefox"), }); } diff --git a/web/app_options.js b/web/app_options.js index df4b6a57b..d9b8d3fed 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -19,13 +19,16 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { if ( typeof PDFJSDev !== "undefined" && PDFJSDev.test("LIB") && - typeof navigator === "undefined" + !globalThis.navigator?.language ) { - globalThis.navigator = Object.create(null); + globalThis.navigator = { + language: "en-US", + maxTouchPoints: 1, + platform: "", + userAgent: "", + }; } - const userAgent = navigator.userAgent || ""; - const platform = navigator.platform || ""; - const maxTouchPoints = navigator.maxTouchPoints || 1; + const { maxTouchPoints, platform, userAgent } = navigator; const isAndroid = /Android/.test(userAgent); const isIOS =