blob: 694b824ee243c29f3c9cf7abd5dbf7463288fb8a [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_POLICY_MODEL_MANAGEMENT_STATUS_PROVIDERS_IOS_H_
#define IOS_CHROME_BROWSER_POLICY_MODEL_MANAGEMENT_STATUS_PROVIDERS_IOS_H_
#import "base/memory/raw_ptr.h"
#import "components/policy/core/common/management/management_service.h"
class ProfileIOS;
// TODO (crbug.com/1238355): Add unit tests for this file.
namespace policy {
class BrowserCloudManagementStatusProvider final
: public policy::ManagementStatusProvider {
public:
BrowserCloudManagementStatusProvider();
~BrowserCloudManagementStatusProvider() final;
protected:
// ManagementStatusProvider:
policy::EnterpriseManagementAuthority FetchAuthority() final;
};
class LocalBrowserManagementStatusProvider final
: public policy::ManagementStatusProvider {
public:
LocalBrowserManagementStatusProvider();
~LocalBrowserManagementStatusProvider() final;
protected:
// ManagementStatusProvider:
policy::EnterpriseManagementAuthority FetchAuthority() final;
};
class LocalDomainBrowserManagementStatusProvider final
: public policy::ManagementStatusProvider {
public:
LocalDomainBrowserManagementStatusProvider();
~LocalDomainBrowserManagementStatusProvider() final;
protected:
// ManagementStatusProvider:
policy::EnterpriseManagementAuthority FetchAuthority() final;
};
class ProfileCloudManagementStatusProvider final
: public policy::ManagementStatusProvider {
public:
explicit ProfileCloudManagementStatusProvider(ProfileIOS* profile);
~ProfileCloudManagementStatusProvider() final;
protected:
// ManagementStatusProvider:
policy::EnterpriseManagementAuthority FetchAuthority() final;
private:
raw_ptr<ProfileIOS> profile_;
};
class LocalTestPolicyUserManagementProvider final
: public policy::ManagementStatusProvider {
public:
explicit LocalTestPolicyUserManagementProvider(ProfileIOS* profile);
~LocalTestPolicyUserManagementProvider() final;
protected:
// ManagementStatusProvider:
policy::EnterpriseManagementAuthority FetchAuthority() final;
private:
raw_ptr<ProfileIOS> profile_;
};
class LocalTestPolicyBrowserManagementProvider final
: public policy::ManagementStatusProvider {
public:
explicit LocalTestPolicyBrowserManagementProvider(ProfileIOS* profile);
~LocalTestPolicyBrowserManagementProvider() final;
protected:
// ManagementStatusProvider:
policy::EnterpriseManagementAuthority FetchAuthority() final;
private:
raw_ptr<ProfileIOS> profile_;
};
} // namespace policy
#endif // IOS_CHROME_BROWSER_POLICY_MODEL_MANAGEMENT_STATUS_PROVIDERS_IOS_H_