Bug 1234385: Add downloadable blocklist support for between comparison types, by recognizing driverVersionMax when parsing. r=benwa

This commit is contained in:
Milan Sreckovic 2015-12-24 12:53:40 -05:00
parent b26e076738
commit 1289d61b67
3 changed files with 173 additions and 2 deletions

View File

@ -150,5 +150,140 @@
<feature> DIRECT2D </feature>
<featureStatus> BLOCKED_DEVICE </featureStatus>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> DIRECT3D_11_LAYERS </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1112 </driverVersion>
<driverVersionMax> 8.52.323.1000 </driverVersionMax>
<driverVersionComparator> BETWEEN_EXCLUSIVE </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> OPENGL_LAYERS </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.50.322.1000 </driverVersion>
<driverVersionMax> 8.52.322.1112 </driverVersionMax>
<driverVersionComparator> BETWEEN_EXCLUSIVE </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> DIRECT3D_11_ANGLE </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1000 </driverVersion>
<driverVersionMax> 9.52.322.1000 </driverVersionMax>
<driverVersionComparator> BETWEEN_EXCLUSIVE </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> HARDWARE_VIDEO_DECODING </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 7.82.322.1000 </driverVersion>
<driverVersionMax> 9.25.322.1001 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBRTC_HW_ACCELERATION </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1112 </driverVersion>
<driverVersionMax> 9.52.322.1300 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBRTC_HW_ACCELERATION_DECODE </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1000 </driverVersion>
<driverVersionMax> 8.52.322.1112 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBRTC_HW_ACCELERATION_ENCODE </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1112 </driverVersion>
<driverVersionMax> 8.52.322.1200 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE_START </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL_MSAA </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1000 </driverVersion>
<driverVersionMax> 8.52.322.1200 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE_START </driverVersionComparator>
</gfxBlacklistEntry>
<gfxBlacklistEntry>
<os>All</os>
<vendor>0xdcdc</vendor>
<devices>
<device>0x2783</device>
<device>0x1234</device>
<device>0x2782</device>
</devices>
<feature> WEBGL_ANGLE </feature>
<featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
<driverVersion> 8.52.322.1000 </driverVersion>
<driverVersionMax> 8.52.322.1112 </driverVersionMax>
<driverVersionComparator> BETWEEN_INCLUSIVE_START </driverVersionComparator>
</gfxBlacklistEntry>
</gfxItems>
</blocklist>

View File

@ -56,7 +56,7 @@ function run_test() {
do_test_finished();
return;
case "Darwin":
// We don't support driver versions on Darwin.
// We don't support driver versions on OS X.
do_test_finished();
return;
case "Android":
@ -66,7 +66,7 @@ function run_test() {
break;
}
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8");
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "15.0", "8");
startupManager();
do_test_pending();
@ -80,6 +80,33 @@ function run_test() {
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT3D_9_LAYERS);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_STATUS_OK);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT3D_11_LAYERS);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_STATUS_OK);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_OPENGL_LAYERS);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_STATUS_OK);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_DIRECT3D_11_ANGLE);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_HARDWARE_VIDEO_DECODING);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBRTC_HW_ACCELERATION);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBRTC_HW_ACCELERATION_DECODE);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBRTC_HW_ACCELERATION_ENCODE);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBGL_MSAA);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_BLOCKED_DRIVER_VERSION);
status = gfxInfo.getFeatureStatus(Ci.nsIGfxInfo.FEATURE_WEBGL_ANGLE);
do_check_eq(status, Ci.nsIGfxInfo.FEATURE_STATUS_OK);
gTestserver.stop(do_test_finished);
}

View File

@ -566,6 +566,15 @@ BlacklistEntryToDriverInfo(nsIDOMNode* aBlacklistEntry,
aDriverInfo.mDriverVersion = version;
}
// <driverVersionMax> 8.52.322.2202 </driverVersionMax>
if (BlacklistNodeGetChildByName(element, NS_LITERAL_STRING("driverVersionMax"),
getter_AddRefs(dataNode))) {
BlacklistNodeToTextValue(dataNode, dataValue);
uint64_t version;
if (ParseDriverVersion(dataValue, &version))
aDriverInfo.mDriverVersionMax = version;
}
// <driverVersionComparator> LESS_THAN_OR_EQUAL </driverVersionComparator>
if (BlacklistNodeGetChildByName(element, NS_LITERAL_STRING("driverVersionComparator"),
getter_AddRefs(dataNode))) {