chromium/chrome/browser/ui/tabs/public/tab_features.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_TABS_PUBLIC_TAB_FEATURES_H_
#define CHROME_BROWSER_UI_TABS_PUBLIC_TAB_FEATURES_H_

#include <memory>
#include <vector>

#include "base/callback_list.h"
#include "base/functional/callback.h"
#include "base/memory/weak_ptr.h"

class ChromeAutofillPredictionImprovementsClient;
class DipsNavigationFlowDetectorWrapper;
class FedCmAccountSelectionViewController;
class LensOverlayController;
class Profile;
class ReadAnythingSidePanelController;
class SidePanelRegistry;

namespace commerce {
class CommerceUiTabHelper;
}

namespace content {
class WebContents;
}  // namespace content

namespace customize_chrome {
class SidePanelController;
}

namespace permissions {
class PermissionIndicatorsTabData;
}

namespace enterprise_data_protection {
class DataProtectionNavigationController;
}

namespace user_annotations {
class UserAnnotationsWebContentsObserver;
}  // namespace user_annotations

namespace privacy_sandbox {
class PrivacySandboxTabObserver;
}  // namespace privacy_sandbox

namespace tabs {

class TabInterface;

// This class owns the core controllers for features that are scoped to a given
// tab. It can be subclassed by tests to perform dependency injection.
class TabFeatures {};

}  // namespace tabs

#endif  // CHROME_BROWSER_UI_TABS_PUBLIC_TAB_FEATURES_H_