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