Break out Chromoting plugin's cursor & mouse-lock handling.
This CL breaks cursor & mouse-lock handling out of PepperInputHandler:
- PepperCursorSetter is added to set the native PPAPI cursor.
Callers may provide an alternate stub to delegate to if the PPAPI cursor
cannot be set; ChromotingInstance uses this for oversized cursor rendering.
- EmptyCursorFilter is added to normalize transparent cursors to (0x0).
- PepperMouseLocker is added, to handle mouse-lock mode.
This hooks into the cursor pipeline in order to detect (non)empty cursor
shapes and engage mouse-lock accordingly, and to control whether any cursor
is rendered locally.
- ChromotingInstance is updated to handle rceived cursors via these helpers,
so that it need only directly handle delegated oversized cursors itself.
BUG=138108, 429322
Review URL: https://codereview.chromium.org/
695583005
Cr-Commit-Position: refs/heads/master@{#305463}