From 3318b7982f6bc8d1b9d9a97b9ea51cf3ac7f75b2 Mon Sep 17 00:00:00 2001 From: "fsamuel@chromium.org" Date: Fri, 30 Sep 2011 04:44:39 +0000 Subject: [PATCH] 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. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96385 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 14 ++++++++++++ .../frames/frame-set-rotation-hit-expected.png | Bin 0 -> 2915 bytes .../frames/frame-set-rotation-hit-expected.txt | 18 +++++++++++++++ .../fast/frames/frame-set-rotation-hit.html | 25 +++++++++++++++++++++ .../fast/frames/frame-set-scaling-hit-expected.png | Bin 0 -> 2874 bytes .../fast/frames/frame-set-scaling-hit-expected.txt | 17 ++++++++++++++ LayoutTests/fast/frames/frame-set-scaling-hit.html | 24 ++++++++++++++++++++ Source/WebCore/ChangeLog | 13 +++++++++++ Source/WebCore/rendering/RenderFrameSet.cpp | 12 +++++----- 9 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 LayoutTests/fast/frames/frame-set-rotation-hit-expected.png create mode 100644 LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt create mode 100644 LayoutTests/fast/frames/frame-set-rotation-hit.html create mode 100644 LayoutTests/fast/frames/frame-set-scaling-hit-expected.png create mode 100644 LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt create mode 100644 LayoutTests/fast/frames/frame-set-scaling-hit.html diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index 41cebf3..f81f4a5 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,17 @@ +2011-09-29 Fady Samuel + + 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 These tests can also time out. diff --git a/LayoutTests/fast/frames/frame-set-rotation-hit-expected.png b/LayoutTests/fast/frames/frame-set-rotation-hit-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..947f4366b7e0e687b5115a725102b4331aa16870 GIT binary patch literal 2915 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i0*Z)=h^hlA%@Ws$lH`okVLN3{tOHimpz%YZ*RLQ%)oH3Pv67C5dLtoHG_js0wco_7O_#rXdsNH z1iIvcoHLf;`3wv{G~(z~M2uF-qb-xsRvBh4_-{N#Qe!t8%Oqf{nZeW5&t;ucLK6U` Cz#fMH literal 0 HcmV?d00001 diff --git a/LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt b/LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt new file mode 100644 index 0000000..cb69b45 --- /dev/null +++ b/LayoutTests/fast/frames/frame-set-rotation-hit-expected.txt @@ -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] diff --git a/LayoutTests/fast/frames/frame-set-rotation-hit.html b/LayoutTests/fast/frames/frame-set-rotation-hit.html new file mode 100644 index 0000000..b19774d --- /dev/null +++ b/LayoutTests/fast/frames/frame-set-rotation-hit.html @@ -0,0 +1,25 @@ + + + FrameSet Rotation Hit Test + + + + + + + + + diff --git a/LayoutTests/fast/frames/frame-set-scaling-hit-expected.png b/LayoutTests/fast/frames/frame-set-scaling-hit-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..e5429cf5420cc2e9e450c1eacadbb38759a757fa GIT binary patch literal 2874 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i0*Z)=h^hlA%@Ws$lH`okvJ+^SDIuxu5fPZ~vh2dUu&W!;jP1 z-x(MhmJ3EOFc>znG6)EdGDZVoG$oAYg3(++bS|*I9<|$?fx)JWotr^HZ36>C64NMS oG!RBp!e}lS%>^Xof^W<#7V@uL^ZxK@U}KoU)78&qol`;+0PhdP_5c6? literal 0 HcmV?d00001 diff --git a/LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt b/LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt new file mode 100644 index 0000000..a408087 --- /dev/null +++ b/LayoutTests/fast/frames/frame-set-scaling-hit-expected.txt @@ -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] diff --git a/LayoutTests/fast/frames/frame-set-scaling-hit.html b/LayoutTests/fast/frames/frame-set-scaling-hit.html new file mode 100644 index 0000000..33bceab --- /dev/null +++ b/LayoutTests/fast/frames/frame-set-scaling-hit.html @@ -0,0 +1,24 @@ + + + Frame Scale Hit Test + + + + + + + + diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index e7f8019..72897a9 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,16 @@ +2011-09-29 Fady Samuel + + 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 fix gyp warnings in chromium for renamed files diff --git a/Source/WebCore/rendering/RenderFrameSet.cpp b/Source/WebCore/rendering/RenderFrameSet.cpp index 01c1af5..ee0e7bb 100644 --- a/Source/WebCore/rendering/RenderFrameSet.cpp +++ b/Source/WebCore/rendering/RenderFrameSet.cpp @@ -699,9 +699,9 @@ bool RenderFrameSet::userResize(MouseEvent* evt) 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 @@ bool RenderFrameSet::userResize(MouseEvent* evt) } } 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; -- 2.7.4