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