Title: [96385] trunk
Revision
96385
Author
fsam...@chromium.org
Date
2011-09-29 21:44:39 -0700 (Thu, 29 Sep 2011)

Log Message

Fixed Hit testing on Framesets when Frameset is transformed
https://bugs.webkit.org/show_bug.cgi?id=67740

Reviewed by Simon Fraser.

Source/WebCore:

Tests: fast/frames/frame-set-rotation-hit.html
       fast/frames/frame-set-scaling-hit.html

* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::userResize):

LayoutTests:

* fast/frames/frame-set-rotation-hit-expected.png: Added.
* fast/frames/frame-set-rotation-hit-expected.txt: Added.
* fast/frames/frame-set-rotation-hit.html: Added.
* fast/frames/frame-set-scaling-hit-expected.png: Added.
* fast/frames/frame-set-scaling-hit-expected.txt: Added.
* fast/frames/frame-set-scaling-hit.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (96384 => 96385)


--- trunk/LayoutTests/ChangeLog	2011-09-30 04:11:39 UTC (rev 96384)
+++ trunk/LayoutTests/ChangeLog	2011-09-30 04:44:39 UTC (rev 96385)
@@ -1,3 +1,17 @@
+2011-09-29  Fady Samuel  <fsam...@chromium.org>
+
+        Fixed Hit testing on Framesets when Frameset is transformed
+        https://bugs.webkit.org/show_bug.cgi?id=67740
+
+        Reviewed by Simon Fraser.
+
+        * fast/frames/frame-set-rotation-hit-expected.png: Added.
+        * fast/frames/frame-set-rotation-hit-expected.txt: Added.
+        * fast/frames/frame-set-rotation-hit.html: Added.
+        * fast/frames/frame-set-scaling-hit-expected.png: Added.
+        * fast/frames/frame-set-scaling-hit-expected.txt: Added.
+        * fast/frames/frame-set-scaling-hit.html: Added.
+
 2011-09-29  Adam Barth  <aba...@webkit.org>
 
         These tests can also time out.

Added: trunk/LayoutTests/fast/frames/frame-set-rotation-hit-expected.png (0 => 96385)


--- trunk/LayoutTests/fast/frames/frame-set-rotation-hit-expected.png	                        (rev 0)
+++ trunk/LayoutTests/fast/frames/frame-set-rotation-hit-expected.png	2011-09-30 04:44:39 UTC (rev 96385)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksumc20b9f727459283b9e5294af68ec05f0zl+X
+\xF5IDATx\x9C\xED\xDA\xC1m\xC30\xC10p	*'\xBD\xAEB*ƽ1
+\xF8d,@ɞ\xA9\xE0\x9D>ǜ\xF3\xE7|\xC6c\xAC\x9E_m\xDE\xCFx\xAE\xE2w\xF5\x80O#\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b\xB7\xD5^{\xFE=WOx\xD3Ik۶\xD5\xDEt\xD2\xC0:\x8Ec\xF5\xF8j\xFB\xBE\xAF\x9Epacιz\xC3\xE31VO\x80\xAF6\xEFg\xBCW\xE1\x93;@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@L`\xC4@l\xCC9Wo\xF8(^\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b\xFF3\x94(\xBB\x92IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt (0 => 96385)


