// 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_
