<?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>24252</bug_id>
          
          <creation_ts>2009-02-27 15:19:50 -0800</creation_ts>
          <short_desc>Assert when hit testing a 3d transform that is null</short_desc>
          <delta_ts>2009-03-02 11:49:59 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>f.tomalty</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111565</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-02-27 15:19:50 -0800</bug_when>
    <thetext>WebCore::TransformationMatrix::isInvertible() bombs out if you hit test a transform that doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111582</commentid>
    <comment_count>1</comment_count>
      <attachid>28108</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-02-27 16:49:19 -0800</bug_when>
    <thetext>Created attachment 28108
fix for crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111583</commentid>
    <comment_count>2</comment_count>
      <attachid>28108</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-27 16:54:50 -0800</bug_when>
    <thetext>Comment on attachment 28108
fix for crash

&gt; diff --git a/LayoutTests/transforms/no_transform_hit_testing-expected.txt b/LayoutTests/transforms/no_transform_hit_testing-expected.txt
&gt; new file mode 100644
&gt; index 0000000..57ff5af
&gt; --- /dev/null
&gt; +++ b/LayoutTests/transforms/no_transform_hit_testing-expected.txt
&gt; @@ -0,0 +1,5 @@
&gt; +Testing hittest on a layer with null transform
&gt; +
&gt; +https://bugs.webkit.org/show_bug.cgi?id=24252
&gt; +
&gt; +transformed elementdid not crash

Make that &quot;Did not crash, to test PASSED&quot;

&gt; diff --git a/LayoutTests/transforms/no_transform_hit_testing.html b/LayoutTests/transforms/no_transform_hit_testing.html

