tree: 02fa93e31e4a5a6ce56ee02d0344aab2797417e7 [path history] [tgz]
  1. BUILD.gn
  2. client_change.cc
  3. client_change.h
  4. client_change_tracker.cc
  5. client_change_tracker.h
  6. client_root.cc
  7. client_root.h
  8. DEPS
  9. drag_drop_delegate.cc
  10. drag_drop_delegate.h
  11. drag_drop_delegate_unittest.cc
  12. embedding.cc
  13. embedding.h
  14. embedding_unittest.cc
  15. event_test_utils.cc
  16. event_test_utils.h
  17. focus_handler.cc
  18. focus_handler.h
  19. focus_handler_unittest.cc
  20. gpu_interface_provider.h
  21. host_context_factory.cc
  22. host_context_factory.h
  23. ids.h
  24. OWNERS
  25. pointer_watcher.cc
  26. pointer_watcher.h
  27. README.md
  28. screen_provider.cc
  29. screen_provider.h
  30. screen_provider_unittest.cc
  31. server_window.cc
  32. server_window.h
  33. server_window_test_helper.cc
  34. server_window_test_helper.h
  35. test_change_tracker.cc
  36. test_change_tracker.h
  37. test_manifest.json
  38. test_window_service_delegate.cc
  39. test_window_service_delegate.h
  40. test_window_tree_client.cc
  41. test_window_tree_client.h
  42. user_activity_monitor.cc
  43. user_activity_monitor.h
  44. user_activity_monitor_unittest.cc
  45. window_delegate_impl.cc
  46. window_delegate_impl.h
  47. window_delegate_impl_unittest.cc
  48. window_properties.cc
  49. window_properties.h
  50. window_server_service_test_base.cc
  51. window_server_service_test_base.h
  52. window_server_test_impl.cc
  53. window_server_test_impl.h
  54. window_service.cc
  55. window_service.h
  56. window_service_delegate.cc
  57. window_service_delegate.h
  58. window_service_test_setup.cc
  59. window_service_test_setup.h
  60. window_service_unittest.cc
  61. window_tree.cc
  62. window_tree.h
  63. window_tree_binding.cc
  64. window_tree_binding.h
  65. window_tree_client_unittest.cc
  66. window_tree_factory.cc
  67. window_tree_factory.h
  68. window_tree_test_helper.cc
  69. window_tree_test_helper.h
  70. window_tree_unittest.cc
services/ui/ws2/README.md

This directory contains the code for building a Window Service implementation on top of an existing Aura hierarchy.

Each client is managed by an instance of WindowTree. In this directory, a client generally means a unique connection to the WindowService. More specifically a client is an implementation of mojom::WindowTreeClient. WindowTree implements the mojom::WindowTree implementation that is passed to the client. WindowTree creates a ClientRoot for the window the client is embedded in, as well as a ClientRoot for all top-level window requests.

Clients establish a connection to the WindowService by configuring Aura with a mode of MUS. See aura::Env::Mode for details.

The WindowService provides a way for one client to embed another client in a specific window (application composition). Embedding establishes a connection to a new client and provides the embedded client with a window to use. See the mojom for more details.

For example, on Chrome OS, Ash uses the WindowService to enable separate processes, such as the tap_visualizer, to connect to the WindowService. The tap_visualizer is a client of the WindowService. The tap_visualizer uses the WindowService to create and manage windows, receive events, and ultimately draw to the screen (using Viz). This is mostly seamless to the tap_visualizer. The tap_visualizer configures Views to use Mus, which results in Views and Aura, using the WindowService.