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