15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/chrome_constants.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define FPL FILE_PATH_LITERAL
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMIUM_PRODUCT_STRING "Chromium"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(GOOGLE_CHROME_BUILD)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRODUCT_STRING "Google Chrome"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(CHROMIUM_BUILD)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRODUCT_STRING "Chromium"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#error Unknown branding
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // defined(OS_MACOSX)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kChromeVersionEnvVar[] = "CHROME_VERSION";
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The following should not be used for UI strings; they are meant
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// for system strings only. UI changes should be made in the GRD.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// There are four constants used to locate the executable name and path:
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     kBrowserProcessExecutableName
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     kHelperProcessExecutableName
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     kBrowserProcessExecutablePath
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     kHelperProcessExecutablePath
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// In one condition, our tests will be built using the Chrome branding
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// though we want to actually execute a Chromium branded application.
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This happens for the reference build on Mac.  To support that case,
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// we also include a Chromium version of each of the four constants and
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in the UITest class we support switching to that version when told to
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// do so.
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome.exe");
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableName[] =
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("chrome.exe");
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableNameChromium[] =
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("chrome.exe");
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableName[] =
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome.exe");
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX)
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(CHROMIUM_PRODUCT_STRING);
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableName[] =
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL(PRODUCT_STRING);
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableNameChromium[] =
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(CHROMIUM_PRODUCT_STRING " Helper");
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableName[] =
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(PRODUCT_STRING " Helper");
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_ANDROID)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NOTE: Keep it synced with the process names defined in AndroidManifest.xml.
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome");
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("");
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableName[] =
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("sandboxed_process");
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableNameChromium[] = FPL("");
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_POSIX)
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableNameChromium[] =
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome");
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome");
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper processes end up with a name of "exe" due to execing via
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// /proc/self/exe.  See bug 22703.
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableNameChromium[] =
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("exe");
772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutableName[] = FPL("exe");
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // OS_*
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("chrome.exe");
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePath[] =
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome.exe");
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("chrome.exe");
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePath[] =
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome.exe");
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX)
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(CHROMIUM_PRODUCT_STRING ".app/Contents/MacOS/" CHROMIUM_PRODUCT_STRING);
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePath[] =
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(PRODUCT_STRING ".app/Contents/MacOS/" PRODUCT_STRING);
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(CHROMIUM_PRODUCT_STRING " Helper.app/Contents/MacOS/"
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        CHROMIUM_PRODUCT_STRING " Helper");
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePath[] =
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(PRODUCT_STRING " Helper.app/Contents/MacOS/" PRODUCT_STRING " Helper");
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_ANDROID)
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome");
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome");
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("chrome");
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome");
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_POSIX)
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePathChromium[] =
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("chrome");
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome");
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePathChromium[] =
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("chrome");
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome");
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // OS_*
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kFrameworkName[] =
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL(PRODUCT_STRING " Framework.framework");
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* const kHelperFlavorSuffixes[] = {
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FPL("EH"),  // Executable heap
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FPL("NP"),  // No PIE
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NULL
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // OS_MACOSX
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kMetroDriverDll[] = FPL("metro_driver.dll");
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kStatusTrayWindowClass[] = L"Chrome_StatusTrayWindow";
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // defined(OS_WIN)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kCrashReportLog[] = L"Reported Crashes.txt";
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kTestingInterfaceDLL[] = L"testing_interface.dll";
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char    kInitialProfile[] = "Default";
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char    kMultiProfileDirPrefix[] = "Profile ";
1357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochconst base::FilePath::CharType kGuestProfileDir[] = FPL("Guest Profile");
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kBrowserResourcesDll[] = L"chrome.dll";
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// filenames
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID)
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kAndroidCacheFilename[] = FPL("AndroidCache");
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kArchivedHistoryFilename[] =
1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("Archived History");
1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kCacheDirname[] = FPL("Cache");
1455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)const base::FilePath::CharType kChannelIDFilename[] = FPL("Origin Bound Certs");
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kCookieFilename[] = FPL("Cookies");
1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kCRLSetFilename[] =
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("Certificate Revocation Lists");
1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kCustomDictionaryFileName[] =
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("Custom Dictionary.txt");
1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kExtensionActivityLogFilename[] =
1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("Extension Activity");
1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kExtensionsCookieFilename[] =
1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("Extension Cookies");
1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kFaviconsFilename[] = FPL("Favicons");
1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kFirstRunSentinel[] = FPL("First Run");
1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)const base::FilePath::CharType kGCMStoreDirname[] = FPL("GCM Store");
1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kHistoryFilename[] = FPL("History");
1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kJumpListIconDirname[] = FPL("JumpListIcons");
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kLocalStateFilename[] = FPL("Local State");
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kLocalStorePoolName[] = FPL("LocalStorePool");
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kLoginDataFileName[] = FPL("Login Data");
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kMediaCacheDirname[] = FPL("Media Cache");
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kNewTabThumbnailsFilename[] =
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("Top Thumbnails");
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kPreferencesFilename[] = FPL("Preferences");
1676d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)const base::FilePath::CharType kProtectedPreferencesFilenameDeprecated[] =
168c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    FPL("Protected Preferences");
1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kReadmeFilename[] = FPL("README");
1701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst base::FilePath::CharType kResetPromptMementoFilename[] =
1711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    FPL("Reset Prompt Memento");
1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kSafeBrowsingBaseFilename[] =
1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("Safe Browsing");
1746d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)const base::FilePath::CharType kSecurePreferencesFilename[] =
1756d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    FPL("Secure Preferences");
1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kServiceStateFileName[] = FPL("Service State");
1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kShortcutsDatabaseName[] = FPL("Shortcuts");
1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kSingletonCookieFilename[] =
1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("SingletonCookie");
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kSingletonLockFilename[] = FPL("SingletonLock");
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kSingletonSocketFilename[] =
1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("SingletonSocket");
183116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst base::FilePath::CharType kSupervisedUserSettingsFilename[] =
184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    FPL("Managed Mode Settings");
1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kSyncCredentialsFilename[] =
1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    FPL("Sync Credentials");
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kThemePackFilename[] = FPL("Cached Theme.pak");
1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kThumbnailsFilename[] = FPL("Thumbnails");
1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kTopSitesFilename[] = FPL("Top Sites");
1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kWebAppDirname[] = FPL("Web Applications");
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// File name of the Pepper Flash plugin on different platforms.
1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const base::FilePath::CharType kPepperFlashPluginFilename[] =
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("PepperFlashPlayer.plugin");
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_WIN)
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("pepflashplayer.dll");
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else  // OS_LINUX, etc.
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FPL("libpepflashplayer.so");
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// directory names
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kUserDataDirname[] = L"User Data";
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// We don't enable record mode in the released product because users could
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// potentially be tricked into running a product in record mode without
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// knowing it.  Enable in debug builds.  Playback mode is allowed always,
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// because it is useful for testing and not hazardous by itself.
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NDEBUG
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// const bool kRecordModeEnabled = true;
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// const bool kRecordModeEnabled = false;
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const bool kRecordModeEnabled = true;
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
217a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)const int kJavaScriptMessageExpectedDelay = 1000;
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#if defined(OS_ANDROID) || defined(OS_IOS)
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const bool kEnableTouchIcon = true;
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const bool kEnableTouchIcon = false;
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const float kMaxShareOfExtensionProcesses = 0.30f;
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
227d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// This is used by the PreRead experiment.
228d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)const char kPreReadEnvironmentVariable[] = "CHROME_PRE_READ_EXPERIMENT";
229d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_LINUX)
2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const int kLowestRendererOomScore = 300;
2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const int kHighestRendererOomScore = 1000;
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kMetroNavigationAndSearchMessage[] =
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    L"CHROME_METRO_NAV_SEARCH_REQUEST";
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kMetroGetCurrentTabInfoMessage[] =
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    L"CHROME_METRO_GET_CURRENT_TAB_INFO";
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kMetroRegistryPath[] =
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    L"Software\\" PRODUCT_STRING_PATH L"\\Metro";
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const wchar_t kLaunchModeValue[] = L"launch_mode";
2433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// This is used by breakpad and the metrics reporting.
2443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)const wchar_t kBrowserCrashDumpAttemptsRegistryPath[] =
2453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    L"Software\\" PRODUCT_STRING_PATH L"\\BrowserCrashDumpAttempts";
246f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)const char kSafeModeEnvVar[] = "CHROME_SAFE_MODE";
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#if defined(OS_CHROMEOS)
25090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const char kProfileDirPrefix[] = "u-";
251d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)const char kLegacyProfileDir[] = "user";
252d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)const char kTestUserProfileDir[] = "test-user";
25390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif
25490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
255ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// This GUID is associated with any 'don't ask me again' settings that the
256ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// user can select for different file types.
257ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// {2676A9A2-D919-4FEE-9187-152100393AB2}
258ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochconst char kApplicationClientIDStringForAVScanning[] =
259ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch    "2676A9A2-D919-4FEE-9187-152100393AB2";
260ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
2615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)const size_t kMaxMetaTagAttributeLength = 2000;
2625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chrome
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef FPL
266