Support InputMethodManager#updateCursorAnchorInfo for Android 5.0
This is the 6th part of the series of CLs to enable
InputMethodManager#updateCursorAnchorInfo support for Android 5.0.
- part1 crrev.com/671503005
- part2 crrev.com/679223002
- part3 crrev.com/755853004
- part4 crrev.com/784503002
- part5 crrev.com/757233003
It enables the feature under a flag, with one possible optimization
chance (dynamic subscription) not yet implemented.
This is based on yukawa@'s original CL (http://crrev.com/699333003),
and adds accommodation with recent changes on coordinate systems
in Chromium trunk. It also adds a few comments on coordinate systems
so that the intention of the code become clearer.
This CL consists of the following 3 parts,
1. Adds CursorAnchorInfoController as the central place to control
when and how CursorAnchorInfo object should be built and sent to the IME.
2. Adds tests for CursorAnchorInfoController.
3. Modifies renderer_widget_host_view_android and ContentViewCore to
wire necessary parameters to CursorAnchorInfoController.
Design Doc: https://docs.google.com/a/chromium.org/document/d/1KdnoynGURrJBP1vDHcv2jwUdnsXHzRSxb5v4rK7UgtU/view
BUG=424866
TEST=Manually done on Nexus 6 Build/MMB29S, Nexus 4 Build/LMY48T
TEST=build/android/test_runner.py instrumentation --release \
--test-apk=ContentShellTest -f '*CursorAnchorInfoControllerTest*'
TEST=build/android/test_runner.py instrumentation --release \
--test-apk=ContentShellTest -f '*ImeLollipopTest*'
Review URL: https://codereview.chromium.org/1589953005
Cr-Commit-Position: refs/heads/master@{#380504}
16 files changed