summaryrefslogtreecommitdiff
path: root/chromium/content/common/input/input_handler.mojom
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/common/input/input_handler.mojom')
-rw-r--r--chromium/content/common/input/input_handler.mojom398
1 files changed, 0 insertions, 398 deletions
diff --git a/chromium/content/common/input/input_handler.mojom b/chromium/content/common/input/input_handler.mojom
deleted file mode 100644
index 6ae8d0bf969..00000000000
--- a/chromium/content/common/input/input_handler.mojom
+++ /dev/null
@@ -1,398 +0,0 @@
-// 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 content.mojom;
-
-import "cc/mojom/touch_action.mojom";
-import "content/common/input/synchronous_compositor.mojom";
-import "content/common/native_types.mojom";
-import "mojo/public/mojom/base/string16.mojom";
-import "mojo/public/mojom/base/time.mojom";
-import "third_party/blink/public/mojom/input/gesture_event.mojom";
-import "third_party/blink/public/mojom/input/input_event.mojom";
-import "third_party/blink/public/mojom/input/input_handler.mojom";
-import "third_party/blink/public/mojom/input/input_event_result.mojom";
-import "third_party/blink/public/mojom/input/pointer_lock_result.mojom";
-import "third_party/blink/public/mojom/input/touch_event.mojom";
-import "third_party/blink/public/mojom/input/pointer_lock_context.mojom";
-import "third_party/blink/public/mojom/selection_menu/selection_menu_behavior.mojom";
-import "ui/base/ime/mojom/ime_types.mojom";
-import "ui/events/mojom/event.mojom";
-import "ui/events/mojom/event_constants.mojom";
-import "ui/events/mojom/scroll_granularity.mojom";
-import "ui/gfx/geometry/mojom/geometry.mojom";
-import "ui/gfx/range/mojom/range.mojom";
-import "ui/latency/mojom/latency_info.mojom";
-
-
-// These structs are purposely duplicated from ui/events/mojom/event.mojom.
-// They map WebInputEvent <-> WebInputEvent across mojo.
-// We have to work at unifying them. The current problem is that the browser
-// uses WebInputEvents inside the render widget host and input router. Once
-// we move these to ui::Event's then we can get rid of these duplicated
-// mojom structs. Ideally the browser would use ui::Event up until we
-// pass the events into the renderer and just use a StructTraits to perform
-// conversion from ui::mojom::Event --> blink::WebInputEvent.
-struct KeyData {
- int32 dom_key;
- int32 dom_code;
- int32 windows_key_code;
- int32 native_key_code;
- bool is_system_key;
- bool is_browser_shortcut;
- mojo_base.mojom.String16 text;
- mojo_base.mojom.String16 unmodified_text;
-};
-
-struct PointerData {
- int32 pointer_id;
- float force;
- int32 tilt_x;
- int32 tilt_y;
- float tangential_pressure;
- int32 twist;
- blink.mojom.Button button;
- ui.mojom.EventPointerType pointer_type;
- int32 movement_x;
- int32 movement_y;
- bool is_raw_movement_event;
- gfx.mojom.PointF widget_position;
- gfx.mojom.PointF screen_position;
- MouseData? mouse_data;
-};
-
-struct WheelData {
- float delta_x;
- float delta_y;
- float wheel_ticks_x;
- float wheel_ticks_y;
- float acceleration_ratio_x;
- float acceleration_ratio_y;
- uint8 phase;
- uint8 momentum_phase;
- blink.mojom.DispatchType cancelable;
- uint8 event_action;
- uint8 delta_units;
-};
-
-struct MouseData {
- int32 click_count;
- WheelData? wheel_data;
-};
-
-struct ScrollUpdate {
- float velocity_x;
- float velocity_y;
-};
-
-struct ScrollData {
- float delta_x;
- float delta_y;
- ui.mojom.ScrollGranularity delta_units;
- bool target_viewport;
- blink.mojom.InertialPhaseState inertial_phase;
- bool synthetic;
- int32 pointer_count;
- ScrollUpdate? update_details;
-};
-
-struct PinchBeginData {
- bool needs_wheel_event;
-};
-
-struct PinchUpdateData {
- float scale;
- bool zoom_disabled;
- bool needs_wheel_event;
-};
-
-struct PinchEndData {
- bool needs_wheel_event;
-};
-
-struct FlingData {
- float velocity_x;
- float velocity_y;
- bool target_viewport;
- bool prevent_boosting;
-};
-
-struct TapData {
- int32 tap_count;
- bool needs_wheel_event;
-};
-
-struct GestureData {
- gfx.mojom.PointF screen_position;
- gfx.mojom.PointF widget_position;
- blink.mojom.GestureDevice source_device;
- bool is_source_touch_event_set_non_blocking;
- ui.mojom.EventPointerType primary_pointer_type;
- int32 unique_touch_event_id;
- gfx.mojom.Size? contact_size;
- ScrollData? scroll_data;
- PinchBeginData? pinch_begin_data;
- PinchUpdateData? pinch_update_data;
- PinchEndData? pinch_end_data;
- TapData? tap_data;
- FlingData? fling_data;
-};
-
-struct TouchPoint {
- blink.mojom.TouchState state;
- float radius_x;
- float radius_y;
- float rotation_angle;
- PointerData pointer_data;
-};
-
-struct TouchData {
- blink.mojom.DispatchType cancelable;
- bool moved_beyond_slop_region;
- bool touch_start_or_first_move;
- bool hovering;
- uint32 unique_touch_event_id;
- array<TouchPoint> touches;
-};
-
-struct Event {
- blink.mojom.EventType type;
- int32 modifiers;
- mojo_base.mojom.TimeTicks timestamp;
- ui.mojom.LatencyInfo latency;
- KeyData? key_data;
- PointerData? pointer_data;
- GestureData? gesture_data;
- TouchData? touch_data;
-};
-
-// Interface exposed by the browser to the renderer.
-interface WidgetInputHandlerHost {
- // When the renderer's main thread computes the touch action, send this to the
- // browser.
- SetTouchActionFromMain(cc.mojom.TouchAction touch_action);
-
- // Sent by the compositor when input scroll events are dropped due to bounds
- // restrictions on the root scroll offset.
- DidOverscroll(blink.mojom.DidOverscrollParams params);
-
- // Sent by the compositor when a GSB has started scrolling the viewport.
- DidStartScrollingViewport();
-
- // Required for cancelling an ongoing input method composition.
- ImeCancelComposition();
-
- // Sends the character bounds after every composition change
- // to always have correct bound info.
- ImeCompositionRangeChanged(gfx.mojom.Range range,
- array<gfx.mojom.Rect> bounds);
-
- // Updates the mouse capture state of this widget. While capture is enabled,
- // all mouse events, including those that don't hittest to this widget, will
- // be targeted to this widget. This enables Blink to behave correctly when
- // a scrollbar is being dragged, or text is being drag-highlighted, even
- // when the mouse passes across different RenderWidget areas.
- SetMouseCapture(bool capture);
-
- // Requests locking the target of mouse events to a single element and
- // removing the cursor from view. Mostly used by the Pointer Lock API.
- // See https://www.w3.org/TR/pointerlock/ for more info. This call is
- // also used by Pepper Flash.
- // |from_user_gesture| indicates whether this request came from a user
- // gesture or not.
- // |privileged| is used by Pepper Flash. Privileged mouse lock is only
- // allowed for fullscreen render widget, which is used to implement Pepper
- // Flash fullscreen. If privileged is allowed and set to true, we
- // won't pop up a bubble to ask for user permission or take mouse lock
- // content into account. The mouse lock will be directly approved.
- // |unadjusted_movement| indicates whether the request asked for raw mouse
- // movement data or just what the operating system returns (often accelerated
- // mouse movement).
- // |result| kSuccess if the mouse has been locked or the appropriate error
- // reason if not.
- // |context| is one end of a mojo pipe that will stay connected as long as
- // the mouse is locked. Is a NullRemote if |result| is not kSuccess.
- RequestMouseLock(bool from_user_gesture,
- bool privileged,
- bool unadjusted_movement)
- => (blink.mojom.PointerLockResult result,
- pending_remote<blink.mojom.PointerLockContext>? context);
-};
-
-// Interface exposed by the renderer to the browser. This class represents
-// an input interface for an associated Widget object. See FrameInputHandler
-// for an interface at the frame level.
-interface WidgetInputHandler {
- // Tells widget focus has been changed.
- SetFocus(bool focused);
-
- // Tells widget mouse capture has been lost.
- MouseCaptureLost();
-
- // This message notifies the renderer that the next key event is bound to one
- // or more pre-defined edit commands. If the next key event is not handled
- // by blink, the specified edit commands shall be executed against current
- // focused frame.
- // Parameters
- // * edit_commands
- // See t_p/b/renderer/core/editing/commands/editing_command_type.h
- // Contains one or more edit commands.
- // See t_p/b/renderer/core/editing/commands/editor_command.cc for
- // detailed definition of webkit edit commands.
- //
- // This message must be sent just before sending a key event.
- SetEditCommandsForNextKeyEvent(array<blink.mojom.EditCommand> edit_commands);
-
- // Sends the cursor visibility state to the render widget.
- CursorVisibilityChanged(bool visible);
-
- // This message sends a string being composed with an input method.
- ImeSetComposition(mojo_base.mojom.String16 text,
- array<ui.mojom.ImeTextSpan> ime_text_spans,
- gfx.mojom.Range range, int32 start, int32 end);
-
- // This message deletes the current composition, inserts specified text, and
- // moves the cursor.
- ImeCommitText(mojo_base.mojom.String16 text,
- array<ui.mojom.ImeTextSpan> ime_text_spans,
- gfx.mojom.Range range, int32 relative_cursor_position) => ();
-
- // This message inserts the ongoing composition.
- ImeFinishComposingText(bool keep_selection);
-
- // Request from browser to update text input state.
- RequestTextInputStateUpdate();
-
- // Request from browser to update the cursor and composition information which
- // will be sent through ImeCompositionRangeChanged. Setting
- // |immediate_request| to true will lead to an immediate update. If
- // |monitor_updates| is set to true then changes to text selection or regular
- // updates in each compositor frame (when there is a change in composition
- // info) will lead to updates being sent to the browser.
- RequestCompositionUpdates(bool immediate_request, bool monitor_request);
-
- // Sends an input event to the render widget. The browser should use this
- // API if it wants to know about the result of the rendering handling
- // the event. The callback may be delayed based on the event running on
- // the main thread so DispatchNonBlockingEvent is always preferred if
- // you don't require notification.
- DispatchEvent(Event event)
- => (blink.mojom.InputEventResultSource source,
- ui.mojom.LatencyInfo updated_latency,
- blink.mojom.InputEventResultState state,
- blink.mojom.DidOverscrollParams? overscroll,
- blink.mojom.TouchActionOptional? touch_action);
-
- // Sends a non-blocking input event to the render widget. The behaviour
- // of this API is the same as DispatchEvent just that there is no callback
- // after the event is processed.
- DispatchNonBlockingEvent(Event event);
-
- // Forces input to be flushed and resolves the callback only once the input
- // has been fully processed, meaning its effects are visible to the full
- // system. In practice, this will force a redraw and wait until the new
- // CompositorFrame (containing all changes caused by prior input) has been
- // displayed.
- WaitForInputProcessed() => ();
-
- // Attach the synchronous compositor interface. This method only
- // should be called for Android WebView.
- AttachSynchronousCompositor(
- pending_remote<SynchronousCompositorControlHost> control_host,
- pending_associated_remote<SynchronousCompositorHost> host,
- pending_associated_receiver<SynchronousCompositor> compositor_request);
-};
-
-// This interface provides the input actions associated with the RenderFrame.
-// Other input actions may also be dispatched via the WidgetInputHandler
-// interface. If frame input actions are dispatched the WidgetInputHandler
-// should be fetched via the associated interface request so that input calls
-// remain in order. See https://goo.gl/x4ee8A for more details.
-interface FrameInputHandler {
- // Sets the text composition to be between the given start and end offsets in
- // the currently focused editable field.
- SetCompositionFromExistingText(
- int32 start, int32 end, array<ui.mojom.ImeTextSpan> ime_text_spans);
-
- // Deletes the current selection plus the specified number of characters
- // before and after the selection or caret.
- ExtendSelectionAndDelete(int32 before, int32 after);
-
- // Deletes text before and after the current cursor position, excluding the
- // selection. The lengths are supplied in Java chars (UTF-16 Code Unit),
- // not in code points or in glyphs.
- DeleteSurroundingText(int32 before, int32 after);
-
- // Deletes text before and after the current cursor position, excluding the
- // selection. The lengths are supplied in code points, not in Java chars
- // (UTF-16 Code Unit) or in glyphs. Does nothing if there are one or more
- // invalid surrogate pairs in the requested range
- DeleteSurroundingTextInCodePoints(int32 before, int32 after);
-
- // Selects between the given start and end offsets in the currently focused
- // editable field.
- SetEditableSelectionOffsets(int32 start, int32 end);
-
- // Message payload is the name/value of a WebCore edit command to execute.
- ExecuteEditCommand(string command, mojo_base.mojom.String16? value);
-
- // These messages are typically generated from context menus and request the
- // renderer to apply the specified operation to the current selection.
- Undo();
- Redo();
- Cut();
- Copy();
- CopyToFindPboard();
- Paste();
- PasteAndMatchStyle();
- Delete();
- SelectAll();
- CollapseSelection();
-
- // Replaces the selected region or a word around the cursor with the
- // specified string.
- Replace(mojo_base.mojom.String16 word);
-
- // Replaces the misspelling in the selected region with the specified string.
- ReplaceMisspelling(mojo_base.mojom.String16 word);
-
- // Requests the renderer to select the region between two points.
- // Expects a SelectRange_ACK message when finished.
- SelectRange(gfx.mojom.Point base, gfx.mojom.Point extent);
-
- // Sent by the browser to ask the renderer to adjust the selection start and
- // end points by the given amounts. A negative amount moves the selection
- // towards the beginning of the document, a positive amount moves the
- // selection towards the end of the document. Will send show selection menu
- // event when needed.
- AdjustSelectionByCharacterOffset(
- int32 start, int32 end, blink.mojom.SelectionMenuBehavior behavior);
-
- // Requests the renderer to select word around caret.
- // Expects ack with new selection information when finished. |start_adjust|
- // and |end_adjust| are the start and end offset difference between the
- // current selection and the previous selection (which is a caret).
- [EnableIf=is_android]
- SelectWordAroundCaret()
- => (bool did_select, int32 start_adjust, int32 end_adjust);
-
- // Requests the renderer to move the selection extent point to a new position.
- // Expects a MoveRangeSelectionExtent_ACK message when finished.
- MoveRangeSelectionExtent(gfx.mojom.Point extent);
-
- // Tells the renderer to scroll the currently focused node into rect only if
- // the currently focused node is a Text node (textfield, text area or content
- // editable divs).
- ScrollFocusedEditableNodeIntoRect(gfx.mojom.Rect rect);
-
- // Requests the renderer to move the caret selection toward the point.
- MoveCaret(gfx.mojom.Point point);
-
- // Return an associated WidgetInputHandler interface so that input
- // messages to the widget associated with this frame can be sent
- // serially.
- GetWidgetInputHandler(
- pending_associated_receiver<WidgetInputHandler> interface_request,
- pending_remote<WidgetInputHandlerHost> host);
-};