<?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>34239</bug_id>
          
          <creation_ts>2010-01-27 20:09:45 -0800</creation_ts>
          <short_desc>Implement CSSOM Range.getClientRects for collapsed selections</short_desc>
          <delta_ts>2011-06-10 14:16:48 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>1</everconfirmed>
          <reporter name="Julie Parent">jparent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>michael.vm</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185319</commentid>
    <comment_count>0</comment_count>
    <who name="Julie Parent">jparent</who>
    <bug_when>2010-01-27 20:09:45 -0800</bug_when>
    <thetext>The spec used to say to return null when the endpoints were the same, but now has been updated to handle this case.  See http://www.w3.org/TR/2009/WD-cssom-view-20090804/#extensions-to-the-range-interface for full details.

Example: http://www.plexode.com/cgi-bin/eval3.py#ht=%3Cdiv%20contentEditable%3E%3Cdiv%20id%3D&apos;bar&apos;%3Efooo%3C%2Fdiv%3E%3C%2Fdiv%3E&amp;ohh=1&amp;ohj=1&amp;jt=var%20bar%20%3D%20gebi(&apos;bar&apos;)%3B%0Avar%20range%20%3D%20document.createRange()%3B%0Arange.setStart(bar.firstChild%2C%200)%3B%0Arange.setEnd(bar.firstChild%2C%200)%3B%0A%0Avar%20rects%20%3D%20range.getClientRects()%3B%0Avar%20rect%20%3D%20rects.item(0)%3B%0A%0Aalert(&apos;top%3A%20&apos;%20%2B%20rect.top%20%2B%20&apos;%20bottom%3A%20&apos;%20%2Brect.bottom%20%2B%20&apos;%20left%3A%20&apos;%20%2B%20rect.left%20%2B%20&apos;%20right%3A%20&apos;%20%2B%20rect.right%20%2B%20&apos;%20width%3A%20&apos;%20%2Brect.width%20%2B%20&apos;%20height%3A%20&apos;%20%2B%20rect.height)%3B&amp;ojh=1&amp;ojj=0&amp;ms=100&amp;oth=0&amp;otj=0&amp;cex=1

