blob: 4eaeb8c73a05a9567800c3fc88cf4e01bbdf09ae [file] [log] [blame]
// Copyright 2017 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 ws.mojom;
import "ui/events/mojo/event.mojom";
// An interface offered by the window service which allows clients to inject
// events. This class is mainly provided for tests, but is also used for timing
// (telemetry).
interface EventInjector {
// Takes an event and dispatches it as if it came from the native platform.
// Responds with false on bad |display_id| or bad |event|; true once the
// event has completed processing.
//
// If |event| is a LocatedEvent, then the coordinates must be in DIPs, and
// relative to the origin of the display identified by |display_id|.
InjectEvent(int64 display_id, ui.mojom.Event event) => (bool result);
// Takes an event and dispatches it as if it came from the native platform.
// Similar to InjectEvent() but does not respond when processing is complete.
InjectEventNoAck(int64 display_id, ui.mojom.Event event);
// Similar to InjectEventNoAck(), but skips event rewriters.
InjectEventNoAckNoRewriters(int64 display_id, ui.mojom.Event event);
};