This directory will be removed once the files in it are committed upstream and
Chromium imports an upstream revision with these files.  Contact mark for
details.