&gt; +  &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
&gt; +     if (window.layoutTestController) {
&gt; +       layoutTestController.dumpAsText();
&gt; +       layoutTestController.waitUntilDone();

I don&apos;t think this needs to wait if you run the test from onload. Also, I don&apos;t think it
needs to be a text test.

&gt; +     function runTest()
&gt; +     {
&gt; +       if (window.layoutTestController) {
&gt; +         eventSender.mouseMoveTo(100, 50);
&gt; +         eventSender.mouseDown();
&gt; +         eventSender.mouseUp();
&gt; +         eventSender.mouseDown();
&gt; +         eventSender.mouseUp();

Just call document.elementFromPoint(...) so it works in Safari too.

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index 9c59011..1a22d7a 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,3 +1,16 @@
&gt; +2009-02-27  Dean Jackson  &lt;dino@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Fix asserting when hit testing an element that
&gt; +        has no transform.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=24252

I think this needs to explain the crash. Something like:

&quot;renderer()-&gt;hasTransform() returns true for elements with perspective, but no transform,
 so test for transform when hit testing&quot;.

r=me wit those changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111585</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-02-27 17:08:17 -0800</bug_when>
    <thetext>New test used elementFromPoint and will work outside of test system

Committed r41309
	M	WebCore/ChangeLog
	M	WebCore/rendering/RenderLayer.cpp
	M	LayoutTests/ChangeLog
	A	LayoutTests/transforms/no_transform_hit_testing.html

next commit adds the file I forgot :(

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111587</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2009-02-27 17:13:38 -0800</bug_when>
    <thetext>Committed r41311
	A	LayoutTests/platform/mac/transforms/no_transform_hit_testing-expected.checksum
	A	LayoutTests/platform/mac/transforms/no_transform_hit_testing-expected.png
	M	LayoutTests/ChangeLog

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111776</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-01 20:03:56 -0800</bug_when>
    <thetext>*** Bug 24277 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28108</attachid>
            <date>2009-02-27 16:49:19 -0800</date>
            <delta_ts>2009-02-27 16:54:50 -0800</delta_ts>
            <desc>fix for crash</desc>
            <filename>crash.patch</filename>
            <type>text/plain</type>
            <size>4015</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NjgwYzg5Li43NmIyYjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDIt
MjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGZvciBjcmFzaCAtIHRyYW5zZm9y
bSBpcyBudWxsIGluIGhpdCB0ZXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDI1MgorCisgICAgICAgICogdHJhbnNmb3Jtcy9ub190cmFuc2Zv
cm1faGl0X3Rlc3RpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2Zvcm1z
L25vX3RyYW5zZm9ybV9oaXRfdGVzdGluZy5odG1sOiBBZGRlZC4KKwogMjAwOS0wMi0yNyAgRGF2
aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvbm9f
dHJhbnNmb3JtX2hpdF90ZXN0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zZm9y
bXMvbm9fdHJhbnNmb3JtX2hpdF90ZXN0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41N2ZmNWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy9ub190cmFuc2Zvcm1faGl0X3Rlc3RpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGVzdGluZyBoaXR0ZXN0IG9uIGEgbGF5ZXIgd2l0aCBudWxsIHRyYW5zZm9y
bQorCitodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQyNTIKKwordHJh
bnNmb3JtZWQgZWxlbWVudGRpZCBub3QgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Ry
YW5zZm9ybXMvbm9fdHJhbnNmb3JtX2hpdF90ZXN0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFu
c2Zvcm1zL25vX3RyYW5zZm9ybV9oaXRfdGVzdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmY4ZTliYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90
cmFuc2Zvcm1zL25vX3RyYW5zZm9ybV9oaXRfdGVzdGluZy5odG1sCkBAIC0wLDAgKzEsNTggQEAK
KzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKyAgPHRpdGxlPlRlc3RpbmcgaGl0dGVzdCBv
biBhIGxheWVyIHdpdGggbnVsbCB0cmFuc2Zvcm08L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgICN4IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgIHRvcDogODBweDsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB3aWR0aDogNDAw
cHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZjsK
KyAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDgwMDsKKyAgICB9CisKKyAgICAjeDpob3ZlciB7
CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmOworICAgIH0KKyAgICAKKyAgICAjcmVzdWx0
cyB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB0b3A6IDIwMHB4OworICAgIH0K
KyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0
Zi04Ij4KKyAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgIH0KKworICAgICBmdW5jdGlvbiBydW5UZXN0KCkK
KyAgICAgeworICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgNTApOworICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKKyAgICAgICB9CisKKyAgICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHRzIik7CisgICAgICAgcmVzdWx0cy5pbm5lclRleHQgPSAiZGlkIG5vdCBjcmFz
aCI7CisKKyAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICB9CisKKyAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgIDxoMT5UZXN0aW5nIGhpdHRl
c3Qgb24gYSBsYXllciB3aXRoIG51bGwgdHJhbnNmb3JtPC9oMT4KKyAgPHA+aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MjUyPC9wPgorCisgIDxwIGlkPSJ4Ij50cmFu
c2Zvcm1lZCBlbGVtZW50PC9wPgorICAKKyAgPHAgaWQ9InJlc3VsdHMiPmZhaWw8L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDljNTkwMTEuLjFhMjJkN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDItMjcg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBhc3NlcnRpbmcgd2hlbiBoaXQgdGVzdGluZyBh
biBlbGVtZW50IHRoYXQKKyAgICAgICAgaGFzIG5vIHRyYW5zZm9ybS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MjUyCisKKyAgICAgICAgVGVzdDog
dHJhbnNmb3Jtcy9ub190cmFuc2Zvcm1faGl0X3Rlc3RpbmcuaHRtbAorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpo
aXRUZXN0TGF5ZXIpOgorCiAyMDA5LTAyLTI3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggNTMwNDk4Ny4uODU1NTc2YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtMjA3OCw3ICsyMDc4LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVy
OjpoaXRUZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgY29uc3QgSGl0VGVzdFJlcXUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIGhp
dFRlc3RSZWN0LCBjb25zdCBJbnRQb2ludCYgaGl0VGVzdFBvaW50LCBib29sIGFwcGxpZWRUcmFu
c2Zvcm0pCiB7CiAgICAgLy8gQXBwbHkgYSB0cmFuc2Zvcm0gaWYgd2UgaGF2ZSBvbmUuCi0gICAg
aWYgKHJlbmRlcmVyKCktPmhhc1RyYW5zZm9ybSgpICYmICFhcHBsaWVkVHJhbnNmb3JtKSB7Cisg
ICAgaWYgKHRyYW5zZm9ybSgpICYmICFhcHBsaWVkVHJhbnNmb3JtKSB7CiAgICAgICAgIC8vIElm
IHRoZSB0cmFuc2Zvcm0gY2FuJ3QgYmUgaW52ZXJ0ZWQsIHRoZW4gZG9uJ3QgaGl0IHRlc3QgdGhp
cyBsYXllciBhdCBhbGwuCiAgICAgICAgIGlmICghbV90cmFuc2Zvcm0tPmlzSW52ZXJ0aWJsZSgp
KQogICAgICAgICAgICAgcmV0dXJuIDA7Cg==
</data>
<flag name="review"
          id="13719"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>