mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-21 09:49:14 +00:00
Parse reftest conditions based on content gfx settings instead of chrome. (bug 1313260, r=mattwoodrow)
--HG-- extra : rebase_source : ff41b3a780ba0fee569e46ff9798c436a8a87c98
This commit is contained in:
parent
cbc0a94248
commit
f81c22020e
@ -15,6 +15,7 @@ const DEBUG_CONTRACTID = "@mozilla.org/xpcom/debug;1";
|
||||
const PRINTSETTINGS_CONTRACTID = "@mozilla.org/gfx/printsettings-service;1";
|
||||
const ENVIRONMENT_CONTRACTID = "@mozilla.org/process/environment;1";
|
||||
const NS_OBSERVER_SERVICE_CONTRACTID = "@mozilla.org/observer-service;1";
|
||||
const NS_GFXINFO_CONTRACTID = "@mozilla.org/gfx/info;1";
|
||||
|
||||
// "<!--CLEAR-->"
|
||||
const BLANK_URL_FOR_CLEARING = "data:text/html;charset=UTF-8,%3C%21%2D%2DCLEAR%2D%2D%3E";
|
||||
@ -1028,7 +1029,17 @@ function SendAssertionCount(numAssertions)
|
||||
|
||||
function SendContentReady()
|
||||
{
|
||||
return sendSyncMessage("reftest:ContentReady")[0];
|
||||
let gfxInfo = (NS_GFXINFO_CONTRACTID in CC) && CC[NS_GFXINFO_CONTRACTID].getService(CI.nsIGfxInfo);
|
||||
let info = gfxInfo.getInfo();
|
||||
try {
|
||||
info.D2DEnabled = gfxInfo.D2DEnabled;
|
||||
info.DWriteEnabled = gfxInfo.DWriteEnabled;
|
||||
} catch (e) {
|
||||
info.D2DEnabled = false;
|
||||
info.DWriteEnabled = false;
|
||||
}
|
||||
|
||||
return sendSyncMessage("reftest:ContentReady", { 'gfx': info })[0];
|
||||
}
|
||||
|
||||
function SendException(what)
|
||||
|
@ -50,6 +50,7 @@ var gTotalChunks = 0;
|
||||
var gThisChunk = 0;
|
||||
var gContainingWindow = null;
|
||||
var gURLFilterRegex = {};
|
||||
var gContentGfxInfo = null;
|
||||
const FOCUS_FILTER_ALL_TESTS = "all";
|
||||
const FOCUS_FILTER_NEEDS_FOCUS_TESTS = "needs-focus";
|
||||
const FOCUS_FILTER_NON_NEEDS_FOCUS_TESTS = "non-needs-focus";
|
||||
@ -640,22 +641,34 @@ function BuildConditionSandbox(aURL) {
|
||||
}
|
||||
|
||||
var gfxInfo = (NS_GFXINFO_CONTRACTID in CC) && CC[NS_GFXINFO_CONTRACTID].getService(CI.nsIGfxInfo);
|
||||
let readGfxInfo = function (obj, key) {
|
||||
if (gContentGfxInfo && (key in gContentGfxInfo)) {
|
||||
return gContentGfxInfo[key];
|
||||
}
|
||||
return obj[key];
|
||||
}
|
||||
|
||||
try {
|
||||
sandbox.d2d = gfxInfo.D2DEnabled;
|
||||
sandbox.dwrite = gfxInfo.DWriteEnabled;
|
||||
sandbox.d2d = readGfxInfo(gfxInfo, "D2DEnabled");
|
||||
sandbox.dwrite = readGfxInfo(gfxInfo, "DWriteEnabled");
|
||||
} catch (e) {
|
||||
sandbox.d2d = false;
|
||||
sandbox.dwrite = false;
|
||||
}
|
||||
|
||||
var info = gfxInfo.getInfo();
|
||||
sandbox.azureCairo = info.AzureCanvasBackend == "cairo";
|
||||
sandbox.azureQuartz = info.AzureCanvasBackend == "quartz";
|
||||
sandbox.azureSkia = info.AzureCanvasBackend == "skia";
|
||||
sandbox.skiaContent = info.AzureContentBackend == "skia";
|
||||
sandbox.azureSkiaGL = info.AzureCanvasAccelerated; // FIXME: assumes GL right now
|
||||
var canvasBackend = readGfxInfo(info, "AzureCanvasBackend");
|
||||
var contentBackend = readGfxInfo(info, "AzureContentBackend");
|
||||
var canvasAccelerated = readGfxInfo(info, "AzureCanvasAccelerated");
|
||||
|
||||
sandbox.azureCairo = canvasBackend == "cairo";
|
||||
sandbox.azureQuartz = canvasBackend == "quartz";
|
||||
sandbox.azureSkia = canvasBackend == "skia";
|
||||
sandbox.skiaContent = contentBackend == "skia";
|
||||
sandbox.azureSkiaGL = canvasAccelerated; // FIXME: assumes GL right now
|
||||
// true if we are using the same Azure backend for rendering canvas and content
|
||||
sandbox.contentSameGfxBackendAsCanvas = info.AzureContentBackend == info.AzureCanvasBackend
|
||||
|| (info.AzureContentBackend == "none" && info.AzureCanvasBackend == "cairo");
|
||||
sandbox.contentSameGfxBackendAsCanvas = contentBackend == canvasBackend
|
||||
|| (contentBackend == "none" && canvasBackend == "cairo");
|
||||
|
||||
sandbox.layersGPUAccelerated =
|
||||
gWindowUtils.layerManagerType != "Basic";
|
||||
@ -1905,7 +1918,7 @@ function RegisterMessageListenersAndLoadContentScript()
|
||||
);
|
||||
gBrowserMessageManager.addMessageListener(
|
||||
"reftest:ContentReady",
|
||||
function (m) { return RecvContentReady() }
|
||||
function (m) { return RecvContentReady(m.data); }
|
||||
);
|
||||
gBrowserMessageManager.addMessageListener(
|
||||
"reftest:Exception",
|
||||
@ -1964,8 +1977,9 @@ function RecvAssertionCount(count)
|
||||
DoAssertionCheck(count);
|
||||
}
|
||||
|
||||
function RecvContentReady()
|
||||
function RecvContentReady(info)
|
||||
{
|
||||
gContentGfxInfo = info.gfx;
|
||||
InitAndStartRefTests();
|
||||
return { remote: gBrowserIsRemote };
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user