1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef nsAppDirectoryServiceDefs_h___ 8 #define nsAppDirectoryServiceDefs_h___ 9 10 //======================================================================================== 11 // 12 // Defines property names for directories available from standard 13 // nsIDirectoryServiceProviders. These keys are not guaranteed to exist because 14 // the nsIDirectoryServiceProviders which provide them are optional. 15 // 16 // Keys whose definition ends in "DIR" or "FILE" return a single nsIFile (or 17 // subclass). Keys whose definition ends in "LIST" return an nsISimpleEnumerator 18 // which enumerates a list of file objects. 19 // 20 // System and XPCOM level properties are defined in nsDirectoryServiceDefs.h. 21 // 22 //======================================================================================== 23 24 // -------------------------------------------------------------------------------------- 25 // Files and directories which exist on a per-product basis 26 // -------------------------------------------------------------------------------------- 27 28 #define NS_APP_APPLICATION_REGISTRY_FILE "AppRegF" 29 #define NS_APP_APPLICATION_REGISTRY_DIR "AppRegD" 30 31 #define NS_APP_DEFAULTS_50_DIR "DefRt" // The root dir of all defaults dirs 32 #define NS_APP_PREF_DEFAULTS_50_DIR "PrfDef" 33 34 #define NS_APP_USER_PROFILES_ROOT_DIR \ 35 "DefProfRt" // The dir where user profile dirs live. 36 #define NS_APP_USER_PROFILES_LOCAL_ROOT_DIR \ 37 "DefProfLRt" // The dir where user profile temp dirs live. 38 39 #define NS_APP_RES_DIR "ARes" 40 #define NS_APP_CHROME_DIR "AChrom" 41 42 #define NS_APP_CHROME_DIR_LIST "AChromDL" 43 #define NS_APP_PLUGINS_DIR_LIST "APluginsDL" 44 45 // -------------------------------------------------------------------------------------- 46 // Files and directories which exist on a per-profile basis 47 // These locations are typically provided by the profile mgr 48 // -------------------------------------------------------------------------------------- 49 50 // In a shared profile environment, prefixing a profile-relative 51 // key with NS_SHARED returns a location that is shared by 52 // other users of the profile. Without this prefix, the consumer 53 // has exclusive access to this location. 54 55 #define NS_SHARED "SHARED" 56 57 #define NS_APP_PREFS_50_DIR "PrefD" // Directory which contains user prefs 58 #define NS_APP_PREFS_50_FILE "PrefF" 59 #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" 60 #define NS_APP_PREFS_OVERRIDE_DIR \ 61 "PrefDOverride" // Directory for per-profile defaults 62 63 #define NS_APP_USER_PROFILE_50_DIR "ProfD" 64 #define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD" 65 66 #define NS_APP_USER_CHROME_DIR "UChrm" 67 68 #define NS_APP_USER_PANELS_50_FILE "UPnls" 69 #define NS_APP_CACHE_PARENT_DIR "cachePDir" 70 71 #define NS_APP_INSTALL_CLEANUP_DIR \ 72 "XPIClnupD" // location of xpicleanup.dat xpicleanup.exe 73 74 #define NS_APP_INDEXEDDB_PARENT_DIR "indexedDBPDir" 75 76 #define NS_APP_PERMISSION_PARENT_DIR "permissionDBPDir" 77 78 #if defined(MOZ_SANDBOX) 79 // 80 // NS_APP_CONTENT_PROCESS_TEMP_DIR refers to a directory that is read and 81 // write accessible from a sandboxed content process. The key may be used in 82 // either process, but the directory is intended to be used for short-lived 83 // files that need to be saved to the filesystem by the content process and 84 // don't need to survive browser restarts. The directory is reset on startup. 85 // The key is only valid when MOZ_SANDBOX is defined. When 86 // MOZ_SANDBOX is defined, the directory the key refers to differs 87 // depending on whether or not content sandboxing is enabled. 88 // 89 // When MOZ_SANDBOX is defined and sandboxing is enabled (versus 90 // manually disabled via prefs), the content process replaces NS_OS_TEMP_DIR 91 // with NS_APP_CONTENT_PROCESS_TEMP_DIR so that legacy code in content 92 // attempting to write to NS_OS_TEMP_DIR will write to 93 // NS_APP_CONTENT_PROCESS_TEMP_DIR instead. When MOZ_SANDBOX is 94 // defined but sandboxing is disabled, NS_APP_CONTENT_PROCESS_TEMP_DIR 95 // falls back to NS_OS_TEMP_DIR in both content and chrome processes. 96 // 97 // New code should avoid writing to the filesystem from the content process 98 // and should instead proxy through the parent process whenever possible. 99 // 100 // At present, all sandboxed content processes use the same directory for 101 // NS_APP_CONTENT_PROCESS_TEMP_DIR, but that should not be relied upon. 102 // 103 # define NS_APP_CONTENT_PROCESS_TEMP_DIR "ContentTmpD" 104 #else 105 // Otherwise NS_APP_CONTENT_PROCESS_TEMP_DIR must match NS_OS_TEMP_DIR. 106 # define NS_APP_CONTENT_PROCESS_TEMP_DIR "TmpD" 107 #endif // defined(MOZ_SANDBOX) 108 109 #endif // nsAppDirectoryServiceDefs_h___ 110