summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-12 00:20:34 +0000
committerwangxianzhu@chromium.org <wangxianzhu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-12 00:20:34 +0000
commitd28b8a30108e6dd5463e8ea182c78089da5a6e41 (patch)
tree3a89c48f730505dda37aa96d283cf87357cef808
parent5229bdbc653e73e08f53511e2544771dcc7bf493 (diff)
downloadchromium_src-d28b8a30108e6dd5463e8ea182c78089da5a6e41.zip
chromium_src-d28b8a30108e6dd5463e8ea182c78089da5a6e41.tar.gz
chromium_src-d28b8a30108e6dd5463e8ea182c78089da5a6e41.tar.bz2
Merge 205322 "Fix stack overflow in confirmTouchEvent()"
> Fix stack overflow in confirmTouchEvent() > > confirmTouchEvent() may be called synchronously before sendTouchEvent() > returns. In the PENDING_ACK_ORIGINAL_EVENT state of TouchEventTimeoutHandler, > the Java stack will overflow if confirmTouchEvent() is called synchronously. > > Set state before send the event. > > NOTRY=true > BUG=247683 > R=yusufo@chromium.org > TBR=tedchoc@chromium.org > > Review URL: https://chromiumcodereview.appspot.com/16739014 TBR=wangxianzhu@chromium.org Review URL: https://codereview.chromium.org/16347018 git-svn-id: svn://svn.chromium.org/chrome/branches/1500/src@205683 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/ContentViewGestureHandler.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewGestureHandler.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewGestureHandler.java
index 13919ec..42483bd 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewGestureHandler.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewGestureHandler.java
@@ -206,15 +206,15 @@ class ContentViewGestureHandler implements LongPressDelegate {
case PENDING_ACK_ORIGINAL_EVENT:
// The ACK to the original event is received after timeout.
// Inject a touchcancel event.
+ mPendingAckState = PENDING_ACK_CANCEL_EVENT;
mMotionEventDelegate.sendTouchEvent(mEventTime + TOUCH_EVENT_TIMEOUT,
TouchPoint.TOUCH_EVENT_TYPE_CANCEL, mTouchPoints);
mTouchPoints = null;
- mPendingAckState = PENDING_ACK_CANCEL_EVENT;
return true;
case PENDING_ACK_CANCEL_EVENT:
// The ACK to the injected touchcancel event is received.
- drainAllPendingEventsUntilNextDown();
mPendingAckState = PENDING_ACK_NONE;
+ drainAllPendingEventsUntilNextDown();
return true;
default:
assert false : "Never reached";