Generated file

Copy as Markdown

Other Tools

/* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. */
if (!navigator.userAgentData) {
const { appVersion, userAgent } = navigator;
let actualPlatform = "linux";
if (appVersion.includes("Android")) {
actualPlatform = "android";
} else if (appVersion.includes("Macintosh")) {
actualPlatform = "mac";
} else if (appVersion.includes("Windows")) {
actualPlatform = "windows";
}
const mobile = actualPlatform == "android";
let version;
if (userAgent.includes("Chrome")) {
version = userAgent.match(/Chrome\/([0-9]+)/)[1];
} else {
version = (userAgent.match(/Firefox\/([0-9.]+)/) || ["", "58.0"])[1];
}
const wantedPlatform = window.__webcompat_spoof_platform ?? actualPlatform;
// Very roughly matches Chromium's GetPlatformForUAMetadata()
let platform = "Linux";
let platformVersion = "";
if (wantedPlatform == "android") {
platform = "Android";
platformVersion = "16.0.0";
} else if (wantedPlatform.startsWith("windows")) {
platform = "Windows";
platformVersion = "19.0.0";
} else if (wantedPlatform == "mac") {
platform = "macOS";
platformVersion = "26.0.0";
}
// These match Chrome's output as of version 146.
const brands = [
{
brand: "Not-A.Brand",
version: "24",
},
{
brand: "Chromium",
version,
},
{
brand: "Google Chrome",
version,
},
];
const userAgentData = {
brands,
mobile,
platform,
getHighEntropyValues() {
return Promise.resolve({
brands,
mobile,
platform,
platformVersion,
});
},
};
Object.defineProperty(Object.getPrototypeOf(navigator), "userAgentData", {
get: () => userAgentData,
set: () => {},
});
window.__webcompat = (window.__webcompat ?? new Set()).add(
"navigator.userAgentData"
);
}
if (!window.chrome) {
const generateTimeStamp = function (base, factor = 10) {
if (base) {
// increase another timestamp by a little
return (base + Math.random() * factor).toString().substr(0, 14);
}
const r = Math.random().toString();
const d10 = `1${r.substr(5, 9)}`;
const d3 = r.substr(2, 3);
return parseFloat(`${d10}.${d3}`);
};
const startLoadTime = generateTimeStamp();
const commitLoadTime = generateTimeStamp(startLoadTime);
const firstPaintTime = generateTimeStamp(commitLoadTime);
const finishDocumentLoadTime = generateTimeStamp(firstPaintTime);
const finishLoadTime = generateTimeStamp(finishDocumentLoadTime);
const csi = {
onloadT: parseInt(finishDocumentLoadTime * 100),
pageT: generateTimeStamp().toString().substr(-11),
startE: parseInt(parseFloat(startLoadTime * 100)),
tran: 10 + parseInt(4 + Math.random() * 4),
};
const loadTimes = {
commitLoadTime,
connectionInfo: "h3",
finishDocumentLoadTime,
finishLoadTime,
firstPaintAfterLoadTime: 0,
firstPaintTime,
navigationType: "Other",
npnNegotiatedProtocol: "h3",
requestTime: startLoadTime,
startLoadTime,
wasAlternateProtocolAvailable: false,
wasFetchedViaSpdy: true,
wasNpnNegotiated: true,
};
window.chrome = {
app: {
InstallState: {
DISABLED: "disabled",
INSTALLED: "installed",
NOT_INSTALLED: "not_installed",
},
RunningState: {
CANNOT_RUN: "cannot_run",
READY_TO_RUN: "ready_to_run",
RUNNING: "running",
},
getDetails() {
return null;
},
getIsInstalled() {
return false;
},
installState() {
return undefined;
},
isInstalled: false,
runningState() {
return window.chrome.app.InstallState.NOT_INSTALLED;
},
},
csi() {
return csi;
},
loadTimes() {
return loadTimes;
},
};
window.__webcompat = (window.__webcompat ?? new Set()).add("window.chrome");
}
if (navigator.vendor != "Google Inc.") {
const nav = Object.getPrototypeOf(navigator);
const vendor = Object.getOwnPropertyDescriptor(nav, "vendor");
vendor.get = () => "Google Inc.";
Object.defineProperty(nav, "vendor", vendor);
window.__webcompat = (window.__webcompat ?? new Set()).add(
"navigator.vendor"
);
}
if (typeof window.InstallTrigger != "undefined") {
delete window.InstallTrigger;
}
if (typeof window.MozConsentBanner != "undefined") {
delete window.MozConsentBanner;
}
if (typeof window.mozInnerScreenX != "undefined") {
delete window.mozInnerScreenX;
delete window.mozInnerScreenY;
}
if (CSS?.supports("-moz-appearance", "none")) {
const supports = Object.getOwnPropertyDescriptor(CSS, "supports");
const oldSupports = supports.value;
supports.value = function (query) {
if (query.includes("moz-")) {
return false;
}
return oldSupports.call(this, query);
};
Object.defineProperty(CSS, "supports", supports);
}
delete window.__webcompat_spoof_platform;
{
const bugInfo = [["fbo.fubon.com", ["2006036"]]];
const msgs = window.__webcompat;
delete window.__webcompat;
if (msgs?.size) {
const bugs =
bugInfo.find(([domain]) => location.href.includes(domain))?.[1] ??
bugInfo[0][1];
const bugNumbers = bugs.map(b => "https://bugzil.la/" + b).join(" and ");
console.info(
`${[...msgs].join(", ")} ${msgs.size > 1 ? "are" : "is"} being altered for compatibility reasons. See ${bugNumbers} for details.`
);
}
}