WebKit returns null, Firefox 3.7a returns a rect with width = 0 and height = line height (and appropriate top, left, right, bottom values as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185751</commentid>
    <comment_count>1</comment_count>
      <attachid>47682</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-01-28 23:09:11 -0800</bug_when>
    <thetext>Created attachment 47682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186259</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-01-31 16:54:56 -0800</bug_when>
    <thetext>Committed r54117: &lt;http://trac.webkit.org/changeset/54117&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418899</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-10 14:11:06 -0700</bug_when>
    <thetext>Why did this alter the behavior of absoluteQuadsForRange() but not absoluteRectsForRange()? Now one uses !isEmpty(), and the other uses if (r.height()), which is inconsistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418907</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-10 14:16:48 -0700</bug_when>
    <thetext>Bug 62478 exists for that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47682</attachid>
            <date>2010-01-28 23:09:11 -0800</date>
            <delta_ts>2010-01-29 09:36:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34239-20100128230910.patch</filename>
            <type>text/plain</type>
            <size>5755</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OWM2ZjUwLi5mODk0MTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEt
MjggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQ1NTT00gUmFuZ2UuZ2V0Q2xp
ZW50UmVjdHMgZm9yIGNvbGxhcHNlZCBzZWxlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIzOQorCisgICAgICAgIEFkZHMgdHdvIGNhc2Vz
IHRvIGdldENsaWVudFJlY3RzIHRlc3QuIAorCisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvZ2V0
Q2xpZW50UmVjdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL2dldENs
aWVudFJlY3RzLmh0bWw6CisKIDIwMTAtMDEtMjggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGdu
c0Bnbm9tZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGEwOGEyY2YuLmEwMjhjY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0cy1leHBlY3RlZC50eHQKQEAgLTE4Niw2ICsxODYs
MTggQEAgUEFTUyByZWN0c1szXS5sZWZ0IGlzIDc2CiBQQVNTIHJlY3RzWzNdLnRvcCBpcyAxNzU1
CiBQQVNTIHJlY3RzWzNdLndpZHRoIGlzIDIxMgogUEFTUyByZWN0c1szXS5oZWlnaHQgaXMgMjQ3
CitUZXN0IDkKK0ZBSUwgcmVjdHMubGVuZ3RoIHNob3VsZCBiZSAxLiBXYXMgMC4KK0ZBSUwgcmVj
dHNbMF0ubGVmdCBzaG91bGQgYmUgOC4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmVzdWx0
IG9mIGV4cHJlc3Npb24gJ3JlY3RzWzBdJyBbdW5kZWZpbmVkXSBpcyBub3QgYW4gb2JqZWN0Lgor
RkFJTCByZWN0c1swXS50b3Agc2hvdWxkIGJlIDE5MDMuIFRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFJlc3VsdCBvZiBleHByZXNzaW9uICdyZWN0c1swXScgW3VuZGVmaW5lZF0gaXMgbm90IGFu
IG9iamVjdC4KK0ZBSUwgcmVjdHNbMF0ud2lkdGggc2hvdWxkIGJlIDAuIFRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFJlc3VsdCBvZiBleHByZXNzaW9uICdyZWN0c1swXScgW3VuZGVmaW5lZF0g
aXMgbm90IGFuIG9iamVjdC4KK0ZBSUwgcmVjdHNbMF0uaGVpZ2h0IHNob3VsZCBiZSAxOC4gVGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmVzdWx0IG9mIGV4cHJlc3Npb24gJ3JlY3RzWzBdJyBb
dW5kZWZpbmVkXSBpcyBub3QgYW4gb2JqZWN0LgorVGVzdCA5YgorUEFTUyByZWN0cy5sZW5ndGgg
aXMgMQorUEFTUyByZWN0c1swXS5sZWZ0IGlzIDgKK1BBU1MgcmVjdHNbMF0udG9wIGlzIDE5MDMK
K1BBU1MgcmVjdHNbMF0ud2lkdGggaXMgMAorUEFTUyByZWN0c1swXS5oZWlnaHQgaXMgMTgKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50UmVjdHMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2dldENsaWVudFJlY3RzLmh0bWwKaW5kZXggZDZkZTNmMy4u
YWYxMDRmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Q2xpZW50
UmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRDbGllbnRSZWN0
cy5odG1sCkBAIC02OSw2ICs2OSwxMCBAQAogCiA8ZGl2IGNsYXNzPSJib3giIGlkPSJ0ZXN0OCI+
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFn
bmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRh
dGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2Vx
dWF0LjwvZGl2PgogCis8YnI+PGJyPgorCis8ZGl2IGNsYXNzPSJib3giIGlkPSJ0ZXN0OSI+TG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNl
ZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEg
YWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlv
biB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0
LjwvZGl2PgorCiA8L2Rpdj4KIAogPHNjcmlwdD4KQEAgLTMzOSw2ICszNDMsMjkgQEAKICAgICBz
aG91bGRCZSgicmVjdHNbM10ud2lkdGgiLCAiMjEyIik7CiAgICAgc2hvdWxkQmUoInJlY3RzWzNd
LmhlaWdodCIsICIyNDciKTsKIAorICAgIGRlYnVnKCJUZXN0IDkiKTsKKyAgICB2YXIgcmFuZ2U5
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICAvLyBUaGlzIGNhc2Ugc2hvdWxkIG1hdGNo
IHRlc3QgOWIncyByZXN1bHRzLiBDdXJyZW50bHkgdGhvdWdoIGdldENsaWVudFJlY3RzIHJldHVy
bnMgYW4gZW1wdHkgbGlzdC4KKyAgICByYW5nZTkuc2V0U3RhcnQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q5JyksIDApOworICAgIHNob3cocmFuZ2U5KTsKKyAgICByZWN0cyA9IHJhbmdl
OS5nZXRDbGllbnRSZWN0cygpOworICAgIHNob3VsZEJlKCJyZWN0cy5sZW5ndGgiLCAiMSIpOwor
ICAgIHNob3VsZEJlKCJyZWN0c1swXS5sZWZ0IiwgIjgiKTsKKyAgICBzaG91bGRCZSgicmVjdHNb
MF0udG9wIiwgIjE5MDMiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMF0ud2lkdGgiLCAiMCIpOwor
ICAgIHNob3VsZEJlKCJyZWN0c1swXS5oZWlnaHQiLCAiMTgiKTsKKworICAgIGRlYnVnKCJUZXN0
IDliIik7CisgICAgdmFyIHJhbmdlOSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgcmFu
Z2U5LnNldFN0YXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OScpLmZpcnN0Q2hpbGQs
IDApOworICAgIHNob3cocmFuZ2U5KTsKKyAgICByZWN0cyA9IHJhbmdlOS5nZXRDbGllbnRSZWN0
cygpOworICAgIHNob3VsZEJlKCJyZWN0cy5sZW5ndGgiLCAiMSIpOworICAgIHNob3VsZEJlKCJy
ZWN0c1swXS5sZWZ0IiwgIjgiKTsKKyAgICBzaG91bGRCZSgicmVjdHNbMF0udG9wIiwgIjE5MDMi
KTsKKyAgICBzaG91bGRCZSgicmVjdHNbMF0ud2lkdGgiLCAiMCIpOworICAgIHNob3VsZEJlKCJy
ZWN0c1swXS5oZWlnaHQiLCAiMTgiKTsKKwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICAgICAgdmFyIGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dEFyZWEnKTsKICAgICAgICAgYXJlYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGFyZWEpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MGIx
ZDYyLi42NmM3NTEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTAxLTI4ICBPamFuIFZhZmFpICA8b2ph
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50IENTU09NIFJhbmdlLmdldENsaWVudFJlY3RzIGZvciBjb2xsYXBz
ZWQgc2VsZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQyMzkKKworICAgICAgICBXaGVuIGdldHRpbmcgdGhlIHF1YWRzIGZvciBhIHJhbmdl
IG9uIGEgdGV4dCBub2RlLCBhbGxvdyByZXR1cm5pbmcKKyAgICAgICAgemVybyB3aWR0aCBxdWFk
cy4gVGhpcyBsZWF2ZXMgdGhlIGNhc2Ugb2YgY29sbGFwc2VkIHNlbGVjdGlvbnMgaW5zaWRlCisg
ICAgICAgIGVsZW1lbnRzIHN0aWxsIG5vdCBmaXhlZCwgYnV0IG5vIHdvcnNlLgorCisgICAgICAg
ICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
VGV4dEJveDo6c2VsZWN0aW9uUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdl
KToKKwogMjAxMC0wMS0yOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwCmluZGV4IDIzNGJiMTguLmI3ZTZkZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgSW50UmVjdCBJbmxpbmVUZXh0Qm94OjpzZWxlY3Rp
b25SZWN0KGludCB0eCwgaW50IHR5LCBpbnQgc3RhcnRQb3MsIGludCBlbmRQb3MpCiAgICAgaW50
IHNQb3MgPSBtYXgoc3RhcnRQb3MgLSBtX3N0YXJ0LCAwKTsKICAgICBpbnQgZVBvcyA9IG1pbihl
bmRQb3MgLSBtX3N0YXJ0LCAoaW50KW1fbGVuKTsKICAgICAKLSAgICBpZiAoc1BvcyA+PSBlUG9z
KQorICAgIGlmIChzUG9zID4gZVBvcykKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAogICAg
IFJlbmRlclRleHQqIHRleHRPYmogPSB0ZXh0UmVuZGVyZXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAKaW5kZXggMTVlYTQ5Ni4uMmU2OTZhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAK
QEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmFic29sdXRlUXVhZHNGb3JSYW5n
ZShWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMsIHVuc2lnbmVkIHN0YXJ0LAogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgdW5zaWduZWQgcmVhbEVuZCA9IG1pbihib3gtPmVuZCgpICsgMSwg
ZW5kKTsKICAgICAgICAgICAgIEludFJlY3QgciA9IGJveC0+c2VsZWN0aW9uUmVjdCgwLCAwLCBz
dGFydCwgcmVhbEVuZCk7Ci0gICAgICAgICAgICBpZiAoIXIuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICBpZiAoci5oZWlnaHQoKSkgewogICAgICAgICAgICAgICAgIGlmICghdXNlU2VsZWN0aW9u
SGVpZ2h0KSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIGNoYW5nZSB0aGUgaGVpZ2h0IGFuZCB5
IHBvc2l0aW9uIGJlY2F1c2Ugc2VsZWN0aW9uUmVjdCB1c2VzIHNlbGVjdGlvbi1zcGVjaWZpYyB2
YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgci5zZXRIZWlnaHQoYm94LT5oZWlnaHQoKSk7Cg==
</data>
<flag name="review"
          id="30194"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>