| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module crosapi.mojom; |
| |
| // The virtual keyboard features that RestrictFeatures API can control, this |
| // should align with the definition of FeatureRestrictions in |
| // extensions/common/api/virtual_keyboard.idl |
| [Stable, Extensible] |
| enum VirtualKeyboardFeature { |
| [Default] NONE = 0, // invalid restriction type |
| AUTOCOMPLETE = 1, |
| AUTOCORRECT = 2, |
| HANDWRITING = 3, |
| SPELL_CHECK = 4, |
| VOICE_INPUT = 5, |
| }; |
| |
| // A list of enabled features and a list of disabled features that users want to |
| // change. Ideally no feature should appear in both lists, but if it happens, it |
| // will be disabled. VirtualKeyboardFeature::NONE should not be in any of the |
| // lists. |
| [Stable] |
| struct VirtualKeyboardRestrictions { |
| // A list of features we want to enable. |
| array<VirtualKeyboardFeature> enabled_features; |
| |
| // A list of features we want to disable. |
| array<VirtualKeyboardFeature> disabled_features; |
| }; |
| |
| // VirtualKeyboard is a service that allows trusted extensions in Lacros |
| // to control the virtual keyboard. |
| [Stable, Uuid="1236c20e-5ddd-4ecd-bacf-37c2f5d112fe"] |
| interface VirtualKeyboard { |
| // Sets restrictions on features provided by the virtual keyboard. |
| RestrictFeatures@0(VirtualKeyboardRestrictions restrictions) => |
| (VirtualKeyboardRestrictions updated); |
| }; |