|  | // 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 "chrome/common/extensions/api/accessibility_private.h" | 
|  | #include "content/public/browser/scoped_accessibility_mode.h" | 
|  | #include "extensions/browser/extension_function.h" | 
|  |  | 
|  | // API function that darkens or undarkens the screen. | 
|  | class AccessibilityPrivateDarkenScreenFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateDarkenScreenFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.darkenScreen", | 
|  | ACCESSIBILITY_PRIVATE_DARKENSCREEN) | 
|  | }; | 
|  |  | 
|  | // API function that enables the DragEventRewriter. While the event rewriter is | 
|  | // enabled, it will convert all mouse moved events into mouse dragged events. | 
|  | class AccessibilityPrivateEnableDragEventRewriterFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateEnableDragEventRewriterFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableDragEventRewriter", | 
|  | ACCESSIBILITY_PRIVATE_ENABLEDRAGEVENTREWRITER) | 
|  | }; | 
|  |  | 
|  | // API function that enables or disables mouse events in ChromeVox / Magnifier / | 
|  | // FaceGaze. | 
|  | class AccessibilityPrivateEnableMouseEventsFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateEnableMouseEventsFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableMouseEvents", | 
|  | ACCESSIBILITY_PRIVATE_ENABLEMOUSEEVENTS) | 
|  | }; | 
|  |  | 
|  | // API function that enables or disables the live caption feature. | 
|  | class AccessibilityPrivateEnableLiveCaptionFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateEnableLiveCaptionFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.enableLiveCaption", | 
|  | ACCESSIBILITY_PRIVATE_ENABLELIVECAPTION) | 
|  | }; | 
|  |  | 
|  | // API function that sets the cursor position on the screen in absolute | 
|  | // coordinates. | 
|  | class AccessibilityPrivateSetCursorPositionFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSetCursorPositionFunction() override = default; | 
|  | 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 = default; | 
|  | 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 = | 
|  | default; | 
|  | 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 = | 
|  | default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION( | 
|  | "accessibilityPrivate.handleScrollableBoundsForPointFound", | 
|  | ACCESSIBILITY_PRIVATE_HANDLESCROLLABLEBOUNDSFORPOINTFOUND) | 
|  | }; | 
|  |  | 
|  | // API function that is called by the ChromeVox extension to process a pending | 
|  | // key event. | 
|  | class AccessibilityPrivateProcessPendingSpokenFeedbackEventFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateProcessPendingSpokenFeedbackEventFunction() override = | 
|  | default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION( | 
|  | "accessibilityPrivate.processPendingSpokenFeedbackEvent", | 
|  | ACCESSIBILITY_PRIVATE_PROCESSPENDINGSPOKENFEEDBACKEVENT) | 
|  | }; | 
|  |  | 
|  | // 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 sends gesture and confidence information for a detected | 
|  | // gesture in FaceGaze. | 
|  | class AccessibilityPrivateSendGestureInfoToSettingsFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSendGestureInfoToSettingsFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendGestureInfoToSettings", | 
|  | ACCESSIBILITY_PRIVATE_SENDGESTUREINFOTOSETTINGS) | 
|  | }; | 
|  |  | 
|  | // 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 = default; | 
|  | 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 = default; | 
|  | 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 = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.moveMagnifierToRect", | 
|  | ACCESSIBILITY_PRIVATE_MOVEMAGNIFIERTORECT) | 
|  | }; | 
|  |  | 
|  | // Opens a specified subpage in Chrome settings. | 
|  | class AccessibilityPrivateOpenSettingsSubpageFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateOpenSettingsSubpageFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.openSettingsSubpage", | 
|  | ACCESSIBILITY_PRIVATE_OPENSETTINGSSUBPAGE) | 
|  | }; | 
|  |  | 
|  | // API function that performs an accelerator action. | 
|  | class AccessibilityPrivatePerformAcceleratorActionFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivatePerformAcceleratorActionFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.performAcceleratorAction", | 
|  | ACCESSIBILITY_PRIVATE_PERFORMACCELERATORACTION) | 
|  | }; | 
|  |  | 
|  | // API function that injects key events. | 
|  | class AccessibilityPrivateSendSyntheticKeyEventFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSendSyntheticKeyEventFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendSyntheticKeyEvent", | 
|  | ACCESSIBILITY_PRIVATE_SENDSYNTHETICKEYEVENT) | 
|  | }; | 
|  |  | 
|  | // API function that injects mouse events. | 
|  | class AccessibilityPrivateSendSyntheticMouseEventFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSendSyntheticMouseEventFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.sendSyntheticMouseEvent", | 
|  | ACCESSIBILITY_PRIVATE_SENDSYNTHETICMOUSEEVENT) | 
|  | }; | 
|  |  | 
|  | // API function that scrolls at a point in the specified direction. | 
|  | class AccessibilityPrivateScrollAtPointFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateScrollAtPointFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.scrollAtPoint", | 
|  | ACCESSIBILITY_PRIVATE_SCROLLATPOINT) | 
|  | }; | 
|  |  | 
|  | // API function that sets the location of the accessibility focus ring. | 
|  | class AccessibilityPrivateSetFocusRingsFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSetFocusRingsFunction() override = default; | 
|  | 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 = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setHighlights", | 
|  | ACCESSIBILITY_PRIVATE_SETHIGHLIGHTS) | 
|  | }; | 
|  |  | 
|  | // API function that is called when the ChromeVox focus changes. | 
|  | class AccessibilityPrivateSetChromeVoxFocusFunction : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSetChromeVoxFocusFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setChromeVoxFocus", | 
|  | ACCESSIBILITY_PRIVATE_SETCHROMEVOXFOCUS) | 
|  | }; | 
|  |  | 
|  | // API function that is called when the Select to Speak reading position | 
|  | // changes. | 
|  | class AccessibilityPrivateSetSelectToSpeakFocusFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSetSelectToSpeakFocusFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setSelectToSpeakFocus", | 
|  | ACCESSIBILITY_PRIVATE_SETSELECTTOSPEAKFOCUS) | 
|  | }; | 
|  |  | 
|  | // API function that sets keyboard capture mode. | 
|  | class AccessibilityPrivateSetKeyboardListenerFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSetKeyboardListenerFunction() override = default; | 
|  | 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 { | 
|  | public: | 
|  | AccessibilityPrivateSetNativeAccessibilityEnabledFunction(); | 
|  |  | 
|  | private: | 
|  | ~AccessibilityPrivateSetNativeAccessibilityEnabledFunction() override; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION( | 
|  | "accessibilityPrivate.setNativeAccessibilityEnabled", | 
|  | ACCESSIBILITY_PRIVATE_SETNATIVEACCESSIBILITYENABLED) | 
|  | std::unique_ptr<content::ScopedAccessibilityMode> scoped_accessibility_mode_; | 
|  | }; | 
|  |  | 
|  | // 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 = default; | 
|  | 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 = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.setSelectToSpeakState", | 
|  | ACCESSIBILITY_PRIVATE_SETSELECTTOSPEAKSTATE) | 
|  | }; | 
|  |  | 
|  | // API function that is called by the ChromeVox extension to enable | 
|  | // key handling for the Manifest V3 version of the extension. | 
|  | class AccessibilityPrivateEnableSpokenFeedbackMv3KeyHandlingFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateEnableSpokenFeedbackMv3KeyHandlingFunction() override = | 
|  | default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION( | 
|  | "accessibilityPrivate.enableSpokenFeedbackMv3KeyHandling", | 
|  | ACCESSIBILITY_PRIVATE_ENABLESPOKENFEEDBACKMV3KEYHANDLING) | 
|  | }; | 
|  |  | 
|  | // API function that opens or closes the virtual keyboard. | 
|  | class AccessibilityPrivateSetVirtualKeyboardVisibleFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateSetVirtualKeyboardVisibleFunction() override = default; | 
|  | 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 = default; | 
|  | 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 the FaceGaze bubble UI. | 
|  | class AccessibilityPrivateUpdateFaceGazeBubbleFunction | 
|  | : public ExtensionFunction { | 
|  | ~AccessibilityPrivateUpdateFaceGazeBubbleFunction() override = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateFaceGazeBubble", | 
|  | ACCESSIBILITY_PRIVATE_UPDATEFACEGAZEBUBBLE) | 
|  | }; | 
|  |  | 
|  | // 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 = default; | 
|  | ResponseAction Run() override; | 
|  | DECLARE_EXTENSION_FUNCTION("accessibilityPrivate.updateSwitchAccessBubble", | 
|  | ACCESSIBILITY_PRIVATE_UPDATESWITCHACCESSBUBBLE) | 
|  | }; | 
|  |  | 
|  | #endif  // CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_ |