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 32 namespace chrome { 33 34 const 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) 54 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = 55 FPL("chrome.exe"); 56 const base::FilePath::CharType kBrowserProcessExecutableName[] = 57 FPL("chrome.exe"); 58 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = 59 FPL("chrome.exe"); 60 const base::FilePath::CharType kHelperProcessExecutableName[] = 61 FPL("chrome.exe"); 62 #elif defined(OS_MACOSX) 63 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = 64 FPL(CHROMIUM_PRODUCT_STRING); 65 const base::FilePath::CharType kBrowserProcessExecutableName[] = 66 FPL(PRODUCT_STRING); 67 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = 68 FPL(CHROMIUM_PRODUCT_STRING " Helper"); 69 const 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. 73 const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome"); 74 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = 75 FPL(""); 76 const base::FilePath::CharType kHelperProcessExecutableName[] = 77 FPL("sandboxed_process"); 78 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = FPL(""); 79 #elif defined(OS_POSIX) 80 const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] = 81 FPL("chrome"); 82 const 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. 85 const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = 86 FPL("exe"); 87 const base::FilePath::CharType kHelperProcessExecutableName[] = FPL("exe"); 88 #endif // OS_* 89 90 #if defined(OS_WIN) 91 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = 92 FPL("chrome.exe"); 93 const base::FilePath::CharType kBrowserProcessExecutablePath[] = 94 FPL("chrome.exe"); 95 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = 96 FPL("chrome.exe"); 97 const base::FilePath::CharType kHelperProcessExecutablePath[] = 98 FPL("chrome.exe"); 99 #elif defined(OS_MACOSX) 100 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = 101 FPL(CHROMIUM_PRODUCT_STRING ".app/Contents/MacOS/" CHROMIUM_PRODUCT_STRING); 102 const base::FilePath::CharType kBrowserProcessExecutablePath[] = 103 FPL(PRODUCT_STRING ".app/Contents/MacOS/" PRODUCT_STRING); 104 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = 105 FPL(CHROMIUM_PRODUCT_STRING " Helper.app/Contents/MacOS/" 106 CHROMIUM_PRODUCT_STRING " Helper"); 107 const base::FilePath::CharType kHelperProcessExecutablePath[] = 108 FPL(PRODUCT_STRING " Helper.app/Contents/MacOS/" PRODUCT_STRING " Helper"); 109 #elif defined(OS_ANDROID) 110 const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome"); 111 const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome"); 112 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = 113 FPL("chrome"); 114 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = 115 FPL("chrome"); 116 #elif defined(OS_POSIX) 117 const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] = 118 FPL("chrome"); 119 const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome"); 120 const base::FilePath::CharType kHelperProcessExecutablePathChromium[] = 121 FPL("chrome"); 122 const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome"); 123 #endif // OS_* 124 125 #if defined(OS_MACOSX) 126 const base::FilePath::CharType kFrameworkName[] = 127 FPL(PRODUCT_STRING " Framework.framework"); 128 129 const 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) 137 const base::FilePath::CharType kMetroDriverDll[] = FPL("metro_driver.dll"); 138 const wchar_t kStatusTrayWindowClass[] = L"Chrome_StatusTrayWindow"; 139 #endif // defined(OS_WIN) 140 141 const wchar_t kCrashReportLog[] = L"Reported Crashes.txt"; 142 const wchar_t kTestingInterfaceDLL[] = L"testing_interface.dll"; 143 const char kInitialProfile[] = "Default"; 144 const char kMultiProfileDirPrefix[] = "Profile "; 145 const base::FilePath::CharType kGuestProfileDir[] = FPL("Guest Profile"); 146 const wchar_t kBrowserResourcesDll[] = L"chrome.dll"; 147 148 // filenames 149 #if defined(OS_ANDROID) 150 const base::FilePath::CharType kAndroidCacheFilename[] = FPL("AndroidCache"); 151 #endif 152 const base::FilePath::CharType kArchivedHistoryFilename[] = 153 FPL("Archived History"); 154 const base::FilePath::CharType kCacheDirname[] = FPL("Cache"); 155 const base::FilePath::CharType kCookieFilename[] = FPL("Cookies"); 156 const base::FilePath::CharType kCRLSetFilename[] = 157 FPL("Certificate Revocation Lists"); 158 const base::FilePath::CharType kCLDDataFilename[] = 159 FPL("cld2_data.bin"); 160 const base::FilePath::CharType kCustomDictionaryFileName[] = 161 FPL("Custom Dictionary.txt"); 162 const base::FilePath::CharType kExtensionActivityLogFilename[] = 163 FPL("Extension Activity"); 164 const base::FilePath::CharType kExtensionsCookieFilename[] = 165 FPL("Extension Cookies"); 166 const base::FilePath::CharType kFaviconsFilename[] = FPL("Favicons"); 167 const base::FilePath::CharType kFirstRunSentinel[] = FPL("First Run"); 168 const base::FilePath::CharType kGCMStoreDirname[] = FPL("GCM Store"); 169 const base::FilePath::CharType kHistoryFilename[] = FPL("History"); 170 const base::FilePath::CharType kJumpListIconDirname[] = FPL("JumpListIcons"); 171 const base::FilePath::CharType kLocalStateFilename[] = FPL("Local State"); 172 const base::FilePath::CharType kLocalStorePoolName[] = FPL("LocalStorePool"); 173 const base::FilePath::CharType kLoginDataFileName[] = FPL("Login Data"); 174 const base::FilePath::CharType kSupervisedUserSettingsFilename[] = 175 FPL("Managed Mode Settings"); 176 const base::FilePath::CharType kMediaCacheDirname[] = FPL("Media Cache"); 177 const base::FilePath::CharType kNewTabThumbnailsFilename[] = 178 FPL("Top Thumbnails"); 179 const base::FilePath::CharType kOBCertFilename[] = FPL("Origin Bound Certs"); 180 const base::FilePath::CharType kPreferencesFilename[] = FPL("Preferences"); 181 const base::FilePath::CharType kProtectedPreferencesFilenameDeprecated[] = 182 FPL("Protected Preferences"); 183 const base::FilePath::CharType kReadmeFilename[] = FPL("README"); 184 const base::FilePath::CharType kResetPromptMementoFilename[] = 185 FPL("Reset Prompt Memento"); 186 const base::FilePath::CharType kSafeBrowsingBaseFilename[] = 187 FPL("Safe Browsing"); 188 const base::FilePath::CharType kSecurePreferencesFilename[] = 189 FPL("Secure Preferences"); 190 const base::FilePath::CharType kServiceStateFileName[] = FPL("Service State"); 191 const base::FilePath::CharType kShortcutsDatabaseName[] = FPL("Shortcuts"); 192 const base::FilePath::CharType kSingletonCookieFilename[] = 193 FPL("SingletonCookie"); 194 const base::FilePath::CharType kSingletonLockFilename[] = FPL("SingletonLock"); 195 const base::FilePath::CharType kSingletonSocketFilename[] = 196 FPL("SingletonSocket"); 197 const base::FilePath::CharType kSyncCredentialsFilename[] = 198 FPL("Sync Credentials"); 199 const base::FilePath::CharType kThemePackFilename[] = FPL("Cached Theme.pak"); 200 const base::FilePath::CharType kThumbnailsFilename[] = FPL("Thumbnails"); 201 const base::FilePath::CharType kTopSitesFilename[] = FPL("Top Sites"); 202 const base::FilePath::CharType kWebAppDirname[] = FPL("Web Applications"); 203 204 // File name of the Pepper Flash plugin on different platforms. 205 const base::FilePath::CharType kPepperFlashPluginFilename[] = 206 #if defined(OS_MACOSX) 207 FPL("PepperFlashPlayer.plugin"); 208 #elif defined(OS_WIN) 209 FPL("pepflashplayer.dll"); 210 #else // OS_LINUX, etc. 211 FPL("libpepflashplayer.so"); 212 #endif 213 214 // directory names 215 const wchar_t kUserDataDirname[] = L"User Data"; 216 217 // We don't enable record mode in the released product because users could 218 // potentially be tricked into running a product in record mode without 219 // knowing it. Enable in debug builds. Playback mode is allowed always, 220 // because it is useful for testing and not hazardous by itself. 221 #ifndef NDEBUG 222 // const bool kRecordModeEnabled = true; 223 #else 224 // const bool kRecordModeEnabled = false; 225 #endif 226 227 const bool kRecordModeEnabled = true; 228 229 const int kJavaScriptMessageExpectedDelay = 1000; 230 231 #if defined(OS_ANDROID) 232 const bool kEnableTouchIcon = true; 233 #else 234 const bool kEnableTouchIcon = false; 235 #endif 236 237 const float kMaxShareOfExtensionProcesses = 0.30f; 238 239 // This is used by the PreRead experiment. 240 const char kPreReadEnvironmentVariable[] = "CHROME_PRE_READ_EXPERIMENT"; 241 242 #if defined(OS_LINUX) 243 const int kLowestRendererOomScore = 300; 244 const int kHighestRendererOomScore = 1000; 245 #endif 246 247 #if defined(OS_WIN) 248 const wchar_t kMetroNavigationAndSearchMessage[] = 249 L"CHROME_METRO_NAV_SEARCH_REQUEST"; 250 const wchar_t kMetroGetCurrentTabInfoMessage[] = 251 L"CHROME_METRO_GET_CURRENT_TAB_INFO"; 252 const wchar_t kMetroRegistryPath[] = 253 L"Software\\" PRODUCT_STRING_PATH L"\\Metro"; 254 const wchar_t kLaunchModeValue[] = L"launch_mode"; 255 // This is used by breakpad and the metrics reporting. 256 const wchar_t kBrowserCrashDumpAttemptsRegistryPath[] = 257 L"Software\\" PRODUCT_STRING_PATH L"\\BrowserCrashDumpAttempts"; 258 const char kSafeModeEnvVar[] = "CHROME_SAFE_MODE"; 259 #endif 260 261 #if defined(OS_CHROMEOS) 262 const char kProfileDirPrefix[] = "u-"; 263 const char kLegacyProfileDir[] = "user"; 264 const char kTestUserProfileDir[] = "test-user"; 265 #endif 266 267 // This GUID is associated with any 'don't ask me again' settings that the 268 // user can select for different file types. 269 // {2676A9A2-D919-4FEE-9187-152100393AB2} 270 const char kApplicationClientIDStringForAVScanning[] = 271 "2676A9A2-D919-4FEE-9187-152100393AB2"; 272 273 #if defined(OS_ANDROID) 274 const size_t kMaxMetaTagAttributeLength = 2000; 275 #endif 276 277 } // namespace chrome 278 279 #undef FPL 280