#ifndef CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
#define CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
#include <optional>
#include "chrome/common/extensions/api/accessibility_private.h"
#include "content/public/browser/scoped_accessibility_mode.h"
#include "extensions/browser/extension_function.h"
class AccessibilityPrivateDarkenScreenFunction : public ExtensionFunction {
~AccessibilityPrivateDarkenScreenFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.darkenScreen",
ACCESSIBILITY_PRIVATE_DARKENSCREEN)
};
class AccessibilityPrivateEnableDragEventRewriterFunction
: public ExtensionFunction {
~AccessibilityPrivateEnableDragEventRewriterFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableDragEventRewriter",
ACCESSIBILITY_PRIVATE_ENABLEDRAGEVENTREWRITER)
};
class AccessibilityPrivateEnableMouseEventsFunction : public ExtensionFunction {
~AccessibilityPrivateEnableMouseEventsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableMouseEvents",
ACCESSIBILITY_PRIVATE_ENABLEMOUSEEVENTS)
};
class AccessibilityPrivateEnableLiveCaptionFunction : public ExtensionFunction {
~AccessibilityPrivateEnableLiveCaptionFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableLiveCaption",
ACCESSIBILITY_PRIVATE_ENABLELIVECAPTION)
};
class AccessibilityPrivateSetCursorPositionFunction : public ExtensionFunction {
~AccessibilityPrivateSetCursorPositionFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setCursorPosition",
ACCESSIBILITY_PRIVATE_SETCURSORPOSITION)
};
class AccessibilityPrivateGetDisplayBoundsFunction : public ExtensionFunction {
~AccessibilityPrivateGetDisplayBoundsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.getDisplayBounds",
ACCESSIBILITY_PRIVATE_GETDISPLAYBOUNDS)
};
class AccessibilityPrivateForwardKeyEventsToSwitchAccessFunction
: public ExtensionFunction {
~AccessibilityPrivateForwardKeyEventsToSwitchAccessFunction() override =
default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.forwardKeyEventsToSwitchAccess",
ACCESSIBILITY_PRIVATE_FORWARDKEYEVENTSTOSWITCHACCESS)
};
class AccessibilityPrivateGetBatteryDescriptionFunction
: public ExtensionFunction {
public:
AccessibilityPrivateGetBatteryDescriptionFunction();
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.getBatteryDescription",
ACCESSIBILITY_PRIVATE_GETBATTERYDESCRIPTION)
private:
~AccessibilityPrivateGetBatteryDescriptionFunction() override;
};
class AccessibilityPrivateGetDlcContentsFunction : public ExtensionFunction {
~AccessibilityPrivateGetDlcContentsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.getDlcContents",
ACCESSIBILITY_PRIVATE_GETDLCCONTENTS)
private:
void OnDlcContentsRetrieved(const std::vector<uint8_t>& contents,
std::optional<std::string> error);
};
class AccessibilityPrivateGetTtsDlcContentsFunction : public ExtensionFunction {
~AccessibilityPrivateGetTtsDlcContentsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.getTtsDlcContents",
ACCESSIBILITY_PRIVATE_GETTTSDLCCONTENTS)
private:
void OnTtsDlcContentsRetrieved(const std::vector<uint8_t>& contents,
std::optional<std::string> error);
};
class AccessibilityPrivateGetLocalizedDomKeyStringForKeyCodeFunction
: public ExtensionFunction {
~AccessibilityPrivateGetLocalizedDomKeyStringForKeyCodeFunction() override =
default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.getLocalizedDomKeyStringForKeyCode",
ACCESSIBILITY_PRIVATE_GETLOCALIZEDDOMKEYSTRINGFORKEYCODE)
};
class AccessibilityPrivateHandleScrollableBoundsForPointFoundFunction
: public ExtensionFunction {
~AccessibilityPrivateHandleScrollableBoundsForPointFoundFunction() override =
default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.handleScrollableBoundsForPointFound",
ACCESSIBILITY_PRIVATE_HANDLESCROLLABLEBOUNDSFORPOINTFOUND)
};
class AccessibilityPrivateProcessPendingSpokenFeedbackEventFunction
: public ExtensionFunction {
~AccessibilityPrivateProcessPendingSpokenFeedbackEventFunction() override =
default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.processPendingSpokenFeedbackEvent",
ACCESSIBILITY_PRIVATE_PROCESSPENDINGSPOKENFEEDBACKEVENT)
};
class AccessibilityPrivateInstallFaceGazeAssetsFunction
: public ExtensionFunction {
~AccessibilityPrivateInstallFaceGazeAssetsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.installFaceGazeAssets",
ACCESSIBILITY_PRIVATE_INSTALLFACEGAZEASSETS)
private:
void OnInstallFinished(
std::optional<::extensions::api::accessibility_private::FaceGazeAssets>
assets);
};
class AccessibilityPrivateSendGestureInfoToSettingsFunction
: public ExtensionFunction {
~AccessibilityPrivateSendGestureInfoToSettingsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendGestureInfoToSettings",
ACCESSIBILITY_PRIVATE_SENDGESTUREINFOTOSETTINGS)
};
class AccessibilityPrivateInstallPumpkinForDictationFunction
: public ExtensionFunction {
~AccessibilityPrivateInstallPumpkinForDictationFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.installPumpkinForDictation",
ACCESSIBILITY_PRIVATE_INSTALLPUMPKINFORDICTATION)
private:
void OnPumpkinInstallFinished(
std::optional<::extensions::api::accessibility_private::PumpkinData>
data);
};
class AccessibilityPrivateIsFeatureEnabledFunction : public ExtensionFunction {
~AccessibilityPrivateIsFeatureEnabledFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.isFeatureEnabled",
ACCESSIBILITY_PRIVATE_ISFEATUREENABLED)
};
class AccessibilityPrivateMagnifierCenterOnPointFunction
: public ExtensionFunction {
~AccessibilityPrivateMagnifierCenterOnPointFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.magnifierCenterOnPoint",
ACCESSIBILITY_PRIVATE_MAGNIFIERCENTERONPOINT)
};
class AccessibilityPrivateMoveMagnifierToRectFunction
: public ExtensionFunction {
~AccessibilityPrivateMoveMagnifierToRectFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.moveMagnifierToRect",
ACCESSIBILITY_PRIVATE_MOVEMAGNIFIERTORECT)
};
class AccessibilityPrivateOpenSettingsSubpageFunction
: public ExtensionFunction {
~AccessibilityPrivateOpenSettingsSubpageFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.openSettingsSubpage",
ACCESSIBILITY_PRIVATE_OPENSETTINGSSUBPAGE)
};
class AccessibilityPrivatePerformAcceleratorActionFunction
: public ExtensionFunction {
~AccessibilityPrivatePerformAcceleratorActionFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.performAcceleratorAction",
ACCESSIBILITY_PRIVATE_PERFORMACCELERATORACTION)
};
class AccessibilityPrivateSendSyntheticKeyEventFunction
: public ExtensionFunction {
~AccessibilityPrivateSendSyntheticKeyEventFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendSyntheticKeyEvent",
ACCESSIBILITY_PRIVATE_SENDSYNTHETICKEYEVENT)
};
class AccessibilityPrivateSendSyntheticMouseEventFunction
: public ExtensionFunction {
~AccessibilityPrivateSendSyntheticMouseEventFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendSyntheticMouseEvent",
ACCESSIBILITY_PRIVATE_SENDSYNTHETICMOUSEEVENT)
};
class AccessibilityPrivateScrollAtPointFunction : public ExtensionFunction {
~AccessibilityPrivateScrollAtPointFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.scrollAtPoint",
ACCESSIBILITY_PRIVATE_SCROLLATPOINT)
};
class AccessibilityPrivateSetFocusRingsFunction : public ExtensionFunction {
~AccessibilityPrivateSetFocusRingsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setFocusRings",
ACCESSIBILITY_PRIVATE_SETFOCUSRING)
};
class AccessibilityPrivateSetHighlightsFunction : public ExtensionFunction {
~AccessibilityPrivateSetHighlightsFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setHighlights",
ACCESSIBILITY_PRIVATE_SETHIGHLIGHTS)
};
class AccessibilityPrivateSetChromeVoxFocusFunction : public ExtensionFunction {
~AccessibilityPrivateSetChromeVoxFocusFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setChromeVoxFocus",
ACCESSIBILITY_PRIVATE_SETCHROMEVOXFOCUS)
};
class AccessibilityPrivateSetSelectToSpeakFocusFunction
: public ExtensionFunction {
~AccessibilityPrivateSetSelectToSpeakFocusFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setSelectToSpeakFocus",
ACCESSIBILITY_PRIVATE_SETSELECTTOSPEAKFOCUS)
};
class AccessibilityPrivateSetKeyboardListenerFunction
: public ExtensionFunction {
~AccessibilityPrivateSetKeyboardListenerFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setKeyboardListener",
ACCESSIBILITY_PRIVATE_SETKEYBOARDLISTENER)
};
class AccessibilityPrivateSetNativeAccessibilityEnabledFunction
: public ExtensionFunction {
public:
AccessibilityPrivateSetNativeAccessibilityEnabledFunction();
private:
~AccessibilityPrivateSetNativeAccessibilityEnabledFunction() override;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.setNativeAccessibilityEnabled",
ACCESSIBILITY_PRIVATE_SETNATIVEACCESSIBILITYENABLED)
std::unique_ptr<content::ScopedAccessibilityMode> scoped_accessibility_mode_;
};
class AccessibilityPrivateSetNativeChromeVoxArcSupportForCurrentAppFunction
: public ExtensionFunction {
~AccessibilityPrivateSetNativeChromeVoxArcSupportForCurrentAppFunction()
override {}
ResponseAction Run() override;
void OnResponse(
extensions::api::accessibility_private::SetNativeChromeVoxResponse
response);
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.setNativeChromeVoxArcSupportForCurrentApp",
ACCESSIBILITY_PRIVATE_SETNATIVECHROMEVOXARCSUPPORTFORCURRENTAPP)
};
class AccessibilityPrivateSetPointScanStateFunction : public ExtensionFunction {
~AccessibilityPrivateSetPointScanStateFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setPointScanState",
ACCESSIBILITY_PRIVATE_SETPOINTSCANSTATE)
};
class AccessibilityPrivateSetSelectToSpeakStateFunction
: public ExtensionFunction {
~AccessibilityPrivateSetSelectToSpeakStateFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setSelectToSpeakState",
ACCESSIBILITY_PRIVATE_SETSELECTTOSPEAKSTATE)
};
class AccessibilityPrivateEnableSpokenFeedbackMv3KeyHandlingFunction
: public ExtensionFunction {
~AccessibilityPrivateEnableSpokenFeedbackMv3KeyHandlingFunction() override =
default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.enableSpokenFeedbackMv3KeyHandling",
ACCESSIBILITY_PRIVATE_ENABLESPOKENFEEDBACKMV3KEYHANDLING)
};
class AccessibilityPrivateSetVirtualKeyboardVisibleFunction
: public ExtensionFunction {
~AccessibilityPrivateSetVirtualKeyboardVisibleFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setVirtualKeyboardVisible",
ACCESSIBILITY_PRIVATE_SETVIRTUALKEYBOARDVISIBLE)
};
class AccessibilityPrivateShowToastFunction : public ExtensionFunction {
~AccessibilityPrivateShowToastFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.showToast",
ACCESSIBILITY_PRIVATE_SHOWTOAST)
};
class AccessibilityPrivateShowConfirmationDialogFunction
: public ExtensionFunction {
~AccessibilityPrivateShowConfirmationDialogFunction() override = default;
ResponseAction Run() override;
void OnDialogResult(bool confirmed);
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.showConfirmationDialog",
ACCESSIBILITY_PRIVATE_SHOWCONFIRMATIONDIALOG)
};
class AccessibilityPrivateSilenceSpokenFeedbackFunction
: public ExtensionFunction {
~AccessibilityPrivateSilenceSpokenFeedbackFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.silenceSpokenFeedback",
ACCESSIBILITY_PRIVATE_SILENCESPOKENFEEDBACK)
};
class AccessibilityPrivateToggleDictationFunction : public ExtensionFunction {
~AccessibilityPrivateToggleDictationFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.toggleDictation",
ACCESSIBILITY_PRIVATE_TOGGLEDICTATION)
};
class AccessibilityPrivateUpdateDictationBubbleFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateDictationBubbleFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateDictationBubble",
ACCESSIBILITY_PRIVATE_UPDATEDICTATIONBUBBLE)
};
class AccessibilityPrivateUpdateFaceGazeBubbleFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateFaceGazeBubbleFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateFaceGazeBubble",
ACCESSIBILITY_PRIVATE_UPDATEFACEGAZEBUBBLE)
};
class AccessibilityPrivateUpdateSelectToSpeakPanelFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateSelectToSpeakPanelFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateSelectToSpeakPanel",
ACCESSIBILITY_PRIVATE_UPDATESELECTTOSPEAKPANEL)
};
class AccessibilityPrivateUpdateSwitchAccessBubbleFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateSwitchAccessBubbleFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateSwitchAccessBubble",
ACCESSIBILITY_PRIVATE_UPDATESWITCHACCESSBUBBLE)
};
#endif