tree: 4d00f6d8789d1a48c1f5fee3a8de7890809481e8 [path history] [tgz]
  1. ad_frame_voter.cc
  2. ad_frame_voter.h
  3. ad_frame_voter_unittest.cc
  4. boosting_vote_aggregator.cc
  5. boosting_vote_aggregator.h
  6. boosting_vote_aggregator_unittest.cc
  7. execution_context_priority.cc
  8. execution_context_priority_decorator.cc
  9. execution_context_priority_decorator.h
  10. execution_context_priority_unittest.cc
  11. frame_audible_voter.cc
  12. frame_audible_voter.h
  13. frame_audible_voter_unittest.cc
  14. frame_capturing_media_stream_voter.cc
  15. frame_capturing_media_stream_voter.h
  16. frame_capturing_media_stream_voter_unittest.cc
  17. frame_visibility_voter.cc
  18. frame_visibility_voter.h
  19. frame_visibility_voter_unittest.cc
  20. inherit_client_priority_voter.cc
  21. inherit_client_priority_voter.h
  22. inherit_client_priority_voter_unittest.cc
  23. inherit_parent_priority_voter.cc
  24. inherit_parent_priority_voter.h
  25. inherit_parent_priority_voter_unittest.cc
  26. loading_page_voter.cc
  27. loading_page_voter.h
  28. loading_page_voter_unittest.cc
  29. max_vote_aggregator.cc
  30. max_vote_aggregator.h
  31. max_vote_aggregator_unittest.cc
  32. override_vote_aggregator.cc
  33. override_vote_aggregator.h
  34. override_vote_aggregator_unittest.cc
  35. README.md
  36. root_vote_observer.cc
  37. root_vote_observer.h
  38. root_vote_observer_unittest.cc
  39. voter_base.h
components/performance_manager/execution_context_priority/README.md

The ExecutionContextPriorityDecorator is responsible for assigning the priority of all the frames and workers in the graph.

This is done through a system of voting where each voter can increase the priority of an execution context independently, and the vote with the highest priority determines which priority the given frame or worker will be assigned.

The RootVoteObserver is a simple layer on top of the voting system that receives the final vote for an execution context and does the actual assignment to the graph node.

Each voter tracks a single property of an execution context and casts their vote via their voting channel to the MaxVoteAggregator. An example is the FrameAudibleVoter class.

It is possible to cast a “negative” vote which can reduce the priority of an execution context by overriding the vote of all the other voters. An example is the AdFrameVoter class.

In addition, there is a BoostingVoteAggregator, which introduces the notion of BoostingVotes. They ensure that an execution context's priority is always equal or higher than the priority of another execution context, by casting a vote with a matching priority. An example is the ChildFrameBooster class.