chromium/chrome/browser/extensions/policy_handlers.h

// Copyright 2013 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_EXTENSIONS_POLICY_HANDLERS_H_
#define CHROME_BROWSER_EXTENSIONS_POLICY_HANDLERS_H_

#include <optional>

#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/policy/core/browser/configuration_policy_handler.h"

namespace policy {
class PolicyMap;
class PolicyErrorMap;
class Schema;
}  // namespace policy

namespace extensions {

// Implements additional checks for policies that are lists of extension IDs.
class ExtensionListPolicyHandler : public policy::ListPolicyHandler {};

// Class for parsing the list of extensions to force install.
//
// On ChromeOS the policy values will be filtered before updating the prefs,
// such that the prefs on Ash only contain the extensions that must be force
// installed on Ash.
// Similarly the prefs on Lacros will only contain the extensions that must
// be force installed on Lacros.
class ExtensionInstallForceListPolicyHandler
    : public policy::TypeCheckingPolicyHandler {};

// Class for parsing the list of extensions that are blocklisted.
class ExtensionInstallBlockListPolicyHandler
    : public policy::ConfigurationPolicyHandler {};

// Implements additional checks for policies that are lists of extension
// URLPatterns.
class ExtensionURLPatternListPolicyHandler
    : public policy::TypeCheckingPolicyHandler {};

class ExtensionSettingsPolicyHandler
    : public policy::SchemaValidatingPolicyHandler {};

}  // namespace extensions

#endif  // CHROME_BROWSER_EXTENSIONS_POLICY_HANDLERS_H_