<?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>29249</bug_id>
          
          <creation_ts>2009-09-14 11:19:39 -0700</creation_ts>
          <short_desc>document.caretRangeFromPoint() should differentiate whether hit test on text node or non text related node</short_desc>
          <delta_ts>2013-05-10 07:28: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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>UNCONFIRMED</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Xiaomei Ji">xji</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cira</cc>
    
    <cc>hyatt</cc>
    
    <cc>jshin</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>147121</commentid>
    <comment_count>0</comment_count>
      <attachid>39557</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-09-14 11:19:39 -0700</bug_when>
    <thetext>Created attachment 39557
caretRangeFromPointInNonTextNode.html

In caretRangeFromPoint(), there is the following code:

    Node* node = result.innerNode();
    if (!node)
        return 0;


Since we do not check whether the &apos;node&apos; is a Text related node, there is a
possibility that a range is created even when the mouse is not pointed in the
text area.

Please open caretRangeFromPointInNonTextNode.html,
click mouse right before the first word &quot;type&quot;, in the range created by
caretRangeFromPoint(), the node is the Text node, the start/end offset is 0. 

click mouse several characters ahead of word &quot;type&quot; (the empty space in the
left of &quot;type&quot;), although the &apos;node&apos; is a HTMLBodyElement, but it has the
same visible position as the above, and the range created is the same as above.
Is this the correct behavior?

I think my assumption is that this function converts mouse position to the
character position within an element, so a null range should be returned if
click the empty spaces ahead of word &quot;type&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154673</commentid>
    <comment_count>1</comment_count>
      <attachid>41194</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-10-14 16:38:37 -0700</bug_when>
    <thetext>Created attachment 41194
behavior difference between Document.caretRangeFromPoint in webkit and event.rangeOffset in FireFox

1. open the attached page
2. mouse click right before the first word &quot;the&quot; in the list, the container node and offset in the range returned from caretRangeFromPoint() is the text node &quot;the first&quot;, and offset 0.
3. mouse click some where in the empty space around the bullet before &quot;the first&quot;.
caretRangeFromPoint() returns the same as the above.

By comparison, open the above page in Firefox and repeat the above steps, you will see the node and offset returned from event.rangeParent/rangeOffset in FireFox are different if click on the text node and the element node.

Does webkit have anyway to tell the difference?
Seems that none of document.caretRangeFromPoint(), event.target, and document.elementFromPoint() shows any difference in the above 2 clicks.

Should I apply for a new API for such differentiation?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>39557</attachid>
            <date>2009-09-14 11:19:39 -0700</date>
            <delta_ts>2009-10-20 10:34:08 -0700</delta_ts>
            <desc>caretRangeFromPointInNonTextNode.html</desc>
            <filename>nonTextNode.html</filename>
            <type>text/html</type>
            <size>1092</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">PEhUTUw+CjxIRUFEPgo8VElUTEU+ZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCgpIE1ldGhv
