summaryrefslogtreecommitdiffstats
path: root/devtools/client/accessibility/actions/ui.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/accessibility/actions/ui.js')
-rw-r--r--devtools/client/accessibility/actions/ui.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/devtools/client/accessibility/actions/ui.js b/devtools/client/accessibility/actions/ui.js
new file mode 100644
index 0000000000..d4af5ba8fb
--- /dev/null
+++ b/devtools/client/accessibility/actions/ui.js
@@ -0,0 +1,77 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const {
+ ENABLE,
+ RESET,
+ UPDATE_CAN_BE_DISABLED,
+ UPDATE_CAN_BE_ENABLED,
+ UPDATE_PREF,
+ PREF_KEYS,
+ UPDATE_DISPLAY_TABBING_ORDER,
+} = require("resource://devtools/client/accessibility/constants.js");
+
+/**
+ * Reset accessibility panel UI.
+ */
+exports.reset =
+ (resetAccessiblity, supports) =>
+ async ({ dispatch }) => {
+ try {
+ const { enabled, canBeDisabled, canBeEnabled } =
+ await resetAccessiblity();
+ dispatch({ enabled, canBeDisabled, canBeEnabled, supports, type: RESET });
+ } catch (error) {
+ dispatch({ type: RESET, error });
+ }
+ };
+
+/**
+ * Update a "canBeDisabled" flag for accessibility service.
+ */
+exports.updateCanBeDisabled =
+ canBeDisabled =>
+ ({ dispatch }) =>
+ dispatch({ canBeDisabled, type: UPDATE_CAN_BE_DISABLED });
+
+/**
+ * Update a "canBeEnabled" flag for accessibility service.
+ */
+exports.updateCanBeEnabled =
+ canBeEnabled =>
+ ({ dispatch }) =>
+ dispatch({ canBeEnabled, type: UPDATE_CAN_BE_ENABLED });
+
+exports.updatePref =
+ (name, value) =>
+ ({ dispatch }) => {
+ dispatch({ type: UPDATE_PREF, name, value });
+ Services.prefs.setBoolPref(PREF_KEYS[name], value);
+ };
+
+/**
+ * Enable accessibility services in order to view accessible tree.
+ */
+exports.enable =
+ enableAccessibility =>
+ async ({ dispatch }) => {
+ try {
+ await enableAccessibility();
+ dispatch({ type: ENABLE });
+ } catch (error) {
+ dispatch({ error, type: ENABLE });
+ }
+ };
+
+exports.updateDisplayTabbingOrder =
+ tabbingOrderDisplayed =>
+ async ({ dispatch, options: { toggleDisplayTabbingOrder } }) => {
+ try {
+ await toggleDisplayTabbingOrder(tabbingOrderDisplayed);
+ dispatch({ tabbingOrderDisplayed, type: UPDATE_DISPLAY_TABBING_ORDER });
+ } catch (error) {
+ dispatch({ error, type: UPDATE_DISPLAY_TABBING_ORDER });
+ }
+ };