Closed Bug 628793 Opened 13 years ago Closed 13 years ago

Graphics driver blocklist XML

Categories

(Toolkit :: Blocklist Policy Requests, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: malexis, Assigned: lorchard)

References

Details

Attachments

(2 files)

Tracking bug for adding XML to the blocklist script. Need more info on timing and next steps.

Project overview:
https://wiki.mozilla.org/Firefox/Projects/VideoDriverBlacklisting

From the email thread:

> On 1/25/2011 7:12 AM, l.m.orchard wrote:
> > Since you're done, can I have some XML to start putting in the
> > blocklist script? That way, we could test that out on a staging web
> > server sometime soon. 
>
> I was going to say that it's done when we have successfully tested
> end-to-end. That is, we should have les update the blocklist with
> something we want to block and see that it actually blocks a beta
> build
> in the wild.
>
> We'll be able to do that with beta 10?
>
> --Chris
...ping? I'm blocked on this. 

Need at least a dummy file with a sample entry to get into the blocklist service. After that, I can work on getting it into staging, and we can see how that works. 

If that's good, then I can work with the AMO team to get it into production. That's probably a couple of weeks out - so sooner's better than later.
Assignee: lorchard → joe
Attached file sample blacklist file
This is a sample, taken directly from our tests, of a blocklist XML file that contains gfxBlacklistEntry elements.

The relevant part of this is the contents of <gfxItems>.
Assignee: joe → lorchard
And sorry this took so long; I've been slammed.
This patch should add XML to the blocklist that matches the sample. Also creates a new DB table to hold the records behind the XML.

clouserw: I added you for r?, but feel free to bounce to someone else in AMO. Wasn't sure who might want to take a look at this.

joedrew: I think this should generate the XML you're looking for, but the DataDescription page could probably use an update - https://wiki.mozilla.org/Firefox/Projects/VideoDriverBlacklisting/DataDescription

In particular, wherever there's some kind of constant used (eg. LESS_THAN_EQUAL, BLOCKED_DRIVER_VERSION, DIRECT2D, WINDOWS7), can we get a list of valid expected values? That will be useful in the (near?) future when we start getting requests to add to this list. I think this stuff is in GfxInfoBase.cpp and nsIGfxinfo.idl, but my grep-fu is stronger than my cpp-fu.
Attachment #508505 - Flags: review?(clouserw)
Comment on attachment 508505 [details] [diff] [review]
Add graphics drivers to blocklist

