Changes in FreeType between Ubuntu Lucid and Ubuntu Precise change how the text in pretty much every pixel test is rendered, causing ~7000 failures when running Chromium on Precise. The currently recommended workaround is to use a Lucid chroot, but it would be nice to run precise natively. One option is to use two sets of baselines (like we do on the mac), but we'd like to avoid this. Soon (April if not earlier) we'll be dropping support for Lucid and need to update the baselines, but in the meantime it looks like we can simply preload the lucid version of freetype when running DRT and get the same results, so this seems like a good workaround (or we could compile a static version into DRT, or adjust the rpath of the binary). Note that we don't want to change how Chrome behaves; that should continue using the system version of freetype.
This is fine with me. I think it's more work than just picking a day to upgrade the bots and rebaseline the Linux results, but I'm not the one volunteering to do the extra work.
Created attachment 188236 [details] Patch
Created attachment 188238 [details] s/TODO(dpranke)/FIXME
Note that for this to be enabled and functional by default we need to actually pull the code from a git repo mirrored on googlesource.com (i.e., the FIXME goes away). Posting this for review in the meantime. I plan to land this patch and the patch in chromium to update the deps, and then, in a third patch, flip the default variable setting in DRT.gyp so that we start building by default. That should make it easy to revert anything if this doesn't work right.
Comment on attachment 188238 [details] s/TODO(dpranke)/FIXME View in context: https://bugs.webkit.org/attachment.cgi?id=188238&action=review > Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:47 > + ['OS=="unix"', { How does this work? I thought OS was linux/win/mac/freebsd/openbsd/solaris/ios/android. > Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:48 > + 'use_custom_freetype%': 0, # FIXME: This should be on by default. Bug link?
(In reply to comment #5) > (From update of attachment 188238 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=188238&action=review > > > Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:47 > > + ['OS=="unix"', { > > How does this work? I thought OS was linux/win/mac/freebsd/openbsd/solaris/ios/android. > I will double check, but all the examples I saw seemed to be using "unix" as a synonym for "linux". > > Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:48 > > + 'use_custom_freetype%': 0, # FIXME: This should be on by default. > > Bug link? Will fix.
Created attachment 188403 [details] s/unix/linux, add comments
apparently I got the syntax in DEPS confused w/ the syntax in gyp :(.
Created attachment 188408 [details] update reference to freetype2.gyp
Comment on attachment 188408 [details] update reference to freetype2.gyp It's a little silly to add use_custom_freetype when it's only used in one place, but I guess it makes it more clear until we flip the flag.
(In reply to comment #10) > (From update of attachment 188408 [details]) > It's a little silly to add use_custom_freetype when it's only used in one place, but I guess it makes it more clear until we flip the flag. I anticipate using this setting in more places as I work on getting us to use freetype everywhere, otherwise I probably wouldn't have bothered.
Created attachment 189618 [details] Patch
Tony, can you take a look at this? I think this is ready to go. (Note that it won't actually flip the switch to using the lucid FT by default, we'll still be using the system lib, so this should basically be a no-op).
Comment on attachment 189618 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=189618&action=review r=me with the third_party/freetype2 lines removed. > Source/WebKit/chromium/DEPS:189 > + 'third_party/freetype2': > + Var('chromium_svn')+'/third_party/freetype2@'+Var('chromium_rev'), I don't think you need this. We pull in all of third_party in the last rule before deps_os =.
(In reply to comment #14) > (From update of attachment 189618 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=189618&action=review > > r=me with the third_party/freetype2 lines removed. > > > Source/WebKit/chromium/DEPS:189 > > + 'third_party/freetype2': > > + Var('chromium_svn')+'/third_party/freetype2@'+Var('chromium_rev'), > > I don't think you need this. We pull in all of third_party in the last rule before deps_os =. Ah, I missed that. Thanks!
Committed r143672: <http://trac.webkit.org/changeset/143672>