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

#ifndef CHROME_BROWSER_UPDATER_BROWSER_UPDATER_CLIENT_UTIL_H_
#define CHROME_BROWSER_UPDATER_BROWSER_UPDATER_CLIENT_UTIL_H_

#include <string>

#include "base/functional/callback_forward.h"
#include "chrome/updater/updater_scope.h"

extern const char kUpdaterName[];
extern const char kPrivilegedHelperName[];

// Get the current installed version of the browser.
std::string CurrentlyInstalledVersion();

// System level updater should only be used if the browser is owned by root.
// During promotion, the browser will be changed to be owned by root and wheel.
// A browser must go through promotion before it can utilize the system-level
// updater.
updater::UpdaterScope GetBrowserUpdaterScope();

// If this build should integrate with an updater, makes sure that an updater
// is installed and that the browser is registered with it for updates. Must be
// called on a sequenced task runner. In cases where user intervention is
// necessary, calls `prompt` (on the same sequence).  After the updater is made
// present (or cannot be made present), calls `complete` on the same sequence.
void EnsureUpdater(base::OnceClosure prompt, base::OnceClosure complete);

// Prompts the user for credentials and sets up a system-level updater.
void SetupSystemUpdater();

#endif  // CHROME_BROWSER_UPDATER_BROWSER_UPDATER_CLIENT_UTIL_H_
