1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// 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_
|