Handle mac trackpad zoom via GesturePinch events

Prior to this change, Mac handles pinch gestures directly in the UI layer (BrowserWindowController).  Here we instead have the RenderWidgetHost send GesturePinchUpdate events, and when those events go unhandled WebContentsImpl implements the browser zoom behavior (similar to how it does already for ctrl+mousewheel events on other platforms).

This lays the groundwork in the short term for giving the web page a chance to override the pinch behavior.  Longer term this will enable us to hook into the pinch-zoom codepath used for touchscreen so that we can get a similar effect (instead of just browser-zoom - which probably isn't really what the user wants when pinching).

The only observable behavior change in this CL is that pinching outside the content area (eg. in the tabstrip) no longer does anything.  It's not clear what the pinch origin should be in such a case, and it probably doesn't really make sense to try to handle it (pinching is supposed to zoom whatever is under the cursor).

This adds some basic unit test coverage for the pre-existing (but untested) logic for mapping pinch scales to zoom in/out actions.

Depends on blink CL: https://src.chromium.org/viewvc/blink?view=rev&revision=168482

BUG=289887

Review URL: https://codereview.chromium.org/181723006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260452 0039d316-1c4b-4281-b951-d872f2087c98
12 files changed