1// Copyright (c) 2013 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 CHROMEOS_CHROMEOS_PATHS_H_
6#define CHROMEOS_CHROMEOS_PATHS_H_
7
8#include "chromeos/chromeos_export.h"
9
10namespace base {
11class FilePath;
12}
13
14// This file declares path keys for the chromeos module.  These can be used with
15// the PathService to access various special directories and files.
16
17namespace chromeos {
18
19enum {
20  PATH_START = 7000,
21
22  FILE_DEFAULT_APP_ORDER,       // Full path to the json file that defines the
23                                // default app order.
24  DIR_USER_POLICY_KEYS,         // Directory where the session_manager stores
25                                // the user policy keys.
26  FILE_OWNER_KEY,               // Full path to the owner key file.
27  FILE_INSTALL_ATTRIBUTES,      // Full path to the install attributes file.
28  FILE_UPTIME,                  // Full path to the file via which the kernel
29                                // exposes the current device uptime.
30  FILE_UPDATE_REBOOT_NEEDED_UPTIME,  // Full path to a file in which Chrome can
31                                     // store the uptime at which an update
32                                     // became necessary. The file should be
33                                     // cleared on boot.
34  DIR_DEVICE_LOCAL_ACCOUNT_EXTENSIONS,  // Directory under which a cache of
35                                        // force-installed extensions is
36                                        // maintained for each device-local
37                                        // account.
38  DIR_DEVICE_LOCAL_ACCOUNT_EXTERNAL_DATA,  // Directory where external data
39                                           // referenced by policies is cached
40                                           // for device-local accounts.
41  DIR_DEVICE_LOCAL_ACCOUNT_COMPONENT_POLICY,  // Directory where policy for
42                                              // components is stored for
43                                              // device-local accounts.
44                                              // Currently this is used for
45                                              // policy for extensions.
46  PATH_END
47};
48
49// Call once to register the provider for the path keys defined above.
50CHROMEOS_EXPORT void RegisterPathProvider();
51
52// Overrides some of the paths listed above so that those files can be used
53// when not running on ChromeOS. The stubs files will be relative to
54// |stubs_dir|. It is not valid to call this when running on ChromeOS.
55CHROMEOS_EXPORT void RegisterStubPathOverrides(const base::FilePath& stubs_dir);
56
57}  // namespace chromeos
58
59#endif  // CHROMEOS_CHROMEOS_PATHS_H_
60