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_COMMON_CHROME_PATHS_H__ 6 #define CHROME_COMMON_CHROME_PATHS_H__ 7 8 #include "build/build_config.h" 9 10 namespace base { 11 class FilePath; 12 } 13 14 // This file declares path keys for the chrome module. These can be used with 15 // the PathService to access various special directories and files. 16 17 namespace chrome { 18 19 enum { 20 PATH_START = 1000, 21 22 DIR_APP = PATH_START, // Directory where dlls and data reside. 23 DIR_LOGS, // Directory where logs should be written. 24 DIR_USER_DATA, // Directory where user data can be written. 25 DIR_CRASH_DUMPS, // Directory where crash dumps are written. 26 DIR_RESOURCES, // Directory containing separate file resources 27 // used by Chrome at runtime. 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_USER_MUSIC, // Directory for a user's music. 32 DIR_USER_PICTURES, // Directory for a user's pictures. 33 DIR_USER_VIDEOS, // Directory for a user's videos. 34 DIR_DEFAULT_DOWNLOADS_SAFE, // Directory for a user's 35 // "My Documents/Downloads", (Windows) or 36 // "Downloads". (Linux) 37 DIR_DEFAULT_DOWNLOADS, // Directory for a user's downloads. 38 DIR_INTERNAL_PLUGINS, // Directory where internal plugins reside. 39 #if defined(OS_POSIX) && !defined(OS_MACOSX) 40 DIR_POLICY_FILES, // Directory for system-wide read-only 41 // policy files that allow sys-admins 42 // to set policies for chrome. This directory 43 // contains subdirectories. 44 #endif 45 #if defined(OS_MACOSX) && !defined(OS_IOS) 46 DIR_MANAGED_PREFS, // Directory that stores the managed prefs plist 47 // files for the current user. 48 DIR_USER_APPLICATIONS, // ~/Applications 49 DIR_USER_LIBRARY, // ~/Library 50 #endif 51 #if defined(OS_CHROMEOS) || (defined(OS_MACOSX) && !defined(OS_IOS)) 52 DIR_USER_EXTERNAL_EXTENSIONS, // Directory for per-user external extensions 53 // on Chrome Mac. On Chrome OS, this path is 54 // used for OEM customization. 55 // Getting this path does not create it. 56 #endif 57 58 #if defined(OS_LINUX) 59 DIR_STANDALONE_EXTERNAL_EXTENSIONS, // Directory for 'per-extension' 60 // definition manifest files that 61 // describe extensions which are to be 62 // installed when chrome is run. 63 #endif 64 DIR_EXTERNAL_EXTENSIONS, // Directory where installer places .crx files. 65 66 DIR_DEFAULT_APPS, // Directory where installer places .crx files 67 // to be installed when chrome is first run. 68 DIR_PEPPER_FLASH_PLUGIN, // Directory to the bundled Pepper Flash plugin, 69 // containing the plugin and the manifest. 70 DIR_COMPONENT_UPDATED_PEPPER_FLASH_PLUGIN, // Base directory of the Pepper 71 // Flash plugins downloaded by the 72 // component updater. 73 DIR_PEPPER_FLASH_DEBUGGER_PLUGIN, // Base directory of the debugging version 74 // of the Pepper Flash plugin. 75 FILE_RESOURCE_MODULE, // Full path and filename of the module that 76 // contains embedded resources (version, 77 // strings, images, etc.). 78 FILE_LOCAL_STATE, // Path and filename to the file in which 79 // machine/installation-specific state is saved. 80 FILE_RECORDED_SCRIPT, // Full path to the script.log file that 81 // contains recorded browser events for 82 // playback. 83 FILE_FLASH_PLUGIN, // Full path to the internal NPAPI Flash plugin 84 // file. Querying this path will succeed no 85 // matter the file exists or not. 86 FILE_PEPPER_FLASH_PLUGIN, // Full path to the bundled Pepper Flash plugin 87 // file. 88 FILE_PDF_PLUGIN, // Full path to the internal PDF plugin file. 89 90 FILE_NACL_PLUGIN, // Full path to the internal NaCl plugin file. 91 DIR_PNACL_BASE, // Full path to the base dir for PNaCl. 92 DIR_PNACL_COMPONENT, // Full path to the latest PNaCl version 93 // (subdir of DIR_PNACL_BASE). 94 FILE_O1D_PLUGIN, // Full path to the O1D Pepper plugin file. 95 FILE_EFFECTS_PLUGIN, // Full path to the Effects Pepper plugin file. 96 FILE_GTALK_PLUGIN, // Full path to the GTalk Pepper plugin file. 97 DIR_COMPONENT_WIDEVINE_CDM, // Directory that contains component-updated 98 // Widevine CDM files. 99 FILE_WIDEVINE_CDM_ADAPTER, // Full path to the Widevine CDM adapter file. 100 FILE_RESOURCES_PACK, // Full path to the .pak file containing 101 // binary data (e.g., html files and images 102 // used by internal pages). 103 DIR_RESOURCES_EXTENSION, // Full path to extension resources. 104 #if defined(OS_CHROMEOS) 105 DIR_CHROMEOS_WALLPAPERS, // Directory where downloaded chromeos 106 // wallpapers reside. 107 DIR_CHROMEOS_WALLPAPER_THUMBNAILS, // Directory where downloaded chromeos 108 // wallpaper thumbnails reside. 109 DIR_CHROMEOS_CUSTOM_WALLPAPERS, // Directory where custom wallpapers 110 // reside. 111 #endif 112 DIR_SUPERVISED_USERS_DEFAULT_APPS, // Directory where installer places .crx 113 // files to be installed when managed user 114 // session starts. 115 #if defined(OS_LINUX) || (defined(OS_MACOSX) && !defined(OS_IOS)) 116 DIR_NATIVE_MESSAGING, // System directory where native messaging host 117 // manifest files are stored. 118 DIR_USER_NATIVE_MESSAGING, // Directory with Native Messaging Hosts 119 // installed per-user. 120 #endif 121 #if !defined(OS_ANDROID) 122 DIR_GLOBAL_GCM_STORE, // Directory where the global GCM instance 123 // stores its data. 124 #endif 125 126 // Valid only in development environment; TODO(darin): move these 127 DIR_GEN_TEST_DATA, // Directory where generated test data resides. 128 DIR_TEST_DATA, // Directory where unit test data resides. 129 DIR_TEST_TOOLS, // Directory where unit test tools reside. 130 131 PATH_END 132 }; 133 134 // Call once to register the provider for the path keys defined above. 135 void RegisterPathProvider(); 136 137 // Get or set the invalid user data dir that was originally specified. 138 void SetInvalidSpecifiedUserDataDir(const base::FilePath& user_data_dir); 139 const base::FilePath& GetInvalidSpecifiedUserDataDir(); 140 141 } // namespace chrome 142 143 #endif // CHROME_COMMON_CHROME_PATHS_H__ 144