Source code
Revision control
Copy as Markdown
Other Tools
/* 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
"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 });
}
};