blob: 38f1fdeb0d7848b9e020e1147edd0217cff28c47 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_ENTERPRISE_IDLE_IDLE_TIMEOUT_POLICY_HANDLER_H_
#define COMPONENTS_ENTERPRISE_IDLE_IDLE_TIMEOUT_POLICY_HANDLER_H_
#include "components/policy/core/browser/configuration_policy_handler.h"
#include "components/sync/base/user_selectable_type.h"
class PrefValueMap;
namespace policy {
class PolicyErrorMap;
class PolicyMap;
} // namespace policy
namespace enterprise_idle {
// Handles IdleTimeout policy.
class IdleTimeoutPolicyHandler : public policy::IntRangePolicyHandler {
public:
IdleTimeoutPolicyHandler();
IdleTimeoutPolicyHandler(const IdleTimeoutPolicyHandler&) = delete;
IdleTimeoutPolicyHandler& operator=(const IdleTimeoutPolicyHandler&) = delete;
~IdleTimeoutPolicyHandler() override;
// ConfigurationPolicyHandler methods:
void ApplyPolicySettings(const policy::PolicyMap& policies,
PrefValueMap* prefs) override;
bool CheckPolicySettings(const policy::PolicyMap& policies,
policy::PolicyErrorMap* errors) override;
};
// Handles IdleTimeoutActions policy.
class IdleTimeoutActionsPolicyHandler
: public policy::SchemaValidatingPolicyHandler {
public:
explicit IdleTimeoutActionsPolicyHandler(policy::Schema schema);
IdleTimeoutActionsPolicyHandler(const IdleTimeoutActionsPolicyHandler&) =
delete;
IdleTimeoutActionsPolicyHandler& operator=(
const IdleTimeoutActionsPolicyHandler&) = delete;
~IdleTimeoutActionsPolicyHandler() override;
// ConfigurationPolicyHandler methods:
void ApplyPolicySettings(const policy::PolicyMap& policies,
PrefValueMap* prefs) override;
bool CheckPolicySettings(const policy::PolicyMap& policies,
policy::PolicyErrorMap* errors) override;
void PrepareForDisplaying(policy::PolicyMap* policies) const override;
private:
// Caches sync types required when the policy is checked, to
// avoid recomputing when it is applied or prepared for display.
syncer::UserSelectableTypeSet forced_disabled_sync_types_;
};
} // namespace enterprise_idle
#endif // COMPONENTS_ENTERPRISE_IDLE_IDLE_TIMEOUT_POLICY_HANDLER_H_