// Make sure that acceleration is enabled/disabled the way we expect it to be
// based on platform.
SimpleTest.waitForExplicitFinish();
addEventListener("pageshow", runTest, false);
function runTest() { var Cc = SpecialPowers.Cc; var Ci = SpecialPowers.Ci;
var sysInfo = SpecialPowers.Services.sysinfo; var xr = SpecialPowers.Services.appinfo;
var windows = SpecialPowers.Services.ww.getWindowEnumerator(); var windowutils; var acceleratedWindows = 0; var webrenderWindows = 0; var layerManagerLog = [];
while (windows.hasMoreElements()) {
try {
windowutils = windows.getNext().windowUtils;
} catch (e) {
todo(false, "Bug X - don't expose BFCached pages through window enumerator");
}
try { var layerManager = windowutils.layerManagerType;
if (layerManager != "Basic" && layerManager != "WebRender (Software)") {
acceleratedWindows++;
}
if (layerManager.startsWith("WebRender")) {
webrenderWindows++;
}
layerManagerLog.push(layerManager);
} catch (e) {
// The window may not have a layer manager, in which case we get an error.
// Don't count it as an accelerated window.
dump("Didn't get a layer manager! " + e);
}
}
var osName = sysInfo.getProperty("name");
switch (osName) {
case "Darwin": // Mac OS X.
// We only enable OpenGL layers on machines that don't support QuickDraw
// plugins. x86-64 architecture is a good proxy for this plugin support.
if (sysInfo.getProperty("arch") != "x86-64") {
is(acceleratedWindows, 0, "Acceleration not supported on x86 OS X");
} else {
// Workaround for SeaMonkey tinderboxes which don't support acceleration.
if (navigator.userAgent.match(/ SeaMonkey\//)) {
if (acceleratedWindows == 0) {
todo(false, "Acceleration not supported on x86-64 OS X" + " (This is expected on SeaMonkey (tinderboxes).)");
break;
}
}
isnot(acceleratedWindows, 0, "Acceleration enabled on x86-64 OS X");
}
break;
case "Windows_NT": // Windows. var version = parseFloat(sysInfo.getProperty("version"));
if (version == 5.0) {
is(acceleratedWindows, 0, "Acceleration not supported on Windows 2000");
} else {
// Workaround for SeaMonkey tinderboxes which don't support acceleration.
if (navigator.userAgent.match(/ SeaMonkey\//)) {
if (acceleratedWindows == 0) {
todo(false, "Acceleration not supported on Windows XP or newer" + " (This is expected on SeaMonkey (tinderboxes).)");
break;
}
}
isnot(acceleratedWindows, 0, "Acceleration enabled on Windows XP or newer");
}
var gfxInfo = Cc["@mozilla.org/gfx/info;1"].getService(Ci.nsIGfxInfo);
if (version < 6.2) {
ok(!gfxInfo.D2DEnabled, "Direct2D not supported on Windows 2008 or older");
if (version < 6.1) {
ok(!gfxInfo.DWriteEnabled, "DirectWrite not supported on Windows 2008 or older");
} else {
ok(gfxInfo.DWriteEnabled, "DirectWrite enabled on Windows 7 or newer");
}
} else {
ok(gfxInfo.D2DEnabled, "Direct2D enabled on Windows 8 or newer");
ok(gfxInfo.DWriteEnabled, "DirectWrite enabled on Windows 7 or newer");
}
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.