blob: 74e6a44b869a0dfe4e2b5a4aebf7a56ca51b8f1f [file] [log] [blame]
// Copyright 2022 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_SCREEN_AI_SCREEN_AI_DLC_INSTALLER_H_
#define CHROME_BROWSER_SCREEN_AI_SCREEN_AI_DLC_INSTALLER_H_
#include "chromeos/ash/components/dbus/dlcservice/dlcservice_client.h"
class PrefService;
namespace screen_ai::dlc_installer {
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// If any value is added, please update `DlcInstallResult` in `enums.xml`.
enum class DlcInstallResult {
kSuccess = 0,
kErrorInternal = 1,
kErrorBusy = 2,
kErrorNeedReboot = 3,
kErrorInvalidDlc = 4,
kErrorAllocation = 5,
kErrorNoImageFound = 6,
kMaxValue = kErrorNoImageFound,
};
// If Screen AI library is needed, registers for installation of its DLC.
// If not and after some delay, uninstalls the DLC.
void ManageInstallation(PrefService* local_state);
// Requests installation of Screen AI DLC.
void Install();
// Requests uninstallation of Screen AI DLC.
void Uninstall();
int CalculateNextDelayInSecondsForTesting(int delay_in_seconds);
int base_retry_delay_in_seconds_for_testing();
int max_install_retries_for_testing();
} // namespace screen_ai::dlc_installer
#endif // CHROME_BROWSER_SCREEN_AI_SCREEN_AI_DLC_INSTALLER_H_