<?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>51344</bug_id>
          
          <creation_ts>2010-12-20 12:00:31 -0800</creation_ts>
          <short_desc>[RTL] WebKit hangs when moving caret in mixed Bidi text</short_desc>
          <delta_ts>2010-12-20 20:13:50 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>mitz</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324492</commentid>
    <comment_count>0</comment_count>
      <attachid>77021</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-20 12:00:31 -0800</bug_when>
    <thetext>Created attachment 77021
demo

This is a variant of the bug 49111.  Open the attachment and WebKit hangs inside VisiblePosition::rightVisuallyDistinctCandidate:

                box = nextBox;
                renderer = box-&gt;renderer();
                offset = box-&gt;caretLeftmostOffset();
                if (box-&gt;bidiLevel() &gt; level) {
                    do {
                        nextBox = box-&gt;nextLeafChild();
                    } while (nextBox &amp;&amp; nextBox-&gt;bidiLevel() &gt; level);
                    // we get stuck in this while loop.

                    if (!nextBox || nextBox-&gt;bidiLevel() &lt; level)
                        continue;
                }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324740</commentid>
    <comment_count>1</comment_count>
      <attachid>77076</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2010-12-20 19:59:55 -0800</bug_when>
    <thetext>Created attachment 77076
patch w/ layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324743</commentid>
    <comment_count>2</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2010-12-20 20:13:50 -0800</bug_when>
    <thetext>Committed r74385: &lt;http://trac.webkit.org/changeset/74385&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>77021</attachid>
            <date>2010-12-20 12:00:31 -0800</date>
            <delta_ts>2010-12-20 12:00:31 -0800</delta_ts>
            <desc>demo</desc>
            <filename>bug49111.html</filename>
            <type>text/html</type>
            <size>402</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U
eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgo8L2hlYWQ+Cjxib2R5Pgo8
ZGl2IGlkPSJ0ZXN0IiBkaXI9Imx0ciIgY29udGVudGVkaXRhYmxlPtmh2aExMjPZhdin2LHYszwv
ZGl2Pgo8ZGl2IGlkPSJsb2ciPgo8c2NyaXB0PgoKdmFyIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdCcpOwp2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwpz
ZWxlY3Rpb24uc2V0UG9zaXRpb24odGVzdC5maXJzdENoaWxkLCA2KTsKc2VsZWN0aW9uLm1vZGlm
eSgnbW92ZScsICdyaWdodCcsICdjaGFyYWN0ZXInKTsKCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77076</attachid>
            <date>2010-12-20 19:59:55 -0800</date>
            <delta_ts>2010-12-20 20:06:55 -0800</delta_ts>
            <desc>patch w/ layout test</desc>
            <filename>51344.v1</filename>
            <type>text/plain</type>
            <size>4442</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDM4NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMTItMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBt
