#include "headless/lib/browser/policy/headless_browser_policy_connector.h"
#include <memory>
#include <string>
#include <utility>
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/task/thread_pool.h"
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "components/headless/policy/headless_mode_policy_handler.h"
#include "components/policy/core/browser/configuration_policy_handler.h"
#include "components/policy/core/browser/url_blocklist_policy_handler.h"
#include "components/policy/core/common/async_policy_provider.h"
#include "components/policy/core/common/policy_logger.h"
#include "components/policy/core/common/policy_paths.h"
#include "components/policy/core/common/policy_pref_names.h"
#include "components/policy/policy_constants.h"
#include "headless/lib/browser/policy/headless_prefs.h"
#if BUILDFLAG(IS_WIN)
#include "base/win/registry.h"
#include "components/policy/core/common/policy_loader_win.h"
#elif BUILDFLAG(IS_MAC)
#include <CoreFoundation/CoreFoundation.h>
#include "base/apple/foundation_util.h"
#include "base/strings/sys_string_conversions.h"
#include "components/policy/core/common/policy_loader_mac.h"
#include "components/policy/core/common/preferences_mac.h"
#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
#include "components/policy/core/common/config_dir_policy_loader.h"
#endif
namespace policy {
namespace {
void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) { … }
std::unique_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
const Schema& chrome_schema) { … }
}
HeadlessBrowserPolicyConnector::HeadlessBrowserPolicyConnector()
: … { … }
HeadlessBrowserPolicyConnector::~HeadlessBrowserPolicyConnector() = default;
scoped_refptr<PrefStore> HeadlessBrowserPolicyConnector::CreatePrefStore(
policy::PolicyLevel policy_level) { … }
void HeadlessBrowserPolicyConnector::Init(
PrefService* local_state,
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory) { … }
bool HeadlessBrowserPolicyConnector::IsDeviceEnterpriseManaged() const { … }
bool HeadlessBrowserPolicyConnector::IsCommandLineSwitchSupported() const { … }
bool HeadlessBrowserPolicyConnector::HasMachineLevelPolicies() { … }
ConfigurationPolicyProvider*
HeadlessBrowserPolicyConnector::GetPlatformProvider() { … }
std::vector<std::unique_ptr<policy::ConfigurationPolicyProvider>>
HeadlessBrowserPolicyConnector::CreatePolicyProviders() { … }
std::unique_ptr<ConfigurationPolicyProvider>
HeadlessBrowserPolicyConnector::CreatePlatformProvider() { … }
}