Firefox/Projects/VideoDriverBlacklisting

From MozillaWiki
Jump to: navigation, search

Driver Blocklisting and Enabling out of band with Firefox releases.

  • Project Lead: blizzard
  • Firefox Engineer: mossop
  • Drivers: joe
  • Service: lorchard

Status

  • Some Firefox changes have taken place. Dave has added a service so that you can query the blocklist from a component.
  • Data model
  • Need data from our crash reporting system on the breakdown of video drivers across 3.6 users (if we have it) and definitely our beta population. Damon has signed Joe up to track down this data. bug 623317
  • We have a strawman process proposal from Vlad for adding things to the blacklist. Blizzard to finish driving.
  • Current plan of record is to blacklist everything but the most recent drivers from the main video card vendors in order to mitigate risk.


Goals

  • To make it possible to disable or enable video drivers out of band with Firefox releases. This does not replace the in-browser compatibility list, but gives us the flexibility to disable or enable for security & compatibility reasons.

Non Goals

  • Replace the in-browser compatibility list.

Timeline / Milestones

  • Initial data list: 12/17/2010

These are the bugs of interest:

Bug Owner Status
bug 628793 - Graphics driver blocklist XML lorchard New blocklist code in staging, need some same data for the DB and then an end-to-end test against staging
bug 619730 - Support arbitrary blocklist items passed through the observer service Mossop Done

Requirements

  • Includes the ability to enable specific drivers
  • Includes the ability to disable specific drivers
  • Is polled for changes once per day
  • Has minimal effect on startup performance

Plan

  • Figure out how to host a file that we can use for blacklisting and whitelisting. Very similar to the way the plugin blacklisting works today. Will probably just add on to the current plugin blacklisting file. (les)
  • Will use an XML file on the server. Service inside of Firefox will parse it and hand the graphics layer a DOM element with data with an observer message. bug 619730 (mossop)
  • Take that data and update the blacklist in the gfx layer. (joe)
  • Need to set a pref so we don't re-parse the list. (joe & mossop)
  • Investigate if we can use an etag or last-modified to save server load. (mossop & les)
  • Data structure required. (joe)
  • Bugzilla component (or re-use one) for tracking driver blacklisting (blizzard)
  • We include a hard-coded blocklist already and we can use for bootstrapping. When we figure out if it's blocked after and it will take effect when you restart. This isn't perfect but it's going to be useful.
  • Testing (Matt, etc - blizzard to drive)

Testing

No test plan yet.

There is no notification that your graphics hardware has been blacklisted, and the blacklist doesn't take effect until you restart Firefox. Once Firefox has completed a blocklist ping, you can restart Firefox and look at the graphics section in about:support. You should see a) Direct2D and DirectWrite turned off; b) "Blocked on your hardware due to unresolved driver issues" or something to that effect; and c) 0 hardware accelerated windows.

For an example of verification of blocked driver versions, see bug 635044.

Related Projects

Hardware acceleration, dll blocklisting and plugin blocklisting.