From c90baeb7927827c7e8b50cf44c6c687e117c4017 Mon Sep 17 00:00:00 2001 From: "apavlov@chromium.org" Date: Wed, 8 Feb 2012 11:13:03 +0000 Subject: [PATCH] Web Inspector: Touch event emulation fails for iframes https://bugs.webkit.org/show_bug.cgi?id=77987 Reviewed by Pavel Feldman. Source/WebCore: Test: fast/events/touch/emulated-touch-iframe.html * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseReleaseEvent): LayoutTests: * fast/events/touch/emulated-touch-iframe-expected.txt: Added. * fast/events/touch/emulated-touch-iframe.html: Added. * fast/events/touch/resources/emulated-touch-iframe2.html: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@107062 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 11 +++++++ .../touch/emulated-touch-iframe-expected.txt | 5 +++ .../fast/events/touch/emulated-touch-iframe.html | 38 ++++++++++++++++++++++ .../touch/resources/emulated-touch-iframe2.html | 9 +++++ Source/WebCore/ChangeLog | 12 +++++++ Source/WebCore/page/EventHandler.cpp | 14 ++++---- 6 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 LayoutTests/fast/events/touch/emulated-touch-iframe-expected.txt create mode 100644 LayoutTests/fast/events/touch/emulated-touch-iframe.html create mode 100644 LayoutTests/fast/events/touch/resources/emulated-touch-iframe2.html diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index 413265a..562335d 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,14 @@ +2012-02-08 Alexander Pavlov + + Web Inspector: Touch event emulation fails for iframes + https://bugs.webkit.org/show_bug.cgi?id=77987 + + Reviewed by Pavel Feldman. + + * fast/events/touch/emulated-touch-iframe-expected.txt: Added. + * fast/events/touch/emulated-touch-iframe.html: Added. + * fast/events/touch/resources/emulated-touch-iframe2.html: Added. + 2012-02-08 Nikolas Zimmermann [Qt] REGRESSION(r106918): It made svg/zoom/page/zoom-foreignObject.svg crash with Qt5-WK1 diff --git a/LayoutTests/fast/events/touch/emulated-touch-iframe-expected.txt b/LayoutTests/fast/events/touch/emulated-touch-iframe-expected.txt new file mode 100644 index 0000000..d2f4a03 --- /dev/null +++ b/LayoutTests/fast/events/touch/emulated-touch-iframe-expected.txt @@ -0,0 +1,5 @@ + +Test touchend events are emulated in iframes correctly. + +Final touchend (test will time out if broken) + diff --git a/LayoutTests/fast/events/touch/emulated-touch-iframe.html b/LayoutTests/fast/events/touch/emulated-touch-iframe.html new file mode 100644 index 0000000..8cb82f1 --- /dev/null +++ b/LayoutTests/fast/events/touch/emulated-touch-iframe.html @@ -0,0 +1,38 @@ + + + + +

Test touchend events are emulated in iframes correctly.

+
+ + + diff --git a/LayoutTests/fast/events/touch/resources/emulated-touch-iframe2.html b/LayoutTests/fast/events/touch/resources/emulated-touch-iframe2.html new file mode 100644 index 0000000..a4027e3 --- /dev/null +++ b/LayoutTests/fast/events/touch/resources/emulated-touch-iframe2.html @@ -0,0 +1,9 @@ + + +
+ + + diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 34c7716..38cd2c2 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,15 @@ +2012-02-08 Alexander Pavlov + + Web Inspector: Touch event emulation fails for iframes + https://bugs.webkit.org/show_bug.cgi?id=77987 + + Reviewed by Pavel Feldman. + + Test: fast/events/touch/emulated-touch-iframe.html + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMouseReleaseEvent): + 2012-02-08 Andreas Kling StyledElement: Manully setNeedsStyleRecalc() after adding CSSProperties directly. diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp index e30b42d..9acfc54 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp @@ -807,12 +807,6 @@ bool EventHandler::handleMouseUp(const MouseEventWithHitTestResults& event) bool EventHandler::handleMouseReleaseEvent(const MouseEventWithHitTestResults& event) { -#if ENABLE(TOUCH_EVENTS) - bool defaultPrevented = dispatchSyntheticTouchEventIfEnabled(event.event()); - if (defaultPrevented) - return true; -#endif - if (m_autoscrollInProgress) stopAutoscrollTimer(); @@ -1787,7 +1781,13 @@ void EventHandler::invalidateClick() bool EventHandler::handleMouseReleaseEvent(const PlatformMouseEvent& mouseEvent) { RefPtr protector(m_frame->view()); - + +#if ENABLE(TOUCH_EVENTS) + bool defaultPrevented = dispatchSyntheticTouchEventIfEnabled(mouseEvent); + if (defaultPrevented) + return true; +#endif + UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); #if ENABLE(PAN_SCROLLING) -- 2.7.4