blob: f03f28d69ff9fae697710a5763f63ebf23e87ed1 [file] [log] [blame]
// Copyright 2023 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_POLICY_UTIL_H_
#define CHROME_BROWSER_POLICY_POLICY_UTIL_H_
#include <stdint.h>
#include "base/feature_list.h"
class GURL;
class PrefService;
namespace policy {
enum class PolicyInvalidationScope;
BASE_DECLARE_FEATURE(kDevicePolicyInvalidationWithDirectMessagesEnabled);
BASE_DECLARE_FEATURE(
kDeviceLocalAccountPolicyInvalidationWithDirectMessagesEnabled);
BASE_DECLARE_FEATURE(kCbcmPolicyInvalidationWithDirectMessagesEnabled);
BASE_DECLARE_FEATURE(kUserPolicyInvalidationWithDirectMessagesEnabled);
// Check if the origin provided by `url` is in the allowlist for a given
// policy-controlled feature by its `allowlist_pref_name`. The optional
// `always_allow_pref_name` can be used if there is a policy/pref that enables a
// feature for all URLs (e.g. AutoplayAllowed combines with AutoplayAllowlist).
bool IsOriginInAllowlist(const GURL& url,
const PrefService* prefs,
const char* allowlist_pref_name,
const char* always_allow_pref_name = nullptr);
// Returns GCP number for policy invalidations of given `scope`.
int64_t GetPolicyInvalidationProjectNumber(PolicyInvalidationScope scope);
} // namespace policy
#endif // CHROME_BROWSER_POLICY_POLICY_UTIL_H_