blob: c2dd47014373461d55902b3cf69f28d28a586bba [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2019 The Chromium Authors
Steven Binglerace5fd22019-08-20 21:01:202// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_NET_SECURE_DNS_POLICY_HANDLER_H_
6#define CHROME_BROWSER_NET_SECURE_DNS_POLICY_HANDLER_H_
7
Steven Binglerbb471bc62019-10-30 16:11:098#include "base/strings/string_piece.h"
Steven Binglerace5fd22019-08-20 21:01:209#include "components/policy/core/browser/configuration_policy_handler.h"
10
11class PrefValueMap;
12
13namespace policy {
14
Steven Binglerf033bfd2020-03-06 23:09:0915// Handles DnsOverHttpsMode and DnsOverHttpsTemplates policies.
Steven Binglerace5fd22019-08-20 21:01:2016class SecureDnsPolicyHandler : public ConfigurationPolicyHandler {
17 public:
18 SecureDnsPolicyHandler();
Peter Boström53c6c5952021-09-17 09:41:2619
20 SecureDnsPolicyHandler(const SecureDnsPolicyHandler&) = delete;
21 SecureDnsPolicyHandler& operator=(const SecureDnsPolicyHandler&) = delete;
22
Steven Binglerace5fd22019-08-20 21:01:2023 ~SecureDnsPolicyHandler() override;
24
25 // ConfigurationPolicyHandler methods:
26 bool CheckPolicySettings(const PolicyMap& policies,
27 PolicyErrorMap* errors) override;
28 void ApplyPolicySettings(const PolicyMap& policies,
29 PrefValueMap* prefs) override;
30
31 private:
Steven Binglerbb471bc62019-10-30 16:11:0932 bool IsTemplatesPolicyNotSpecified(const base::Value* templates,
33 const base::StringPiece mode_str);
Steven Binglerbb471bc62019-10-30 16:11:0934
35 bool ShouldSetTemplatesPref(const base::Value* templates);
Steven Binglerace5fd22019-08-20 21:01:2036};
37
38} // namespace policy
39
40#endif // CHROME_BROWSER_NET_SECURE_DNS_POLICY_HANDLER_H_