Bug 37904

Summary: [chromium] bold bengali text not rendered properly on Linux
Product: WebKit Reporter: Evan Martin <evan>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: agl, dglazkov, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: OS X 10.5   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch
none
Patch levin: review+

Description Evan Martin 2010-04-20 17:05:04 PDT
[chromium] bold bangla text not rendered properly
Comment 1 Evan Martin 2010-04-20 17:08:34 PDT
Created attachment 53907 [details]
Patch
Comment 2 WebKit Review Bot 2010-04-20 17:25:55 PDT
Attachment 53907 [details] did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1798013
Comment 3 Evan Martin 2010-04-20 17:29:55 PDT
This depends on a Skia roll.  I'm working on getting that going in the Chrome tree first (without this patch), so that when that is done I can land this patch.  So please disregard the Chromium bot error.
Comment 4 Adam Langley 2010-04-20 18:05:50 PDT
Comment on attachment 53907 [details]
Patch

LGTM


> +        [chromium] bold bangla text not rendered properly

... on Linux.


> +        [chromium] bold bangla text not rendered properly

... on Linux.
Comment 5 David Levin 2010-04-20 18:16:06 PDT
Comment on attachment 53907 [details]
Patch

What agl said plus one other minor nit:

> index 8ee3920..13f3e06 100644
> --- a/WebCore/ChangeLog
> +++ b/WebCore/ChangeLog
> @@ -1,3 +1,20 @@
> +2010-04-20  Evan Martin  <evan@chromium.org>
> +
> +        Reviewed by NOBODY (OOPS!).
> +
> +        [chromium] bold bangla text not rendered properly
> +        https://bugs.webkit.org/show_bug.cgi?id=37904
> +
> +        We must let Skia do the font fallback, rather than picking a font name
> +        then handing that to Skia.  For example, if we example Bangla text and
> +        choose FreeSans + fake bold, we we then reuse the name Skia will helpfully

"we we then reuse"
Comment 6 Evan Martin 2010-04-27 09:24:19 PDT
renaming from bangla to bengali, will up a new patch and baseline.
Comment 7 Evan Martin 2010-04-27 09:48:27 PDT
Created attachment 54422 [details]
Patch
Comment 8 WebKit Review Bot 2010-04-27 09:56:09 PDT
Attachment 54422 [details] did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1810150
Comment 9 Evan Martin 2010-04-27 10:12:43 PDT
Created attachment 54425 [details]
Patch
Comment 10 WebKit Review Bot 2010-04-27 10:21:22 PDT
Attachment 54425 [details] did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1794143
Comment 11 Darin Fisher (:fishd, Google) 2010-04-27 10:28:46 PDT
Comment on attachment 54425 [details]
Patch

> diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
> index d2e0b8c660b25231074eec0a133ca42cf6f29b25..3b963763d0838628982fbb1ff1be33180e3f0282 100644
> --- a/LayoutTests/ChangeLog
> +++ b/LayoutTests/ChangeLog
> @@ -1,3 +1,17 @@
> +2010-04-27  Evan Martin  <evan@chromium.org>
> +
> +        Reviewed by NOBODY (OOPS!).
> +
> +        [chromium] bold bengali text not rendered properly on Linux
> +        https://bugs.webkit.org/show_bug.cgi?id=37904
> +
> +        Add a layout test containing some bold Bengali text.
> +
> +        * fast/text/international/bold-bengali.html: Added.
> +        * platform/chromium-linux/fast/text/international/bold-bengali-expected.checksum: Added.
> +        * platform/chromium-linux/fast/text/international/bold-bengali-expected.png: Added.
> +        * platform/chromium-linux/fast/text/international/bold-bengali-expected.txt: Added.
> +
>  2010-04-27  Jeremy Orlow  <jorlow@chromium.org>
>  
>          Unreviewed.  Previous disabling only did so via
> diff --git a/LayoutTests/fast/text/international/bold-bengali.html b/LayoutTests/fast/text/international/bold-bengali.html
> new file mode 100644
> index 0000000000000000000000000000000000000000..d86144f1961deee894defb94f825de8c9a379399
> --- /dev/null
> +++ b/LayoutTests/fast/text/international/bold-bengali.html
> @@ -0,0 +1,10 @@
> +<meta charset=utf-8>
> +
> +<p>This test verifies we can render bold Bengali properly.  (This is complicated on Linux because it's typically covered
> +by fake-bolded FreeSans even though there's also a FreeSansBold available.)</p>
> +
> +<p>The test passes if the two words below look similar, but the top one is bold.  There should be no missing-glyph
> +boxes.</p>
> +
> +<p><b>বাà¦à¦²à¦¾</b><p>
> +<p>বাà¦à¦²à¦¾</p>
> diff --git a/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.checksum b/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.checksum
> new file mode 100644
> index 0000000000000000000000000000000000000000..2cedccd9401c44ce3c131a4a75da39b2f181e718
> --- /dev/null
> +++ b/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.checksum
> @@ -0,0 +1 @@
> +1a72c5a7bd5118099cd4399d1d03187e
> \ No newline at end of file
> diff --git a/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.png b/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.png
> new file mode 100644
> index 0000000000000000000000000000000000000000..25fc22b67b0344a65596dd8dd8cfcedb378abd1f
> GIT binary patch
> literal 15108
> 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
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.txt b/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.txt
> new file mode 100644
> index 0000000000000000000000000000000000000000..1fa4337e5cb103c0f81f5a13db18fe4aa3a74a00
> --- /dev/null
> +++ b/LayoutTests/platform/chromium-linux/fast/text/international/bold-bengali-expected.txt
> @@ -0,0 +1,22 @@
> +layer at (0,0) size 800x600
> +  RenderView at (0,0) size 800x600
> +layer at (0,0) size 800x600
> +  RenderBlock {HTML} at (0,0) size 800x600
> +    RenderBody {BODY} at (8,8) size 784x576
> +      RenderBlock {P} at (0,0) size 784x40
> +        RenderText {#text} at (0,0) size 780x39
> +          text run at (0,0) width 328: "This test verifies we can render bold Bengali properly. "
> +          text run at (328,0) width 452: "(This is complicated on Linux because it's typically covered by fake-bolded"
> +          text run at (0,20) width 370: "FreeSans even though there's also a FreeSansBold available.)"
> +      RenderBlock {P} at (0,56) size 784x20
> +        RenderText {#text} at (0,0) size 704x19
> +          text run at (0,0) width 459: "The test passes if the two words below look similar, but the top one is bold. "
> +          text run at (459,0) width 245: "There should be no missing-glyph boxes."
> +      RenderBlock {P} at (0,92) size 784x20
> +        RenderInline {B} at (0,0) size 35x19
> +          RenderText {#text} at (0,0) size 35x19
> +            text run at (0,0) width 35: "\x{9AC}\x{9BE}\x{982}\x{9B2}\x{9BE}"
> +      RenderBlock {P} at (0,128) size 784x0
> +      RenderBlock {P} at (0,128) size 784x20
> +        RenderText {#text} at (0,0) size 35x19
> +          text run at (0,0) width 35: "\x{9AC}\x{9BE}\x{982}\x{9B2}\x{9BE}"
> diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
> index 9b155716627e40574efbd03dc19dd3d03648a413..a5b063ea76618d79e9f34d8751739be471c88de8 100644
> --- a/WebCore/ChangeLog
> +++ b/WebCore/ChangeLog
> @@ -1,3 +1,20 @@
> +2010-04-27  Evan Martin  <evan@chromium.org>
> +
> +        Reviewed by NOBODY (OOPS!).
> +
> +        [chromium] bold bengali text not rendered properly on Linux
> +        https://bugs.webkit.org/show_bug.cgi?id=37904
> +
> +        We must let Skia do font fallback, rather than picking a font name
> +        then handing that to Skia.  For example, if we have Bengali text and
> +        choose FreeSans + fake bold, and then later reuse the name, Skia will
> +        helpfully use FreeSansBold (which doesn't cover Bengali).
> +
> +        Test: fast/text/international/bold-bengali.html
> +
> +        * platform/graphics/chromium/FontCacheLinux.cpp:
> +        (WebCore::FontCache::getFontDataForCharacters):
> +
>  2010-04-27  Jeremy Orlow  <jorlow@chromium.org>
>  
>          Unreviewed build fix.
> diff --git a/WebCore/platform/graphics/chromium/FontCacheLinux.cpp b/WebCore/platform/graphics/chromium/FontCacheLinux.cpp
> index ececd1334c91fb6782c185cb38c669cca9517eec..b37e1c710573a15118c597dcd7520d71dd241b6a 100644
> --- a/WebCore/platform/graphics/chromium/FontCacheLinux.cpp
> +++ b/WebCore/platform/graphics/chromium/FontCacheLinux.cpp
> @@ -58,12 +58,27 @@ const SimpleFontData* FontCache::getFontDataForCharacters(const Font& font,
>                                                            const UChar* characters,
>                                                            int length)
>  {
> -    String family = ChromiumBridge::getFontFamilyForCharacters(characters, length);
> -    if (family.isEmpty())
> +    int style = SkTypeface::kNormal;
> +    if (font.fontDescription().weight() >= FontWeightBold)
> +        style |= SkTypeface::kBold;
> +    if (font.fontDescription().italic())
> +        style |= SkTypeface::kItalic;
> +
> +    SkTypeface* tf = SkTypeface::CreateForChars(characters, length * 2,
> +                                                static_cast<SkTypeface::Style>(style));
> +    if (!tf)
>          return 0;
>  
> -    AtomicString atomicFamily(family);
> -    return getCachedFontData(getCachedFontPlatformData(font.fontDescription(), atomicFamily, false));
> +    // FIXME: we don't have a family name for this font.
> +    // However, the family name within FontPlatformData is only used when picking
> +    // a render style for the font, so it's not too great of a loss.
> +    FontPlatformData result(tf,
> +                            "",
> +                            font.fontDescription().computedSize(),
> +                            (style & SkTypeface::kBold) && !tf->isBold(),
> +                            (style & SkTypeface::kItalic) && !tf->isItalic());
> +    tf->unref();
> +    return getCachedFontData(&result);
>  }
>  
>  SimpleFontData* FontCache::getSimilarFontPlatformData(const Font& font)
> diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
> index 7917087c80d77e7867f59edd44a8d1ee2c571ad9..ea4c4f55bf342987306e02e4456d3fc6d8f11289 100644
> --- a/WebKit/chromium/ChangeLog
> +++ b/WebKit/chromium/ChangeLog
> @@ -1,3 +1,12 @@
> +2010-04-27  Evan Martin  <evan@chromium.org>
> +
> +        Reviewed by NOBODY (OOPS!).
> +
> +        [chromium] bold bengali text not rendered properly on Linux
> +        Roll forward Chrome DEPS so we get new Skia API.
> +
> +        * DEPS: update Chrome to r45696.
> +
>  2010-04-26  John Abd-El-Malek  <jam@chromium.org>
>  
>          Reviewed by Darin Fisher.
> diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS
> index 15f291719f75aa6a304b9bf03db070bf97767667..ae34c420fa09f723d8ec4b0659a8453922f5649e 100644
> --- a/WebKit/chromium/DEPS
> +++ b/WebKit/chromium/DEPS
> @@ -32,7 +32,7 @@
>  
>  vars = {
>    'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
> -  'chromium_rev': '45294',
> +  'chromium_rev': '45696',
>  
>    'pthreads-win32_rev': '26716',
>  }
WebCore/platform/graphics/chromium/FontCacheLinux.cpp: 
 +      String family = ChromiumBridge::getFontFamilyForCharacters(characters, length);
It looks like you can delete getFontFamilyForCharacters now, right?
Comment 12 Evan Martin 2010-04-27 10:31:48 PDT
Yes, that is my intent.  :)
Comment 13 Evan Martin 2010-04-27 11:44:49 PDT
Created attachment 54435 [details]
Patch
Comment 14 Evan Martin 2010-04-27 11:47:12 PDT
The EWS bots can't try my patch because it involves a DEPS change.  I think my best hope is to commit and see how it works.  It does work for me locally.
Comment 15 WebKit Review Bot 2010-04-27 13:02:50 PDT
Attachment 54435 [details] did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1848147
Comment 16 Evan Martin 2010-04-27 14:54:02 PDT
Committed r58341: <http://trac.webkit.org/changeset/58341>
Comment 17 Evan Martin 2010-04-27 15:45:21 PDT
Created attachment 54463 [details]
Patch
Comment 18 Evan Martin 2010-04-27 15:48:39 PDT
Committed r58344: <http://trac.webkit.org/changeset/58344>