| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import type {KeyCode} from './key_code.js'; |
| import {TestImportManager} from './testing/test_import_manager.js'; |
| |
| /** |
| * @fileoverview Wraps automation and accessibility_private callbacks |
| * in Promises. |
| */ |
| |
| type AutomationNode = chrome.automation.AutomationNode; |
| |
| export class AsyncUtil { |
| static async getDesktop(): Promise<AutomationNode> { |
| return new Promise(resolve => chrome.automation.getDesktop(resolve)); |
| } |
| |
| static async getFocus(): Promise<AutomationNode> { |
| return new Promise(resolve => chrome.automation.getFocus(resolve)); |
| } |
| |
| static async getLocalizedDomKeyStringForKeyCode( |
| keyCode: KeyCode): Promise<string> { |
| return new Promise( |
| resolve => |
| chrome.accessibilityPrivate.getLocalizedDomKeyStringForKeyCode( |
| keyCode, resolve)); |
| } |
| } |
| |
| TestImportManager.exportForTesting(AsyncUtil); |