Bookmarks WebUI: Add touch support for drag and drop in Bookmark Manager

This CLs differentiates when a drag event starts from a mouse vs touch,
and then signals the appropriate APIs. The front-end also now sends the
point at which the drag started so that the drag image can appear
immediately above the pointer, as opposed to the previous implementation
that revealed the drag image at the top left of the window. This is
especially important for when the drag starts with a long press touch
as the drag image indicates to the user that they can now drag the
bookmark.

We also now send GetContentNativeView instead of GetTopLevelNativeWindow
as that is where the touch event begins, allowing the GestureRecognizer
to properly transfer the touch_ids and transfer the consumer from the
Content's View to the drag and drop tracker. Without this, once the drag
event begins, the browser freezes and does not seem to recognize any
incoming gestures, touches, or other events.

Bug: 729861
Change-Id: If82eaac6ba32f98c2deb250721208aa353e1aebc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1642273
Commit-Queue: John Lee <johntlee@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: calamity <calamity@chromium.org>
Cr-Commit-Position: refs/heads/master@{#671064}
9 files changed