<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>136337</bug_id>
          
          <creation_ts>2014-08-28 03:47:08 -0700</creation_ts>
          <short_desc>Webkit using Harfbuzz does not display Arabic script correctly</short_desc>
          <delta_ts>2014-12-08 03:34:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.aljazeera.net/portal</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Doron">doron_wloschowsky</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1031953</commentid>
    <comment_count>0</comment_count>
    <who name="Doron">doron_wloschowsky</who>
    <bug_when>2014-08-28 03:47:08 -0700</bug_when>
    <thetext>None of the text for http://www.aljazeera.net/portal displays correctly.

Platform PowerPC big-endian architecture.

After debugging, I found that this issue is due to an endian issue. This can be fixed with the following:

diff a/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp b/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
index ecaafc1..2c643b3 100644
--- a/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
+++ b/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
@@ -111,7 +111,8 @@ static hb_bool_t harfBuzzGetGlyph(hb_font_t*, void* fontData, hb_codepoint_t uni
     if (result.isNewEntry) {
         cairo_glyph_t* glyphs = 0;
         int numGlyphs = 0;
-        CString utf8Codepoint = UTF8Encoding().encode(reinterpret_cast&lt;UChar*&gt;(&amp;unicode), 1, QuestionMarksForUnencodables);
+        UChar ch = unicode;
+        CString utf8Codepoint = UTF8Encoding().encode(&amp;ch, 1, QuestionMarksForUnencodables);
         if (cairo_scaled_font_text_to_glyphs(scaledFont, 0, 0, utf8Codepoint.data(), utf8Codepoint.length(), &amp;glyphs, &amp;numGlyphs, 0, 0, 0) != CAIRO_STATUS_SUCCESS)
             return false;
         if (!numGlyphs)

The unfixed code works fine on little endian architectures since reinterpret casting int32_t* to an int16_t* gets the two least significant bytes but on big endian architectures the downsizing will always return zeros (for small integer values). 

This then has the knock-on effect that no glyphs get returned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053340</commentid>
    <comment_count>1</comment_count>
      <attachid>242796</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-12-08 03:22:06 -0800</bug_when>
    <thetext>Created attachment 242796
Patch

Thanks for the patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053348</commentid>
    <comment_count>2</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-12-08 03:34:19 -0800</bug_when>
    <thetext>Committed r176945: &lt;http://trac.webkit.org/changeset/176945&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242796</attachid>
            <date>2014-12-08 03:22:06 -0800</date>
            <delta_ts>2014-12-08 03:29:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>136337.diff</filename>
            <type>text/plain</type>
            <size>1753</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNmMxYWFhLi40YzlhY2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTQtMTItMDggIERvcm9uIFdsb3NjaG93c2t5ICA8ZG9yb25fd2xvc2Nob3dza3lAc2Nl
ZS5uZXQ+CisKKyAgICAgICAgV2Via2l0IHVzaW5nIEhhcmZidXp6IGRvZXMgbm90IGRpc3BsYXkg
QXJhYmljIHNjcmlwdCBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNjMzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzaW5nIHJlaW50ZXJwcmV0X2Nhc3QgdG8gY29udmVydCBoYl9jb2Rl
cG9pbnRfdCogaW50byBVQ2hhcioKKyAgICAgICAgZG9lc24ndCB3b3JrIG9uIGJpZyBlbmRpYW4g
c3lzdGVtcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6
RmFjZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhcmZCdXp6R2V0R2x5cGgpOgorCiAy
MDE0LTEyLTA4ICBTZWJhc3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4K
IAogICAgICAgICBbR1N0cmVhbWVyXSBNYWpvciBjbGVhbnVwIG9mIEF1ZGlvRGVzdGluYXRpb24g
aW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAppbmRleCBhNGNjYzU0
Li5mZTYxNTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9IYXJmQnV6ekZhY2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlQ2Fpcm8uY3BwCkBAIC0xMTMsNyArMTEz
LDggQEAgc3RhdGljIGhiX2Jvb2xfdCBoYXJmQnV6ekdldEdseXBoKGhiX2ZvbnRfdCosIHZvaWQq
IGZvbnREYXRhLCBoYl9jb2RlcG9pbnRfdCB1bmkKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkp
IHsKICAgICAgICAgY2Fpcm9fZ2x5cGhfdCogZ2x5cGhzID0gMDsKICAgICAgICAgaW50IG51bUds
eXBocyA9IDA7Ci0gICAgICAgIENTdHJpbmcgdXRmOENvZGVwb2ludCA9IFVURjhFbmNvZGluZygp
LmVuY29kZShTdHJpbmdWaWV3KHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPigmdW5pY29kZSksIDEp
LCBRdWVzdGlvbk1hcmtzRm9yVW5lbmNvZGFibGVzKTsKKyAgICAgICAgVUNoYXIgY2ggPSB1bmlj
b2RlOworICAgICAgICBDU3RyaW5nIHV0ZjhDb2RlcG9pbnQgPSBVVEY4RW5jb2RpbmcoKS5lbmNv
ZGUoU3RyaW5nVmlldygmY2gsIDEpLCBRdWVzdGlvbk1hcmtzRm9yVW5lbmNvZGFibGVzKTsKICAg
ICAgICAgaWYgKGNhaXJvX3NjYWxlZF9mb250X3RleHRfdG9fZ2x5cGhzKHNjYWxlZEZvbnQsIDAs
IDAsIHV0ZjhDb2RlcG9pbnQuZGF0YSgpLCB1dGY4Q29kZXBvaW50Lmxlbmd0aCgpLCAmZ2x5cGhz
LCAmbnVtR2x5cGhzLCAwLCAwLCAwKSAhPSBDQUlST19TVEFUVVNfU1VDQ0VTUykKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFudW1HbHlwaHMpCg==
</data>
<flag name="review"
          id="267670"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>