<?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>24621</bug_id>
          
          <creation_ts>2009-03-16 09:08:27 -0700</creation_ts>
          <short_desc>PositionIterator doesn&apos;t iterate &quot;after last child&quot; positions when going backwards</short_desc>
          <delta_ts>2012-05-29 23:47:19 -0700</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>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>24576</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>antaryami.pandia</cc>
    
    <cc>ap</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>113877</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-16 09:08:27 -0700</bug_when>
    <thetext>For example, consider a &lt;table&gt; element with these children:

    text node
    &lt;tbody&gt;
    text node

The PositionIterator won&apos;t iterate to the &lt;table&gt; element position offset 3.

This is causing various editing bugs, including problems uncovered by my changes for bug 24576.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113927</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-16 14:48:09 -0700</bug_when>
    <thetext>The problem was narrower in scope than I thought, and only affects backwards iteration; without my other changes I couldn’t find any behavior changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113929</commentid>
    <comment_count>2</comment_count>
      <attachid>28660</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-16 14:52:27 -0700</bug_when>
    <thetext>Created attachment 28660
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115065</commentid>
    <comment_count>3</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-03-24 15:42:12 -0700</bug_when>
    <thetext>Is it possible to make a layout test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115066</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-24 15:59:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Is it possible to make a layout test for this?

No. There’s no direct effect of this change alone. It simply prevents certain other changes from causing bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115694</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-28 12:48:00 -0700</bug_when>
    <thetext>This seems like the kind of patch Eric might want to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115824</commentid>
    <comment_count>6</comment_count>
      <attachid>28660</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-30 09:12:42 -0700</bug_when>
    <thetext>Comment on attachment 28660
patch

Sigh.  We really need a way to add c++ unit tests to WebCore.  Also, I&apos;m about to re-write increment and decrement as part of bug 24854.  Still debugging why my (obsoleted) change on that bug causes regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115825</commentid>
    <comment_count>7</comment_count>
      <attachid>28660</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-30 09:15:16 -0700</bug_when>
    <thetext>Comment on attachment 28660
patch

Yup, looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115826</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-30 09:16:37 -0700</bug_when>
    <thetext>Nevermind, the interesting parts of bug 24854 haven&apos;t been posted from my git repo yet, even in obsoleted form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116138</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-31 21:42:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/42147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116142</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-31 23:43:54 -0700</bug_when>
    <thetext>Seems to have caused regression test failures. Reopening the bug for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116143</commentid>
    <comment_count>11</comment_count>
      <attachid>28660</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-31 23:44:14 -0700</bug_when>
    <thetext>Comment on attachment 28660
patch

Clearing the review flag until I find out what&apos;s wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116145</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-04-01 00:03:15 -0700</bug_when>
    <thetext>I had the same PositionIterator constructor change in my recent PositionIterator re-write and also saw lots of regressions.  I think that might have been the source of the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634879</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-27 21:51:25 -0700</bug_when>
    <thetext>Thought the modern day editing experts might be interested in my struggle from three years ago. This was never resolved.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28660</attachid>
            <date>2009-03-16 14:52:27 -0700</date>
            <delta_ts>2010-06-11 13:35:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>PositionIteratorPatch.txt</filename>
            <type>text/plain</type>
            <size>3723</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTc0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDMtMTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAy
