1// Copyright (c) 2011 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_COMMON_CHROME_PATHS_H__
6#define CHROME_COMMON_CHROME_PATHS_H__
7#pragma once
8
9#include "build/build_config.h"
10
11// This file declares path keys for the chrome module.  These can be used with
12// the PathService to access various special directories and files.
13
14namespace chrome {
15
16enum {
17  PATH_START = 1000,
18
19  DIR_APP = PATH_START,         // Directory where dlls and data reside.
20  DIR_LOGS,                     // Directory where logs should be written.
21  DIR_USER_DATA,                // Directory where user data can be written.
22  DIR_CRASH_DUMPS,              // Directory where crash dumps are written.
23  DIR_USER_DESKTOP,             // Directory that correspond to the desktop.
24  DIR_RESOURCES,                // Directory containing separate file resources
25                                // used by Chrome at runtime.
26  DIR_SHARED_RESOURCES,         // Directory containing js and css files used
27                                // by WebUI and component extensions.
28  DIR_INSPECTOR,                // Directory where web inspector is located.
29  DIR_APP_DICTIONARIES,         // Directory where the global dictionaries are.
30  DIR_USER_DOCUMENTS,           // Directory for a user's "My Documents".
31  DIR_DEFAULT_DOWNLOADS_SAFE,   // Directory for a user's
32                                // "My Documents/Downloads".
33  DIR_DEFAULT_DOWNLOADS,        // Directory for a user's downloads.
34  DIR_USER_DATA_TEMP,           // A temp directory within DIR_USER_DATA.  Use
35                                // this when a temporary file or directory will
36                                // be moved into the profile, to avoid issues
37                                // moving across volumes.  See crbug.com/13044 .
38                                // Getting this path does not create it.  Users
39                                // should check that the path exists before
40                                // using it.
41  DIR_INTERNAL_PLUGINS,         // Directory where internal plugins reside.
42  DIR_MEDIA_LIBS,               // Directory where the Media libraries reside.
43#if !defined(OS_MACOSX) && defined(OS_POSIX)
44  DIR_POLICY_FILES,             // Directory for system-wide read-only
45                                // policy files that allow sys-admins
46                                // to set policies for chrome. This directory
47                                // contains subdirectories.
48#endif
49#if defined(OS_MACOSX)
50  DIR_MANAGED_PREFS,            // Directory that stores the managed prefs plist
51                                // files for the current user.
52#endif
53#if defined(OS_CHROMEOS)
54  DIR_USER_EXTERNAL_EXTENSIONS,  // Directory for per-user external extensions.
55                                 // Used for OEM customization on Chrome OS.
56                                 // Getting this path does not create it.
57#endif
58
59  FILE_RESOURCE_MODULE,         // Full path and filename of the module that
60                                // contains embedded resources (version,
61                                // strings, images, etc.).
62  FILE_LOCAL_STATE,             // Path and filename to the file in which
63                                // machine/installation-specific state is saved.
64  FILE_RECORDED_SCRIPT,         // Full path to the script.log file that
65                                // contains recorded browser events for
66                                // playback.
67  FILE_FLASH_PLUGIN,            // Full path to the internal Flash plugin file.
68  FILE_PDF_PLUGIN,              // Full path to the internal PDF plugin file.
69  FILE_NACL_PLUGIN,             // Full path to the internal NaCl plugin file.
70  FILE_LIBAVCODEC,              // Full path to libavcodec media decoding
71                                // library.
72  FILE_LIBAVFORMAT,             // Full path to libavformat media parsing
73                                // library.
74  FILE_LIBAVUTIL,               // Full path to libavutil media utility library.
75  FILE_RESOURCES_PACK,          // Full path to the .pak file containing
76                                // binary data (e.g., html files and images
77                                // used by interal pages).
78#if defined(OS_CHROMEOS)
79  FILE_CHROMEOS_API,            // Full path to chrome os api shared object.
80#endif
81
82
83  // Valid only in development environment; TODO(darin): move these
84  DIR_TEST_DATA,                // Directory where unit test data resides.
85  DIR_TEST_TOOLS,               // Directory where unit test tools reside.
86
87  PATH_END
88};
89
90// Call once to register the provider for the path keys defined above.
91void RegisterPathProvider();
92
93}  // namespace chrome
94
95#endif  // CHROME_COMMON_CHROME_PATHS_H__
96