b3ZlIGxlZnQvcmlnaHQgYnkgY2hhcmFjdGVyIGhhbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTM0NAorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcv
c2VsZWN0aW9uLzUxMzQ0Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbjo6bGVmdFZpc3VhbGx5RGlz
dGluY3RDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uOjpyaWdo
dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUpOgorCiAyMDEwLTEyLTIwICBTdGV2ZSBMYWNleSAg
PHNqbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAkocmV2aXNpb24gNzQzNzkpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgz
LDcgKzE4Myw3IEBAIFBvc2l0aW9uIFZpc2libGVQb3NpdGlvbjo6bGVmdFZpc3VhbGx5RGkKICAg
ICAgICAgICAgICAgICBvZmZzZXQgPSBib3gtPmNhcmV0UmlnaHRtb3N0T2Zmc2V0KCk7CiAgICAg
ICAgICAgICAgICAgaWYgKGJveC0+YmlkaUxldmVsKCkgPiBsZXZlbCkgewogICAgICAgICAgICAg
ICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmV2Qm94ID0gYm94LT5wcmV2
TGVhZkNoaWxkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Qm94ID0gcHJldkJveC0+
cHJldkxlYWZDaGlsZCgpOwogICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChwcmV2Qm94ICYm
IHByZXZCb3gtPmJpZGlMZXZlbCgpID4gbGV2ZWwpOwogCiAgICAgICAgICAgICAgICAgICAgIGlm
ICghcHJldkJveCB8fCBwcmV2Qm94LT5iaWRpTGV2ZWwoKSA8IGxldmVsKQpAQCAtMzIwLDcgKzMy
MCw3IEBAIFBvc2l0aW9uIFZpc2libGVQb3NpdGlvbjo6cmlnaHRWaXN1YWxseUQKICAgICAgICAg
ICAgICAgICBvZmZzZXQgPSBib3gtPmNhcmV0TGVmdG1vc3RPZmZzZXQoKTsKICAgICAgICAgICAg
ICAgICBpZiAoYm94LT5iaWRpTGV2ZWwoKSA+IGxldmVsKSB7CiAgICAgICAgICAgICAgICAgICAg
IGRvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5leHRCb3ggPSBib3gtPm5leHRMZWFmQ2hp
bGQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRCb3ggPSBuZXh0Qm94LT5uZXh0TGVh
ZkNoaWxkKCk7CiAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5leHRCb3ggJiYgbmV4dEJv
eC0+YmlkaUxldmVsKCkgPiBsZXZlbCk7CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0
Qm94IHx8IG5leHRCb3gtPmJpZGlMZXZlbCgpIDwgbGV2ZWwpCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3
NDM4NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEwLTEyLTIwICBYaWFvbWVpIEppICA8eGppQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggbW92ZSBsZWZ0
L3JpZ2h0IGJ5IGNoYXJhY3RlciBoYW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTEzNDQKKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uLzUx
MzQ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vNTEz
NDQuaHRtbDogQWRkZWQuCisKIDIwMTAtMTItMjAgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uLzUxMzQ0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTM0NC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTM0NC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGVzdCBmb3IgYnVnIDUxMzQ0OiBtb3Zl
IGxlZnQvcmlnaHQgYnkgY2hhcmFjdGVyIHNob3VsZCBub3QgaGFuZy4KKworU3VjY2VzcworU3Vj
Y2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTEzNDQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi81MTM0NC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vNTEzNDQuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAor77u/PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiPgorPHRpdGxlPlRlc3QgZm9yIGJ1ZyA1MTM0NDogbW92ZSBsZWZ0L3Jp
Z2h0IGJ5IGNoYXJhY3RlciBzaG91bGQgbm90IGhhbmcuPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGVzdCBmb3IgYnVnIDUxMzQ0OiBtb3ZlIGxlZnQvcmlnaHQgYnkgY2hhcmFjdGVyIHNo
b3VsZCBub3QgaGFuZy4KKzxkaXYgaWQ9InRlc3QiIGRpcj0ibHRyIiBjb250ZW50ZWRpdGFibGU+
2aHZoTEyM9mF2KfYsdizPC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0X3J0bCIgZGlyPSJydGwiIGNvbnRl
bnRlZGl0YWJsZT4mIzE0OTQ7JiMxNDk1OyAmI3gyMDJhOyYjMTQ5MTsmIzE0OTI7JiN4MjAyYTtj
YXIgJiMxNDkzOyYjeDIwMmM7JiN4MjAyYzsgIDwvZGl2PiAKKworPHVsIGlkPSJjb25zb2xlIj48
L3VsPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyhzdHIpIHsK
KyAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIGxpLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgIHZhciBjb25zb2xlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICBjb25zb2xlLmFwcGVuZENo
aWxkKGxpKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0KGJvb2wpIHsKKyAgICBpZiAoIWJvb2wpCisg
ICAgICAgIGxvZygiRmFpbHVyZSIpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJTdWNjZXNzIik7
Cit9CisKK3ZhciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3ZhciBz
ZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CitzZWxlY3Rpb24uc2V0UG9zaXRpb24o
dGVzdC5maXJzdENoaWxkLCA2KTsKK3NlbGVjdGlvbi5tb2RpZnkoJ21vdmUnLCAncmlnaHQnLCAn
Y2hhcmFjdGVyJyk7Cit2YXIgb2Zmc2V0ID0gc2VsZWN0aW9uLmFuY2hvck9mZnNldDsKK2Fzc2Vy
dChvZmZzZXQgPT0gMSk7Cit0ZXN0LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisKK3Rlc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdF9ydGwnKTsKK3NlbGVjdGlvbiA9IHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKTsKK3NlbGVjdGlvbi5zZXRQb3NpdGlvbih0ZXN0LmZpcnN0Q2hpbGQsIDMp
Oworc2VsZWN0aW9uLm1vZGlmeSgnbW92ZScsICdsZWZ0JywgJ2NoYXJhY3RlcicpOworb2Zmc2V0
ID0gc2VsZWN0aW9uLmFuY2hvck9mZnNldDsKK2Fzc2VydChvZmZzZXQgPT0gNCk7Cit0ZXN0LnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="68119"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>