// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Declares functions that implement brand-specific behavior. The definitions
// reside in brand-specific files that are only compiled when their respective
// branding is in use at build time.

#ifndef CHROME_INSTALLER_SETUP_BRAND_BEHAVIORS_H_
#define CHROME_INSTALLER_SETUP_BRAND_BEHAVIORS_H_

#include <string>

#include "chrome/installer/util/util_constants.h"

namespace base {
class FilePath;
class Version;
}  // namespace base

namespace installer {

// Updates the updater's view of "ap" to match current norms.
// TODO(crbug.com/441478433): Delete this cleanup some time in 2027.
void UpdateInstallStatus();

// Returns an opaque string holding data relating to the browser being
// uninstalled. This function is called before the product's Clients key is
// deleted. This blob is later passed to DoPostUninstallOperations.
std::wstring GetDistributionData();

// Performs brand-specific operations following unintsallation of the browser.
// |version| is the version of the browser being uninstalled. |local_data_path|
// |is a backup of the Local State file of the user performing the uninstall
// |operation. |distribution_data| is the string generated by
// |GetDistributionData().
void DoPostUninstallOperations(const base::Version& version,
                               const base::FilePath& local_data_path,
                               const std::wstring& distribution_data);

}  // namespace installer

#endif  // CHROME_INSTALLER_SETUP_BRAND_BEHAVIORS_H_
