<?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>120119</bug_id>
          
          <creation_ts>2013-08-21 10:23:20 -0700</creation_ts>
          <short_desc>Add some operator overloads to VisiblePosition</short_desc>
          <delta_ts>2013-08-22 17:35:46 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>119829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roger Fong">roger_fong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>rniwa</cc>
    
    <cc>roger_fong</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>919508</commentid>
    <comment_count>0</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-08-21 10:23:20 -0700</bug_when>
    <thetext>Having these here does no harm and they&apos;re quite useful for comparing VisiblePositions.
I need them for https://bugs.webkit.org/show_bug.cgi?id=119829</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919528</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-08-21 10:53:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/14797554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920032</commentid>
    <comment_count>2</comment_count>
      <attachid>209410</attachid>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-08-22 17:22:00 -0700</bug_when>
    <thetext>Created attachment 209410
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920040</commentid>
    <comment_count>3</comment_count>
      <attachid>209410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-22 17:32:18 -0700</bug_when>
    <thetext>Comment on attachment 209410
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=209410&amp;action=review

&gt; Source/WebCore/dom/Position.h:243
&gt; +inline bool operator&lt;(const Position&amp; a, const Position&amp; b)
&gt; +{
&gt; +    return a.anchorNode() == b.anchorNode() &amp;&amp; a.deprecatedEditingOffset() &lt; b.deprecatedEditingOffset() &amp;&amp; a.anchorType() == b.anchorType();
&gt; +}

I don&apos;t think this comparison operator makes sense.  Just because nodes aren&apos;t same doesn&apos;t mean they aren&apos;t comparable.

If anything, we should be calling comparePositions instead. r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920041</commentid>
    <comment_count>4</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-08-22 17:35:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 209410 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=209410&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Position.h:243
&gt; &gt; +inline bool operator&lt;(const Position&amp; a, const Position&amp; b)
&gt; &gt; +{
&gt; &gt; +    return a.anchorNode() == b.anchorNode() &amp;&amp; a.deprecatedEditingOffset() &lt; b.deprecatedEditingOffset() &amp;&amp; a.anchorType() == b.anchorType();
&gt; &gt; +}
&gt; 
&gt; I don&apos;t think this comparison operator makes sense.  Just because nodes aren&apos;t same doesn&apos;t mean they aren&apos;t comparable.
&gt; 
&gt; If anything, we should be calling comparePositions instead. r-.

didn&apos;t realize that method existed...will use that instead.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209410</attachid>
            <date>2013-08-22 17:22:00 -0700</date>
            <delta_ts>2013-08-22 17:32:17 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>3367</size>
            <attacher name="Roger Fong">roger_fong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDQ2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEzLTA4LTIyICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgb3BlcmF0b3Ig
