mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
322 lines
8.7 KiB
Plaintext
322 lines
8.7 KiB
Plaintext
|
// 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.
|
||
|
|
||
|
// Next MinVersion: 10
|
||
|
|
||
|
module arc.mojom;
|
||
|
|
||
|
import "gfx.mojom";
|
||
|
|
||
|
// For future maintainers, each of the below enums were hand picked
|
||
|
// from their equivalents in the Android source. Keep them in the
|
||
|
// order given below and add as needed. The initial order matches the
|
||
|
// order they appear in source files.
|
||
|
//
|
||
|
// If not explicitly called out, the structs and enums below come from:
|
||
|
// https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html
|
||
|
|
||
|
// AccessibilityEventType lists the possible accessibility events on Android.
|
||
|
// https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
|
||
|
[Extensible]
|
||
|
enum AccessibilityEventType {
|
||
|
VIEW_FOCUSED,
|
||
|
VIEW_CLICKED,
|
||
|
VIEW_LONG_CLICKED,
|
||
|
VIEW_SELECTED,
|
||
|
VIEW_TEXT_CHANGED,
|
||
|
WINDOW_STATE_CHANGED,
|
||
|
NOTIFICATION_STATE_CHANGED,
|
||
|
VIEW_HOVER_ENTER,
|
||
|
VIEW_HOVER_EXIT,
|
||
|
TOUCH_EXPLORATION_GESTURE_START,
|
||
|
TOUCH_EXPLORATION_GESTURE_END,
|
||
|
WINDOW_CONTENT_CHANGED,
|
||
|
VIEW_SCROLLED,
|
||
|
VIEW_TEXT_SELECTION_CHANGED,
|
||
|
ANNOUNCEMENT,
|
||
|
VIEW_ACCESSIBILITY_FOCUSED,
|
||
|
VIEW_ACCESSIBILITY_FOCUS_CLEARED,
|
||
|
VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY,
|
||
|
GESTURE_DETECTION_START,
|
||
|
GESTURE_DETECTION_END,
|
||
|
TOUCH_INTERACTION_START,
|
||
|
TOUCH_INTERACTION_END,
|
||
|
WINDOWS_CHANGED,
|
||
|
VIEW_CONTEXT_CLICKED,
|
||
|
ASSIST_READING_CONTEXT,
|
||
|
};
|
||
|
|
||
|
// Possible actions that can be performed on an AccessibilityNodeInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilityActionType {
|
||
|
FOCUS,
|
||
|
CLEAR_FOCUS,
|
||
|
SELECT,
|
||
|
CLEAR_SELECTION,
|
||
|
CLICK,
|
||
|
LONG_CLICK,
|
||
|
ACCESSIBILITY_FOCUS,
|
||
|
CLEAR_ACCESSIBILITY_FOCUS,
|
||
|
NEXT_AT_MOVEMENT_GRANULARITY, // unused
|
||
|
PREVIOUS_AT_MOVEMENT_GRANULARITY, // unused
|
||
|
NEXT_HTML_ELEMENT, // unused
|
||
|
PREVIOUS_HTML_ELEMENT, // unused
|
||
|
SCROLL_FORWARD,
|
||
|
SCROLL_BACKWARD,
|
||
|
COPY,
|
||
|
PASTE,
|
||
|
CUT,
|
||
|
SET_SELECTION,
|
||
|
EXPAND,
|
||
|
COLLAPSE,
|
||
|
DISMISS,
|
||
|
SET_TEXT,
|
||
|
CONTEXT_CLICK,
|
||
|
SCROLL_DOWN,
|
||
|
SCROLL_LEFT,
|
||
|
SCROLL_RIGHT,
|
||
|
SCROLL_TO_POSITION,
|
||
|
SCROLL_UP,
|
||
|
SET_PROGRESS,
|
||
|
SHOW_ON_SCREEN,
|
||
|
CUSTOM_ACTION // Not a standard action.
|
||
|
};
|
||
|
|
||
|
// Possible boolean properties set on an AccessibilityNodeInfo.
|
||
|
// The enum values appear in the same order as they do within
|
||
|
// AccessibilityNodeInfo.java.
|
||
|
[Extensible]
|
||
|
enum AccessibilityBooleanProperty {
|
||
|
CHECKABLE,
|
||
|
CHECKED,
|
||
|
FOCUSABLE,
|
||
|
FOCUSED,
|
||
|
SELECTED,
|
||
|
CLICKABLE,
|
||
|
LONG_CLICKABLE,
|
||
|
ENABLED,
|
||
|
PASSWORD,
|
||
|
SCROLLABLE,
|
||
|
ACCESSIBILITY_FOCUSED,
|
||
|
VISIBLE_TO_USER,
|
||
|
EDITABLE,
|
||
|
OPENS_POPUP,
|
||
|
DISMISSABLE,
|
||
|
MULTI_LINE,
|
||
|
CONTENT_INVALID,
|
||
|
CONTEXT_CLICKABLE,
|
||
|
IMPORTANCE
|
||
|
};
|
||
|
|
||
|
// These fields are taken from string instance members of
|
||
|
// AccessibilityNodeInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilityStringProperty {
|
||
|
PACKAGE_NAME,
|
||
|
CLASS_NAME,
|
||
|
TEXT,
|
||
|
CONTENT_DESCRIPTION,
|
||
|
VIEW_ID_RESOURCE_NAME,
|
||
|
CHROME_ROLE, // Chrome only
|
||
|
ROLE_DESCRIPTION // Chrome only
|
||
|
};
|
||
|
|
||
|
// These fields are taken from int instance members of
|
||
|
// AccessibilityNodeInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilityIntProperty {
|
||
|
LABEL_FOR,
|
||
|
LABELED_BY,
|
||
|
TRAVERSAL_BEFORE,
|
||
|
TRAVERSAL_AFTER,
|
||
|
MAX_TEXT_LENGTH,
|
||
|
TEXT_SELECTION_START,
|
||
|
TEXT_SELECTION_END,
|
||
|
INPUT_TYPE,
|
||
|
LIVE_REGION
|
||
|
};
|
||
|
|
||
|
// These fields are taken from List<int> instance members of
|
||
|
// AccessibilityNodeInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilityIntListProperty {
|
||
|
CHILD_NODE_IDS,
|
||
|
CUSTOM_ACTION_IDS
|
||
|
};
|
||
|
|
||
|
// These fields are taken from List<String> instance members of
|
||
|
// AccessibilityNodeInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilityStringListProperty {
|
||
|
CUSTOM_ACTION_DESCRIPTIONS
|
||
|
};
|
||
|
|
||
|
// This type is a subset of spans available under android.text.style.
|
||
|
[Extensible]
|
||
|
enum SpanType {
|
||
|
URL,
|
||
|
CLICKABLE
|
||
|
};
|
||
|
|
||
|
// Groups data about a Spannable.
|
||
|
struct SpanEntry {
|
||
|
int32 start;
|
||
|
int32 end;
|
||
|
SpanType span_type;
|
||
|
};
|
||
|
|
||
|
// These fields are taken from AccessibilityNodeInfo.CollectionItemInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilitySelectionMode {
|
||
|
NONE,
|
||
|
SINGLE,
|
||
|
MULTIPLE
|
||
|
};
|
||
|
|
||
|
// These fields are taken from AccessibilityNodeInfo.CollectionInfo.
|
||
|
struct AccessibilityCollectionInfoData {
|
||
|
int32 row_count;
|
||
|
int32 column_count;
|
||
|
bool is_hierarchical;
|
||
|
AccessibilitySelectionMode selection_mode;
|
||
|
};
|
||
|
|
||
|
// These fields are taken from AccessibilityNodeInfo.CollectionItemInfo.
|
||
|
struct AccessibilityCollectionItemInfoData {
|
||
|
int32 row_index;
|
||
|
int32 column_index;
|
||
|
int32 row_span;
|
||
|
int32 column_span;
|
||
|
bool is_heading;
|
||
|
bool is_selected;
|
||
|
};
|
||
|
|
||
|
// These fields are taken from AccessibilityNodeInfo.RangeInfo.
|
||
|
[Extensible]
|
||
|
enum AccessibilityRangeType {
|
||
|
INT,
|
||
|
FLOAT,
|
||
|
PERCENT
|
||
|
};
|
||
|
|
||
|
// These fields are taken from AccessibilityNodeInfo.RangeInfo.
|
||
|
struct AccessibilityRangeInfoData {
|
||
|
AccessibilityRangeType range_type;
|
||
|
float min;
|
||
|
float max;
|
||
|
float current;
|
||
|
};
|
||
|
|
||
|
// AccessibilityNodeInfoData is a struct to contain info of
|
||
|
// AccessibilityNodeInfo in Android.
|
||
|
struct AccessibilityNodeInfoData {
|
||
|
Rect bounds_in_screen;
|
||
|
[MinVersion=1] int32 id;
|
||
|
[MinVersion=1] map<AccessibilityBooleanProperty, bool>? boolean_properties;
|
||
|
[MinVersion=1] map<AccessibilityStringProperty, string>? string_properties;
|
||
|
[MinVersion=1] map<AccessibilityIntProperty, int32>? int_properties;
|
||
|
[MinVersion=1]
|
||
|
map<AccessibilityIntListProperty, array<int32>>? int_list_properties;
|
||
|
[MinVersion=3] map<AccessibilityStringListProperty, array<string>>?
|
||
|
string_list_properties;
|
||
|
[MinVersion=5] map<AccessibilityStringProperty, array<SpanEntry>>?
|
||
|
spannable_string_properties;
|
||
|
[MinVersion=5] AccessibilityCollectionInfoData? collection_info;
|
||
|
[MinVersion=5] AccessibilityCollectionItemInfoData? collection_item_info;
|
||
|
[MinVersion=5] AccessibilityRangeInfoData? range_info;
|
||
|
};
|
||
|
|
||
|
// Filters the event type (and implicitly the data) sent by the ARC
|
||
|
// accessibility service.
|
||
|
[Extensible]
|
||
|
enum AccessibilityFilterType {
|
||
|
// No events will be sent.
|
||
|
OFF,
|
||
|
|
||
|
// Only send focus events along with the source focus node.
|
||
|
FOCUS,
|
||
|
|
||
|
// Send a complete tree from the event source's root for every event.
|
||
|
ALL,
|
||
|
|
||
|
// Send complete subtrees for root nodes with whitelisted package names.
|
||
|
[MinVersion=2] WHITELISTED_PACKAGE_NAME
|
||
|
};
|
||
|
|
||
|
// AccessibilityEventData is a struct to contain info of
|
||
|
// AccessibilityEvent in Android.
|
||
|
// https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
|
||
|
struct AccessibilityEventData {
|
||
|
AccessibilityEventType event_type;
|
||
|
int32 source_id;
|
||
|
array<AccessibilityNodeInfoData> node_data;
|
||
|
|
||
|
// notification_key is set only for an event on an Android notification.
|
||
|
[MinVersion=6] string? notification_key;
|
||
|
|
||
|
// window_id where this event is dispatched for. While this window_id matches
|
||
|
// with AccessibilityNodeInfo.getWindowId now, do not expect that it always
|
||
|
// matches with it.
|
||
|
[MinVersion=6] int32 window_id;
|
||
|
|
||
|
// Task associated with this event (usually the front task when this event
|
||
|
// gets dispatched).
|
||
|
[MinVersion=8] int32 task_id;
|
||
|
};
|
||
|
|
||
|
// AccessibilityActionData is a struct to contain info of AccessibilityAction in
|
||
|
// Android.
|
||
|
// https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction.html
|
||
|
struct AccessibilityActionData {
|
||
|
int32 node_id;
|
||
|
|
||
|
AccessibilityActionType action_type;
|
||
|
|
||
|
// custom_action_id must be set if action_type is CUSTOM_ACTION.
|
||
|
int32 custom_action_id;
|
||
|
|
||
|
// window_id where the action is performed on.
|
||
|
[MinVersion=6] int32 window_id;
|
||
|
};
|
||
|
|
||
|
// Next method ID: 2
|
||
|
interface AccessibilityHelperHost {
|
||
|
OnAccessibilityEventDeprecated@0(AccessibilityEventType event_type,
|
||
|
AccessibilityNodeInfoData? event_source);
|
||
|
|
||
|
// OnAccessibilityEvent is called when a converted Android accessibility event
|
||
|
// is sent from Android.
|
||
|
OnAccessibilityEvent@1(AccessibilityEventData event_data);
|
||
|
};
|
||
|
|
||
|
// Next method ID: 8
|
||
|
interface AccessibilityHelperInstance {
|
||
|
// DEPRECATED: Please use Init@7 instead.
|
||
|
InitDeprecated@0(AccessibilityHelperHost host);
|
||
|
|
||
|
// Establishes full-duplex communication with the host.
|
||
|
[MinVersion=9] Init@7(AccessibilityHelperHost host) => ();
|
||
|
|
||
|
PerformActionDeprecated@1(int32 id, AccessibilityActionType action);
|
||
|
|
||
|
// Set a filter on the event types received.
|
||
|
SetFilter@2(AccessibilityFilterType filter_type);
|
||
|
|
||
|
[MinVersion=3] PerformActionDeprecated2@3(AccessibilityActionData action_data);
|
||
|
|
||
|
// Perform an action on a node requested by a Chrome client.
|
||
|
[MinVersion=4] PerformAction@4(AccessibilityActionData action_data)
|
||
|
=> (bool result);
|
||
|
|
||
|
// Sets the package to use ChromeVox (true) or TalkBack (false). Returns true
|
||
|
// if the request was processed.
|
||
|
[MinVersion=7] SetNativeChromeVoxArcSupportDeprecated@5(
|
||
|
string package_name, bool enabled) => (bool processed);
|
||
|
|
||
|
// Sets the focused window's package to use ChromeVox (true) or TalkBack
|
||
|
// (false).
|
||
|
[MinVersion=8] SetNativeChromeVoxArcSupportForFocusedWindow@6(
|
||
|
bool enabled) => (bool processed);
|
||
|
};
|