tree: d5eb9705120be22ebe2825cf8265a6669664a938 [path history] [tgz]
  1. displays/
  2. meta/
  3. tests/
  4. app.cc
  5. app.h
  6. BUILD.gn
  7. color_transform_handler.cc
  8. color_transform_handler.h
  9. constants.cc
  10. constants.h
  11. factory_reset_manager.cc
  12. factory_reset_manager.h
  13. focus_dispatcher.cc
  14. focus_dispatcher.h
  15. focus_listener.h
  16. inspect.cc
  17. inspect.h
  18. main.cc
  19. media_buttons_handler.cc
  20. media_buttons_handler.h
  21. media_retriever.cc
  22. media_retriever.h
  23. OWNERS
  24. presentation.cc
  25. presentation.h
  26. README.md
  27. safe_presenter.cc
  28. safe_presenter.h
  29. services.config
  30. virtual_keyboard_controller.cc
  31. virtual_keyboard_controller.h
  32. virtual_keyboard_coordinator.cc
  33. virtual_keyboard_coordinator.h
  34. virtual_keyboard_manager.cc
  35. virtual_keyboard_manager.h
src/ui/bin/root_presenter/README.md

Root Presenter

This component is being deprecated, with:

  • Input Pipeline managing input device lifecycle and lower-level input event dispatch, and
  • Scene Manager) creating the root of the global scene graph and connecting root-level Views by clients such as Sys UI.

Once the above features in root presenter are replaced, this component still provides virtual keyboard functionality.

Please reach out to the OWNERS to coordinate any intended work related to this component and its current or future responsibilities.

Usage

This program is a server, and so is not started directly. See the present_view tool.

CMX file and integration tests

Note that the meta/ directory has two CMX files. One is for production, the other for tests.

The production package //src/ui/bin/root_presenter:root_presenter includes meta/root_presenter.cmx, which exists to enable access to the input device files in /dev/class/input-report. The regular content is pulled in from meta/root_presenter_base.cmx.

Test packages should include //src/ui/bin/root_presenter:component_v1_for_test and launch it with fuchsia-pkg://fuchsia.com/<your-test-package>#meta/root_presenter.cmx. This test-only Root Presenter omits the driver access. Generally, test packages should include their own copy of a component to ensure hermeticity with respect to package loading semantics.

Integration tests don't require access to the device files, because (1) input injection occurs at a different protocol in Root Presenter, and (2) exposure to the actual device files is a flake liability for these tests.

During regular maintenance, when adding a new service dependency, add it to meta/root_presenter_base.cmx, so that it is seen in both tests and production.