• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "chrome/common/chrome_constants.h"
6 
7 #include "base/files/file_path.h"
8 
9 #define FPL FILE_PATH_LITERAL
10 
11 #if defined(OS_MACOSX)
12 #define CHROMIUM_PRODUCT_STRING "Chromium"
13 #if defined(GOOGLE_CHROME_BUILD)
14 #define PRODUCT_STRING "Google Chrome"
15 #elif defined(CHROMIUM_BUILD)
16 #define PRODUCT_STRING "Chromium"
17 #else
18 #error Unknown branding
19 #endif
20 #endif  // defined(OS_MACOSX)
21 
22 namespace chrome {
23 
24 const char kChromeVersionEnvVar[] = "CHROME_VERSION";
25 
26 // The following should not be used for UI strings; they are meant
27 // for system strings only. UI changes should be made in the GRD.
28 //
29 // There are four constants used to locate the executable name and path:
30 //
31 //     kBrowserProcessExecutableName
32 //     kHelperProcessExecutableName
33 //     kBrowserProcessExecutablePath
34 //     kHelperProcessExecutablePath
35 //
36 // In one condition, our tests will be built using the Chrome branding
37 // though we want to actually execute a Chromium branded application.
38 // This happens for the reference build on Mac.  To support that case,
39 // we also include a Chromium version of each of the four constants and
40 // in the UITest class we support switching to that version when told to
41 // do so.
42 
43 #if defined(OS_WIN)
44 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
45     FPL("chrome.exe");
46 const base::FilePath::CharType kBrowserProcessExecutableName[] =
47     FPL("chrome.exe");
48 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] =
49     FPL("chrome.exe");
50 const base::FilePath::CharType kHelperProcessExecutableName[] =
51     FPL("chrome.exe");
52 #elif defined(OS_MACOSX)
53 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
54     FPL(CHROMIUM_PRODUCT_STRING);
55 const base::FilePath::CharType kBrowserProcessExecutableName[] =
56     FPL(PRODUCT_STRING);
57 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] =
58     FPL(CHROMIUM_PRODUCT_STRING " Helper");
59 const base::FilePath::CharType kHelperProcessExecutableName[] =
60     FPL(PRODUCT_STRING " Helper");
61 #elif defined(OS_ANDROID)
62 // NOTE: Keep it synced with the process names defined in AndroidManifest.xml.
63 const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome");
64 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
65     FPL("");
66 const base::FilePath::CharType kHelperProcessExecutableName[] =
67     FPL("sandboxed_process");
68 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = FPL("");
69 #elif defined(OS_POSIX)
70 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
71     FPL("chrome");
72 const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome");
73 // Helper processes end up with a name of "exe" due to execing via
74 // /proc/self/exe.  See bug 22703.
75 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] =
76     FPL("exe");
77 const base::FilePath::CharType kHelperProcessExecutableName[] = FPL("exe");
78 #endif  // OS_*
79 
80 #if defined(OS_WIN)
81 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
82     FPL("chrome.exe");
83 const base::FilePath::CharType kBrowserProcessExecutablePath[] =
84     FPL("chrome.exe");
85 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
86     FPL("chrome.exe");
87 const base::FilePath::CharType kHelperProcessExecutablePath[] =
88     FPL("chrome.exe");
89 #elif defined(OS_MACOSX)
90 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
91     FPL(CHROMIUM_PRODUCT_STRING ".app/Contents/MacOS/" CHROMIUM_PRODUCT_STRING);
92 const base::FilePath::CharType kBrowserProcessExecutablePath[] =
93     FPL(PRODUCT_STRING ".app/Contents/MacOS/" PRODUCT_STRING);
94 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
95     FPL(CHROMIUM_PRODUCT_STRING " Helper.app/Contents/MacOS/"
96         CHROMIUM_PRODUCT_STRING " Helper");
97 const base::FilePath::CharType kHelperProcessExecutablePath[] =
98     FPL(PRODUCT_STRING " Helper.app/Contents/MacOS/" PRODUCT_STRING " Helper");
99 #elif defined(OS_ANDROID)
100 const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome");
101 const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome");
102 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
103     FPL("chrome");
104 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
105     FPL("chrome");
106 #elif defined(OS_POSIX)
107 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
108     FPL("chrome");
109 const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome");
110 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
111     FPL("chrome");
112 const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome");
113 #endif  // OS_*
114 
115 #if defined(OS_MACOSX)
116 const base::FilePath::CharType kFrameworkName[] =
117     FPL(PRODUCT_STRING " Framework.framework");
118 
119 const char* const kHelperFlavorSuffixes[] = {
120   FPL("EH"),  // Executable heap
121   FPL("NP"),  // No PIE
122   NULL
123 };
124 #endif  // OS_MACOSX
125 
126 #if defined(OS_WIN)
127 const base::FilePath::CharType kMetroDriverDll[] = FPL("metro_driver.dll");
128 const wchar_t kStatusTrayWindowClass[] = L"Chrome_StatusTrayWindow";
129 #endif  // defined(OS_WIN)
130 
131 const wchar_t kCrashReportLog[] = L"Reported Crashes.txt";
132 const wchar_t kTestingInterfaceDLL[] = L"testing_interface.dll";
133 const char    kInitialProfile[] = "Default";
134 const char    kMultiProfileDirPrefix[] = "Profile ";
135 const base::FilePath::CharType kGuestProfileDir[] = FPL("Guest Profile");
136 const wchar_t kBrowserResourcesDll[] = L"chrome.dll";
137 
138 // filenames
139 #if defined(OS_ANDROID)
140 const base::FilePath::CharType kAndroidCacheFilename[] = FPL("AndroidCache");
141 #endif
142 const base::FilePath::CharType kArchivedHistoryFilename[] =
143     FPL("Archived History");
144 const base::FilePath::CharType kCacheDirname[] = FPL("Cache");
145 const base::FilePath::CharType kChannelIDFilename[] = FPL("Origin Bound Certs");
146 const base::FilePath::CharType kCookieFilename[] = FPL("Cookies");
147 const base::FilePath::CharType kCRLSetFilename[] =
148     FPL("Certificate Revocation Lists");
149 const base::FilePath::CharType kCustomDictionaryFileName[] =
150     FPL("Custom Dictionary.txt");
151 const base::FilePath::CharType kExtensionActivityLogFilename[] =
152     FPL("Extension Activity");
153 const base::FilePath::CharType kExtensionsCookieFilename[] =
154     FPL("Extension Cookies");
155 const base::FilePath::CharType kFaviconsFilename[] = FPL("Favicons");
156 const base::FilePath::CharType kFirstRunSentinel[] = FPL("First Run");
157 const base::FilePath::CharType kGCMStoreDirname[] = FPL("GCM Store");
158 const base::FilePath::CharType kHistoryFilename[] = FPL("History");
159 const base::FilePath::CharType kJumpListIconDirname[] = FPL("JumpListIcons");
160 const base::FilePath::CharType kLocalStateFilename[] = FPL("Local State");
161 const base::FilePath::CharType kLocalStorePoolName[] = FPL("LocalStorePool");
162 const base::FilePath::CharType kLoginDataFileName[] = FPL("Login Data");
163 const base::FilePath::CharType kMediaCacheDirname[] = FPL("Media Cache");
164 const base::FilePath::CharType kNewTabThumbnailsFilename[] =
165     FPL("Top Thumbnails");
166 const base::FilePath::CharType kPreferencesFilename[] = FPL("Preferences");
167 const base::FilePath::CharType kProtectedPreferencesFilenameDeprecated[] =
168     FPL("Protected Preferences");
169 const base::FilePath::CharType kReadmeFilename[] = FPL("README");
170 const base::FilePath::CharType kResetPromptMementoFilename[] =
171     FPL("Reset Prompt Memento");
172 const base::FilePath::CharType kSafeBrowsingBaseFilename[] =
173     FPL("Safe Browsing");
174 const base::FilePath::CharType kSecurePreferencesFilename[] =
175     FPL("Secure Preferences");
176 const base::FilePath::CharType kServiceStateFileName[] = FPL("Service State");
177 const base::FilePath::CharType kShortcutsDatabaseName[] = FPL("Shortcuts");
178 const base::FilePath::CharType kSingletonCookieFilename[] =
179     FPL("SingletonCookie");
180 const base::FilePath::CharType kSingletonLockFilename[] = FPL("SingletonLock");
181 const base::FilePath::CharType kSingletonSocketFilename[] =
182     FPL("SingletonSocket");
183 const base::FilePath::CharType kSupervisedUserSettingsFilename[] =
184     FPL("Managed Mode Settings");
185 const base::FilePath::CharType kSyncCredentialsFilename[] =
186     FPL("Sync Credentials");
187 const base::FilePath::CharType kThemePackFilename[] = FPL("Cached Theme.pak");
188 const base::FilePath::CharType kThumbnailsFilename[] = FPL("Thumbnails");
189 const base::FilePath::CharType kTopSitesFilename[] = FPL("Top Sites");
190 const base::FilePath::CharType kWebAppDirname[] = FPL("Web Applications");
191 
192 // File name of the Pepper Flash plugin on different platforms.
193 const base::FilePath::CharType kPepperFlashPluginFilename[] =
194 #if defined(OS_MACOSX)
195     FPL("PepperFlashPlayer.plugin");
196 #elif defined(OS_WIN)
197     FPL("pepflashplayer.dll");
198 #else  // OS_LINUX, etc.
199     FPL("libpepflashplayer.so");
200 #endif
201 
202 // directory names
203 const wchar_t kUserDataDirname[] = L"User Data";
204 
205 // We don't enable record mode in the released product because users could
206 // potentially be tricked into running a product in record mode without
207 // knowing it.  Enable in debug builds.  Playback mode is allowed always,
208 // because it is useful for testing and not hazardous by itself.
209 #ifndef NDEBUG
210 // const bool kRecordModeEnabled = true;
211 #else
212 // const bool kRecordModeEnabled = false;
213 #endif
214 
215 const bool kRecordModeEnabled = true;
216 
217 const int kJavaScriptMessageExpectedDelay = 1000;
218 
219 #if defined(OS_ANDROID) || defined(OS_IOS)
220 const bool kEnableTouchIcon = true;
221 #else
222 const bool kEnableTouchIcon = false;
223 #endif
224 
225 const float kMaxShareOfExtensionProcesses = 0.30f;
226 
227 // This is used by the PreRead experiment.
228 const char kPreReadEnvironmentVariable[] = "CHROME_PRE_READ_EXPERIMENT";
229 
230 #if defined(OS_LINUX)
231 const int kLowestRendererOomScore = 300;
232 const int kHighestRendererOomScore = 1000;
233 #endif
234 
235 #if defined(OS_WIN)
236 const wchar_t kMetroNavigationAndSearchMessage[] =
237     L"CHROME_METRO_NAV_SEARCH_REQUEST";
238 const wchar_t kMetroGetCurrentTabInfoMessage[] =
239     L"CHROME_METRO_GET_CURRENT_TAB_INFO";
240 const wchar_t kMetroRegistryPath[] =
241     L"Software\\" PRODUCT_STRING_PATH L"\\Metro";
242 const wchar_t kLaunchModeValue[] = L"launch_mode";
243 // This is used by breakpad and the metrics reporting.
244 const wchar_t kBrowserCrashDumpAttemptsRegistryPath[] =
245     L"Software\\" PRODUCT_STRING_PATH L"\\BrowserCrashDumpAttempts";
246 const char kSafeModeEnvVar[] = "CHROME_SAFE_MODE";
247 #endif
248 
249 #if defined(OS_CHROMEOS)
250 const char kProfileDirPrefix[] = "u-";
251 const char kLegacyProfileDir[] = "user";
252 const char kTestUserProfileDir[] = "test-user";
253 #endif
254 
255 // This GUID is associated with any 'don't ask me again' settings that the
256 // user can select for different file types.
257 // {2676A9A2-D919-4FEE-9187-152100393AB2}
258 const char kApplicationClientIDStringForAVScanning[] =
259     "2676A9A2-D919-4FEE-9187-152100393AB2";
260 
261 const size_t kMaxMetaTagAttributeLength = 2000;
262 
263 }  // namespace chrome
264 
265 #undef FPL
266