tree: 860ff8b30e847ac2466b1952b072a40f67c45308 [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. client_window.cc
  9. client_window.h
  10. client_window_test_helper.cc
  11. client_window_test_helper.h
  12. DEPS
  13. embedding.cc
  14. embedding.h
  15. embedding_unittest.cc
  16. event_test_utils.cc
  17. event_test_utils.h
  18. focus_handler.cc
  19. focus_handler.h
  20. focus_handler_unittest.cc
  21. gpu_support.h
  22. ids.h
  23. OWNERS
  24. pointer_watcher.cc
  25. pointer_watcher.h
  26. README.md
  27. screen_provider.cc
  28. screen_provider.h
  29. screen_provider_unittest.cc
  30. test_change_tracker.cc
  31. test_change_tracker.h
  32. test_manifest.json
  33. test_window_service_delegate.cc
  34. test_window_service_delegate.h
  35. test_window_tree_client.cc
  36. test_window_tree_client.h
  37. window_delegate_impl.cc
  38. window_delegate_impl.h
  39. window_host_frame_sink_client.cc
  40. window_host_frame_sink_client.h
  41. window_server_service_test_base.cc
  42. window_server_service_test_base.h
  43. window_service.cc
  44. window_service.h
  45. window_service_client.cc
  46. window_service_client.h
  47. window_service_client_binding.cc
  48. window_service_client_binding.h
  49. window_service_client_test_helper.cc
  50. window_service_client_test_helper.h
  51. window_service_client_unittest.cc
  52. window_service_delegate.h
  53. window_service_test_setup.cc
  54. window_service_test_setup.h
  55. window_tree_client_unittest.cc
  56. window_tree_factory.cc
  57. window_tree_factory.h
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 WindowServiceClient. In this directory, a client generally means a unique connection to the WindowService. More specifically a client is an implementation of mojom::WindowTreeClient. WindowServiceClient implements the mojom::WindowTree implementation that is passed to the client. WindowServiceClient 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.