Modified: trunk/Source/WebKit/chromium/ChangeLog (140595 => 140596)
--- trunk/Source/WebKit/chromium/ChangeLog 2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/ChangeLog 2013-01-23 22:31:21 UTC (rev 140596)
@@ -1,3 +1,21 @@
+2013-01-23 Tien-Ren Chen <[email protected]>
+
+ Partially revert 104427, change WebWidgetClient::didHandleGestureEvent semantics.
+ https://bugs.webkit.org/show_bug.cgi?id=107605
+
+ Reviewed by Darin Fisher.
+
+ Per discussion in https://codereview.chromium.org/11473027/ we decided
+ not to introduce an enum to WebWidgetClient::didHandleGestureEvent().
+ Instead, change the semantics of the bool flag to indicate whether the
+ gesture event is cancelled for disambiguation.
+
+ * public/WebWidgetClient.h:
+ (WebKit::WebWidgetClient::didHandleGestureEvent):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::handleGestureEvent):
+ * tests/WebViewTest.cpp:
+
2013-01-23 Mark Pilgrim <[email protected]>
[Chromium] Remove WebArrayBufferView and WebSerializedScriptValue from chromium/public/platform/
Modified: trunk/Source/WebKit/chromium/public/WebWidgetClient.h (140595 => 140596)
--- trunk/Source/WebKit/chromium/public/WebWidgetClient.h 2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/public/WebWidgetClient.h 2013-01-23 22:31:21 UTC (rev 140596)
@@ -168,13 +168,7 @@
virtual bool isPointerLocked() { return false; }
// Called when a gesture event is handled.
- enum EventStatus {
- EventStatusUnprocessed,
- EventStatusProcessed,
- EventStatusCancelled
- };
- virtual void didHandleGestureEvent(const WebGestureEvent& event, EventStatus) { }
- virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventSwallowed) { } // deprecated
+ virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled) { }
protected:
~WebWidgetClient() { }
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (140595 => 140596)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2013-01-23 22:31:21 UTC (rev 140596)
@@ -695,7 +695,8 @@
#if ENABLE(GESTURE_EVENTS)
bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event)
{
- WebWidgetClient::EventStatus eventStatus = WebWidgetClient::EventStatusUnprocessed;
+ bool eventSwallowed = false;
+ bool eventCancelled = false; // for disambiguation
// Handle link highlighting outside the main switch to avoid getting lost in the
// complicated set of cases handled below.
@@ -729,7 +730,7 @@
OwnPtr<WebGestureCurve> flingCurve = adoptPtr(Platform::current()->createFlingAnimationCurve(event.sourceDevice, WebFloatPoint(event.data.flingStart.velocityX, event.data.flingStart.velocityY), WebSize()));
m_gestureAnimation = WebActiveGestureAnimation::createAtAnimationStart(flingCurve.release(), this);
scheduleAnimation();
- eventStatus = WebWidgetClient::EventStatusProcessed;
+ eventSwallowed = true;
break;
}
case WebInputEvent::GestureFlingCancel:
@@ -737,13 +738,13 @@
m_gestureAnimation.clear();
if (m_layerTreeView)
m_layerTreeView->didStopFlinging();
- eventStatus = WebWidgetClient::EventStatusProcessed;
+ eventSwallowed = true;
}
break;
case WebInputEvent::GestureTap: {
m_client->cancelScheduledContentIntents();
if (detectContentOnTouch(WebPoint(event.x, event.y))) {
- eventStatus = WebWidgetClient::EventStatusProcessed;
+ eventSwallowed = true;
break;
}
@@ -759,13 +760,14 @@
// FIXME: replace touch adjustment code when numberOfGoodTargets == 1?
// Single candidate case is currently handled by: https://bugs.webkit.org/show_bug.cgi?id=85101
if (goodTargets.size() >= 2 && m_client && m_client->didTapMultipleTargets(event, goodTargets)) {
- eventStatus = WebWidgetClient::EventStatusCancelled;
+ eventSwallowed = true;
+ eventCancelled = true;
break;
}
}
PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
- eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+ eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
if (m_selectPopup && m_selectPopup == selectPopup) {
// That tap triggered a select popup which is the same as the one that
@@ -787,7 +789,7 @@
m_page->contextMenuController()->clearContextMenu();
m_contextMenuAllowed = true;
PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
- eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+ eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
m_contextMenuAllowed = false;
break;
@@ -795,14 +797,14 @@
case WebInputEvent::GestureTapDown: {
m_client->cancelScheduledContentIntents();
PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
- eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+ eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
break;
}
case WebInputEvent::GestureDoubleTap:
if (m_webSettings->doubleTapToZoomEnabled() && m_minimumPageScaleFactor != m_maximumPageScaleFactor) {
m_client->cancelScheduledContentIntents();
animateZoomAroundPoint(WebPoint(event.x, event.y), DoubleTap);
- eventStatus = WebWidgetClient::EventStatusProcessed;
+ eventSwallowed = true;
break;
}
case WebInputEvent::GestureScrollBegin:
@@ -814,14 +816,14 @@
case WebInputEvent::GesturePinchEnd:
case WebInputEvent::GesturePinchUpdate: {
PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
- eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+ eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
break;
}
default:
ASSERT_NOT_REACHED();
}
- m_client->didHandleGestureEvent(event, eventStatus);
- return eventStatus != WebWidgetClient::EventStatusUnprocessed;
+ m_client->didHandleGestureEvent(event, eventCancelled);
+ return eventSwallowed;
}
void WebViewImpl::transferActiveWheelFlingAnimation(const WebActiveWheelFlingParameters& parameters)
Modified: trunk/Source/WebKit/chromium/tests/WebViewTest.cpp (140595 => 140596)
--- trunk/Source/WebKit/chromium/tests/WebViewTest.cpp 2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/tests/WebViewTest.cpp 2013-01-23 22:31:21 UTC (rev 140596)
@@ -123,7 +123,7 @@
class TapHandlingWebViewClient : public WebViewClient {
public:
// WebViewClient methods
- virtual void didHandleGestureEvent(const WebGestureEvent& event, EventStatus eventStatus)
+ virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled)
{
if (event.type == WebInputEvent::GestureTap) {
m_tapX = event.x;