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.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96385
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-09-29 Fady Samuel <fsamuel@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 <abarth@webkit.org>
These tests can also time out.
--- /dev/null
+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]
--- /dev/null
+<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="data:text/html,<body bgcolor='green'></body>">
+ <frame src="data:text/html,<body bgcolor='green'></body>">
+ </frameset>
+</html>
--- /dev/null
+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]
--- /dev/null
+<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="data:text/html,<body bgcolor='green'></body>">
+ <frame src="data:text/html,<body bgcolor='green'></body>">
+ </frameset>
+</html>
+2011-09-29 Fady Samuel <fsamuel@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 <dpranke@chromium.org>
fix gyp warnings in chromium for renamed files
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;
}
} 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;