tree: 95f829845244f15dd42f7d5be7ef3eddeac5b9f0 [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. virtual_keyboard_controller.cc
  30. virtual_keyboard_controller.h
  31. virtual_keyboard_coordinator.cc
  32. virtual_keyboard_coordinator.h
  33. virtual_keyboard_manager.cc
  34. 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.

CML file and integration tests

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

The production package //src/ui/bin/root_presenter:root_presenter includes meta/root_presenter.cml, which exists to serves routes related to scene ownership and virtual keyboard input.

Test packages should include //src/ui/bin/root_presenter:component_v2_for_test and launch it with fuchsia-pkg://fuchsia.com/<your-test-package>#meta/root_presenter.cm for tests which rely on Root Presenter's input functionality. This test-only Root Presenter provides the fuchsia.ui.input.InputDeviceRegistry capability on top of the production package in order to enable input ownership in Root Presenter.

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.cml, so that it is seen in both tests and production.