blob: 80b0536d05494f55f689d66c91c32a5f4dd7e5c4 [file] [log] [blame]
[email protected]c084330e02013-04-27 01:08:151// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// IPC messages for input events and other messages that require processing in
6// order relative to input events.
7// Multiply-included message file, hence no include guard.
8
[email protected]30fe1f92013-06-12 16:34:349#include "base/strings/string16.h"
[email protected]c084330e02013-04-27 01:08:1510#include "content/common/content_export.h"
11#include "content/common/content_param_traits.h"
12#include "content/common/edit_command.h"
[email protected]6e463eb2013-09-07 07:07:5213#include "content/common/input/input_event.h"
[email protected]6e463eb2013-09-07 07:07:5214#include "content/common/input/input_param_traits.h"
[email protected]9017d7852013-11-21 17:47:3515#include "content/common/input/synthetic_gesture_packet.h"
[email protected]eafe58fd2013-10-11 19:09:0116#include "content/common/input/synthetic_gesture_params.h"
[email protected]1735b682013-11-17 16:04:2017#include "content/common/input/synthetic_pinch_gesture_params.h"
[email protected]eafe58fd2013-10-11 19:09:0118#include "content/common/input/synthetic_smooth_scroll_gesture_params.h"
[email protected]26fae63962013-12-11 12:57:5619#include "content/common/input/synthetic_tap_gesture_params.h"
[email protected]c084330e02013-04-27 01:08:1520#include "content/port/common/input_event_ack_state.h"
21#include "content/public/common/common_param_traits.h"
[email protected]5d0bbdfa92013-12-10 00:35:5122#include "content/common/input/touch_action.h"
[email protected]c084330e02013-04-27 01:08:1523#include "ipc/ipc_message_macros.h"
[email protected]2255a9332013-06-17 05:12:3124#include "third_party/WebKit/public/web/WebInputEvent.h"
[email protected]f40d3a02013-09-23 19:39:4125#include "ui/events/latency_info.h"
[email protected]c084330e02013-04-27 01:08:1526#include "ui/gfx/point.h"
27#include "ui/gfx/rect.h"
28
29#undef IPC_MESSAGE_EXPORT
30#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
31
32#ifdef IPC_MESSAGE_START
33#error IPC_MESSAGE_START
34#endif
35
36#define IPC_MESSAGE_START InputMsgStart
37
[email protected]6e463eb2013-09-07 07:07:5238IPC_ENUM_TRAITS_MAX_VALUE(content::InputEventAckState,
39 content::INPUT_EVENT_ACK_STATE_MAX)
[email protected]eafe58fd2013-10-11 19:09:0140IPC_ENUM_TRAITS_MAX_VALUE(
41 content::SyntheticGestureParams::GestureSourceType,
42 content::SyntheticGestureParams::GESTURE_SOURCE_TYPE_MAX)
43IPC_ENUM_TRAITS_MAX_VALUE(
44 content::SyntheticGestureParams::GestureType,
45 content::SyntheticGestureParams::SYNTHETIC_GESTURE_TYPE_MAX)
[email protected]5d0bbdfa92013-12-10 00:35:5146IPC_ENUM_TRAITS_MAX_VALUE(content::TouchAction,
47 content::TOUCH_ACTION_MAX)
[email protected]c084330e02013-04-27 01:08:1548
49IPC_STRUCT_TRAITS_BEGIN(content::EditCommand)
50 IPC_STRUCT_TRAITS_MEMBER(name)
51 IPC_STRUCT_TRAITS_MEMBER(value)
52IPC_STRUCT_TRAITS_END()
53
[email protected]42d937a2013-10-08 21:18:5554IPC_STRUCT_TRAITS_BEGIN(content::InputEvent)
55 IPC_STRUCT_TRAITS_MEMBER(web_event)
56 IPC_STRUCT_TRAITS_MEMBER(latency_info)
57 IPC_STRUCT_TRAITS_MEMBER(is_keyboard_shortcut)
[email protected]6e463eb2013-09-07 07:07:5258IPC_STRUCT_TRAITS_END()
59
[email protected]eafe58fd2013-10-11 19:09:0160IPC_STRUCT_TRAITS_BEGIN(content::SyntheticGestureParams)
61 IPC_STRUCT_TRAITS_MEMBER(gesture_source_type)
62IPC_STRUCT_TRAITS_END()
63
64IPC_STRUCT_TRAITS_BEGIN(content::SyntheticSmoothScrollGestureParams)
65 IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
66 IPC_STRUCT_TRAITS_MEMBER(distance)
[email protected]1735b682013-11-17 16:04:2067 IPC_STRUCT_TRAITS_MEMBER(anchor)
[email protected]4cfa5ad2013-12-06 11:56:0868 IPC_STRUCT_TRAITS_MEMBER(prevent_fling)
[email protected]1735b682013-11-17 16:04:2069 IPC_STRUCT_TRAITS_MEMBER(speed_in_pixels_s)
70IPC_STRUCT_TRAITS_END()
71
72IPC_STRUCT_TRAITS_BEGIN(content::SyntheticPinchGestureParams)
73 IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
74 IPC_STRUCT_TRAITS_MEMBER(zoom_in)
75 IPC_STRUCT_TRAITS_MEMBER(total_num_pixels_covered)
76 IPC_STRUCT_TRAITS_MEMBER(anchor)
77 IPC_STRUCT_TRAITS_MEMBER(relative_pointer_speed_in_pixels_s)
[email protected]eafe58fd2013-10-11 19:09:0178IPC_STRUCT_TRAITS_END()
79
[email protected]26fae63962013-12-11 12:57:5680IPC_STRUCT_TRAITS_BEGIN(content::SyntheticTapGestureParams)
81 IPC_STRUCT_TRAITS_PARENT(content::SyntheticGestureParams)
82 IPC_STRUCT_TRAITS_MEMBER(position)
83 IPC_STRUCT_TRAITS_MEMBER(duration_ms)
84IPC_STRUCT_TRAITS_END()
85
[email protected]c084330e02013-04-27 01:08:1586// Sends an input event to the render widget.
[email protected]c2eaa8f2013-05-10 02:41:5587IPC_MESSAGE_ROUTED3(InputMsg_HandleInputEvent,
[email protected]c084330e02013-04-27 01:08:1588 IPC::WebInputEventPointer /* event */,
[email protected]4b157662013-05-29 04:05:0589 ui::LatencyInfo /* latency_info */,
[email protected]c084330e02013-04-27 01:08:1590 bool /* is_keyboard_shortcut */)
91
[email protected]34202de2013-05-06 23:36:2292// Sends the cursor visibility state to the render widget.
93IPC_MESSAGE_ROUTED1(InputMsg_CursorVisibilityChange,
94 bool /* is_visible */)
95
[email protected]c084330e02013-04-27 01:08:1596// This message notifies the renderer that the next key event is bound to one
97// or more pre-defined edit commands. If the next key event is not handled
98// by webkit, the specified edit commands shall be executed against current
99// focused frame.
100// Parameters
101// * edit_commands (see chrome/common/edit_command_types.h)
102// Contains one or more edit commands.
103// See third_party/WebKit/Source/WebCore/editing/EditorCommand.cpp for detailed
104// definition of webkit edit commands.
105//
106// This message must be sent just before sending a key event.
107IPC_MESSAGE_ROUTED1(InputMsg_SetEditCommandsForNextKeyEvent,
108 std::vector<content::EditCommand> /* edit_commands */)
109
110// Message payload is the name/value of a WebCore edit command to execute.
111IPC_MESSAGE_ROUTED2(InputMsg_ExecuteEditCommand,
112 std::string, /* name */
113 std::string /* value */)
114
115IPC_MESSAGE_ROUTED0(InputMsg_MouseCaptureLost)
116
117// TODO(darin): figure out how this meshes with RestoreFocus
118IPC_MESSAGE_ROUTED1(InputMsg_SetFocus,
119 bool /* enable */)
120
121// Tells the renderer to focus the first (last if reverse is true) focusable
122// node.
123IPC_MESSAGE_ROUTED1(InputMsg_SetInitialFocus,
124 bool /* reverse */)
125
126// Tells the renderer to scroll the currently focused node into rect only if
127// the currently focused node is a Text node (textfield, text area or content
128// editable divs).
129IPC_MESSAGE_ROUTED1(InputMsg_ScrollFocusedEditableNodeIntoRect, gfx::Rect)
130
131// These messages are typically generated from context menus and request the
132// renderer to apply the specified operation to the current selection.
133IPC_MESSAGE_ROUTED0(InputMsg_Undo)
134IPC_MESSAGE_ROUTED0(InputMsg_Redo)
135IPC_MESSAGE_ROUTED0(InputMsg_Cut)
136IPC_MESSAGE_ROUTED0(InputMsg_Copy)
137#if defined(OS_MACOSX)
138IPC_MESSAGE_ROUTED0(InputMsg_CopyToFindPboard)
139#endif
140IPC_MESSAGE_ROUTED0(InputMsg_Paste)
141IPC_MESSAGE_ROUTED0(InputMsg_PasteAndMatchStyle)
142// Replaces the selected region or a word around the cursor with the
143// specified string.
144IPC_MESSAGE_ROUTED1(InputMsg_Replace,
[email protected]fcf75d42013-12-03 20:11:26145 base::string16)
[email protected]c084330e02013-04-27 01:08:15146// Replaces the misspelling in the selected region with the specified string.
147IPC_MESSAGE_ROUTED1(InputMsg_ReplaceMisspelling,
[email protected]fcf75d42013-12-03 20:11:26148 base::string16)
[email protected]c084330e02013-04-27 01:08:15149IPC_MESSAGE_ROUTED0(InputMsg_Delete)
150IPC_MESSAGE_ROUTED0(InputMsg_SelectAll)
151
152IPC_MESSAGE_ROUTED0(InputMsg_Unselect)
153
154// Requests the renderer to select the region between two points.
155// Expects a SelectRange_ACK message when finished.
156IPC_MESSAGE_ROUTED2(InputMsg_SelectRange,
157 gfx::Point /* start */,
158 gfx::Point /* end */)
159
160// Requests the renderer to move the caret selection toward the point.
161// Expects a MoveCaret_ACK message when finished.
162IPC_MESSAGE_ROUTED1(InputMsg_MoveCaret,
163 gfx::Point /* location */)
164
165#if defined(OS_ANDROID)
166// Sent when the user clicks on the find result bar to activate a find result.
167// The point (x,y) is in fractions of the content document's width and height.
168IPC_MESSAGE_ROUTED3(InputMsg_ActivateNearestFindResult,
169 int /* request_id */,
170 float /* x */,
171 float /* y */)
172#endif
173
[email protected]9017d7852013-11-21 17:47:35174IPC_MESSAGE_ROUTED0(InputMsg_SyntheticGestureCompleted);
175
[email protected]c084330e02013-04-27 01:08:15176// -----------------------------------------------------------------------------
177// Messages sent from the renderer to the browser.
178
179// Acknowledges receipt of a InputMsg_HandleInputEvent message.
[email protected]f6df0edf2013-08-07 00:27:02180IPC_MESSAGE_ROUTED3(InputHostMsg_HandleInputEvent_ACK,
[email protected]180ef242013-11-07 06:50:46181 blink::WebInputEvent::Type,
[email protected]f6df0edf2013-08-07 00:27:02182 content::InputEventAckState /* ack_result */,
183 ui::LatencyInfo /* latency_info */)
[email protected]c084330e02013-04-27 01:08:15184
[email protected]9017d7852013-11-21 17:47:35185IPC_MESSAGE_ROUTED1(InputHostMsg_QueueSyntheticGesture,
186 content::SyntheticGesturePacket)
187
[email protected]5d0bbdfa92013-12-10 00:35:51188// Notifies the allowed touch actions for a new touch point.
189IPC_MESSAGE_ROUTED1(InputHostMsg_SetTouchAction,
190 content::TouchAction /* touch_action */)
[email protected]c084330e02013-04-27 01:08:15191
192// Adding a new message? Stick to the sort order above: first platform
193// independent InputMsg, then ifdefs for platform specific InputMsg, then
194// platform independent InputHostMsg, then ifdefs for platform specific
195// InputHostMsg.