[text] TextInputContext implementation, wrapper for TextField implementation

This is the first of two or three changes that implement TextField for
input methods making changes to legacy InputMethodEditorClient text
fields. Once this proxy is complete, the next steps will be:

- Migrate latin-ime and any other input methods to use this new
  TextField interface, their edits still proxied to legacy text fields.
- Bring up a new default input method for physical keyboards, replacing
  the functionality previously hard-coded in Ime.
- Allow Flutter and other clients to implement a TextField and expose it
  to this service, connecting to any input methods.
- Migrate all legacy text fields to the new TextField API.
- Shut down the proxy when no InputMethodEditorClient users remain.

In this change:

- Added conversion from legacy TextInputState into new TextFieldState
- Added functions for creating and accessing TextPoints
- ImeService now also serves a discoverable TextInputContext service
- Ime now also optionally serves a TextField service for input methods,
  although it currently replies to all requests with BAD_REQUEST.
- Added support for running the standard TextField integration test
  suite on the TextField proxy implementation in Ime, although since
  that implementation is still a work in progress, this test is marked
  as `#[ignore]` for now.

Change-Id: Iec302a734c25b6e4daae8d467f9b0545f8361da1
7 files changed
tree: a6b760087e13ec3fdd18ca54d820e9eadca4294b
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. peridot/
  9. products/
  10. scripts/
  11. sdk/
  12. src/
  13. third_party/
  14. tools/
  15. zircon/
  16. .clang-format
  17. .dir-locals.el
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. AUTHORS
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.