Roll src/third_party/WebKit 54f3f4a:06d33f1 (svn 199721:199723)
[chromium-blink-merge.git] / chrome_elf / chrome_elf_util.h
blob673943d65139fb0fba627c046e5745f135c235ae
1 // Copyright 2014 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.
5 #ifndef CHROME_ELF_CHROME_ELF_UTIL_H_
6 #define CHROME_ELF_CHROME_ELF_UTIL_H_
8 #include "base/strings/string16.h"
10 enum class ProcessType {
11 UNINITIALIZED,
12 NON_BROWSER_PROCESS,
13 BROWSER_PROCESS,
16 // Returns true if |exe_path| points to a Chrome installed in an SxS
17 // installation.
18 bool IsCanary(const wchar_t* exe_path);
20 // Returns true if |exe_path| points to a per-user level Chrome installation.
21 bool IsSystemInstall(const wchar_t* exe_path);
23 // Returns true if current installation of Chrome is a multi-install.
24 bool IsMultiInstall(bool is_system_install);
26 // Returns true if usage stats collecting is enabled for this user.
27 bool AreUsageStatsEnabled(const wchar_t* exe_path);
29 // Returns true if a policy is in effect. |breakpad_enabled| will be set to true
30 // if stats collecting is permitted by this policy and false if not.
31 bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled);
33 // Initializes |g_process_type| which stores whether or not the current process
34 // is the main browser process.
35 void InitializeProcessType();
37 // Returns true if invoked in a Chrome process other than the main browser
38 // process. False otherwise.
39 bool IsNonBrowserProcess();
41 // Caches the |ProcessType| of the current process.
42 extern ProcessType g_process_type;
44 #endif // CHROME_ELF_CHROME_ELF_UTIL_H_