#include "chrome/browser/ui/tabs/public/tab_features.h"
#include "base/feature_list.h"
#include "base/memory/ptr_util.h"
#include "base/no_destructor.h"
#include "chrome/browser/autofill_prediction_improvements/chrome_autofill_prediction_improvements_client.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/browsing_topics/browsing_topics_service_factory.h"
#include "chrome/browser/commerce/shopping_service_factory.h"
#include "chrome/browser/dips/dips_navigation_flow_detector_wrapper.h"
#include "chrome/browser/enterprise/data_protection/data_protection_navigation_controller.h"
#include "chrome/browser/image_fetcher/image_fetcher_service_factory.h"
#include "chrome/browser/privacy_sandbox/privacy_sandbox_tab_observer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_key.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/browser/sync/sync_service_factory.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h"
#include "chrome/browser/ui/lens/lens_overlay_controller.h"
#include "chrome/browser/ui/tabs/tab_model.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/tabs/tab_strip_model_delegate.h"
#include "chrome/browser/ui/views/side_panel/customize_chrome/side_panel_controller_views.h"
#include "chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.h"
#include "chrome/browser/ui/views/side_panel/read_anything/read_anything_side_panel_controller.h"
#include "chrome/browser/ui/views/webid/fedcm_account_selection_view_controller.h"
#include "chrome/browser/user_annotations/user_annotations_web_contents_observer.h"
#include "components/browsing_topics/browsing_topics_service.h"
#include "components/image_fetcher/core/image_fetcher_service.h"
#include "components/permissions/permission_indicators_tab_data.h"
#include "extensions/common/extension_features.h"
namespace tabs {
namespace {
TabFeatures::TabFeaturesFactory& GetFactory() { … }
}
std::unique_ptr<TabFeatures> TabFeatures::CreateTabFeatures() { … }
TabFeatures::~TabFeatures() = default;
void TabFeatures::ReplaceTabFeaturesForTesting(TabFeaturesFactory factory) { … }
void TabFeatures::Init(TabInterface& tab, Profile* profile) { … }
TabFeatures::TabFeatures() = default;
std::unique_ptr<LensOverlayController> TabFeatures::CreateLensController(
TabInterface* tab,
Profile* profile) { … }
std::unique_ptr<commerce::CommerceUiTabHelper>
TabFeatures::CreateCommerceUiTabHelper(content::WebContents* web_contents,
Profile* profile) { … }
void TabFeatures::WillDiscardContents(tabs::TabInterface* tab,
content::WebContents* old_contents,
content::WebContents* new_contents) { … }
}