This is a fix for http://code.google.com/p/chromium/issues/detail?id=128506 - 	Random Chinese/Japanese characters are missing in documents printed via the system print dialog on Windows XP SP3

The cause of the bug is that ensureFontLoaded just does not work for the printing thread because GetTextMetrics(font) is not guaranteed to load the TrueType font for an HDC build from CreateEnhMetaFile. The only way I found to force font loading is to create a dummy HDC with CreateEnhMetaFile and then print the offending character(s).

This change contains:
 - wirings for foo_CacheFontCharacters similar with foo_CacheFont, but with dispatch this message in RenderMessageFilter and defined in view_messages.h
 - SkFontHost::EnsureTypefaceCharactersAccessible similar with SkFontHost::EnsureTypefaceAccessible
 - Small refactoring of ExtTextOut call which would
    - Call ExtTextOut
    - If failed, calls SkFontHost::EnsureTypefaceCharactersAccessible
    - call ExtTextOutAgain and return success/failure
    - the calller will default to a skia paintPath (lower quality, but correct) if above fails

Notice: No tests for now, lets's make sure the design is right, then I will add tests too.

Contributed by edisonn@google.com

Review URL: https://chromiumcodereview.appspot.com/11363008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168943 0039d316-1c4b-4281-b951-d872f2087c98
8 files changed