/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; /** * Bug 1898952 - Spoof navigator.userAgentData for digits.t-mobile.com * Webcompat issue #119767 - https://webcompat.com/issues/119767 * * The site blocks Firefox and Safari, reading info from userAgentData. */ if (!navigator.userAgentData) { console.info( "navigator.userAgentData has been overridden for compatibility reasons. See https://bugzilla.mozilla.org/show_bug.cgi?id=1898952 for details." ); const ua = navigator.userAgent; const mobile = ua.includes("Mobile") || ua.includes("Tablet"); // Very roughly matches Chromium's GetPlatformForUAMetadata() let platform = "Linux"; if (mobile) { platform = "Android"; } else if (navigator.platform.startsWith("Win")) { platform = "Windows"; } else if (navigator.platform.startsWith("Mac")) { platform = "macOS"; } const version = (ua.match(/Firefox\/([0-9.]+)/) || ["", "58.0"])[1]; // These match Chrome's output as of version 126. const brands = [ { brand: "Not/A)Brand", version: "8", }, { brand: "Chromium", version, }, { brand: "Google Chrome", version, }, ]; navigator.userAgentData = { brands, mobile, platform, }; }