tree: acf4109715a286d373e873841c6f6fb8c3434cce [path history] [tgz]
  1. resources/
  2. tools/
  3. ui/
  4. actor_features.cc
  5. actor_features.h
  6. actor_keyed_service.cc
  7. actor_keyed_service.h
  8. actor_keyed_service_browsertest.cc
  9. actor_keyed_service_factory.cc
  10. actor_keyed_service_factory.h
  11. actor_keyed_service_fake.cc
  12. actor_keyed_service_fake.h
  13. actor_keyed_service_unittest.cc
  14. actor_metrics.cc
  15. actor_metrics.h
  16. actor_navigation_throttle.cc
  17. actor_navigation_throttle.h
  18. actor_policy_checker.cc
  19. actor_policy_checker.h
  20. actor_policy_checker_browsertest.cc
  21. actor_switches.cc
  22. actor_switches.h
  23. actor_tab_data.cc
  24. actor_tab_data.h
  25. actor_task.cc
  26. actor_task.h
  27. actor_task_delegate.h
  28. actor_task_metadata.cc
  29. actor_task_metadata.h
  30. actor_task_metadata_unittest.cc
  31. actor_test_util.cc
  32. actor_test_util.h
  33. aggregated_journal.cc
  34. aggregated_journal.h
  35. aggregated_journal_file_serializer.cc
  36. aggregated_journal_file_serializer.h
  37. aggregated_journal_in_memory_serializer.cc
  38. aggregated_journal_in_memory_serializer.h
  39. aggregated_journal_serializer.cc
  40. aggregated_journal_serializer.h
  41. aggregated_journal_unittest.cc
  42. browser_action_util.cc
  43. browser_action_util.h
  44. BUILD.gn
  45. DEPS
  46. DIR_METADATA
  47. execution_engine.cc
  48. execution_engine.h
  49. execution_engine_browsertest.cc
  50. execution_engine_origin_gating_browsertest.cc
  51. execution_engine_unittest.cc
  52. OWNERS
  53. README.md
  54. safety_list.cc
  55. safety_list.h
  56. safety_list_manager.cc
  57. safety_list_manager.h
  58. safety_list_manager_unittest.cc
  59. safety_list_unittest.cc
  60. shared_types.cc
  61. shared_types.h
  62. shared_types_unittest.cc
  63. site_policy.cc
  64. site_policy.h
  65. site_policy_browsertest.cc
  66. site_policy_unittest.cc
  67. tool_request_variant.cc
  68. tool_request_variant.h
chrome/browser/actor/README.md

Key classes

Below is a diagram that shows lifetime and ownership relations between some of the key classes in the actor component and the glic UI that they interact with.

The diagram is not exhaustive.

┌──────────────────────────┐ calls ┌────────────────────────────┐                                                                                                                   
│glic:GlicPageHandler      ┼───────►glic::GlicInstanceImpl      │                                                                                                                   
│1 per GLIC WebUI          │       │N per Profile               │                                                                                                                   
└──┬───────────────────────┘       └──┬─────────────────────────┘                                                                                                                   
   │owns                              │owns                                                                                                                                         
   │                                  │                                                                                                                                             
┌──▼───────────────────────┐       ┌──▼─────────────────────────┐calls  ┌───────────────────┐                                                                                       
│glic::GlicWebClientHandler│       │glic::GlicActorTaskManager  ┼───────►ActorKeyedService  │                                                                                       
│                          ◄─┐     │N per Profile               │     ┌─┐1 per Profile      │                                                                                       
└──┬───────────────────────┘ │calls└────────────────────────────┘     │ └┬┬─────────────────┘                              calls to delegate browser actions                        
   │owns and calls           └────────────────────────────────────────┼──┘│creates and                                    ┌──────────────────────────────────────┐                  
   │                                                                  │   │owns N_task                                    │                                      │                  
┌──▼───────────────────────┐                                          │ ┌─▼─────────────────┐owns 1  ┌────────────────────▼──┐owns 1┌───────────────────┐owns 1┌─┼─────────────────┐
│mojo::Remote<WebClient>   │                                          │ │ActorTask          ┼────────►ExecutionEngine,       ┼──────►ToolController     ┼──────►Tool               │
│Displays GLIC WebUI       │                                          │ │N_task per Profile │        │implements ToolDelegate│      │N_task per Profile │      │N_task per Profile │
└──────────────────────────┘                                          │ └─┬─────────────────┘        │                       │      └───────────────────┘      └─▲─────────────────┘
                                                                      │   │                          │N_task per Profile     ┼────┐                              │                  
                                                                      │   │owns 1                    └─┬──────────────────┬──┘    │owns N_request                │                  
                                                                      │   │                            │                  │       │                              │                  
                                                                      │ ┌─▼─────────────────┐ owns 1   │                  │       │ ┌───────────────────┐ creates│                  
                                                                      │ │UiEventDispatcher  ◄──────────┘                  │       └─►ToolRequest        ┼────────┘                  
                                                                      │ │2N_task per Profile│                             │         │N_task*N_request   │                           
                                                                      │ └─┬─────────────────┘                             │         │per Profile        │                           
                                                                      │   │calls                                          │         └───────────────────┘                           
                                                                owns 1│   │                                               │                                                         
                                                                      │ ┌─▼─────────────────┐                             │                                                         
                                                                      └─►ActorUiStateManager│                             │calls                                                    
                                                                        │1 per Profile      │                             │                                                         
                                                                        └─┬─────────────────┘                             │                                                         
                                                                          │calls                                          │                                                         
                                                                          │                                               │                                                         
                                                                          │                                               │                                                         
                                                                          │                                               │                                                         
                                                                        ┌─▼──────────────────┐       ┌────────────────────▼──┐                                                      
                                                                        │ActorUiTabController│       │General Chrome code    │                                                      
                                                                        │1 per Tab           │       │                       │                                                      
                                                                        └────────────────────┘       └───────────────────────┘                                                      

To edit the diagram, copy it into asciiflow.com.