blob: 268908c9dd2ae9f086856a960b6e316f9a93fb85 [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 CHROME_BROWSER_POLICY_CHROME_POLICY_CONVERSIONS_CLIENT_H_
#define CHROME_BROWSER_POLICY_CHROME_POLICY_CONVERSIONS_CLIENT_H_
#include "base/memory/raw_ptr.h"
#include "build/build_config.h"
#include "components/policy/core/browser/policy_conversions_client.h"
namespace content {
class BrowserContext;
}
class Profile;
namespace policy {
// ChromePolicyConversionsClient provides an implementation of the
// PolicyConversionsClient interface that is based on Profile and is suitable
// for use in //chrome.
class ChromePolicyConversionsClient : public PolicyConversionsClient {
public:
// Creates a ChromePolicyConversionsClient which retrieves Profile-specific
// policy information from the given |context|.
explicit ChromePolicyConversionsClient(content::BrowserContext* context);
ChromePolicyConversionsClient(const ChromePolicyConversionsClient&) = delete;
ChromePolicyConversionsClient& operator=(
const ChromePolicyConversionsClient&) = delete;
~ChromePolicyConversionsClient() override;
// PolicyConversionsClient.
PolicyService* GetPolicyService() const override;
SchemaRegistry* GetPolicySchemaRegistry() const override;
const ConfigurationPolicyHandlerList* GetHandlerList() const override;
bool HasUserPolicies() const override;
base::Value::List GetExtensionPolicies(PolicyDomain policy_domain) override;
#if BUILDFLAG(IS_CHROMEOS)
base::Value::List GetDeviceLocalAccountPolicies() override;
base::Value::Dict GetIdentityFields() override;
#endif
private:
raw_ptr<Profile> profile_;
};
} // namespace policy
#endif // CHROME_BROWSER_POLICY_CHROME_POLICY_CONVERSIONS_CLIENT_H_