NDYyMTogUG9zaXRpb25JdGVyYXRvciBkb2Vzbid0IGl0ZXJhdGUgImFmdGVyIGxhc3QgY2hpbGQi
IHBvc2l0aW9ucyB3aGVuIGdvaW5nIGJhY2t3YXJkcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2MjEKKworICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0
ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6OmRlY3JlbWVu
dCk6IE1ha2Ugc3VyZSB0aGF0IHdoZW4gdGhlIHBhcmVudCBoYXMgbm8gY2hpbGRyZW4sIHdlCisg
ICAgICAgIGRvbid0IGV2ZXIgdXNlIFBvc2l0aW9uOjp1bmNoZWNrZWRQcmV2aW91c09mZnNldC4g
VGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGZvcndhcmQKKyAgICAgICAgaXRlcmF0b3IsIGJ1
dCBhbHNvIHNob3VsZCBuZXZlciBhcmlzZSBiZWNhdXNlIG9mIHRoZSBmaXggYmVsb3cuCisgICAg
ICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
SXRlcmF0b3I6OlBvc2l0aW9uSXRlcmF0b3IpOiBGaXhlZCBzbyBtX29mZnNldCB3aWxsIGFsd2F5
cyBiZSAwIHdoZW4KKyAgICAgICAgdGhlIHBhc3NlZC1pbiBub2RlIGhhcyBubyBjaGlsZHJlbi4g
TGlrZSB0aGUgY2hhbmdlIGFib3ZlLCB0aGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdAor
ICAgICAgICBvZiB0aGUgY2xhc3MsIGFsdGhvdWdoIGluIHRoZSBsb25nIHJ1biBJIHRoaW5rIGl0
J3MgYSBiaXQgc3RyYW5nZSB0byB0cmVhdCBhIDxwPiBlbGVtZW50CisgICAgICAgIHdpdGggbm8g
Y2hpbGRyZW4gZGlmZmVyZW50bHkgdGhhbiBhIDxwPiBlbGVtZW50IHdpdGggY2hpbGRyZW4uCisK
IDIwMDktMDMtMTIgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsCkluZGV4OiBXZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAkocmV2
aXNpb24gNDE3MzUpCisrKyBXZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNzksMTQgKzc5LDE1IEBAIHZvaWQgUG9zaXRpb25JdGVyYXRv
cjo6ZGVjcmVtZW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX29mZnNl
dCkgewotICAgICAgICBtX29mZnNldCA9IFBvc2l0aW9uOjp1bmNoZWNrZWRQcmV2aW91c09mZnNl
dChtX3BhcmVudCwgbV9vZmZzZXQpOworICAgIGlmIChtX3BhcmVudC0+aGFzQ2hpbGROb2Rlcygp
KSB7CisgICAgICAgIEFTU0VSVCghbV9vZmZzZXQpOworICAgICAgICBtX3BhcmVudCA9IG1fcGFy
ZW50LT5sYXN0Q2hpbGQoKTsKKyAgICAgICAgaWYgKCFtX3BhcmVudC0+aGFzQ2hpbGROb2Rlcygp
KQorICAgICAgICAgICAgbV9vZmZzZXQgPSBtYXhEZWVwT2Zmc2V0KG1fcGFyZW50KTsKICAgICB9
IGVsc2UgewotICAgICAgICBpZiAobV9wYXJlbnQtPmhhc0NoaWxkTm9kZXMoKSkgewotICAgICAg
ICAgICAgbV9wYXJlbnQgPSBtX3BhcmVudC0+bGFzdENoaWxkKCk7Ci0gICAgICAgICAgICBpZiAo
IW1fcGFyZW50LT5oYXNDaGlsZE5vZGVzKCkpCi0gICAgICAgICAgICAgICAgbV9vZmZzZXQgPSBt
YXhEZWVwT2Zmc2V0KG1fcGFyZW50KTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1f
b2Zmc2V0KQorICAgICAgICAgICAgbV9vZmZzZXQgPSBQb3NpdGlvbjo6dW5jaGVja2VkUHJldmlv
dXNPZmZzZXQobV9wYXJlbnQsIG1fb2Zmc2V0KTsKKyAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBtX2NoaWxkID0gbV9wYXJlbnQ7CiAgICAgICAgICAgICBtX3BhcmVudCA9IG1fcGFyZW50LT5w
YXJlbnROb2RlKCk7CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgJKHJldmlz
aW9uIDQxNzM1KQorKysgV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00MiwxOCArNDIsMTcgQEAgcHVibGljOgogICAgICAgICAsIG1fb2Zm
c2V0KDApCiAgICAgewogICAgIH0KLQotICAgIFBvc2l0aW9uSXRlcmF0b3IoY29uc3QgUG9zaXRp
b24mIHBvcykKLSAgICAgICAgOiBtX3BhcmVudChwb3Mubm9kZSgpKQotICAgICAgICAsIG1fY2hp
bGQobV9wYXJlbnQtPmNoaWxkTm9kZShwb3MubV9vZmZzZXQpKQotICAgICAgICAsIG1fb2Zmc2V0
KG1fY2hpbGQgPyAwIDogcG9zLm1fb2Zmc2V0KQorICAgIFBvc2l0aW9uSXRlcmF0b3IoY29uc3Qg
UG9zaXRpb24mIHBvc2l0aW9uKQorICAgICAgICA6IG1fcGFyZW50KHBvc2l0aW9uLm5vZGUoKSkK
KyAgICAgICAgLCBtX2NoaWxkKG1fcGFyZW50LT5jaGlsZE5vZGUocG9zaXRpb24ubV9vZmZzZXQp
KQorICAgICAgICAsIG1fb2Zmc2V0KG1fcGFyZW50LT5oYXNDaGlsZE5vZGVzKCkgPyAwIDogcG9z
aXRpb24ubV9vZmZzZXQpCiAgICAgewogICAgIH0KLSAgICBvcGVyYXRvciBQb3NpdGlvbigpIGNv
bnN0OwogCiAgICAgdm9pZCBpbmNyZW1lbnQoKTsKICAgICB2b2lkIGRlY3JlbWVudCgpOwogCisg
ICAgb3BlcmF0b3IgUG9zaXRpb24oKSBjb25zdDsKICAgICBOb2RlKiBub2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJlbnQ7IH0KICAgICBpbnQgb2Zmc2V0SW5MZWFmTm9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0OyB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>