ZDwvVElUTEU+CjxzdHlsZT4KLnRhYi1jb250ZW50IHttYXJnaW4tbGVmdDoxODBweDt0ZXh0LWFs
aWduOmNlbnRlcjt9Cgo8L3N0eWxlPgo8U0NSSVBUIExBTkdVQUdFPSJKYXZhU2NyaXB0Ij4KZnVu
Y3Rpb24gc2hvd0VsZW1VbmRlcm5lYXRoV2l0aG91dFNjcm9sbCgpIHsKICAgIGRvY3VtZW50LmFs
bC5teVNwYW4uaW5uZXJUZXh0ID0gIiI7CiAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jYXJldFJh
bmdlRnJvbVBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpOwogICAgdmFyIG9mZnNl
dCA9IDA7CiAgICBpZiAocmFuZ2UpCiAgICAgIG9mZnNldCA9IHJhbmdlLnN0YXJ0T2Zmc2V0Owog
ICAgZWxzZSB7CiAgICAgIGFsZXJ0KCJyYW5nZSBpcyBudWxsIik7CiAgICAgIHJldHVybjsKICAg
IH0KCiAgICB2YXIgY2hpbGQgPSBldmVudC50YXJnZXQuZmlyc3RDaGlsZDsKICAgIHJhbmdlID0g
Y2hpbGQub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgcmFuZ2Uuc2VsZWN0Tm9kZShj
aGlsZCk7CiAgICB2YXIgc3RyID0gcmFuZ2UudG9TdHJpbmcoKTsKCiAgICBkb2N1bWVudC5hbGwu
bXlTcGFuLmlubmVyVGV4dCA9ICJ4OiAiICsgZXZlbnQuY2xpZW50WCArICI7eTogIiArIGV2ZW50
LmNsaWVudFkgKyAiOyBzdHJpbmc6ICIgKyByYW5nZS50b1N0cmluZygpICsgIjsgICBvZmZzZXQg
PSAiICsgb2Zmc2V0Owp9CmRvY3VtZW50Lm9uY2xpY2sgPSBzaG93RWxlbVVuZGVybmVhdGhXaXRo
b3V0U2Nyb2xsOwo8L1NDUklQVD4KPC9IRUFEPgo8Qk9EWT4KPEgxIElEPSJoZWFkZXIiPmRvY3Vt
ZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoKSBNZXRob2Q8L0gxPgo8ZGl2IGNsYXNzPSJ0YWItY29u
dGVudCI+CiAgPHA+dHlwZSBpbiB0aGUgYWRkcmVzcyBiYXIgYW5kIGdldCBzdWdnZXN0aW9ucyBm
b3IgYm90aCBzZWFyY2ggYW5kIHdlYiAgcGFnZXM8L3A+CjxCUj48QlI+UmVzdWx0OiA8U1BBTiBJ
RD0ibXlTcGFuIiBTVFlMRT0iZm9udC13ZWlnaHQ6Ym9sZCI+PC9TUEFOPiIuPC9QPgo8L0JPRFk+
CjwvSFRNTD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>41194</attachid>
            <date>2009-10-14 16:38:37 -0700</date>
            <delta_ts>2009-10-14 16:38:37 -0700</delta_ts>
            <desc>behavior difference between Document.caretRangeFromPoint in webkit and event.rangeOffset in FireFox</desc>
            <filename>ff_elem.html</filename>
            <type>text/html</type>
            <size>726</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">PEhUTUw+CjxIRUFEPgo8VElUTEU+ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCgpIE1ldGhvZDwv
VElUTEU+CjxTQ1JJUFQgTEFOR1VBR0U9IkphdmFTY3JpcHQiPgpmdW5jdGlvbiBzaG93RWxlbVVu
ZGVybmVhdGgoZXZlbnQpIHsKICAgIGlmIChldmVudC5yYW5nZU9mZnNldCkgewogICAgICAgIHZh
ciBub2RlID0gZXZlbnQucmFuZ2VQYXJlbnQ7CiAgICAgICAgdmFyIG9mZnNldCA9IGV2ZW50LnJh
bmdlT2Zmc2V0OwogICAgICAgIGFsZXJ0KCJub2RlVHlwZTogIiArIG5vZGUubm9kZVR5cGUgKyAi
OyBvZmZzZXQ6ICIgKyBvZmZzZXQpOwogICAgfSBlbHNlIGlmIChkb2N1bWVudC5jYXJldFJhbmdl
RnJvbVBvaW50KSB7CiAgICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Q
b2ludChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTsKICAgICAgICB2YXIgb2Zmc2V0ID0g
cmFuZ2Uuc3RhcnRPZmZzZXQ7CiAgICAgICAgdmFyIG5vZGUgPSByYW5nZS5zdGFydENvbnRhaW5l
cjsKICAgICAgICBhbGVydCgibm9kZVR5cGU6ICIgKyBub2RlLm5vZGVUeXBlICsgIjsgb2Zmc2V0
OiAiICsgb2Zmc2V0KTsKICAgIH0KfQpkb2N1bWVudC5vbmNsaWNrID0gc2hvd0VsZW1VbmRlcm5l
YXRoOwo8L1NDUklQVD4KPC9IRUFEPgo8Qk9EWT4KPHVpPgo8bGk+dGhlIGZpcnN0PC9saT4KPGxp
PnRoZSBzZWNvbmQ8L2xpPgo8L3VpPgo8L0JPRFk+CgoKCjwvSFRNTD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>