nsAppDirectoryServiceDefs.h 4.83 KB
Newer Older
1
2
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
3
4
5
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6

conrad%ingress.com's avatar
conrad%ingress.com committed
7
8
9
10
11
#ifndef nsAppDirectoryServiceDefs_h___
#define nsAppDirectoryServiceDefs_h___

//========================================================================================
//
12
13
14
// Defines property names for directories available from standard
// nsIDirectoryServiceProviders. These keys are not guaranteed to exist because
// the nsIDirectoryServiceProviders which provide them are optional.
15
//
16
17
18
// Keys whose definition ends in "DIR" or "FILE" return a single nsIFile (or
// subclass). Keys whose definition ends in "LIST" return an nsISimpleEnumerator
// which enumerates a list of file objects.
19
//
20
// System and XPCOM level properties are defined in nsDirectoryServiceDefs.h.
conrad%ingress.com's avatar
conrad%ingress.com committed
21
22
23
24
25
26
27
//
//========================================================================================

// --------------------------------------------------------------------------------------
// Files and directories which exist on a per-product basis
// --------------------------------------------------------------------------------------

28
29
#define NS_APP_APPLICATION_REGISTRY_FILE "AppRegF"
#define NS_APP_APPLICATION_REGISTRY_DIR "AppRegD"
30

31
32
#define NS_APP_DEFAULTS_50_DIR "DefRt"  // The root dir of all defaults dirs
#define NS_APP_PREF_DEFAULTS_50_DIR "PrfDef"
33

34
35
36
37
#define NS_APP_USER_PROFILES_ROOT_DIR \
  "DefProfRt"  // The dir where user profile dirs live.
#define NS_APP_USER_PROFILES_LOCAL_ROOT_DIR \
  "DefProfLRt"  // The dir where user profile temp dirs live.
conrad%ingress.com's avatar
conrad%ingress.com committed
38

39
40
#define NS_APP_RES_DIR "ARes"
#define NS_APP_CHROME_DIR "AChrom"
conrad%ingress.com's avatar
conrad%ingress.com committed
41

42
43
#define NS_APP_CHROME_DIR_LIST "AChromDL"
#define NS_APP_PLUGINS_DIR_LIST "APluginsDL"
44

conrad%ingress.com's avatar
conrad%ingress.com committed
45
46
47
48
49
// --------------------------------------------------------------------------------------
// Files and directories which exist on a per-profile basis
// These locations are typically provided by the profile mgr
// --------------------------------------------------------------------------------------

50
51
52
53
// In a shared profile environment, prefixing a profile-relative
// key with NS_SHARED returns a location that is shared by
// other users of the profile. Without this prefix, the consumer
// has exclusive access to this location.
54

55
#define NS_SHARED "SHARED"
56

57
58
59
60
61
#define NS_APP_PREFS_50_DIR "PrefD"  // Directory which contains user prefs
#define NS_APP_PREFS_50_FILE "PrefF"
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR \
  "PrefDOverride"  // Directory for per-profile defaults
62

63
64
#define NS_APP_USER_PROFILE_50_DIR "ProfD"
#define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD"
65

66
#define NS_APP_USER_CHROME_DIR "UChrm"
67

68
69
#define NS_APP_USER_PANELS_50_FILE "UPnls"
#define NS_APP_CACHE_PARENT_DIR "cachePDir"
conrad%ingress.com's avatar
conrad%ingress.com committed
70

71
72
#define NS_APP_INSTALL_CLEANUP_DIR \
  "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
81
82
83
84
//
// NS_APP_CONTENT_PROCESS_TEMP_DIR refers to a directory that is read and
// write accessible from a sandboxed content process. The key may be used in
// either process, but the directory is intended to be used for short-lived
// files that need to be saved to the filesystem by the content process and
// don't need to survive browser restarts. The directory is reset on startup.
85
86
// The key is only valid when MOZ_SANDBOX is defined. When
// MOZ_SANDBOX is defined, the directory the key refers to differs
87
88
// depending on whether or not content sandboxing is enabled.
//
89
// When MOZ_SANDBOX is defined and sandboxing is enabled (versus
90
91
92
// manually disabled via prefs), the content process replaces NS_OS_TEMP_DIR
// with NS_APP_CONTENT_PROCESS_TEMP_DIR so that legacy code in content
// attempting to write to NS_OS_TEMP_DIR will write to
93
// NS_APP_CONTENT_PROCESS_TEMP_DIR instead. When MOZ_SANDBOX is
94
95
96
97
98
99
100
101
102
// defined but sandboxing is disabled, NS_APP_CONTENT_PROCESS_TEMP_DIR
// falls back to NS_OS_TEMP_DIR in both content and chrome processes.
//
// New code should avoid writing to the filesystem from the content process
// and should instead proxy through the parent process whenever possible.
//
// At present, all sandboxed content processes use the same directory for
// NS_APP_CONTENT_PROCESS_TEMP_DIR, but that should not be relied upon.
//
103
#  define NS_APP_CONTENT_PROCESS_TEMP_DIR "ContentTmpD"
104
105
#else
// 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

#if defined(MOZ_SANDBOX)
110
#  define NS_APP_PLUGIN_PROCESS_TEMP_DIR "PluginTmpD"
111
#else
112
#  define NS_APP_PLUGIN_PROCESS_TEMP_DIR "TmpD"
113
#endif
114

115
#endif  // nsAppDirectoryServiceDefs_h___