>+    if (!$blgfxdrivers_r) {
>+        $errors[] = 'MySQL query for blocklisted gfx drivers failed.';
>+    }
>+
>+    // If we have blocklisted plugins, arrange data for rendering.
>+    if (mysql_num_rows($blgfxdrivers_r)==0) {

This will throw a warning if the query isn't valid, since there is no else between them.  Not a big enough deal for me to r-.

I'm r+ing this as "the code works" - I don't know if it's the right format returned or if the fields you're adding to the db are correct and/or flexible enough.
Attachment #508505 - Flags: review?(clouserw) → review+
lmorchard: I've updated https://wiki.mozilla.org/Firefox/Projects/VideoDriverBlacklisting/DataDescription to contain the actual format we use.
(In reply to comment #6)
> lmorchard: I've updated
> https://wiki.mozilla.org/Firefox/Projects/VideoDriverBlacklisting/DataDescription
> to contain the actual format we use.

Excellent - exactly what I was looking for! Thank you
r81941 (blocklist code change) and r81942 (db migration)

Once this has made it to staging, I think you should be able to test it out with a pref "extensions.blocklist.url" set to this:

https://addons.allizom.org/blocklist/3/%APP_ID%/%APP_VERSION%/%PRODUCT%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/%PING_COUNT%/%TOTAL_PING_COUNT%/%DAYS_SINCE_LAST_PING%/

There won't be any entries in the blocklist at first, until I work out how to get some into the DB (eg. another migration? is there a phpmyadmin on stage?). But, you should at least see a blocklist at that URL.
There's one row in the drivers blocklist table now, so you should see at least this entry show up in the blocklist:

<gfxItems>
  <gfxBlacklistEntry>
    <os>WINNT 6.1</os>
    <vendor>0xabcd</vendor>
    <devices>
      <device>0x2783</device>
      <device>0x1234</device>
      <device>0x2782</device>
    </devices>
    <feature>DIRECT2D</feature>
    <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>
    <driverVersion>8.52.322.2202</driverVersion>
    <driverVersionComparator>LESS_THAN</driverVersionComparator>
  </gfxBlacklistEntry>
</gfxItems>

Let me know if this works, if you need more data in the blocklist, etc
<?xml version="1.0" encoding="UTF-8"?>

<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist">
  <gfxItems testattr="GFX"><gfxItem/>
<gfxBlacklistEntry>
  <os>WINNT 6.1</os>
  <vendor>0x10de</vendor>
  <devices>
    <device>0x0a29</device>
  </devices>
  <feature> DIRECT2D </feature>
  <featureStatus> BLOCKED_DRIVER_VERSION </featureStatus>
  <driverVersion> 8.17.11.9495 </driverVersion>
  <driverVersionComparator> LESS_THAN </driverVersionComparator>
</gfxBlacklistEntry>
<gfxItem/>
</gfxItems>
  <testItems testattr="FOO"><testItem/><testItem/><testItem/></testItems>
  <fooItems/>
</blocklist>

This is the XML I get from the test blocklist server; this is different from what you listed above, but otherwise correct. Is this what you expected?
Please ignore comment 10: that was out-of-date.
OK, everything looks great with this blocklist entry. I've verified that it works and is applied to the graphics blacklist properly.

What's the next step here?
(In reply to comment #12)
> OK, everything looks great with this blocklist entry. I've verified that it
> works and is applied to the graphics blacklist properly.
> 
> What's the next step here?

Cool, thanks for checking it out! Next step, I think, is that I talk to the AMO team about rolling this into their next convenient prod release cycle.

After that, I think updates to the blocklist will take IT bugs to update the DB.
The code goes live tomorrow at 1600.
(In reply to comment #14)
> The code goes live tomorrow at 1600.

Cool, then I'll call this done for now. We should file another bug, once there are any entries we need served up by the blocklist
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
(In reply to comment #14)
> The code goes live tomorrow at 1600.

Can someone confirm that this code is live on AMO? We blocklisted 2 drivers yesterday that aren't showing up in /blocklist but work fine on preview.

mysql> select * from blgfxdrivers;
+----+------+-----------+--------+---------+-------------------+------------------------+----------------+---------------------------+---------------------+---------------------+
| id | guid | os        | vendor | devices | feature           | feature_status         | driver_version | driver_version_comparator | created             | modified            |
+----+------+-----------+--------+---------+-------------------+------------------------+----------------+---------------------------+---------------------+---------------------+
| 10 |      | WINNT 6.1 | 0x10de | 0x0a6c  | DIRECT3D_9_LAYERS | BLOCKED_DRIVER_VERSION | 8.17.12.5896   | LESS_THAN_OR_EQUAL        | 2011-02-24 21:05:52 | 2011-02-24 21:05:52 | 
| 11 |      | WINNT 6.1 | 0x10de | 0x0a6c  | DIRECT2D          | BLOCKED_DRIVER_VERSION | 8.17.12.5896   | LESS_THAN_OR_EQUAL        | 2011-02-24 21:06:44 | 2011-02-24 21:06:44 | 
+----+------+-----------+--------+---------+-------------------+------------------------+----------------+---------------------------+---------------------+---------------------+
2 rows in set (0.00 sec)
Blocks: 598094
Assignee: lorchard → nobody
Component: Webdev → Blocklisting
Product: mozilla.org → addons.mozilla.org
Version: other → unspecified
Assignee: nobody → lorchard
QA Contact: webdev → blocklisting
Pretty sure it works, it caused bug 637008 and was probably reverted.
(In reply to comment #17)
> Pretty sure it works, it caused bug 637008 and was probably reverted.

If this is in response to my question, the reason it wasn't working before was the admin tool bug (bug 636824) so we ran the SQL instead and it worked.
Product: addons.mozilla.org → Toolkit
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: