Automatic deployment of the virtual keyboard. For now we hide this under the flag: auto-virtual-keyboard.

This patch makes the controller a input device observer, instead of a shell observer. It records the presence of internal keyboards, external keyboard, and touchscreens. When the flag is enabled, the keyboard will not be shown if there does not exist a touchscreen device. The keyboard will be shown if the user is in maximized mode, or does not have an internal keyboard present.

BUG=373402
TEST=VirtualKeyboardControllerAutoTest.DisabledIfInternalKeyboardPresent, VirtualKeyboardControllerAutoTest.DisabledIfNoTouchScreen

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

Cr-Commit-Position: refs/heads/master@{#301977}
14 files changed