Rewrite the WebView touch to support Flash.
When a page is loaded, Flash won't be the touch target.
This is ensured by another CL in external/webkit. When
user taps or uses nav key to make the Flash to be the
document focused node, it will take all the touch
events without time out. If Flash didn't call prevent
default, these touch events will be reprocessed by
the Browser. For double tap and long press, Browser
needs to detect and generate them for Flash.
While Flash is in full screen mode, it will take all
the touch events. If Flash doesn't consume them, they
won't be reprocessed by the Browser. Browser does need
to detect and generate the special events like double
tap and long press for full screen Flash.
Here are changes made for JavaScript touch events.
1. preventDefault on touchMove works now. If the author
calls preventDefault on touchStart, UI will not handle
this touch sequence. If the author didn't call preventDefault
on touchStart, it can call preventDefault on the first
touchMove to prevent UI from panning the page. We
currently do not support alternating preventDefault
during touchMove.
2. The first touchMove is only sent when the movement
is more than the system slop. There was a bug introduced by
https://android-git.corp.google.com/g/#change,42848
where the touch events are not sent to WebCore if
preventDefault is called. This is fixed now.
3. Move sending TOUCH_EVENT to WebCore into each state.
So if user stops a fling and continue drag, it won't
send the touch_down as we are in drag mode.
4. Remove event time as Adobe doesn't need it any more
Fix http://b/issue?id=2438503
Fix http://b/issue?id=2478701
Fix http://b/issue?id=2390587
2 files changed