#ifndef CHROME_UPDATER_AUTO_RUN_ON_OS_UPGRADE_TASK_H_
#define CHROME_UPDATER_AUTO_RUN_ON_OS_UPGRADE_TASK_H_
#include <string>
#include <vector>
#include "base/functional/callback_forward.h"
#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
#include "chrome/updater/updater_scope.h"
namespace updater {
class PersistedData;
class AutoRunOnOsUpgradeTask
: public base::RefCountedThreadSafe<AutoRunOnOsUpgradeTask> {
public:
AutoRunOnOsUpgradeTask(UpdaterScope scope,
scoped_refptr<PersistedData> persisted_data);
void Run(base::OnceClosure callback);
private:
friend class base::RefCountedThreadSafe<AutoRunOnOsUpgradeTask>;
FRIEND_TEST_ALL_PREFIXES(AutoRunOnOsUpgradeTaskTest, RunOnOsUpgradeForApp);
virtual ~AutoRunOnOsUpgradeTask();
void RunOnOsUpgradeForApps(const std::vector<std::string>& app_ids);
size_t RunOnOsUpgradeForApp(const std::string& app_id);
bool HasOSUpgraded();
void SetOSUpgraded();
SEQUENCE_CHECKER(sequence_checker_);
UpdaterScope scope_;
scoped_refptr<PersistedData> persisted_data_;
std::string os_upgrade_string_;
};
}
#endif