b3ZlcmxvYWRzIHRvIFZpc2libGVQb3NpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDExOS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0
Nzk3NTU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgQWRkaW5nIHNvbWUgb3BlcmF0b3Igb3ZlcmxvYWRzIGZvciBjb252ZW5pZW5jZS4K
KyAgICAgICAgVGhleSB3b3JrIHRoZSBzYW1lIHdheSBhcyB0aGUgPT0gYW5kICE9IG9wZXJhdG9y
IG92ZXJsb2Fkcy4KKworICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNU
ZXh0Q29udHJvbCk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjwpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I+KToKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPD0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I+PSk6CisgICAg
ICAgICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj4pOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PSk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj49KToKKwogMjAxMy0wOC0y
MiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmF2
YWlsYWJsZSBwbHVnLWluIGluZGljYXRvciB0ZXh0IGlzIG9uZSBwaXhlbCB0b28gbG93CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vUG9zaXRpb24uaAkocmV2aXNpb24gMTU0NDMwKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNyw2ICsyMzcsMjYgQEAKICAgICBy
ZXR1cm4gYS5hbmNob3JOb2RlKCkgPT0gYi5hbmNob3JOb2RlKCkgJiYgYS5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpID09IGIuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSAmJiBhLmFuY2hvclR5
cGUoKSA9PSBiLmFuY2hvclR5cGUoKTsKIH0KIAoraW5saW5lIGJvb2wgb3BlcmF0b3I8KGNvbnN0
IFBvc2l0aW9uJiBhLCBjb25zdCBQb3NpdGlvbiYgYikKK3sKKyAgICByZXR1cm4gYS5hbmNob3JO
b2RlKCkgPT0gYi5hbmNob3JOb2RlKCkgJiYgYS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpIDwg
Yi5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpICYmIGEuYW5jaG9yVHlwZSgpID09IGIuYW5jaG9y
VHlwZSgpOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj4oY29uc3QgUG9zaXRpb24mIGEsIGNv
bnN0IFBvc2l0aW9uJiBiKQoreworICAgIHJldHVybiBhLmFuY2hvck5vZGUoKSA9PSBiLmFuY2hv
ck5vZGUoKSAmJiBhLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPiBiLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCkgJiYgYS5hbmNob3JUeXBlKCkgPT0gYi5hbmNob3JUeXBlKCk7Cit9CisKK2lu
bGluZSBib29sIG9wZXJhdG9yPD0oY29uc3QgUG9zaXRpb24mIGEsIGNvbnN0IFBvc2l0aW9uJiBi
KQoreworICAgIHJldHVybiBhLmFuY2hvck5vZGUoKSA9PSBiLmFuY2hvck5vZGUoKSAmJiBhLmRl
cHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPD0gYi5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpICYm
IGEuYW5jaG9yVHlwZSgpID09IGIuYW5jaG9yVHlwZSgpOworfQorCitpbmxpbmUgYm9vbCBvcGVy
YXRvcj49KGNvbnN0IFBvc2l0aW9uJiBhLCBjb25zdCBQb3NpdGlvbiYgYikKK3sKKyAgICByZXR1
cm4gYS5hbmNob3JOb2RlKCkgPT0gYi5hbmNob3JOb2RlKCkgJiYgYS5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpID49IGIuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSAmJiBhLmFuY2hvclR5cGUo
KSA9PSBiLmFuY2hvclR5cGUoKTsKK30KKwogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQ
b3NpdGlvbiYgYSwgY29uc3QgUG9zaXRpb24mIGIpCiB7CiAgICAgcmV0dXJuICEoYSA9PSBiKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaAkocmV2aXNpb24g
MTU0NDMwKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiwyNyBAQAogewogICAgIHJldHVybiBhLmRlZXBFcXVp
dmFsZW50KCkgPT0gYi5kZWVwRXF1aXZhbGVudCgpOwogfQorCitpbmxpbmUgYm9vbCBvcGVyYXRv
cjwoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBhLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGIpCit7
CisgICAgcmV0dXJuIGEuZGVlcEVxdWl2YWxlbnQoKSA8IGIuZGVlcEVxdWl2YWxlbnQoKTsKK30K
KworaW5saW5lIGJvb2wgb3BlcmF0b3I+KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYSwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBiKQoreworICAgIHJldHVybiBhLmRlZXBFcXVpdmFsZW50KCkgPiBi
LmRlZXBFcXVpdmFsZW50KCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPD0oY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBhLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGIpCit7CisgICAgcmV0dXJu
IGEuZGVlcEVxdWl2YWxlbnQoKSA8PSBiLmRlZXBFcXVpdmFsZW50KCk7Cit9CiAgCitpbmxpbmUg
Ym9vbCBvcGVyYXRvcj49KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYSwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBiKQoreworICAgIHJldHVybiBhLmRlZXBFcXVpdmFsZW50KCkgPj0gYi5kZWVwRXF1
aXZhbGVudCgpOworfQorCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgYSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBiKQogewogICAgIHJldHVybiAhKGEgPT0g
Yik7Cg==
</data>
<flag name="review"
          id="231420"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>