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
{
16 // Returns true if |exe_path| points to a Chrome installed in an SxS
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_