--- trunk/LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt	2011-09-30 04:44:39 UTC (rev 96385)
@@ -0,0 +1,18 @@
+layer at (0,0) size 800x800
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderFrameSet {FRAMESET} at (0,0) size 800x600 [bgcolor=#FF0000]
+    RenderFrame {FRAME} at (0,0) size 398x600
+      layer at (0,0) size 398x600
+        RenderView at (0,0) size 398x600
+      layer at (0,0) size 398x600
+        RenderBlock {HTML} at (0,0) size 398x600
+          RenderBody {BODY} at (8,8) size 382x584 [bgcolor=#008000]
+    RenderFrame {FRAME} at (404,0) size 396x600
+      layer at (0,0) size 396x600
+        RenderView at (0,0) size 396x600
+      layer at (0,0) size 396x600
+        RenderBlock {HTML} at (0,0) size 396x600
+          RenderBody {BODY} at (8,8) size 380x584 [bgcolor=#008000]

Added: trunk/LayoutTests/fast/frames/frame-set-rotation-hit.html (0 => 96385)


--- trunk/LayoutTests/fast/frames/frame-set-rotation-hit.html	                        (rev 0)
+++ trunk/LayoutTests/fast/frames/frame-set-rotation-hit.html	2011-09-30 04:44:39 UTC (rev 96385)
@@ -0,0 +1,25 @@
+<html>
+  <head>
+    <title>FrameSet Rotation Hit Test</title>
+
+    <script>
+        function init() {
+            if (!window.eventSender)
+                return;
+            // Scale the page and resize the frames to verify hit testing on the frameset
+            eventSender.scalePageBy(0.5, 0, 0);
+            var leftPanelWidth = window.innerWidth / 8;
+            eventSender.mouseMoveTo(window.innerWidth / 4, leftPanelWidth);
+            eventSender.mouseDown();
+            eventSender.mouseMoveTo(window.innerWidth / 4, 2 * leftPanelWidth);
+            eventSender.mouseUp();
+        }
+        window._onload_ = init;
+    </script>
+  </head>
+  <!--rotate the frameset and translate it to make sure the entire frameset is visible after scaling-->
+  <frameset style="background-color: red; -webkit-transform: rotate(90deg) translate(100px, 0px);" cols="25%,75%">
+    <frame src="" bgcolor='green'></body>">
+    <frame src="" bgcolor='green'></body>">
+  </frameset>
+</html>

Added: trunk/LayoutTests/fast/frames/frame-set-scaling-hit-expected.png (0 => 96385)


--- trunk/LayoutTests/fast/frames/frame-set-scaling-hit-expected.png	                        (rev 0)
+++ trunk/LayoutTests/fast/frames/frame-set-scaling-hit-expected.png	2011-09-30 04:44:39 UTC (rev 96385)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum7dc241f5e4cf90913251e5e2525378bb\xA13tD
+\xCCIDATx\x9C\xED\xD8A
+\xC30\xC1\xA4\xFC)\x99bk`\x98L\xB0\xB9\xFAX\xC9R4\x83\xE0\x9E\xAB;\x8F\xEB\x80\xD6\xFD\xB9\xC7s\xCE\xF9\x9E\xBB\xB7\xF0(\xEB\xBBvO\xF8\xCBk\xF7\x80\xA7X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81;\xD7Z\xBB7<\x8A &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b \xF6\xA8\xA1\xA9\xAC\xEF\xC3\xCBIEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt (0 => 96385)


--- trunk/LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt	2011-09-30 04:44:39 UTC (rev 96385)
@@ -0,0 +1,17 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderFrameSet {FRAMESET} at (0,0) size 800x600 [bgcolor=#FF0000]
+      RenderFrame {FRAME} at (0,0) size 398x600
+        layer at (0,0) size 398x600
+          RenderView at (0,0) size 398x600
+        layer at (0,0) size 398x600
+          RenderBlock {HTML} at (0,0) size 398x600
+            RenderBody {BODY} at (8,8) size 382x584 [bgcolor=#008000]
+      RenderFrame {FRAME} at (404,0) size 396x600
+        layer at (0,0) size 396x600
+          RenderView at (0,0) size 396x600
+        layer at (0,0) size 396x600
+          RenderBlock {HTML} at (0,0) size 396x600
+            RenderBody {BODY} at (8,8) size 380x584 [bgcolor=#008000]

Added: trunk/LayoutTests/fast/frames/frame-set-scaling-hit.html (0 => 96385)


--- trunk/LayoutTests/fast/frames/frame-set-scaling-hit.html	                        (rev 0)
+++ trunk/LayoutTests/fast/frames/frame-set-scaling-hit.html	2011-09-30 04:44:39 UTC (rev 96385)
@@ -0,0 +1,24 @@
+<html>
+  <head>
+    <title>Frame Scale Hit Test</title>
+
+    <script>
+        function init() {
+            if (!window.eventSender)
+                return;
+            // Scale the page and resize the frames to verify hit testing on the frameset
+            var leftPanelWidth = window.innerWidth / 8;
+            eventSender.scalePageBy(0.5, 0, 0);
+            eventSender.mouseMoveTo(leftPanelWidth, window.innerHeight / 4);
+            eventSender.mouseDown();
+            eventSender.mouseMoveTo(2 * leftPanelWidth, window.innerHeight / 4);
+            eventSender.mouseUp();
+        }
+        window._onload_ = init;
+    </script>
+  </head>
+  <frameset style="background-color: red; -webkit-transform-origin: 0% 0%;" cols="25%,75%">
+    <frame src="" bgcolor='green'></body>">
+    <frame src="" bgcolor='green'></body>">
+  </frameset>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (96384 => 96385)


--- trunk/Source/WebCore/ChangeLog	2011-09-30 04:11:39 UTC (rev 96384)
+++ trunk/Source/WebCore/ChangeLog	2011-09-30 04:44:39 UTC (rev 96385)
@@ -1,3 +1,16 @@
+2011-09-29  Fady Samuel  <fsam...@chromium.org>
+
+        Fixed Hit testing on Framesets when Frameset is transformed
+        https://bugs.webkit.org/show_bug.cgi?id=67740
+
+        Reviewed by Simon Fraser.
+
+        Tests: fast/frames/frame-set-rotation-hit.html
+               fast/frames/frame-set-scaling-hit.html
+
+        * rendering/RenderFrameSet.cpp:
+        (WebCore::RenderFrameSet::userResize):
+
 2011-09-29  Dirk Pranke  <dpra...@chromium.org>
 
         fix gyp warnings in chromium for renamed files

Modified: trunk/Source/WebCore/rendering/RenderFrameSet.cpp (96384 => 96385)


--- trunk/Source/WebCore/rendering/RenderFrameSet.cpp	2011-09-30 04:11:39 UTC (rev 96384)
+++ trunk/Source/WebCore/rendering/RenderFrameSet.cpp	2011-09-30 04:44:39 UTC (rev 96385)
@@ -699,9 +699,9 @@
         if (needsLayout())
             return false;
         if (evt->type() == eventNames().mousedownEvent && evt->button() == LeftButton) {
-            FloatPoint pos = localToAbsolute();
-            startResizing(m_cols, evt->absoluteLocation().x() - pos.x());
-            startResizing(m_rows, evt->absoluteLocation().y() - pos.y());
+            FloatPoint localPos = absoluteToLocal(evt->absoluteLocation(), false, true);
+            startResizing(m_cols, localPos.x());
+            startResizing(m_rows, localPos.y());
             if (m_cols.m_splitBeingResized != noSplit || m_rows.m_splitBeingResized != noSplit) {
                 setIsResizing(true);
                 return true;
@@ -709,9 +709,9 @@
         }
     } else {
         if (evt->type() == eventNames().mousemoveEvent || (evt->type() == eventNames().mouseupEvent && evt->button() == LeftButton)) {
-            FloatPoint pos = localToAbsolute();
-            continueResizing(m_cols, evt->absoluteLocation().x() - pos.x());
-            continueResizing(m_rows, evt->absoluteLocation().y() - pos.y());
+            FloatPoint localPos = absoluteToLocal(evt->absoluteLocation(), false, true);
+            continueResizing(m_cols, localPos.x());
+            continueResizing(m_rows, localPos.y());
             if (evt->type() == eventNames().mouseupEvent && evt->button() == LeftButton) {
                 setIsResizing(false);
                 return true;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to