blob: 09b3de1503e343c8a7d502e879a8fcb70ad394a4 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module ash.mojom;
import "ui/events/mojo/event.mojom";
// Allows a client to implement spoken feedback features; used for ChromeVox.
interface SpokenFeedbackEventRewriterDelegate {
// Used to send key events to the ChromeVox extension. |capture| is true if
// the rewriter discarded the event, false if the rewriter continues event
// propagation.
DispatchKeyEventToChromeVox(ui.mojom.Event event, bool capture);
// Used to send mouse events to the ChromeVox extension.
DispatchMouseEventToChromeVox(ui.mojom.Event event);
};
// Allows clients to toggle some event rewriting behavior.
interface EventRewriterController {
// Enables the KeyboardDrivenEventRewriter, which is disabled by default.
// This only applies when the user is on the login screen.
SetKeyboardDrivenEventRewriterEnabled(bool enabled);
// If true, Shift + Arrow keys are rewritten to Tab/Shift-Tab keys.
// This only applies when the KeyboardDrivenEventRewriter is active.
SetArrowToTabRewritingEnabled(bool enabled);
// Set the delegate used by the spoken feedback event rewriter.
SetSpokenFeedbackEventRewriterDelegate(
SpokenFeedbackEventRewriterDelegate delegate);
// Continue dispatch of key events that were unhandled by ChromeVox.
// TODO(crbug.com/839541): ChromeVox should not repost unhandled events.
OnUnhandledSpokenFeedbackEvent(ui.mojom.Event event);
// Discards key events and sends to spoken feedback when true.
CaptureAllKeysForSpokenFeedback(bool capture);
// Sends mouse events to ChromeVox when true.
SetSendMouseEventsToDelegate(bool value);
};