// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_PERFORMANCE_MANAGER_EXECUTION_CONTEXT_PRIORITY_FRAME_VISIBILITY_VOTER_H_ #define COMPONENTS_PERFORMANCE_MANAGER_EXECUTION_CONTEXT_PRIORITY_FRAME_VISIBILITY_VOTER_H_ #include "components/performance_manager/execution_context_priority/voter_base.h" #include "components/performance_manager/graph/initializing_frame_node_observer.h" #include "components/performance_manager/public/execution_context_priority/execution_context_priority.h" namespace performance_manager { namespace execution_context_priority { // This voter tracks frame nodes and casts a vote for each of them, whose value // depends on their visibility. A visible frame will receive a // TaskPriority::USER_BLOCKING vote, while a non-visible frame will receive a // TaskPriority::LOWEST vote. // Note: Uses `InitializingFrameNodeObserver` because it can affect the initial // priority of a frame. class FrameVisibilityVoter : public VoterBase, public InitializingFrameNodeObserver { … }; } // namespace execution_context_priority } // namespace performance_manager #endif // COMPONENTS_PERFORMANCE_MANAGER_EXECUTION_CONTEXT_PRIORITY_FRAME_VISIBILITY_VOTER_H_