Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: chrome/browser/policy/config_dir_policy_loader.h

Issue 109743002: Move policy code into components/policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moar fixes Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // 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_POLICY_CONFIG_DIR_POLICY_LOADER_H_
6 #define CHROME_BROWSER_POLICY_CONFIG_DIR_POLICY_LOADER_H_
7
8 #include "base/files/file_path.h"
9 #include "base/files/file_path_watcher.h"
10 #include "components/policy/core/common/async_policy_loader.h"
11 #include "components/policy/core/common/policy_types.h"
12
13 namespace base {
14 class Value;
15 }
16
17 namespace policy {
18
19 // A policy loader implementation backed by a set of files in a given
20 // directory. The files should contain JSON-formatted policy settings. They are
21 // merged together and the result is returned in a PolicyBundle.
22 // The files are consulted in lexicographic file name order, so the
23 // last value read takes precedence in case of policy key collisions.
24 class ConfigDirPolicyLoader : public AsyncPolicyLoader {
25 public:
26 ConfigDirPolicyLoader(scoped_refptr<base::SequencedTaskRunner> task_runner,
27 const base::FilePath& config_dir,
28 PolicyScope scope);
29 virtual ~ConfigDirPolicyLoader();
30
31 // AsyncPolicyLoader implementation.
32 virtual void InitOnBackgroundThread() OVERRIDE;
33 virtual scoped_ptr<PolicyBundle> Load() OVERRIDE;
34 virtual base::Time LastModificationTime() OVERRIDE;
35
36 private:
37 // Loads the policy files at |path| into the |bundle|, with the given |level|.
38 void LoadFromPath(const base::FilePath& path,
39 PolicyLevel level,
40 PolicyBundle* bundle);
41
42 // Merges the 3rd party |policies| into the |bundle|, with the given |level|.
43 void Merge3rdPartyPolicy(const base::Value* policies,
44 PolicyLevel level,
45 PolicyBundle* bundle);
46
47 // Callback for the FilePathWatchers.
48 void OnFileUpdated(const base::FilePath& path, bool error);
49
50 // The directory containing the policy files.
51 base::FilePath config_dir_;
52
53 // Policies loaded by this provider will have this scope.
54 PolicyScope scope_;
55
56 // Watchers for events on the mandatory and recommended subdirectories of
57 // |config_dir_|.
58 base::FilePathWatcher mandatory_watcher_;
59 base::FilePathWatcher recommended_watcher_;
60
61 DISALLOW_COPY_AND_ASSIGN(ConfigDirPolicyLoader);
62 };
63
64 } // namespace policy
65
66 #endif // CHROME_BROWSER_POLICY_CONFIG_DIR_POLICY_LOADER_H_
OLDNEW
« no previous file with comments | « chrome/browser/policy/cloud/user_policy_signin_service_unittest.cc ('k') | chrome/browser/policy/config_dir_policy_loader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698