blob: d43d7ab875993805f6ec81c266c898fa0cb11ec4 [file] [log] [blame]
// Copyright 2021 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_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_DIAGNOSTICS_API_H_
#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_DIAGNOSTICS_API_H_
#include "ash/webui/telemetry_extension_ui/mojom/diagnostics_service.mojom.h"
#include "ash/webui/telemetry_extension_ui/services/diagnostics_service.h"
#include "chrome/browser/chromeos/extensions/telemetry/api/base_telemetry_extension_api_guard_function.h"
#include "extensions/browser/extension_function.h"
#include "extensions/browser/extension_function_histogram_value.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromeos {
class DiagnosticsApiFunctionBase
: public BaseTelemetryExtensionApiGuardFunction {
public:
DiagnosticsApiFunctionBase();
DiagnosticsApiFunctionBase(const DiagnosticsApiFunctionBase&) = delete;
DiagnosticsApiFunctionBase& operator=(const DiagnosticsApiFunctionBase&) =
delete;
protected:
~DiagnosticsApiFunctionBase() override;
mojo::Remote<ash::health::mojom::DiagnosticsService>
remote_diagnostics_service_;
private:
DiagnosticsService diagnostics_service_;
};
class OsDiagnosticsGetAvailableRoutinesFunction
: public DiagnosticsApiFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.getAvailableRoutines",
OS_DIAGNOSTICS_GETAVAILABLEROUTINES)
OsDiagnosticsGetAvailableRoutinesFunction();
OsDiagnosticsGetAvailableRoutinesFunction(
const OsDiagnosticsGetAvailableRoutinesFunction&) = delete;
OsDiagnosticsGetAvailableRoutinesFunction& operator=(
const OsDiagnosticsGetAvailableRoutinesFunction&) = delete;
private:
~OsDiagnosticsGetAvailableRoutinesFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
void OnResult(
const std::vector<ash::health::mojom::DiagnosticRoutineEnum>& routines);
};
class OsDiagnosticsGetRoutineUpdateFunction
: public DiagnosticsApiFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.getRoutineUpdate",
OS_DIAGNOSTICS_GETROUTINEUPDATE)
OsDiagnosticsGetRoutineUpdateFunction();
OsDiagnosticsGetRoutineUpdateFunction(
const OsDiagnosticsGetRoutineUpdateFunction&) = delete;
OsDiagnosticsGetRoutineUpdateFunction& operator=(
const OsDiagnosticsGetRoutineUpdateFunction&) = delete;
private:
~OsDiagnosticsGetRoutineUpdateFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
void OnResult(ash::health::mojom::RoutineUpdatePtr ptr);
};
class DiagnosticsApiRunRoutineFunctionBase : public DiagnosticsApiFunctionBase {
public:
DiagnosticsApiRunRoutineFunctionBase();
DiagnosticsApiRunRoutineFunctionBase(
const DiagnosticsApiRunRoutineFunctionBase&) = delete;
DiagnosticsApiRunRoutineFunctionBase& operator=(
const DiagnosticsApiRunRoutineFunctionBase&) = delete;
void OnResult(ash::health::mojom::RunRoutineResponsePtr ptr);
protected:
~DiagnosticsApiRunRoutineFunctionBase() override;
};
class OsDiagnosticsRunBatteryCapacityRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryCapacityRoutine",
OS_DIAGNOSTICS_RUNBATTERYCAPACITYROUTINE)
OsDiagnosticsRunBatteryCapacityRoutineFunction();
OsDiagnosticsRunBatteryCapacityRoutineFunction(
const OsDiagnosticsRunBatteryCapacityRoutineFunction&) = delete;
OsDiagnosticsRunBatteryCapacityRoutineFunction& operator=(
const OsDiagnosticsRunBatteryCapacityRoutineFunction&) = delete;
private:
~OsDiagnosticsRunBatteryCapacityRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
class OsDiagnosticsRunBatteryChargeRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryChargeRoutine",
OS_DIAGNOSTICS_RUNBATTERYCHARGEROUTINE)
OsDiagnosticsRunBatteryChargeRoutineFunction();
OsDiagnosticsRunBatteryChargeRoutineFunction(
const OsDiagnosticsRunBatteryChargeRoutineFunction&) = delete;
OsDiagnosticsRunBatteryChargeRoutineFunction& operator=(
const OsDiagnosticsRunBatteryChargeRoutineFunction&) = delete;
private:
~OsDiagnosticsRunBatteryChargeRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
class OsDiagnosticsRunBatteryDischargeRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryDischargeRoutine",
OS_DIAGNOSTICS_RUNBATTERYDISCHARGEROUTINE)
OsDiagnosticsRunBatteryDischargeRoutineFunction();
OsDiagnosticsRunBatteryDischargeRoutineFunction(
const OsDiagnosticsRunBatteryDischargeRoutineFunction&) = delete;
OsDiagnosticsRunBatteryDischargeRoutineFunction& operator=(
const OsDiagnosticsRunBatteryDischargeRoutineFunction&) = delete;
private:
~OsDiagnosticsRunBatteryDischargeRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
class OsDiagnosticsRunBatteryHealthRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runBatteryHealthRoutine",
OS_DIAGNOSTICS_RUNBATTERYHEALTHROUTINE)
OsDiagnosticsRunBatteryHealthRoutineFunction();
OsDiagnosticsRunBatteryHealthRoutineFunction(
const OsDiagnosticsRunBatteryHealthRoutineFunction&) = delete;
OsDiagnosticsRunBatteryHealthRoutineFunction& operator=(
const OsDiagnosticsRunBatteryHealthRoutineFunction&) = delete;
private:
~OsDiagnosticsRunBatteryHealthRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
class OsDiagnosticsRunCpuCacheRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runCpuCacheRoutine",
OS_DIAGNOSTICS_RUNCPUCACHEROUTINE)
OsDiagnosticsRunCpuCacheRoutineFunction();
OsDiagnosticsRunCpuCacheRoutineFunction(
const OsDiagnosticsRunCpuCacheRoutineFunction&) = delete;
OsDiagnosticsRunCpuCacheRoutineFunction& operator=(
const OsDiagnosticsRunCpuCacheRoutineFunction&) = delete;
private:
~OsDiagnosticsRunCpuCacheRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
class OsDiagnosticsRunCpuStressRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runCpuStressRoutine",
OS_DIAGNOSTICS_RUNCPUSTRESSROUTINE)
OsDiagnosticsRunCpuStressRoutineFunction();
OsDiagnosticsRunCpuStressRoutineFunction(
const OsDiagnosticsRunCpuStressRoutineFunction&) = delete;
OsDiagnosticsRunCpuStressRoutineFunction& operator=(
const OsDiagnosticsRunCpuStressRoutineFunction&) = delete;
private:
~OsDiagnosticsRunCpuStressRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
class OsDiagnosticsRunMemoryRoutineFunction
: public DiagnosticsApiRunRoutineFunctionBase {
public:
DECLARE_EXTENSION_FUNCTION("os.diagnostics.runMemoryRoutine",
OS_DIAGNOSTICS_RUNMEMORYROUTINE)
OsDiagnosticsRunMemoryRoutineFunction();
OsDiagnosticsRunMemoryRoutineFunction(
const OsDiagnosticsRunMemoryRoutineFunction&) = delete;
OsDiagnosticsRunMemoryRoutineFunction& operator=(
const OsDiagnosticsRunMemoryRoutineFunction&) = delete;
private:
~OsDiagnosticsRunMemoryRoutineFunction() override;
// BaseTelemetryExtensionApiGuardFunction:
ResponseAction RunIfAllowed() override;
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_DIAGNOSTICS_API_H_