2020-07-13 11:29:16 +02:00
|
|
|
import * as loader from "../loader/loader";
|
|
|
|
import {Stage} from "../loader/loader";
|
2020-08-13 13:05:37 +02:00
|
|
|
import {
|
|
|
|
BrowserInfo,
|
|
|
|
detect as detectBrowser,
|
|
|
|
} from "detect-browser";
|
|
|
|
|
|
|
|
declare global {
|
|
|
|
interface Window {
|
|
|
|
detectedBrowser: BrowserInfo
|
|
|
|
}
|
|
|
|
}
|
2020-07-13 11:29:16 +02:00
|
|
|
|
|
|
|
if(__build.target === "web") {
|
|
|
|
loader.register_task(Stage.SETUP, {
|
|
|
|
name: "outdated browser checker",
|
|
|
|
function: async () => {
|
|
|
|
const browser = detectBrowser();
|
|
|
|
navigator.browserSpecs = browser;
|
|
|
|
|
|
|
|
if(!browser)
|
|
|
|
return;
|
|
|
|
|
|
|
|
console.log("Resolved browser manufacturer to \"%s\" version \"%s\" on %s", browser.name, browser.version, browser.os);
|
2020-08-13 13:05:37 +02:00
|
|
|
if(browser.type !== "browser") {
|
2020-07-13 11:29:16 +02:00
|
|
|
loader.critical_error("Your device isn't supported.", "User agent type " + browser.type + " isn't supported.");
|
|
|
|
throw "unsupported user type";
|
|
|
|
}
|
|
|
|
|
2020-08-13 13:05:37 +02:00
|
|
|
window.detectedBrowser = browser;
|
|
|
|
|
2020-07-13 11:29:16 +02:00
|
|
|
switch (browser?.name) {
|
|
|
|
case "aol":
|
|
|
|
case "crios":
|
|
|
|
case "ie":
|
|
|
|
loader.critical_error("Browser not supported", "We're sorry, but your browser isn't supported.");
|
|
|
|
throw "unsupported browser";
|
|
|
|
|
|
|
|
}
|
|
|
|
},
|
|
|
|
priority: 50
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2020-07-20 19:08:13 +02:00
|
|
|
/* directly disable all context menus */
|
2020-07-13 11:29:16 +02:00
|
|
|
if(!location.search.match(/(.*[?&]|^)disableGlobalContextMenu=1($|&.*)/)) {
|
|
|
|
document.addEventListener("contextmenu", event => event.preventDefault());
|
|
|
|
}
|