function info(str) {
window.console.log("Info: " + str);
}
// --------------------------------------------------------------------------- // OS and driver identification // Stolen from dom/canvas/test/webgl/test_webgl_conformance_test_suite.html function detectDriverInfo() { var canvas = document.createElement("canvas");
canvas.width = 1;
canvas.height = 1;
var type = ""; var gl = null; try {
gl = canvas.getContext("experimental-webgl");
} catch (e) {}
if (!gl) {
info("Failed to create WebGL context for querying driver info."); throw"WebGL failed";
}
var ext = gl.getExtension("WEBGL_debug_renderer_info"); if (!ext) { throw"WEBGL_debug_renderer_info not available";
}
var webglRenderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL); return webglRenderer;
}
function detectOSInfo() { var os = null; var version = null; if (navigator.platform.indexOf("Win") == 0) {
os = OS.WINDOWS;
var versionMatch = /Windows NT (\d+.\d+)/.exec(navigator.userAgent);
version = versionMatch ? parseFloat(versionMatch[1]) : null; // Version 6.0 is Vista, 6.1 is 7.
} elseif (navigator.platform.indexOf("Mac") == 0) {
os = OS.MAC;
var versionMatch = /Mac OS X (\d+.\d+)/.exec(navigator.userAgent);
version = versionMatch ? parseFloat(versionMatch[1]) : null;
} elseif (navigator.appVersion.includes("Android")) {
os = OS.ANDROID;
try { // From layout/tools/reftest/reftest.js:
version = SpecialPowers.Services.sysinfo.getProperty("version");
} catch (e) {
info("No SpecialPowers: can't query android version");
}
} elseif (navigator.platform.indexOf("Linux") == 0) { // Must be checked after android, as android also has a 'Linux' platform string.
os = OS.LINUX;
}
return [os, version];
}
var OS = {
WINDOWS: "windows",
MAC: "mac",
LINUX: "linux",
ANDROID: "android",
};
var DRIVER = {
INTEL: "intel",
MESA: "mesa",
NVIDIA: "nvidia",
ANDROID_X86_EMULATOR: "android x86 emulator",
ANGLE: "angle",
};
var kOS = null; var kOSVersion = null; var kRawDriver = null; var kDriver = null;
try {
[kOS, kOSVersion] = detectOSInfo();
} catch (e) { // Generally just fails when we don't have SpecialPowers.
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.