blob: 9213999f8f770f2defbf51c66cdb4c7294346bf9 [file] [log] [blame]
// 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 IOS_CHROME_BROWSER_POLICY_MODEL_POLICY_CONVERSIONS_CLIENT_IOS_H_
#define IOS_CHROME_BROWSER_POLICY_MODEL_POLICY_CONVERSIONS_CLIENT_IOS_H_
#import "base/memory/raw_ptr.h"
#import "components/policy/core/browser/policy_conversions_client.h"
class ProfileIOS;
// PolicyConversionsClientIOS provides an implementation of the
// PolicyConversionsClient interface that is based on Profile and is
// suitable for use in //ios/chrome.
class PolicyConversionsClientIOS : public policy::PolicyConversionsClient {
public:
// Creates a PolicyConversionsClientIOS which retrieves BrowserState-specific
// policy information from the given `profile`.
explicit PolicyConversionsClientIOS(ProfileIOS* profile);
PolicyConversionsClientIOS(const PolicyConversionsClientIOS&) = delete;
PolicyConversionsClientIOS& operator=(const PolicyConversionsClientIOS&) =
delete;
~PolicyConversionsClientIOS() override;
// PolicyConversionsClient.
policy::PolicyService* GetPolicyService() const override;
policy::SchemaRegistry* GetPolicySchemaRegistry() const override;
const policy::ConfigurationPolicyHandlerList* GetHandlerList() const override;
bool HasUserPolicies() const override;
base::Value::List GetExtensionPolicies(
policy::PolicyDomain policy_domain) override;
private:
raw_ptr<ProfileIOS> profile_;
};
#endif // IOS_CHROME_BROWSER_POLICY_MODEL_POLICY_CONVERSIONS_CLIENT_IOS_H_