#include "chrome/browser/ui/performance_controls/performance_intervention_button_controller.h"
#include "base/check.h"
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/time/time.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/feature_engagement/tracker_factory.h"
#include "chrome/browser/performance_manager/public/user_tuning/performance_detection_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/performance_controls/performance_controls_metrics.h"
#include "chrome/browser/ui/performance_controls/performance_intervention_button_controller_delegate.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "components/feature_engagement/public/feature_constants.h"
#include "components/feature_engagement/public/tracker.h"
#include "components/performance_manager/public/features.h"
#include "components/performance_manager/public/resource_attribution/page_context.h"
#include "components/performance_manager/public/user_tuning/prefs.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/web_contents.h"
PerformanceInterventionButtonController::
PerformanceInterventionButtonController(
PerformanceInterventionButtonControllerDelegate* delegate,
Browser* browser)
: … { … }
PerformanceInterventionButtonController::
~PerformanceInterventionButtonController() { … }
void PerformanceInterventionButtonController::OnActionableTabListChanged(
PerformanceDetectionManager::ResourceType type,
PerformanceDetectionManager::ActionableTabsResult result) { … }
void PerformanceInterventionButtonController::OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change,
const TabStripSelectionChange& selection) { … }
void PerformanceInterventionButtonController::OnBubbleShown() { … }
void PerformanceInterventionButtonController::OnBubbleHidden() { … }
void PerformanceInterventionButtonController::OnDeactivateButtonClicked() { … }
void PerformanceInterventionButtonController::HideToolbarButton() { … }
void PerformanceInterventionButtonController::MaybeShowUi(
PerformanceDetectionManager::ResourceType type,
const PerformanceDetectionManager::ActionableTabsResult& result) { … }
bool PerformanceInterventionButtonController::ContainsNonLastActiveProfile(
const PerformanceDetectionManager::ActionableTabsResult& result) { … }