// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_ELF_CHROME_ELF_UTIL_H_ #define CHROME_ELF_CHROME_ELF_UTIL_H_ #include "base/strings/string16.h" enum class ProcessType { UNINITIALIZED, NON_BROWSER_PROCESS, BROWSER_PROCESS, }; // Returns true if |exe_path| points to a Chrome installed in an SxS // installation. bool IsCanary(const wchar_t* exe_path); // Returns true if |exe_path| points to a per-user level Chrome installation. bool IsSystemInstall(const wchar_t* exe_path); // Returns true if current installation of Chrome is a multi-install. bool IsMultiInstall(bool is_system_install); // Returns true if usage stats collecting is enabled for this user. bool AreUsageStatsEnabled(const wchar_t* exe_path); // Returns true if a policy is in effect. |breakpad_enabled| will be set to true // if stats collecting is permitted by this policy and false if not. bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled); // Initializes |g_process_type| which stores whether or not the current process // is the main browser process. void InitializeProcessType(); // Returns true if invoked in a Chrome process other than the main browser // process. False otherwise. bool IsNonBrowserProcess(); // Caches the |ProcessType| of the current process. extern ProcessType g_process_type; #endif // CHROME_ELF_CHROME_ELF_UTIL_H_