blob: d16a1fafbaf5c1a71e28328bec3d5edfd3b18fcb [file] [log] [blame]
// Copyright 2012 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_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
#define CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
// The functions in this file are alphabetized. Please insert new functions in
// alphabetical order.
#include <optional>
#include "build/chromeos_buildflags.h"
#include "chrome/common/extensions/api/accessibility_private.h"
#include "extensions/browser/extension_function.h"
// API function that is called when the Select-to-Speak wants to perform a
// clipboard copy in a Lacros Google Doc.
class AccessibilityPrivateClipboardCopyInActiveLacrosGoogleDocFunction
: public ExtensionFunction {
~AccessibilityPrivateClipboardCopyInActiveLacrosGoogleDocFunction() override {
}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.clipboardCopyInActiveLacrosGoogleDoc",
ACCESSIBILITY_PRIVATE_CLIPBOARDCOPYINACTIVELACROSGOOGLEDOC)
};
// API function that darkens or undarkens the screen.
class AccessibilityPrivateDarkenScreenFunction : public ExtensionFunction {
~AccessibilityPrivateDarkenScreenFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.darkenScreen",
ACCESSIBILITY_PRIVATE_DARKENSCREEN)
};
// API function that enables or disables mouse events in ChromeVox / Magnifier /
// FaceGaze.
class AccessibilityPrivateEnableMouseEventsFunction : public ExtensionFunction {
~AccessibilityPrivateEnableMouseEventsFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableMouseEvents",
ACCESSIBILITY_PRIVATE_ENABLEMOUSEEVENTS)
};
// API function that sets the cursor position on the screen in absolute
// coordinates.
class AccessibilityPrivateSetCursorPositionFunction : public ExtensionFunction {
~AccessibilityPrivateSetCursorPositionFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setCursorPosition",
ACCESSIBILITY_PRIVATE_SETCURSORPOSITION)
};
// API function that gets the bounds of the displays in absolute coordinates.
class AccessibilityPrivateGetDisplayBoundsFunction : public ExtensionFunction {
~AccessibilityPrivateGetDisplayBoundsFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.getDisplayBounds",
ACCESSIBILITY_PRIVATE_GETDISPLAYBOUNDS)
};
// API function that requests that key events be forwarded to the Switch
// Access extension.
class AccessibilityPrivateForwardKeyEventsToSwitchAccessFunction
: public ExtensionFunction {
~AccessibilityPrivateForwardKeyEventsToSwitchAccessFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.forwardKeyEventsToSwitchAccess",
ACCESSIBILITY_PRIVATE_FORWARDKEYEVENTSTOSWITCHACCESS)
};
// API function that is called to get the device's battery status as a string.
class AccessibilityPrivateGetBatteryDescriptionFunction
: public ExtensionFunction {
public:
AccessibilityPrivateGetBatteryDescriptionFunction();
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.getBatteryDescription",
ACCESSIBILITY_PRIVATE_GETBATTERYDESCRIPTION)
private:
~AccessibilityPrivateGetBatteryDescriptionFunction() override;
};
// API function that retrieves DLC file contents.
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);
};
// API function that retrieves TTS DLC file contents.
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);
};
// API function that gets the localized DOM key string for a given key code.
class AccessibilityPrivateGetLocalizedDomKeyStringForKeyCodeFunction
: public ExtensionFunction {
~AccessibilityPrivateGetLocalizedDomKeyStringForKeyCodeFunction() override =
default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.getLocalizedDomKeyStringForKeyCode",
ACCESSIBILITY_PRIVATE_GETLOCALIZEDDOMKEYSTRINGFORKEYCODE)
};
// API function that is called when the Accessibility Common extension finds
// scrollable bounds.
class AccessibilityPrivateHandleScrollableBoundsForPointFoundFunction
: public ExtensionFunction {
~AccessibilityPrivateHandleScrollableBoundsForPointFoundFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.handleScrollableBoundsForPointFound",
ACCESSIBILITY_PRIVATE_HANDLESCROLLABLEBOUNDSFORPOINTFOUND)
};
// API function that initiates a download of the FaceGaze assets DLC and
// responds with the file bytes via a callback.
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);
};
// API function that initiates a Pumpkin download for Dictation and responds
// with the file bytes via a callback.
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);
};
// API function that determines if an accessibility feature is enabled.
class AccessibilityPrivateIsFeatureEnabledFunction : public ExtensionFunction {
~AccessibilityPrivateIsFeatureEnabledFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.isFeatureEnabled",
ACCESSIBILITY_PRIVATE_ISFEATUREENABLED)
};
// API function that is called by the Accessibility Common extension to center
// the magnifier viewport on a passed-in point.
class AccessibilityPrivateMagnifierCenterOnPointFunction
: public ExtensionFunction {
~AccessibilityPrivateMagnifierCenterOnPointFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.magnifierCenterOnPoint",
ACCESSIBILITY_PRIVATE_MAGNIFIERCENTERONPOINT)
};
// API function that is called by the Accessibility Common extension to center
// the magnifier viewport on a passed-in rect.
class AccessibilityPrivateMoveMagnifierToRectFunction
: public ExtensionFunction {
~AccessibilityPrivateMoveMagnifierToRectFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.moveMagnifierToRect",
ACCESSIBILITY_PRIVATE_MOVEMAGNIFIERTORECT)
};
// Opens a specified subpage in Chrome settings.
class AccessibilityPrivateOpenSettingsSubpageFunction
: public ExtensionFunction {
~AccessibilityPrivateOpenSettingsSubpageFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.openSettingsSubpage",
ACCESSIBILITY_PRIVATE_OPENSETTINGSSUBPAGE)
};
// API function that performs an accelerator action.
class AccessibilityPrivatePerformAcceleratorActionFunction
: public ExtensionFunction {
~AccessibilityPrivatePerformAcceleratorActionFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.performAcceleratorAction",
ACCESSIBILITY_PRIVATE_PERFORMACCELERATORACTION)
};
// API function that injects key events.
class AccessibilityPrivateSendSyntheticKeyEventFunction
: public ExtensionFunction {
~AccessibilityPrivateSendSyntheticKeyEventFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendSyntheticKeyEvent",
ACCESSIBILITY_PRIVATE_SENDSYNTHETICKEYEVENT)
};
// API function that injects mouse events.
class AccessibilityPrivateSendSyntheticMouseEventFunction
: public ExtensionFunction {
~AccessibilityPrivateSendSyntheticMouseEventFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendSyntheticMouseEvent",
ACCESSIBILITY_PRIVATE_SENDSYNTHETICMOUSEEVENT)
};
// API function that sets the location of the accessibility focus ring.
class AccessibilityPrivateSetFocusRingsFunction : public ExtensionFunction {
~AccessibilityPrivateSetFocusRingsFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setFocusRings",
ACCESSIBILITY_PRIVATE_SETFOCUSRING)
};
// API function that sets the location of the accessibility highlights.
class AccessibilityPrivateSetHighlightsFunction : public ExtensionFunction {
~AccessibilityPrivateSetHighlightsFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setHighlights",
ACCESSIBILITY_PRIVATE_SETHIGHLIGHTS)
};
// API function that is called when the Select to Speak reading position
// changes.
class AccessibilityPrivateSetSelectToSpeakFocusFunction
: public ExtensionFunction {
~AccessibilityPrivateSetSelectToSpeakFocusFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setSelectToSpeakFocus",
ACCESSIBILITY_PRIVATE_SETSELECTTOSPEAKFOCUS)
};
// API function that sets keyboard capture mode.
class AccessibilityPrivateSetKeyboardListenerFunction
: public ExtensionFunction {
~AccessibilityPrivateSetKeyboardListenerFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setKeyboardListener",
ACCESSIBILITY_PRIVATE_SETKEYBOARDLISTENER)
};
// API function that enables or disables web content accessibility support.
class AccessibilityPrivateSetNativeAccessibilityEnabledFunction
: public ExtensionFunction {
~AccessibilityPrivateSetNativeAccessibilityEnabledFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION(
"accessibilityPrivate.setNativeAccessibilityEnabled",
ACCESSIBILITY_PRIVATE_SETNATIVEACCESSIBILITYENABLED)
};
// API function that sets native ChromeVox ARC support.
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)
};
// API function that is called to start or end point scanning of the
// Switch Access extension.
class AccessibilityPrivateSetPointScanStateFunction : public ExtensionFunction {
~AccessibilityPrivateSetPointScanStateFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setPointScanState",
ACCESSIBILITY_PRIVATE_SETPOINTSCANSTATE)
};
// API function that is called when the Select-to-Speak extension state changes.
class AccessibilityPrivateSetSelectToSpeakStateFunction
: public ExtensionFunction {
~AccessibilityPrivateSetSelectToSpeakStateFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setSelectToSpeakState",
ACCESSIBILITY_PRIVATE_SETSELECTTOSPEAKSTATE)
};
// API function that opens or closes the virtual keyboard.
class AccessibilityPrivateSetVirtualKeyboardVisibleFunction
: public ExtensionFunction {
~AccessibilityPrivateSetVirtualKeyboardVisibleFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setVirtualKeyboardVisible",
ACCESSIBILITY_PRIVATE_SETVIRTUALKEYBOARDVISIBLE)
};
// API function that displays an accessibility-related toast.
class AccessibilityPrivateShowToastFunction : public ExtensionFunction {
~AccessibilityPrivateShowToastFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.showToast",
ACCESSIBILITY_PRIVATE_SHOWTOAST)
};
// API function that shows a confirmation dialog, with callbacks for
// confirm/cancel.
class AccessibilityPrivateShowConfirmationDialogFunction
: public ExtensionFunction {
~AccessibilityPrivateShowConfirmationDialogFunction() override = default;
ResponseAction Run() override;
void OnDialogResult(bool confirmed);
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.showConfirmationDialog",
ACCESSIBILITY_PRIVATE_SHOWCONFIRMATIONDIALOG)
};
// API function that silences ChromeVox.
class AccessibilityPrivateSilenceSpokenFeedbackFunction
: public ExtensionFunction {
~AccessibilityPrivateSilenceSpokenFeedbackFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.silenceSpokenFeedback",
ACCESSIBILITY_PRIVATE_SILENCESPOKENFEEDBACK)
};
// API function that is called when a user toggles Dictation from another
// acessibility feature.
class AccessibilityPrivateToggleDictationFunction : public ExtensionFunction {
~AccessibilityPrivateToggleDictationFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.toggleDictation",
ACCESSIBILITY_PRIVATE_TOGGLEDICTATION)
};
// API function that updates the Dictation bubble UI.
class AccessibilityPrivateUpdateDictationBubbleFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateDictationBubbleFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateDictationBubble",
ACCESSIBILITY_PRIVATE_UPDATEDICTATIONBUBBLE)
};
// API function that updates properties of the Select-to-speak panel.
class AccessibilityPrivateUpdateSelectToSpeakPanelFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateSelectToSpeakPanelFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateSelectToSpeakPanel",
ACCESSIBILITY_PRIVATE_UPDATESELECTTOSPEAKPANEL)
};
// API function that is called to show or hide one of the Switch Access bubbles.
class AccessibilityPrivateUpdateSwitchAccessBubbleFunction
: public ExtensionFunction {
~AccessibilityPrivateUpdateSwitchAccessBubbleFunction() override {}
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateSwitchAccessBubble",
ACCESSIBILITY_PRIVATE_UPDATESWITCHACCESSBUBBLE)
};
class AccessibilityPrivateIsLacrosPrimaryFunction : public ExtensionFunction {
~AccessibilityPrivateIsLacrosPrimaryFunction() override = default;
ResponseAction Run() override;
DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.isLacrosPrimary",
ACCESSIBILITY_PRIVATE_ISLACROSPRIMARY)
};
#endif // CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_