blob: 7ee568f2babc3f083f2fc607a8517f8ea68fcce6 [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// Copyright (c) 2012 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// Multiply-included message header, no traditional include guard.
6#include <string>
7#include <vector>
8
9#include "base/basictypes.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000010#include "base/files/file_path.h"
Ben Murdoch9ab55632013-07-18 11:57:30 +010011#include "base/memory/shared_memory.h"
Ben Murdoch58e6fbe2013-07-26 10:20:38 +010012#include "base/process/process.h"
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010013#include "base/strings/string16.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000014#include "base/sync_socket.h"
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010015#include "base/values.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000016#include "gpu/command_buffer/common/command_buffer.h"
17#include "gpu/ipc/gpu_command_buffer_traits.h"
18#include "ipc/ipc_channel_handle.h"
19#include "ipc/ipc_message_macros.h"
20#include "ipc/ipc_message_utils.h"
21#include "ipc/ipc_platform_file.h"
22#include "ppapi/c/dev/pp_video_capture_dev.h"
23#include "ppapi/c/dev/pp_video_dev.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000024#include "ppapi/c/dev/ppb_truetype_font_dev.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000025#include "ppapi/c/dev/ppb_url_util_dev.h"
26#include "ppapi/c/dev/ppp_printing_dev.h"
27#include "ppapi/c/pp_bool.h"
28#include "ppapi/c/pp_file_info.h"
29#include "ppapi/c/pp_instance.h"
30#include "ppapi/c/pp_module.h"
31#include "ppapi/c/pp_point.h"
32#include "ppapi/c/pp_rect.h"
33#include "ppapi/c/pp_resource.h"
34#include "ppapi/c/pp_size.h"
35#include "ppapi/c/pp_time.h"
36#include "ppapi/c/ppb_audio_config.h"
Torne (Richard Coles)a93a17c2013-05-15 11:34:50 +010037#include "ppapi/c/ppb_image_data.h"
Ben Murdocheb525c52013-07-10 11:40:50 +010038#include "ppapi/c/ppb_tcp_socket.h"
Ben Murdochbb1529c2013-08-08 10:24:53 +010039#include "ppapi/c/ppb_text_input_controller.h"
Ben Murdocheb525c52013-07-10 11:40:50 +010040#include "ppapi/c/ppb_udp_socket.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000041#include "ppapi/c/private/pp_content_decryptor.h"
42#include "ppapi/c/private/pp_private_font_charset.h"
43#include "ppapi/c/private/ppb_flash.h"
44#include "ppapi/c/private/ppb_host_resolver_private.h"
45#include "ppapi/c/private/ppb_net_address_private.h"
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010046#include "ppapi/c/private/ppb_pdf.h"
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010047#include "ppapi/c/private/ppb_talk_private.h"
Ben Murdoch9ab55632013-07-18 11:57:30 +010048#include "ppapi/c/private/ppp_flash_browser_operations.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000049#include "ppapi/proxy/host_resolver_private_resource.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000050#include "ppapi/proxy/ppapi_param_traits.h"
51#include "ppapi/proxy/ppapi_proxy_export.h"
52#include "ppapi/proxy/resource_message_params.h"
53#include "ppapi/proxy/serialized_flash_menu.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000054#include "ppapi/proxy/serialized_handle.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000055#include "ppapi/proxy/serialized_structs.h"
56#include "ppapi/proxy/serialized_var.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000057#include "ppapi/shared_impl/dir_contents.h"
58#include "ppapi/shared_impl/file_path.h"
Ben Murdocheb525c52013-07-10 11:40:50 +010059#include "ppapi/shared_impl/file_ref_create_info.h"
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010060#include "ppapi/shared_impl/ppapi_nacl_channel_args.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000061#include "ppapi/shared_impl/ppapi_preferences.h"
62#include "ppapi/shared_impl/ppb_device_ref_shared.h"
63#include "ppapi/shared_impl/ppb_input_event_shared.h"
64#include "ppapi/shared_impl/ppb_network_list_private_shared.h"
65#include "ppapi/shared_impl/ppb_view_shared.h"
66#include "ppapi/shared_impl/ppp_flash_browser_operations_shared.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000067#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
Ben Murdocheb525c52013-07-10 11:40:50 +010068#include "ppapi/shared_impl/socket_option_data.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000069#include "ppapi/shared_impl/url_request_info_data.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000070#include "ppapi/shared_impl/url_response_info_data.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000071
72#undef IPC_MESSAGE_EXPORT
73#define IPC_MESSAGE_EXPORT PPAPI_PROXY_EXPORT
74
75#define IPC_MESSAGE_START PpapiMsgStart
76
77IPC_ENUM_TRAITS(PP_AudioSampleRate)
78IPC_ENUM_TRAITS(PP_DeviceType_Dev)
79IPC_ENUM_TRAITS(PP_DecryptorStreamType)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010080IPC_ENUM_TRAITS(PP_FileSystemType)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000081IPC_ENUM_TRAITS(PP_FileType)
Torne (Richard Coles)58218062012-11-14 11:43:16 +000082IPC_ENUM_TRAITS(PP_Flash_BrowserOperations_Permission)
83IPC_ENUM_TRAITS(PP_Flash_BrowserOperations_SettingType)
84IPC_ENUM_TRAITS(PP_FlashSetting)
Torne (Richard Coles)a93a17c2013-05-15 11:34:50 +010085IPC_ENUM_TRAITS(PP_ImageDataFormat)
Torne (Richard Coles)58218062012-11-14 11:43:16 +000086IPC_ENUM_TRAITS(PP_InputEvent_MouseButton)
87IPC_ENUM_TRAITS(PP_InputEvent_Type)
Ben Murdocheb525c52013-07-10 11:40:50 +010088IPC_ENUM_TRAITS_MAX_VALUE(PP_NetAddressFamily_Private,
89 PP_NETADDRESSFAMILY_PRIVATE_IPV6)
Torne (Richard Coles)58218062012-11-14 11:43:16 +000090IPC_ENUM_TRAITS(PP_NetworkListState_Private)
91IPC_ENUM_TRAITS(PP_NetworkListType_Private)
92IPC_ENUM_TRAITS(PP_PrintOrientation_Dev)
93IPC_ENUM_TRAITS(PP_PrintOutputFormat_Dev)
94IPC_ENUM_TRAITS(PP_PrintScalingOption_Dev)
95IPC_ENUM_TRAITS(PP_PrivateFontCharset)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +010096IPC_ENUM_TRAITS(PP_ResourceImage)
97IPC_ENUM_TRAITS(PP_ResourceString)
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010098IPC_ENUM_TRAITS_MAX_VALUE(PP_TalkEvent, PP_TALKEVENT_NUM_EVENTS - 1)
99IPC_ENUM_TRAITS_MAX_VALUE(PP_TalkPermission,
100 PP_TALKPERMISSION_NUM_PERMISSIONS - 1)
Ben Murdocheb525c52013-07-10 11:40:50 +0100101IPC_ENUM_TRAITS_MAX_VALUE(PP_TCPSocket_Option,
102 PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000103IPC_ENUM_TRAITS(PP_TextInput_Type)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000104IPC_ENUM_TRAITS(PP_TrueTypeFontFamily_Dev)
105IPC_ENUM_TRAITS(PP_TrueTypeFontStyle_Dev)
106IPC_ENUM_TRAITS(PP_TrueTypeFontWeight_Dev)
107IPC_ENUM_TRAITS(PP_TrueTypeFontWidth_Dev)
108IPC_ENUM_TRAITS(PP_TrueTypeFontCharset_Dev)
Ben Murdocheb525c52013-07-10 11:40:50 +0100109IPC_ENUM_TRAITS_MAX_VALUE(PP_UDPSocket_Option,
110 PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000111IPC_ENUM_TRAITS(PP_VideoDecodeError_Dev)
112IPC_ENUM_TRAITS(PP_VideoDecoder_Profile)
113
114IPC_STRUCT_TRAITS_BEGIN(PP_Point)
115 IPC_STRUCT_TRAITS_MEMBER(x)
116 IPC_STRUCT_TRAITS_MEMBER(y)
117IPC_STRUCT_TRAITS_END()
118
119IPC_STRUCT_TRAITS_BEGIN(PP_FloatPoint)
120 IPC_STRUCT_TRAITS_MEMBER(x)
121 IPC_STRUCT_TRAITS_MEMBER(y)
122IPC_STRUCT_TRAITS_END()
123
124IPC_STRUCT_TRAITS_BEGIN(PP_Size)
125 IPC_STRUCT_TRAITS_MEMBER(height)
126 IPC_STRUCT_TRAITS_MEMBER(width)
127IPC_STRUCT_TRAITS_END()
128
129IPC_STRUCT_TRAITS_BEGIN(PP_Rect)
130 IPC_STRUCT_TRAITS_MEMBER(point)
131 IPC_STRUCT_TRAITS_MEMBER(size)
132IPC_STRUCT_TRAITS_END()
133
Torne (Richard Coles)a93a17c2013-05-15 11:34:50 +0100134IPC_STRUCT_TRAITS_BEGIN(PP_ImageDataDesc)
135 IPC_STRUCT_TRAITS_MEMBER(format)
136 IPC_STRUCT_TRAITS_MEMBER(size)
137 IPC_STRUCT_TRAITS_MEMBER(stride)
138IPC_STRUCT_TRAITS_END()
139
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000140IPC_STRUCT_TRAITS_BEGIN(PP_PictureBuffer_Dev)
141 IPC_STRUCT_TRAITS_MEMBER(id)
142 IPC_STRUCT_TRAITS_MEMBER(size)
143 IPC_STRUCT_TRAITS_MEMBER(texture_id)
144IPC_STRUCT_TRAITS_END()
145
146IPC_STRUCT_TRAITS_BEGIN(PP_Picture_Dev)
147 IPC_STRUCT_TRAITS_MEMBER(picture_buffer_id)
148 IPC_STRUCT_TRAITS_MEMBER(bitstream_buffer_id)
149IPC_STRUCT_TRAITS_END()
150
151IPC_STRUCT_TRAITS_BEGIN(PP_PrintPageNumberRange_Dev)
152 IPC_STRUCT_TRAITS_MEMBER(first_page_number)
153 IPC_STRUCT_TRAITS_MEMBER(last_page_number)
154IPC_STRUCT_TRAITS_END()
155
156IPC_STRUCT_TRAITS_BEGIN(PP_VideoCaptureDeviceInfo_Dev)
157 IPC_STRUCT_TRAITS_MEMBER(width)
158 IPC_STRUCT_TRAITS_MEMBER(height)
159 IPC_STRUCT_TRAITS_MEMBER(frames_per_second)
160IPC_STRUCT_TRAITS_END()
161
162IPC_STRUCT_TRAITS_BEGIN(PP_HostResolver_Private_Hint)
163 IPC_STRUCT_TRAITS_MEMBER(family)
164 IPC_STRUCT_TRAITS_MEMBER(flags)
165IPC_STRUCT_TRAITS_END()
166
167IPC_STRUCT_TRAITS_BEGIN(PP_PrintSettings_Dev)
168 IPC_STRUCT_TRAITS_MEMBER(printable_area)
169 IPC_STRUCT_TRAITS_MEMBER(content_area)
170 IPC_STRUCT_TRAITS_MEMBER(paper_size)
171 IPC_STRUCT_TRAITS_MEMBER(dpi)
172 IPC_STRUCT_TRAITS_MEMBER(orientation)
173 IPC_STRUCT_TRAITS_MEMBER(print_scaling_option)
174 IPC_STRUCT_TRAITS_MEMBER(grayscale)
175 IPC_STRUCT_TRAITS_MEMBER(format)
176IPC_STRUCT_TRAITS_END()
177
178IPC_STRUCT_TRAITS_BEGIN(PP_URLComponent_Dev)
179 IPC_STRUCT_TRAITS_MEMBER(begin)
180 IPC_STRUCT_TRAITS_MEMBER(len)
181IPC_STRUCT_TRAITS_END()
182
183IPC_STRUCT_TRAITS_BEGIN(PP_URLComponents_Dev)
184 IPC_STRUCT_TRAITS_MEMBER(scheme)
185 IPC_STRUCT_TRAITS_MEMBER(username)
186 IPC_STRUCT_TRAITS_MEMBER(password)
187 IPC_STRUCT_TRAITS_MEMBER(host)
188 IPC_STRUCT_TRAITS_MEMBER(port)
189 IPC_STRUCT_TRAITS_MEMBER(path)
190 IPC_STRUCT_TRAITS_MEMBER(query)
191 IPC_STRUCT_TRAITS_MEMBER(ref)
192IPC_STRUCT_TRAITS_END()
193
194IPC_STRUCT_TRAITS_BEGIN(ppapi::DeviceRefData)
195 IPC_STRUCT_TRAITS_MEMBER(type)
196 IPC_STRUCT_TRAITS_MEMBER(name)
197 IPC_STRUCT_TRAITS_MEMBER(id)
198IPC_STRUCT_TRAITS_END()
199
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000200IPC_STRUCT_TRAITS_BEGIN(ppapi::DirEntry)
201 IPC_STRUCT_TRAITS_MEMBER(name)
202 IPC_STRUCT_TRAITS_MEMBER(is_dir)
203IPC_STRUCT_TRAITS_END()
204
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100205IPC_STRUCT_TRAITS_BEGIN(ppapi::FileRef_CreateInfo)
206 IPC_STRUCT_TRAITS_MEMBER(file_system_type)
207 IPC_STRUCT_TRAITS_MEMBER(internal_path)
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100208 IPC_STRUCT_TRAITS_MEMBER(display_name)
209 IPC_STRUCT_TRAITS_MEMBER(pending_host_resource_id)
210 IPC_STRUCT_TRAITS_MEMBER(file_system_plugin_resource)
211IPC_STRUCT_TRAITS_END()
212
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000213IPC_STRUCT_TRAITS_BEGIN(ppapi::FlashSiteSetting)
214 IPC_STRUCT_TRAITS_MEMBER(site)
215 IPC_STRUCT_TRAITS_MEMBER(permission)
216IPC_STRUCT_TRAITS_END()
217
218IPC_STRUCT_TRAITS_BEGIN(ppapi::ViewData)
219 IPC_STRUCT_TRAITS_MEMBER(rect)
220 IPC_STRUCT_TRAITS_MEMBER(is_fullscreen)
221 IPC_STRUCT_TRAITS_MEMBER(is_page_visible)
222 IPC_STRUCT_TRAITS_MEMBER(clip_rect)
223 IPC_STRUCT_TRAITS_MEMBER(device_scale)
224 IPC_STRUCT_TRAITS_MEMBER(css_scale)
225IPC_STRUCT_TRAITS_END()
226
227IPC_STRUCT_TRAITS_BEGIN(PP_TouchPoint)
228 IPC_STRUCT_TRAITS_MEMBER(id)
229 IPC_STRUCT_TRAITS_MEMBER(position)
230 IPC_STRUCT_TRAITS_MEMBER(radius)
231 IPC_STRUCT_TRAITS_MEMBER(rotation_angle)
232 IPC_STRUCT_TRAITS_MEMBER(pressure)
233IPC_STRUCT_TRAITS_END()
234
235IPC_STRUCT_TRAITS_BEGIN(ppapi::Preferences)
236 IPC_STRUCT_TRAITS_MEMBER(standard_font_family_map)
237 IPC_STRUCT_TRAITS_MEMBER(fixed_font_family_map)
238 IPC_STRUCT_TRAITS_MEMBER(serif_font_family_map)
239 IPC_STRUCT_TRAITS_MEMBER(sans_serif_font_family_map)
240 IPC_STRUCT_TRAITS_MEMBER(default_font_size)
241 IPC_STRUCT_TRAITS_MEMBER(default_fixed_font_size)
242 IPC_STRUCT_TRAITS_MEMBER(number_of_cpu_cores)
243 IPC_STRUCT_TRAITS_MEMBER(is_3d_supported)
244 IPC_STRUCT_TRAITS_MEMBER(is_stage3d_supported)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000245 IPC_STRUCT_TRAITS_MEMBER(is_stage3d_baseline_supported)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000246IPC_STRUCT_TRAITS_END()
247
248IPC_STRUCT_TRAITS_BEGIN(ppapi::InputEventData)
249 IPC_STRUCT_TRAITS_MEMBER(is_filtered)
250 IPC_STRUCT_TRAITS_MEMBER(event_type)
251 IPC_STRUCT_TRAITS_MEMBER(event_time_stamp)
252 IPC_STRUCT_TRAITS_MEMBER(event_modifiers)
253 IPC_STRUCT_TRAITS_MEMBER(mouse_button)
254 IPC_STRUCT_TRAITS_MEMBER(mouse_position)
255 IPC_STRUCT_TRAITS_MEMBER(mouse_click_count)
256 IPC_STRUCT_TRAITS_MEMBER(mouse_movement)
257 IPC_STRUCT_TRAITS_MEMBER(wheel_delta)
258 IPC_STRUCT_TRAITS_MEMBER(wheel_ticks)
259 IPC_STRUCT_TRAITS_MEMBER(wheel_scroll_by_page)
260 IPC_STRUCT_TRAITS_MEMBER(key_code)
261 IPC_STRUCT_TRAITS_MEMBER(usb_key_code)
262 IPC_STRUCT_TRAITS_MEMBER(character_text)
263 IPC_STRUCT_TRAITS_MEMBER(composition_segment_offsets)
264 IPC_STRUCT_TRAITS_MEMBER(composition_target_segment)
265 IPC_STRUCT_TRAITS_MEMBER(composition_selection_start)
266 IPC_STRUCT_TRAITS_MEMBER(composition_selection_end)
267 IPC_STRUCT_TRAITS_MEMBER(touches)
268 IPC_STRUCT_TRAITS_MEMBER(changed_touches)
269 IPC_STRUCT_TRAITS_MEMBER(target_touches)
270IPC_STRUCT_TRAITS_END()
271
272IPC_STRUCT_TRAITS_BEGIN(ppapi::HostPortPair)
273 IPC_STRUCT_TRAITS_MEMBER(host)
274 IPC_STRUCT_TRAITS_MEMBER(port)
275IPC_STRUCT_TRAITS_END()
276
277IPC_STRUCT_TRAITS_BEGIN(ppapi::URLRequestInfoData)
278 IPC_STRUCT_TRAITS_MEMBER(url)
279 IPC_STRUCT_TRAITS_MEMBER(method)
280 IPC_STRUCT_TRAITS_MEMBER(headers)
281 IPC_STRUCT_TRAITS_MEMBER(stream_to_file)
282 IPC_STRUCT_TRAITS_MEMBER(follow_redirects)
283 IPC_STRUCT_TRAITS_MEMBER(record_download_progress)
284 IPC_STRUCT_TRAITS_MEMBER(record_upload_progress)
285 IPC_STRUCT_TRAITS_MEMBER(has_custom_referrer_url)
286 IPC_STRUCT_TRAITS_MEMBER(custom_referrer_url)
287 IPC_STRUCT_TRAITS_MEMBER(allow_cross_origin_requests)
288 IPC_STRUCT_TRAITS_MEMBER(allow_credentials)
289 IPC_STRUCT_TRAITS_MEMBER(has_custom_content_transfer_encoding)
290 IPC_STRUCT_TRAITS_MEMBER(custom_content_transfer_encoding)
291 IPC_STRUCT_TRAITS_MEMBER(prefetch_buffer_upper_threshold)
292 IPC_STRUCT_TRAITS_MEMBER(prefetch_buffer_lower_threshold)
293 IPC_STRUCT_TRAITS_MEMBER(has_custom_user_agent)
294 IPC_STRUCT_TRAITS_MEMBER(custom_user_agent)
295 IPC_STRUCT_TRAITS_MEMBER(body)
296IPC_STRUCT_TRAITS_END()
297
298IPC_STRUCT_TRAITS_BEGIN(ppapi::URLRequestInfoData::BodyItem)
299 IPC_STRUCT_TRAITS_MEMBER(is_file)
300 IPC_STRUCT_TRAITS_MEMBER(data)
301 // Note: we don't serialize file_ref.
302 IPC_STRUCT_TRAITS_MEMBER(file_ref_host_resource)
303 IPC_STRUCT_TRAITS_MEMBER(start_offset)
304 IPC_STRUCT_TRAITS_MEMBER(number_of_bytes)
305 IPC_STRUCT_TRAITS_MEMBER(expected_last_modified_time)
306IPC_STRUCT_TRAITS_END()
307
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000308IPC_STRUCT_TRAITS_BEGIN(ppapi::URLResponseInfoData)
309 IPC_STRUCT_TRAITS_MEMBER(url)
310 IPC_STRUCT_TRAITS_MEMBER(headers)
311 IPC_STRUCT_TRAITS_MEMBER(status_code)
312 IPC_STRUCT_TRAITS_MEMBER(status_text)
313 IPC_STRUCT_TRAITS_MEMBER(redirect_url)
314 IPC_STRUCT_TRAITS_MEMBER(body_as_file_ref)
315IPC_STRUCT_TRAITS_END()
316
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000317IPC_STRUCT_TRAITS_BEGIN(ppapi::NetworkInfo)
318 IPC_STRUCT_TRAITS_MEMBER(name)
319 IPC_STRUCT_TRAITS_MEMBER(type)
320 IPC_STRUCT_TRAITS_MEMBER(state)
321 IPC_STRUCT_TRAITS_MEMBER(addresses)
322 IPC_STRUCT_TRAITS_MEMBER(display_name)
323 IPC_STRUCT_TRAITS_MEMBER(mtu)
324IPC_STRUCT_TRAITS_END()
325
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100326// Only whitelisted switches passed through NaClChannelArgs.
327// The list of switches can be found in:
328// chrome/browser/nacl_host/nacl_process_host.cc
329IPC_STRUCT_TRAITS_BEGIN(ppapi::PpapiNaClChannelArgs)
330 IPC_STRUCT_TRAITS_MEMBER(off_the_record)
331 IPC_STRUCT_TRAITS_MEMBER(permissions)
332 IPC_STRUCT_TRAITS_MEMBER(switch_names)
333 IPC_STRUCT_TRAITS_MEMBER(switch_values)
334IPC_STRUCT_TRAITS_END()
335
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000336#if !defined(OS_NACL) && !defined(NACL_WIN64)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000337
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000338IPC_STRUCT_TRAITS_BEGIN(ppapi::proxy::PPPDecryptor_Buffer)
339 IPC_STRUCT_TRAITS_MEMBER(resource)
340 IPC_STRUCT_TRAITS_MEMBER(handle)
341 IPC_STRUCT_TRAITS_MEMBER(size)
342IPC_STRUCT_TRAITS_END()
343
344#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
345
346// These are from the browser to the plugin.
347// Loads the given plugin.
348IPC_MESSAGE_CONTROL2(PpapiMsg_LoadPlugin,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000349 base::FilePath /* path */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000350 ppapi::PpapiPermissions /* permissions */)
351
352// Creates a channel to talk to a renderer. The plugin will respond with
353// PpapiHostMsg_ChannelCreated.
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000354IPC_MESSAGE_CONTROL3(PpapiMsg_CreateChannel,
355 base::ProcessId /* renderer_pid */,
356 int /* renderer_child_id */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000357 bool /* incognito */)
358
359// Creates a channel to talk to a renderer. This message is only used by the
360// NaCl IPC proxy. It is intercepted by NaClIPCAdapter, which creates the
361// actual channel and rewrites the message for the untrusted side.
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100362IPC_MESSAGE_CONTROL3(PpapiMsg_CreateNaClChannel,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000363 int /* renderer_id */,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100364 ppapi::PpapiNaClChannelArgs /* args */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000365 ppapi::proxy::SerializedHandle /* channel_handle */)
366
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000367// Instructs the plugin process to crash.
368IPC_MESSAGE_CONTROL0(PpapiMsg_Crash)
369
370// Instructs the plugin process to hang.
371IPC_MESSAGE_CONTROL0(PpapiMsg_Hang)
372
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000373// Each plugin may be referenced by multiple renderers. We need the instance
374// IDs to be unique within a plugin, despite coming from different renderers,
375// and unique within a renderer, despite going to different plugins. This means
376// that neither the renderer nor the plugin can generate instance IDs without
377// consulting the other.
378//
379// We resolve this by having the renderer generate a unique instance ID inside
380// its process. It then asks the plugin to reserve that ID by sending this sync
381// message. If the plugin has not yet seen this ID, it will remember it as used
382// (to prevent a race condition if another renderer tries to then use the same
383// instance), and set usable as true.
384//
385// If the plugin has already seen the instance ID, it will set usable as false
386// and the renderer must retry a new instance ID.
387IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_ReserveInstanceId,
388 PP_Instance /* instance */,
389 bool /* usable */)
390
391// Passes the WebKit preferences to the plugin.
392IPC_MESSAGE_CONTROL1(PpapiMsg_SetPreferences,
393 ppapi::Preferences)
394
395// Sent in both directions to see if the other side supports the given
396// interface.
397IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_SupportsInterface,
398 std::string /* interface_name */,
399 bool /* result */)
400
401#if !defined(OS_NACL) && !defined(NACL_WIN64)
402// Network state notification from the browser for implementing
403// PPP_NetworkState_Dev.
404IPC_MESSAGE_CONTROL1(PpapiMsg_SetNetworkState,
405 bool /* online */)
406
407// Requests a list of sites that have data stored from the plugin. The plugin
408// process will respond with PpapiHostMsg_GetSitesWithDataResult. This is used
409// for Flash.
410IPC_MESSAGE_CONTROL2(PpapiMsg_GetSitesWithData,
411 uint32 /* request_id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000412 base::FilePath /* plugin_data_path */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000413IPC_MESSAGE_CONTROL2(PpapiHostMsg_GetSitesWithDataResult,
414 uint32 /* request_id */,
415 std::vector<std::string> /* sites */)
416
417// Instructs the plugin to clear data for the given site & time. The plugin
418// process will respond with PpapiHostMsg_ClearSiteDataResult. This is used
419// for Flash.
420IPC_MESSAGE_CONTROL5(PpapiMsg_ClearSiteData,
421 uint32 /* request_id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000422 base::FilePath /* plugin_data_path */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000423 std::string /* site */,
424 uint64 /* flags */,
425 uint64 /* max_age */)
426IPC_MESSAGE_CONTROL2(PpapiHostMsg_ClearSiteDataResult,
427 uint32 /* request_id */,
428 bool /* success */)
429
430IPC_MESSAGE_CONTROL2(PpapiMsg_DeauthorizeContentLicenses,
431 uint32 /* request_id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000432 base::FilePath /* plugin_data_path */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000433IPC_MESSAGE_CONTROL2(PpapiHostMsg_DeauthorizeContentLicensesResult,
434 uint32 /* request_id */,
435 bool /* success */)
436
437IPC_MESSAGE_CONTROL3(PpapiMsg_GetPermissionSettings,
438 uint32 /* request_id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000439 base::FilePath /* plugin_data_path */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000440 PP_Flash_BrowserOperations_SettingType /* setting_type */)
441IPC_MESSAGE_CONTROL4(
442 PpapiHostMsg_GetPermissionSettingsResult,
443 uint32 /* request_id */,
444 bool /* success */,
445 PP_Flash_BrowserOperations_Permission /* default_permission */,
446 ppapi::FlashSiteSettings /* sites */)
447
448IPC_MESSAGE_CONTROL5(PpapiMsg_SetDefaultPermission,
449 uint32 /* request_id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000450 base::FilePath /* plugin_data_path */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000451 PP_Flash_BrowserOperations_SettingType /* setting_type */,
452 PP_Flash_BrowserOperations_Permission /* permission */,
453 bool /* clear_site_specific */)
454IPC_MESSAGE_CONTROL2(PpapiHostMsg_SetDefaultPermissionResult,
455 uint32 /* request_id */,
456 bool /* success */)
457
458IPC_MESSAGE_CONTROL4(PpapiMsg_SetSitePermission,
459 uint32 /* request_id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000460 base::FilePath /* plugin_data_path */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000461 PP_Flash_BrowserOperations_SettingType /* setting_type */,
462 ppapi::FlashSiteSettings /* sites */)
463IPC_MESSAGE_CONTROL2(PpapiHostMsg_SetSitePermissionResult,
464 uint32 /* request_id */,
465 bool /* success */)
466
467// Broker Process.
468IPC_SYNC_MESSAGE_CONTROL2_1(PpapiMsg_ConnectToPlugin,
469 PP_Instance /* instance */,
470 IPC::PlatformFileForTransit /* handle */,
471 int32_t /* result */)
472#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
473
474// PPB_Audio.
475
476// Notifies the result of the audio stream create call. This is called in
477// both error cases and in the normal success case. These cases are
478// differentiated by the result code, which is one of the standard PPAPI
479// result codes.
480//
481// The handler of this message should always close all of the handles passed
482// in, since some could be valid even in the error case.
483IPC_MESSAGE_ROUTED4(PpapiMsg_PPBAudio_NotifyAudioStreamCreated,
484 ppapi::HostResource /* audio_id */,
485 int32_t /* result_code (will be != PP_OK on failure) */,
486 ppapi::proxy::SerializedHandle /* socket_handle */,
487 ppapi::proxy::SerializedHandle /* handle */)
488
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000489// PPB_FileRef.
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100490// TODO(teravest): Remove these messages when we've switched over to the "new"
491// proxy.
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000492IPC_MESSAGE_ROUTED3(
493 PpapiMsg_PPBFileRef_CallbackComplete,
494 ppapi::HostResource /* resource */,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100495 uint32_t /* callback_id */,
496 int32_t /* result */)
497
498IPC_MESSAGE_ROUTED4(
499 PpapiMsg_PPBFileRef_QueryCallbackComplete,
500 ppapi::HostResource /* resource */,
501 PP_FileInfo /* file_info */,
502 uint32_t /* callback_id */,
503 int32_t /* result */)
504
505IPC_MESSAGE_ROUTED5(
506 PpapiMsg_PPBFileRef_ReadDirectoryEntriesCallbackComplete,
507 ppapi::HostResource /* resource */,
508 std::vector<ppapi::PPB_FileRef_CreateInfo> /* files */,
509 std::vector<PP_FileType> /* file_types */,
510 uint32_t /* callback_id */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000511 int32_t /* result */)
512
513// PPB_FileSystem.
514IPC_MESSAGE_ROUTED2(
515 PpapiMsg_PPBFileSystem_OpenComplete,
516 ppapi::HostResource /* filesystem */,
517 int32_t /* result */)
518
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000519// PPB_Graphics3D.
520IPC_MESSAGE_ROUTED2(PpapiMsg_PPBGraphics3D_SwapBuffersACK,
521 ppapi::HostResource /* graphics_3d */,
522 int32_t /* pp_error */)
523
524// PPB_ImageData.
525IPC_MESSAGE_ROUTED1(PpapiMsg_PPBImageData_NotifyUnusedImageData,
526 ppapi::HostResource /* old_image_data */)
527
528// PPB_Instance.
529IPC_MESSAGE_ROUTED2(PpapiMsg_PPBInstance_MouseLockComplete,
530 PP_Instance /* instance */,
531 int32_t /* result */)
532
533// PPP_Class.
534IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_HasProperty,
535 int64 /* ppp_class */,
536 int64 /* object */,
537 ppapi::proxy::SerializedVar /* property */,
538 ppapi::proxy::SerializedVar /* out_exception */,
539 bool /* result */)
540IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_HasMethod,
541 int64 /* ppp_class */,
542 int64 /* object */,
543 ppapi::proxy::SerializedVar /* method */,
544 ppapi::proxy::SerializedVar /* out_exception */,
545 bool /* result */)
546IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_GetProperty,
547 int64 /* ppp_class */,
548 int64 /* object */,
549 ppapi::proxy::SerializedVar /* property */,
550 ppapi::proxy::SerializedVar /* out_exception */,
551 ppapi::proxy::SerializedVar /* result */)
552IPC_SYNC_MESSAGE_ROUTED2_2(PpapiMsg_PPPClass_EnumerateProperties,
553 int64 /* ppp_class */,
554 int64 /* object */,
555 std::vector<ppapi::proxy::SerializedVar> /* props */,
556 ppapi::proxy::SerializedVar /* out_exception */)
557IPC_SYNC_MESSAGE_ROUTED4_1(PpapiMsg_PPPClass_SetProperty,
558 int64 /* ppp_class */,
559 int64 /* object */,
560 ppapi::proxy::SerializedVar /* name */,
561 ppapi::proxy::SerializedVar /* value */,
562 ppapi::proxy::SerializedVar /* out_exception */)
563IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPClass_RemoveProperty,
564 int64 /* ppp_class */,
565 int64 /* object */,
566 ppapi::proxy::SerializedVar /* property */,
567 ppapi::proxy::SerializedVar /* out_exception */)
568IPC_SYNC_MESSAGE_ROUTED4_2(PpapiMsg_PPPClass_Call,
569 int64 /* ppp_class */,
570 int64 /* object */,
571 ppapi::proxy::SerializedVar /* method_name */,
572 std::vector<ppapi::proxy::SerializedVar> /* args */,
573 ppapi::proxy::SerializedVar /* out_exception */,
574 ppapi::proxy::SerializedVar /* result */)
575IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_Construct,
576 int64 /* ppp_class */,
577 int64 /* object */,
578 std::vector<ppapi::proxy::SerializedVar> /* args */,
579 ppapi::proxy::SerializedVar /* out_exception */,
580 ppapi::proxy::SerializedVar /* result */)
581IPC_MESSAGE_ROUTED2(PpapiMsg_PPPClass_Deallocate,
582 int64 /* ppp_class */,
583 int64 /* object */)
584
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000585// PPP_Graphics3D_Dev.
586IPC_MESSAGE_ROUTED1(PpapiMsg_PPPGraphics3D_ContextLost,
587 PP_Instance /* instance */)
588
589// PPP_InputEvent.
590IPC_MESSAGE_ROUTED2(PpapiMsg_PPPInputEvent_HandleInputEvent,
591 PP_Instance /* instance */,
592 ppapi::InputEventData /* data */)
593IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPInputEvent_HandleFilteredInputEvent,
594 PP_Instance /* instance */,
595 ppapi::InputEventData /* data */,
596 PP_Bool /* result */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000597
598// PPP_Instance.
599IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPInstance_DidCreate,
600 PP_Instance /* instance */,
601 std::vector<std::string> /* argn */,
602 std::vector<std::string> /* argv */,
603 PP_Bool /* result */)
604IPC_SYNC_MESSAGE_ROUTED1_0(PpapiMsg_PPPInstance_DidDestroy,
605 PP_Instance /* instance */)
606IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_DidChangeView,
607 PP_Instance /* instance */,
608 ppapi::ViewData /* new_data */,
609 PP_Bool /* flash_fullscreen */)
610IPC_MESSAGE_ROUTED2(PpapiMsg_PPPInstance_DidChangeFocus,
611 PP_Instance /* instance */,
612 PP_Bool /* has_focus */)
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +0100613IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_HandleDocumentLoad,
614 PP_Instance /* instance */,
615 int /* pending_loader_host_id */,
616 ppapi::URLResponseInfoData /* response */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000617
618// PPP_Messaging.
619IPC_MESSAGE_ROUTED2(PpapiMsg_PPPMessaging_HandleMessage,
620 PP_Instance /* instance */,
621 ppapi::proxy::SerializedVar /* message */)
622
623// PPP_MouseLock.
624IPC_MESSAGE_ROUTED1(PpapiMsg_PPPMouseLock_MouseLockLost,
625 PP_Instance /* instance */)
626
627// PPB_NetworkMonitor_Private.
628IPC_MESSAGE_ROUTED2(PpapiMsg_PPBNetworkMonitor_NetworkList,
629 uint32 /* plugin_dispatcher_id */,
630 ppapi::NetworkList /* network_list */)
631
632// PPP_Printing
633IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_QuerySupportedFormats,
634 PP_Instance /* instance */,
635 uint32_t /* result */)
636IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_Begin,
637 PP_Instance /* instance */,
638 std::string /* settings_string */,
639 int32_t /* result */)
640IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_PrintPages,
641 PP_Instance /* instance */,
642 std::vector<PP_PrintPageNumberRange_Dev> /* pages */,
643 ppapi::HostResource /* result */)
644IPC_MESSAGE_ROUTED1(PpapiMsg_PPPPrinting_End,
645 PP_Instance /* instance */)
646IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_IsScalingDisabled,
647 PP_Instance /* instance */,
648 bool /* result */)
649
650// PPP_TextInput.
651IPC_MESSAGE_ROUTED2(PpapiMsg_PPPTextInput_RequestSurroundingText,
652 PP_Instance /* instance */,
653 uint32_t /* desired_number_of_characters */)
654
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000655#if !defined(OS_NACL) && !defined(NACL_WIN64)
656// PPB_Broker.
657IPC_MESSAGE_ROUTED3(
658 PpapiMsg_PPBBroker_ConnectComplete,
659 ppapi::HostResource /* broker */,
660 IPC::PlatformFileForTransit /* handle */,
661 int32_t /* result */)
662
663// PPP_ContentDecryptor_Dev
664IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_GenerateKeyRequest,
665 PP_Instance /* instance */,
666 ppapi::proxy::SerializedVar /* key_system, String */,
667 ppapi::proxy::SerializedVar /* type, String */,
668 ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */)
669IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_AddKey,
670 PP_Instance /* instance */,
671 ppapi::proxy::SerializedVar /* session_id, String */,
672 ppapi::proxy::SerializedVar /* key, ArrayBuffer */,
673 ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */)
674IPC_MESSAGE_ROUTED2(PpapiMsg_PPPContentDecryptor_CancelKeyRequest,
675 PP_Instance /* instance */,
676 ppapi::proxy::SerializedVar /* session_id, String */)
677IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_Decrypt,
678 PP_Instance /* instance */,
679 ppapi::proxy::PPPDecryptor_Buffer /* buffer */,
680 std::string /* serialized_block_info */)
681IPC_MESSAGE_ROUTED3(
682 PpapiMsg_PPPContentDecryptor_InitializeAudioDecoder,
683 PP_Instance /* instance */,
684 std::string /* serialized_decoder_config */,
685 ppapi::proxy::PPPDecryptor_Buffer /* extra_data_buffer */)
686IPC_MESSAGE_ROUTED3(
687 PpapiMsg_PPPContentDecryptor_InitializeVideoDecoder,
688 PP_Instance /* instance */,
689 std::string /* serialized_decoder_config */,
690 ppapi::proxy::PPPDecryptor_Buffer /* extra_data_buffer. */)
691IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_DeinitializeDecoder,
692 PP_Instance /* instance */,
693 PP_DecryptorStreamType /* decoder_type */,
694 uint32_t /* request_id */)
695IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_ResetDecoder,
696 PP_Instance /* instance */,
697 PP_DecryptorStreamType /* decoder_type */,
698 uint32_t /* request_id */)
699IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_DecryptAndDecode,
700 PP_Instance /* instance */,
701 PP_DecryptorStreamType /* decoder_type */,
702 ppapi::proxy::PPPDecryptor_Buffer /* buffer */,
703 std::string /* serialized_block_info */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000704#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
705
Ben Murdocheb525c52013-07-10 11:40:50 +0100706// PPB_TCPSocket and PPB_TCPSocket_Private.
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000707IPC_MESSAGE_ROUTED5(PpapiMsg_PPBTCPSocket_ConnectACK,
708 uint32 /* plugin_dispatcher_id */,
709 uint32 /* socket_id */,
Ben Murdocheb525c52013-07-10 11:40:50 +0100710 int32_t /* result */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000711 PP_NetAddress_Private /* local_addr */,
712 PP_NetAddress_Private /* remote_addr */)
713IPC_MESSAGE_ROUTED4(PpapiMsg_PPBTCPSocket_SSLHandshakeACK,
714 uint32 /* plugin_dispatcher_id */,
715 uint32 /* socket_id */,
716 bool /* succeeded */,
717 ppapi::PPB_X509Certificate_Fields /* certificate_fields */)
718IPC_MESSAGE_ROUTED4(PpapiMsg_PPBTCPSocket_ReadACK,
719 uint32 /* plugin_dispatcher_id */,
720 uint32 /* socket_id */,
Ben Murdocheb525c52013-07-10 11:40:50 +0100721 int32_t /* result */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000722 std::string /* data */)
Ben Murdocheb525c52013-07-10 11:40:50 +0100723IPC_MESSAGE_ROUTED3(PpapiMsg_PPBTCPSocket_WriteACK,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000724 uint32 /* plugin_dispatcher_id */,
725 uint32 /* socket_id */,
Ben Murdocheb525c52013-07-10 11:40:50 +0100726 int32_t /* result */)
727IPC_MESSAGE_ROUTED3(PpapiMsg_PPBTCPSocket_SetOptionACK,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000728 uint32 /* plugin_dispatcher_id */,
729 uint32 /* socket_id */,
Ben Murdocheb525c52013-07-10 11:40:50 +0100730 int32_t /* result */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000731
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000732#if !defined(OS_NACL) && !defined(NACL_WIN64)
733// PPP_Instance_Private.
734IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPInstancePrivate_GetInstanceObject,
735 PP_Instance /* instance */,
736 ppapi::proxy::SerializedVar /* result */)
737
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000738// PPB_VideoDecoder_Dev.
739// (Messages from renderer to plugin to notify it to run callbacks.)
740IPC_MESSAGE_ROUTED3(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK,
741 ppapi::HostResource /* video_decoder */,
742 int32_t /* bitstream buffer id */,
743 int32_t /* PP_CompletionCallback result */)
744IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_FlushACK,
745 ppapi::HostResource /* video_decoder */,
746 int32_t /* PP_CompletionCallback result */)
747IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_ResetACK,
748 ppapi::HostResource /* video_decoder */,
749 int32_t /* PP_CompletionCallback result */)
750
751// PPP_VideoDecoder_Dev.
752IPC_MESSAGE_ROUTED4(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers,
753 ppapi::HostResource /* video_decoder */,
754 uint32_t /* requested number of buffers */,
755 PP_Size /* dimensions of buffers */,
756 uint32_t /* texture_target */)
757IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer,
758 ppapi::HostResource /* video_decoder */,
759 int32_t /* picture buffer id */)
760IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady,
761 ppapi::HostResource /* video_decoder */,
762 PP_Picture_Dev /* output picture */)
763IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
764 ppapi::HostResource /* video_decoder */,
765 PP_VideoDecodeError_Dev /* error */)
766#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
767
768// -----------------------------------------------------------------------------
769// These are from the plugin to the renderer.
770
771// Reply to PpapiMsg_CreateChannel. The handle will be NULL if the channel
772// could not be established. This could be because the IPC could not be created
773// for some weird reason, but more likely that the plugin failed to load or
774// initialize properly.
775IPC_MESSAGE_CONTROL1(PpapiHostMsg_ChannelCreated,
776 IPC::ChannelHandle /* handle */)
777
778// Logs the given message to the console of all instances.
779IPC_MESSAGE_CONTROL4(PpapiHostMsg_LogWithSource,
780 PP_Instance /* instance */,
781 int /* log_level */,
782 std::string /* source */,
783 std::string /* value */)
784
785// PPB_Audio.
786IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBAudio_Create,
787 PP_Instance /* instance_id */,
788 int32_t /* sample_rate */,
789 uint32_t /* sample_frame_count */,
790 ppapi::HostResource /* result */)
791IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBAudio_StartOrStop,
792 ppapi::HostResource /* audio_id */,
793 bool /* play */)
794
795// PPB_Core.
796IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_AddRefResource,
797 ppapi::HostResource)
798IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_ReleaseResource,
799 ppapi::HostResource)
800
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000801// PPB_FileRef.
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100802// TODO(teravest): Remove these messages when we've switched over to the "new"
803// proxy.
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100804IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBFileRef_Create,
805 PP_Instance /* instance */,
806 PP_Resource /* file_system */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000807 std::string /* path */,
808 ppapi::PPB_FileRef_CreateInfo /* result */)
809IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFileRef_GetParent,
810 ppapi::HostResource /* file_ref */,
811 ppapi::PPB_FileRef_CreateInfo /* result */)
812IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBFileRef_MakeDirectory,
813 ppapi::HostResource /* file_ref */,
814 PP_Bool /* make_ancestors */,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100815 uint32_t /* callback_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000816IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBFileRef_Touch,
817 ppapi::HostResource /* file_ref */,
818 PP_Time /* last_access */,
819 PP_Time /* last_modified */,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100820 uint32_t /* callback_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000821IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBFileRef_Delete,
822 ppapi::HostResource /* file_ref */,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100823 uint32_t /* callback_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000824IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBFileRef_Rename,
825 ppapi::HostResource /* file_ref */,
826 ppapi::HostResource /* new_file_ref */,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100827 uint32_t /* callback_id */)
828IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBFileRef_Query,
829 ppapi::HostResource /* file_ref */,
830 uint32_t /* callback_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000831IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFileRef_GetAbsolutePath,
832 ppapi::HostResource /* file_ref */,
833 ppapi::proxy::SerializedVar /* result */)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +0100834IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBFileRef_ReadDirectoryEntries,
835 ppapi::HostResource /* file_ref */,
836 uint32_t /* callback_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000837
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000838// PPB_Graphics3D.
839IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBGraphics3D_Create,
840 PP_Instance /* instance */,
841 ppapi::HostResource /* share_context */,
842 std::vector<int32_t> /* attrib_list */,
843 ppapi::HostResource /* result */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000844IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_SetGetBuffer,
845 ppapi::HostResource /* context */,
846 int32 /* transfer_buffer_id */)
847IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBGraphics3D_GetState,
848 ppapi::HostResource /* context */,
849 gpu::CommandBuffer::State /* state */,
850 bool /* success */)
851IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_Flush,
852 ppapi::HostResource /* context */,
853 int32 /* put_offset */,
854 int32 /* last_known_get */,
855 gpu::CommandBuffer::State /* state */,
856 bool /* success */)
857IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBGraphics3D_AsyncFlush,
858 ppapi::HostResource /* context */,
859 int32 /* put_offset */)
860IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
861 ppapi::HostResource /* context */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000862 uint32 /* size */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000863 int32 /* id */)
864IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer,
865 ppapi::HostResource /* context */,
866 int32 /* id */)
867IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBGraphics3D_GetTransferBuffer,
868 ppapi::HostResource /* context */,
869 int32 /* id */,
870 ppapi::proxy::SerializedHandle /* transfer_buffer */)
871IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBGraphics3D_SwapBuffers,
872 ppapi::HostResource /* graphics_3d */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000873IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBGraphics3D_InsertSyncPoint,
874 ppapi::HostResource /* context */,
875 uint32 /* sync_point */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000876
877// PPB_ImageData.
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100878IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreatePlatform,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000879 PP_Instance /* instance */,
880 int32 /* format */,
881 PP_Size /* size */,
882 PP_Bool /* init_to_zero */,
883 ppapi::HostResource /* result_resource */,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100884 PP_ImageDataDesc /* image_data_desc */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000885 ppapi::proxy::ImageHandle /* result */)
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100886IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreateSimple,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000887 PP_Instance /* instance */,
888 int32 /* format */,
889 PP_Size /* size */,
890 PP_Bool /* init_to_zero */,
891 ppapi::HostResource /* result_resource */,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +0100892 PP_ImageDataDesc /* image_data_desc */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000893 ppapi::proxy::SerializedHandle /* result */)
894
895// PPB_Instance.
896IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetWindowObject,
897 PP_Instance /* instance */,
898 ppapi::proxy::SerializedVar /* result */)
899IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetOwnerElementObject,
900 PP_Instance /* instance */,
901 ppapi::proxy::SerializedVar /* result */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +0000902IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_BindGraphics,
903 PP_Instance /* instance */,
904 PP_Resource /* device */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000905IPC_SYNC_MESSAGE_ROUTED1_1(
906 PpapiHostMsg_PPBInstance_GetAudioHardwareOutputSampleRate,
907 PP_Instance /* instance */,
908 uint32_t /* result */)
909IPC_SYNC_MESSAGE_ROUTED1_1(
910 PpapiHostMsg_PPBInstance_GetAudioHardwareOutputBufferSize,
911 PP_Instance /* instance */,
912 uint32_t /* result */)
913IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_IsFullFrame,
914 PP_Instance /* instance */,
915 PP_Bool /* result */)
916IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBInstance_ExecuteScript,
917 PP_Instance /* instance */,
918 ppapi::proxy::SerializedVar /* script */,
919 ppapi::proxy::SerializedVar /* out_exception */,
920 ppapi::proxy::SerializedVar /* result */)
921IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetDefaultCharSet,
922 PP_Instance /* instance */,
923 ppapi::proxy::SerializedVar /* result */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000924IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_SetFullscreen,
925 PP_Instance /* instance */,
926 PP_Bool /* fullscreen */,
927 PP_Bool /* result */)
928IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetScreenSize,
929 PP_Instance /* instance */,
930 PP_Bool /* result */,
931 PP_Size /* size */)
932IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_RequestInputEvents,
933 PP_Instance /* instance */,
934 bool /* is_filtering */,
935 uint32_t /* event_classes */)
936IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_ClearInputEvents,
937 PP_Instance /* instance */,
938 uint32_t /* event_classes */)
939IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PostMessage,
940 PP_Instance /* instance */,
941 ppapi::proxy::SerializedVar /* message */)
942IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_LockMouse,
943 PP_Instance /* instance */)
944IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_UnlockMouse,
945 PP_Instance /* instance */)
946IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_ResolveRelativeToDocument,
947 PP_Instance /* instance */,
948 ppapi::proxy::SerializedVar /* relative */,
949 ppapi::proxy::SerializedVar /* result */)
950IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanRequest,
951 PP_Instance /* instance */,
952 ppapi::proxy::SerializedVar /* relative */,
953 PP_Bool /* result */)
954IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument,
955 PP_Instance /* active */,
956 PP_Instance /* target */,
957 PP_Bool /* result */)
958IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetDocumentURL,
959 PP_Instance /* active */,
960 PP_URLComponents_Dev /* components */,
961 ppapi::proxy::SerializedVar /* result */)
962IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetPluginInstanceURL,
963 PP_Instance /* active */,
964 ppapi::proxy::SerializedVar /* result */)
965IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SetCursor,
966 PP_Instance /* instance */,
967 int32_t /* type */,
968 ppapi::HostResource /* custom_image */,
969 PP_Point /* hot_spot */)
970IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SetTextInputType,
971 PP_Instance /* instance */,
972 PP_TextInput_Type /* type */)
973IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_UpdateCaretPosition,
974 PP_Instance /* instance */,
975 PP_Rect /* caret */,
976 PP_Rect /* bounding_box */)
977IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_CancelCompositionText,
978 PP_Instance /* instance */)
979IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_UpdateSurroundingText,
980 PP_Instance /* instance */,
981 std::string /* text */,
982 uint32_t /* caret */,
983 uint32_t /* anchor */)
984
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000985// PPB_Var.
986IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBVar_AddRefObject,
987 int64 /* object_id */,
988 int /* unused - need a return value for sync msgs */)
989IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVar_ReleaseObject,
990 int64 /* object_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +0000991IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasProperty,
992 ppapi::proxy::SerializedVar /* object */,
993 ppapi::proxy::SerializedVar /* property */,
994 ppapi::proxy::SerializedVar /* out_exception */,
995 PP_Bool /* result */)
996IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasMethodDeprecated,
997 ppapi::proxy::SerializedVar /* object */,
998 ppapi::proxy::SerializedVar /* method */,
999 ppapi::proxy::SerializedVar /* out_exception */,
1000 PP_Bool /* result */)
1001IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_GetProperty,
1002 ppapi::proxy::SerializedVar /* object */,
1003 ppapi::proxy::SerializedVar /* property */,
1004 ppapi::proxy::SerializedVar /* out_exception */,
1005 ppapi::proxy::SerializedVar /* result */)
1006IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_DeleteProperty,
1007 ppapi::proxy::SerializedVar /* object */,
1008 ppapi::proxy::SerializedVar /* property */,
1009 ppapi::proxy::SerializedVar /* out_exception */,
1010 PP_Bool /* result */)
1011IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBVar_EnumerateProperties,
1012 ppapi::proxy::SerializedVar /* object */,
1013 std::vector<ppapi::proxy::SerializedVar> /* props */,
1014 ppapi::proxy::SerializedVar /* out_exception */)
1015IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_SetPropertyDeprecated,
1016 ppapi::proxy::SerializedVar /* object */,
1017 ppapi::proxy::SerializedVar /* name */,
1018 ppapi::proxy::SerializedVar /* value */,
1019 ppapi::proxy::SerializedVar /* out_exception */)
1020IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBVar_CallDeprecated,
1021 ppapi::proxy::SerializedVar /* object */,
1022 ppapi::proxy::SerializedVar /* method_name */,
1023 std::vector<ppapi::proxy::SerializedVar> /* args */,
1024 ppapi::proxy::SerializedVar /* out_exception */,
1025 ppapi::proxy::SerializedVar /* result */)
1026IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_Construct,
1027 ppapi::proxy::SerializedVar /* object */,
1028 std::vector<ppapi::proxy::SerializedVar> /* args */,
1029 ppapi::proxy::SerializedVar /* out_exception */,
1030 ppapi::proxy::SerializedVar /* result */)
1031IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_IsInstanceOfDeprecated,
1032 ppapi::proxy::SerializedVar /* var */,
1033 int64 /* object_class */,
1034 int64 /* object-data */,
1035 PP_Bool /* result */)
1036IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_CreateObjectDeprecated,
1037 PP_Instance /* instance */,
1038 int64 /* object_class */,
1039 int64 /* object_data */,
1040 ppapi::proxy::SerializedVar /* result */)
1041
1042#if !defined(OS_NACL) && !defined(NACL_WIN64)
1043// PPB_Broker.
1044IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBBroker_Create,
1045 PP_Instance /* instance */,
1046 ppapi::HostResource /* result_resource */)
1047IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBBroker_Connect,
1048 ppapi::HostResource /* broker */)
1049
1050// PPB_Buffer.
1051IPC_SYNC_MESSAGE_ROUTED2_2(
1052 PpapiHostMsg_PPBBuffer_Create,
1053 PP_Instance /* instance */,
1054 uint32_t /* size */,
1055 ppapi::HostResource /* result_resource */,
1056 ppapi::proxy::SerializedHandle /* result_shm_handle */)
1057
1058// PPB_ContentDecryptor_Dev messages handled in PPB_Instance_Proxy.
1059IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_NeedKey,
1060 PP_Instance /* instance */,
1061 ppapi::proxy::SerializedVar /* key_system, String */,
1062 ppapi::proxy::SerializedVar /* session_id, String */,
1063 ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */)
1064IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_KeyAdded,
1065 PP_Instance /* instance */,
1066 ppapi::proxy::SerializedVar /* key_system, String */,
1067 ppapi::proxy::SerializedVar /* session_id, String */)
1068IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_KeyMessage,
1069 PP_Instance /* instance */,
1070 ppapi::proxy::SerializedVar /* key_system, String */,
1071 ppapi::proxy::SerializedVar /* session_id, String */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001072 ppapi::proxy::SerializedVar /* message, ArrayBuffer */,
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001073 ppapi::proxy::SerializedVar /* default_url, String */)
1074IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_KeyError,
1075 PP_Instance /* instance */,
1076 ppapi::proxy::SerializedVar /* key_system, String */,
1077 ppapi::proxy::SerializedVar /* session_id, String */,
1078 int32_t /* media_error */,
1079 int32_t /* system_code */)
1080IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverBlock,
1081 PP_Instance /* instance */,
1082 PP_Resource /* decrypted_block, PPB_Buffer_Dev */,
1083 std::string /* serialized_block_info */)
1084IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_DecoderInitializeDone,
1085 PP_Instance /* instance */,
1086 PP_DecryptorStreamType /* decoder_type */,
1087 uint32_t /* request_id */,
1088 PP_Bool /* success */)
1089IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DecoderDeinitializeDone,
1090 PP_Instance /* instance */,
1091 PP_DecryptorStreamType /* decoder_type */,
1092 uint32_t /* request_id */)
1093IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DecoderResetDone,
1094 PP_Instance /* instance */,
1095 PP_DecryptorStreamType /* decoder_type */,
1096 uint32_t /* request_id */)
1097IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverFrame,
1098 PP_Instance /* instance */,
1099 PP_Resource /* decrypted_frame, PPB_Buffer_Dev */,
1100 std::string /* serialized_block_info */)
1101IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverSamples,
1102 PP_Instance /* instance */,
1103 PP_Resource /* audio_frames, PPB_Buffer_Dev */,
1104 std::string /* serialized_block_info */)
1105#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
1106
1107// PPB_NetworkMonitor_Private.
1108IPC_MESSAGE_CONTROL1(PpapiHostMsg_PPBNetworkMonitor_Start,
1109 uint32 /* plugin_dispatcher_id */)
1110IPC_MESSAGE_CONTROL1(PpapiHostMsg_PPBNetworkMonitor_Stop,
1111 uint32 /* plugin_dispatcher_id */)
1112
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001113// PPB_Testing.
1114IPC_SYNC_MESSAGE_ROUTED3_1(
1115 PpapiHostMsg_PPBTesting_ReadImageData,
1116 ppapi::HostResource /* device_context_2d */,
1117 ppapi::HostResource /* image */,
1118 PP_Point /* top_left */,
1119 PP_Bool /* result */)
1120IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBTesting_GetLiveObjectsForInstance,
1121 PP_Instance /* instance */,
1122 uint32 /* result */)
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01001123IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBTesting_SimulateInputEvent,
1124 PP_Instance /* instance */,
1125 ppapi::InputEventData /* input_event */)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001126IPC_SYNC_MESSAGE_ROUTED1_0(
1127 PpapiHostMsg_PPBTesting_SetMinimumArrayBufferSizeForShmem,
1128 uint32_t /* threshold */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001129
1130#if !defined(OS_NACL) && !defined(NACL_WIN64)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001131
1132// PPB_VideoDecoder.
1133IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVideoDecoder_Create,
1134 PP_Instance /* instance */,
1135 ppapi::HostResource /* context */,
1136 PP_VideoDecoder_Profile /* profile */,
1137 ppapi::HostResource /* result */)
1138IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBVideoDecoder_Decode,
1139 ppapi::HostResource /* video_decoder */,
1140 ppapi::HostResource /* bitstream buffer */,
1141 int32 /* bitstream buffer id */,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001142 uint32 /* size of buffer */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001143IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_AssignPictureBuffers,
1144 ppapi::HostResource /* video_decoder */,
1145 std::vector<PP_PictureBuffer_Dev> /* picture buffers */)
1146IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_ReusePictureBuffer,
1147 ppapi::HostResource /* video_decoder */,
1148 int32_t /* picture buffer id */)
1149IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Flush,
1150 ppapi::HostResource /* video_decoder */)
1151IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Reset,
1152 ppapi::HostResource /* video_decoder */)
1153IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVideoDecoder_Destroy,
1154 ppapi::HostResource /* video_decoder */)
1155
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001156// PPB_Flash_MessageLoop.
1157IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Create,
1158 PP_Instance /* instance */,
1159 ppapi::HostResource /* result */)
1160IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Run,
1161 ppapi::HostResource /* flash_message_loop */,
1162 int32_t /* result */)
1163IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBFlashMessageLoop_Quit,
1164 ppapi::HostResource /* flash_message_loop */)
1165#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
1166
Ben Murdocheb525c52013-07-10 11:40:50 +01001167// PPB_TCPSocket and PPB_TCPSocket_Private.
1168// Creates a PPB_TCPSocket resource.
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001169IPC_SYNC_MESSAGE_CONTROL2_1(PpapiHostMsg_PPBTCPSocket_Create,
1170 int32 /* routing_id */,
1171 uint32 /* plugin_dispatcher_id */,
1172 uint32 /* socket_id */)
Ben Murdocheb525c52013-07-10 11:40:50 +01001173// Creates a PPB_TCPSocket_Private resource.
1174IPC_SYNC_MESSAGE_CONTROL2_1(PpapiHostMsg_PPBTCPSocket_CreatePrivate,
1175 int32 /* routing_id */,
1176 uint32 /* plugin_dispatcher_id */,
1177 uint32 /* socket_id */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001178IPC_MESSAGE_CONTROL4(PpapiHostMsg_PPBTCPSocket_Connect,
1179 int32 /* routing_id */,
1180 uint32 /* socket_id */,
1181 std::string /* host */,
1182 uint16_t /* port */)
1183IPC_MESSAGE_CONTROL3(PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress,
1184 int32 /* routing_id */,
1185 uint32 /* socket_id */,
1186 PP_NetAddress_Private /* net_addr */)
1187IPC_MESSAGE_CONTROL5(PpapiHostMsg_PPBTCPSocket_SSLHandshake,
1188 uint32 /* socket_id */,
1189 std::string /* server_name */,
1190 uint16_t /* server_port */,
1191 std::vector<std::vector<char> > /* trusted_certs */,
1192 std::vector<std::vector<char> > /* untrusted_certs */)
1193IPC_MESSAGE_CONTROL2(PpapiHostMsg_PPBTCPSocket_Read,
1194 uint32 /* socket_id */,
1195 int32_t /* bytes_to_read */)
1196IPC_MESSAGE_CONTROL2(PpapiHostMsg_PPBTCPSocket_Write,
1197 uint32 /* socket_id */,
1198 std::string /* data */)
1199IPC_MESSAGE_CONTROL1(PpapiHostMsg_PPBTCPSocket_Disconnect,
1200 uint32 /* socket_id */)
Ben Murdocheb525c52013-07-10 11:40:50 +01001201IPC_MESSAGE_CONTROL3(PpapiHostMsg_PPBTCPSocket_SetOption,
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001202 uint32 /* socket_id */,
Ben Murdocheb525c52013-07-10 11:40:50 +01001203 PP_TCPSocket_Option /* name */,
1204 ppapi::SocketOptionData /* value */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001205
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001206// PPB_X509Certificate_Private
1207IPC_SYNC_MESSAGE_CONTROL1_2(PpapiHostMsg_PPBX509Certificate_ParseDER,
1208 std::vector<char> /* der */,
1209 bool /* succeeded */,
1210 ppapi::PPB_X509Certificate_Fields /* result */)
1211
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001212//-----------------------------------------------------------------------------
1213// Resource call/reply messages.
1214//
1215// These are the new-style resource implementations where the resource is only
1216// implemented in the proxy and "resource messages" are sent between this and a
1217// host object. Resource messages are a wrapper around some general routing
1218// information and a separate message of a type defined by the specific resource
1219// sending/receiving it. The extra paremeters allow the nested message to be
1220// routed automatically to the correct resource.
1221
1222// Notification that a resource has been created in the plugin. The nested
1223// message will be resource-type-specific.
1224IPC_MESSAGE_CONTROL3(PpapiHostMsg_ResourceCreated,
1225 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1226 PP_Instance /* instance */,
1227 IPC::Message /* nested_msg */)
1228
1229// Notification that a resource has been destroyed in the plugin.
1230IPC_MESSAGE_CONTROL1(PpapiHostMsg_ResourceDestroyed,
1231 PP_Resource /* resource */)
1232
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001233// Most resources are created by the plugin, which then sends a ResourceCreated
1234// message to create a corresponding ResourceHost in the renderer or browser
1235// host process. However, some resources are first created in the host and
1236// "pushed" or returned to the plugin.
1237//
1238// In this case, the host will create a "pending" ResourceHost object which
1239// is identified by an ID. The ID is sent to the plugin process and the
1240// PluginResource object is created. This message is sent from the plugin to
1241// the host process to connect the PluginResource and the pending ResourceHost
1242// (at which point, it's no longer pending).
1243IPC_MESSAGE_CONTROL2(PpapiHostMsg_AttachToPendingHost,
1244 PP_Resource /* resource */,
1245 int /* pending_host_id */)
1246
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001247// A resource call is a request from the plugin to the host. It may or may not
1248// require a reply, depending on the params. The nested message will be
1249// resource-type-specific.
1250IPC_MESSAGE_CONTROL2(PpapiHostMsg_ResourceCall,
1251 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1252 IPC::Message /* nested_msg */)
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001253IPC_MESSAGE_CONTROL3(PpapiHostMsg_InProcessResourceCall,
1254 int /* routing_id */,
1255 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1256 IPC::Message /* nested_msg */)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001257
1258// A resource reply is a response to a ResourceCall from a host to the
1259// plugin. The resource ID + sequence number in the params will correspond to
1260// that of the previous ResourceCall.
1261IPC_MESSAGE_CONTROL2(
1262 PpapiPluginMsg_ResourceReply,
1263 ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
1264 IPC::Message /* nested_msg */)
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001265IPC_MESSAGE_ROUTED2(
1266 PpapiHostMsg_InProcessResourceReply,
1267 ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
1268 IPC::Message /* nested_msg */)
1269
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001270
1271IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_ResourceSyncCall,
1272 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1273 IPC::Message /* nested_msg */,
1274 ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
1275 IPC::Message /* reply_msg */)
1276
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +01001277// This message is sent from the renderer to the browser when it wants to create
1278// a ResourceHost in the browser. It contains the process ID of the plugin and
1279// the instance of the plugin for which to create the resource for. params
1280// contains the sequence number for the message to track the response.
1281// The nested message is a ResourceHost creation message.
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001282IPC_MESSAGE_CONTROL5(
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +01001283 PpapiHostMsg_CreateResourceHostFromHost,
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001284 int /* routing_id */,
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +01001285 int /* child_process_id */,
1286 ppapi::proxy::ResourceMessageCallParams /* params */,
1287 PP_Instance /* instance */,
1288 IPC::Message /* nested_msg */)
1289
1290// This message is sent from the browser to the renderer when it has created a
1291// ResourceHost for the renderer. It contains the sequence number that was sent
1292// in the request and the ID of the pending ResourceHost which was created in
1293// the browser. This ID is only useful for the plugin which can attach to the
1294// ResourceHost in the browser.
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001295IPC_MESSAGE_ROUTED2(
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +01001296 PpapiHostMsg_CreateResourceHostFromHostReply,
1297 int32_t /* sequence */,
1298 int /* pending_host_id */)
1299
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001300//-----------------------------------------------------------------------------
1301// Messages for resources using call/reply above.
1302
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001303// Broker ----------------------------------------------------------------------
1304IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_Create)
1305
1306// Queries whether the plugin has permission to connect to the Pepper broker.
1307// The response is contained in the error value of the
1308// ResourceMessageReplyParams in the reply message.
1309IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_IsAllowed)
1310
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001311// Extensions common -----------------------------------------------------------
1312IPC_MESSAGE_CONTROL0(PpapiHostMsg_ExtensionsCommon_Create)
1313
1314// Starts an extension API request which doesn't expect a response.
1315// |request_name| is an API function name. |args| is a list of input arguments.
1316IPC_MESSAGE_CONTROL2(PpapiHostMsg_ExtensionsCommon_Post,
1317 std::string /* request_name */,
1318 base::ListValue /* args */)
1319
1320// Starts an extension API request which expects a response sent back using a
1321// PpapiPluginMsg_ExtensionsCommon_CallReply message.
1322// |request_name| is an API function name. |args| is a list of input arguments.
1323// |output| is a list of output results.
1324IPC_MESSAGE_CONTROL2(PpapiHostMsg_ExtensionsCommon_Call,
1325 std::string /* request_name */,
1326 base::ListValue /* args */)
1327IPC_MESSAGE_CONTROL1(PpapiPluginMsg_ExtensionsCommon_CallReply,
1328 base::ListValue /* output */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001329
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +01001330// Ext_CrxFileSystem
1331IPC_MESSAGE_CONTROL0(PpapiHostMsg_Ext_CrxFileSystem_Create)
1332IPC_MESSAGE_CONTROL0(PpapiHostMsg_Ext_CrxFileSystem_BrowserOpen)
1333IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Ext_CrxFileSystem_BrowserOpenReply,
1334 std::string /* fsid */)
1335
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001336// File chooser.
1337IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileChooser_Create)
1338IPC_MESSAGE_CONTROL4(PpapiHostMsg_FileChooser_Show,
1339 bool /* save_as */,
1340 bool /* open_multiple */,
1341 std::string /* suggested_file_name */,
1342 std::vector<std::string> /* accept_mime_types */)
1343IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileChooser_ShowReply,
1344 std::vector<ppapi::PPB_FileRef_CreateInfo> /* files */)
1345
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001346// FileIO
1347IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Create)
1348IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Open,
1349 PP_Resource /* file_ref_resource */,
1350 int32_t /* open_flags */)
1351IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_OpenReply)
1352IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Close)
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001353IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Query)
1354IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileIO_QueryReply, PP_FileInfo /* info */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001355IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Touch,
1356 PP_Time /* last_access_time */,
1357 PP_Time /* last_modified_time */)
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001358IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Read,
1359 int64_t /* offset */,
1360 int32_t /* bytes_to_read */)
1361IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileIO_ReadReply, std::string /* data */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001362IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Write,
1363 int64_t /* offset */,
1364 std::string /* data */)
1365IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_SetLength,
1366 int64_t /* length */)
1367IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Flush)
1368IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_WillWrite,
1369 int64_t /* offset */,
1370 int32_t /* bytes_to_write */)
1371IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_WillSetLength,
1372 int64_t /* length */)
1373IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_GetOSFileDescriptor)
1374IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileIO_GetOSFileDescriptorReply,
1375 int32_t /* file descriptor */)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001376IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_RequestOSFileHandle)
1377IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_RequestOSFileHandleReply)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001378IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_GeneralReply)
1379
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01001380// FileRef
Ben Murdochca12bfa2013-07-23 11:17:05 +01001381// Creates a FileRef to a path on an external file system. This message may
1382// only be sent from the renderer.
1383IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_CreateExternal,
1384 base::FilePath /* external_path */)
1385
1386// Creates a FileRef to a path on an internal file system. This message may
1387// be sent from the renderer or the plugin.
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01001388IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_CreateInternal,
1389 PP_Resource /* file_system */,
1390 std::string /* internal_path */)
1391
1392// Requests that the browser create a directory at the location indicated by
1393// the FileRef.
1394IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_MakeDirectory,
1395 bool /* make_ancestors */)
1396IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_MakeDirectoryReply)
1397
1398// Requests that the browser update the last accessed and last modified times
1399// at the location indicated by the FileRef.
1400IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_Touch,
1401 PP_Time /* last_accessed */,
1402 PP_Time /* last_modified */)
1403IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_TouchReply)
1404
1405// Requests that the browser delete a file or directory at the location
1406// indicated by the FileRef.
1407IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Delete)
1408IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_DeleteReply)
1409
1410// Requests that the browser rename a file or directory at the location
1411// indicated by the FileRef.
1412IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_Rename,
1413 PP_Resource /* new_file_ref */)
1414IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_RenameReply)
1415
1416// Requests that the browser retrieve metadata information for a file or
1417// directory at the location indicated by the FileRef.
1418IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Query)
1419IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_QueryReply,
1420 PP_FileInfo /* file_info */)
1421
1422// Requests that the browser retrieve then entries in a directory at the
1423// location indicated by the FileRef.
1424IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_ReadDirectoryEntries)
1425
1426// FileRef_CreateInfo does not provide file type information, so two
1427// corresponding vectors are returned.
1428IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileRef_ReadDirectoryEntriesReply,
1429 std::vector<ppapi::FileRef_CreateInfo> /* files */,
1430 std::vector<PP_FileType> /* file_types */)
1431
1432// Requests that the browser reply with the absolute path to the indicated
1433// file.
1434IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_GetAbsolutePath)
1435IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_GetAbsolutePathReply,
1436 std::string /* absolute_path */)
1437
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001438// FileSystem
1439IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Create,
1440 PP_FileSystemType /* type */)
1441IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Open,
1442 int64_t /* expected_size */)
1443IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileSystem_OpenReply)
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +01001444IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_InitIsolatedFileSystem,
1445 std::string /* fsid */)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001446
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001447// Flash DRM ------------------------------------------------------------------
1448IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_Create)
1449
1450// Requests the device ID.
1451IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetDeviceID)
1452// Reply for GetDeviceID which includes the device ID as a string.
1453IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetDeviceIDReply,
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001454 std::string /* id */)
1455
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01001456// Requests the HMONITOR corresponding to the monitor on which the instance is
1457// displayed.
1458IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetHmonitor)
1459// Reply message for GetHmonitor which contains the HMONITOR as an int64_t.
1460IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetHmonitorReply,
1461 int64_t /* hmonitor */)
1462
1463// Requests the voucher file which is used to verify the integrity of the Flash
1464// module. A PPB_FileRef resource will be created.
1465IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetVoucherFile)
1466// Reply message for GetVoucherFile which contains the CreateInfo for a
1467// PPB_FileRef which points to the voucher file.
1468IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetVoucherFileReply,
1469 ppapi::PPB_FileRef_CreateInfo /* file_info */)
1470
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001471// Gamepad.
1472IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_Create)
1473
1474// Requests that the gamepad host send the shared memory handle to the plugin
1475// process.
1476IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_RequestMemory)
1477
1478// Reply to a RequestMemory call. This supplies the shared memory handle. The
1479// actual handle is passed in the ReplyParams struct.
1480IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Gamepad_SendMemory)
1481
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001482
1483// Graphics2D, plugin -> host
1484IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_Create,
1485 PP_Size /* size */,
1486 PP_Bool /* is_always_opaque */)
1487IPC_MESSAGE_CONTROL4(PpapiHostMsg_Graphics2D_PaintImageData,
1488 ppapi::HostResource /* image_data */,
1489 PP_Point /* top_left */,
1490 bool /* src_rect_specified */,
1491 PP_Rect /* src_rect */)
1492IPC_MESSAGE_CONTROL3(PpapiHostMsg_Graphics2D_Scroll,
1493 bool /* clip_specified */,
1494 PP_Rect /* clip */,
1495 PP_Point /* amount */)
1496IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_ReplaceContents,
1497 ppapi::HostResource /* image_data */)
1498IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_Dev_SetScale,
1499 float /* scale */)
1500
1501// Graphics2D, plugin -> host -> plugin
1502IPC_MESSAGE_CONTROL0(PpapiHostMsg_Graphics2D_Flush)
1503IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_FlushAck)
1504
1505IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_ReadImageData,
1506 PP_Resource /* image */,
1507 PP_Point /* top_left */)
1508IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_ReadImageDataAck)
1509
Ben Murdocheb525c52013-07-10 11:40:50 +01001510// NetworkProxy ----------------------------------------------------------------
1511IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkProxy_Create)
1512
1513// Query the browser for the proxy server to use for the given URL.
1514IPC_MESSAGE_CONTROL1(PpapiHostMsg_NetworkProxy_GetProxyForURL,
1515 std::string /* url */)
1516
1517// Reply message for GetProxyForURL containing the proxy server.
1518IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkProxy_GetProxyForURLReply,
1519 std::string /* proxy */)
1520
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001521// TrueTypeFont.
1522IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFontSingleton_Create)
1523IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFontSingleton_GetFontFamilies)
1524IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFontSingleton_GetFontFamiliesReply,
1525 std::vector<std::string> /* font_families */)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001526IPC_MESSAGE_CONTROL1(PpapiHostMsg_TrueTypeFontSingleton_GetFontsInFamily,
1527 std::string /* family */)
1528IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFontSingleton_GetFontsInFamilyReply,
1529 std::vector<ppapi::proxy::SerializedTrueTypeFontDesc>
1530 /* fonts */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001531IPC_MESSAGE_CONTROL1(PpapiHostMsg_TrueTypeFont_Create,
1532 ppapi::proxy::SerializedTrueTypeFontDesc /* desc */)
1533IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFont_Describe)
1534IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_DescribeReply,
1535 ppapi::proxy::SerializedTrueTypeFontDesc /* desc */)
1536IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFont_GetTableTags)
1537IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_GetTableTagsReply,
1538 std::vector<uint32_t> /* tags */)
1539IPC_MESSAGE_CONTROL3(PpapiHostMsg_TrueTypeFont_GetTable,
1540 uint32_t /* table */,
1541 int32_t /* offset */,
1542 int32_t /* max_data_length */)
1543IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_GetTableReply,
1544 std::string /* data */)
1545
Ben Murdocheb525c52013-07-10 11:40:50 +01001546// Host Resolver ---------------------------------------------------------------
1547// Creates a PPB_HostResolver resource.
1548IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_Create)
1549
1550// Creates a PPB_HostResolver_Private resource.
1551IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_CreatePrivate)
1552
1553// Resolves the given hostname.
1554IPC_MESSAGE_CONTROL2(PpapiHostMsg_HostResolver_Resolve,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001555 ppapi::HostPortPair /* host_port */,
1556 PP_HostResolver_Private_Hint /* hint */)
Ben Murdocheb525c52013-07-10 11:40:50 +01001557
1558// This message is a reply to HostResolver_Resolve. On success,
1559// |canonical_name| contains the canonical name of the host; |net_address_list|
1560// is a list of network addresses. On failure, both fields are set to empty.
1561IPC_MESSAGE_CONTROL2(PpapiPluginMsg_HostResolver_ResolveReply,
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001562 std::string /* canonical_name */,
1563 std::vector<PP_NetAddress_Private> /* net_address_list */)
1564
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001565// Printing.
1566IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_Create)
1567IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_GetDefaultPrintSettings)
1568IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply,
1569 PP_PrintSettings_Dev /* print_settings */)
1570
Ben Murdoch2385ea32013-08-06 11:01:04 +01001571// TCP Server Socket -----------------------------------------------------------
1572// Creates a PPB_TCPServerSocket_Private resource.
1573IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_CreatePrivate)
1574
1575IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPServerSocket_Listen,
1576 PP_NetAddress_Private /* addr */,
1577 int32_t /* backlog */)
1578IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPServerSocket_ListenReply,
1579 PP_NetAddress_Private /* local_addr */)
1580IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPServerSocket_Accept,
1581 uint32 /* plugin_dispatcher_id */)
1582IPC_MESSAGE_CONTROL3(PpapiPluginMsg_TCPServerSocket_AcceptReply,
1583 uint32 /* accepted_socket_id */,
1584 PP_NetAddress_Private /* local_addr */,
1585 PP_NetAddress_Private /* remote_addr */)
1586IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_StopListening)
1587
Ben Murdocheb525c52013-07-10 11:40:50 +01001588// UDP Socket ------------------------------------------------------------------
1589// Creates a PPB_UDPSocket resource.
1590IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Create)
1591
1592// Creates a PPB_UDPSocket_Private resource.
1593IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_CreatePrivate)
1594
1595IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SetOption,
1596 PP_UDPSocket_Option /* name */,
1597 ppapi::SocketOptionData /* value */)
1598IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_SetOptionReply)
1599IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_Bind,
1600 PP_NetAddress_Private /* net_addr */)
1601IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_BindReply,
1602 PP_NetAddress_Private /* bound_addr */)
1603IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_RecvFrom,
1604 int32_t /* num_bytes */)
1605IPC_MESSAGE_CONTROL2(PpapiPluginMsg_UDPSocket_RecvFromReply,
1606 std::string /* data */,
1607 PP_NetAddress_Private /* remote_addr */)
1608IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SendTo,
1609 std::string /* data */,
1610 PP_NetAddress_Private /* net_addr */)
1611IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_SendToReply,
1612 int32_t /* bytes_written */)
1613IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Close)
1614
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001615// URLLoader ------------------------------------------------------------------
1616
1617IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Create)
1618
1619// These messages correspond to PPAPI calls and all should get a
1620// CallbackComplete message.
1621IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_Open,
1622 ppapi::URLRequestInfoData /* request_data */)
1623
1624// The plugin can tell the host to defer a load to hold off on sending more
1625// data because the buffer in the plugin is full. When defers_loading is set to
1626// false, data streaming will resume.
1627//
1628// When auditing redirects (no auto follow) the load will be automatically
1629// deferred each time we get a redirect. The plugin will reset this to false
1630// by sending this message when it wants to continue following the redirect.
1631//
1632// When streaming data, the host may still send more data after this call (for
1633// example, it could already be in-flight at the time of this request).
1634IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_SetDeferLoading,
1635 bool /* defers_loading */)
1636
1637// Closes the URLLoader. There is no reply.
1638IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Close)
1639
1640// Requests that cross-site restrictions be ignored. The plugin must have
1641// the private permission set. Otherwise this message will be ignored by the
1642// renderer. There is no reply.
1643IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_GrantUniversalAccess)
1644
1645// Push notification that a response is available.
1646IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_ReceivedResponse,
1647 ppapi::URLResponseInfoData /* response */)
1648
1649// Push notification with load data from the renderer. It is a custom generated
1650// message with the response data (array of bytes stored via WriteData)
1651// appended.
1652IPC_MESSAGE_CONTROL0(PpapiPluginMsg_URLLoader_SendData)
1653
1654// Push notification indicating that all data has been sent, either via
1655// SendData or by streaming it to a file. Note that since this is a push
1656// notification, we don't use the result field of the ResourceMessageReply.
1657IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_FinishedLoading,
1658 int32_t /* result */)
1659
1660// Push notification from the renderer to the plugin to tell it about download
1661// and upload progress. This will only be sent if the plugin has requested
1662// progress updates, and only the fields requested by the plugin will be
1663// valid.
1664IPC_MESSAGE_CONTROL4(PpapiPluginMsg_URLLoader_UpdateProgress,
1665 int64_t /* bytes_sent */,
1666 int64_t /* total_bytes_to_be_sent */,
1667 int64_t /* bytes_received */,
1668 int64_t /* total_bytes_to_be_received */)
1669
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001670// Shared memory ---------------------------------------------------------------
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001671
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001672// Creates shared memory on the host side, returning a handle to the shared
1673// memory on the plugin and keeping the memory mapped in on the host.
1674// We return a "host handle_id" that can be mapped back to the
1675// handle on the host side by PpapiGlobals::UntrackSharedMemoryHandle().
1676IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_SharedMemory_CreateSharedMemory,
1677 PP_Instance /* instance */,
1678 uint32_t /* size */,
1679 int /* host_handle_id */,
1680 ppapi::proxy::SerializedHandle /* plugin_handle */)
1681
Ben Murdocheb525c52013-07-10 11:40:50 +01001682// MediaStream -----------------------------------------------------------------
1683
1684// VideoDestination Private.
1685IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDestination_Create)
1686IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoDestination_Open,
1687 std::string /* stream_url */)
1688IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDestination_OpenReply)
1689IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDestination_PutFrame,
1690 ppapi::HostResource /* image_data */,
1691 PP_TimeTicks /* timestamp */)
1692IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDestination_Close)
1693
1694// VideoSource Private.
1695IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_Create)
1696IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoSource_Open,
1697 std::string /* stream_url */)
1698IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoSource_OpenReply)
1699IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_GetFrame)
1700IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoSource_GetFrameReply,
1701 ppapi::HostResource /* resource_id */,
1702 PP_ImageDataDesc /* image_data_desc */,
1703 PP_TimeTicks /* timestamp */)
1704IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_Close)
1705
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001706// WebSocket -------------------------------------------------------------------
1707
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001708IPC_MESSAGE_CONTROL0(PpapiHostMsg_WebSocket_Create)
1709
1710// Establishes the connection to a server. This message requires
1711// WebSocket_ConnectReply as a reply message.
1712IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Connect,
1713 std::string /* url */,
1714 std::vector<std::string> /* protocols */)
1715
1716// Closes established connection with graceful closing handshake. This message
1717// requires WebSocket_CloseReply as a reply message.
1718IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Close,
1719 int32_t /* code */,
1720 std::string /* reason */)
1721
1722// Sends a text frame to the server. No reply is defined.
1723IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendText,
1724 std::string /* message */)
1725
1726// Sends a binary frame to the server. No reply is defined.
1727IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendBinary,
1728 std::vector<uint8_t> /* message */)
1729
1730// Fails the connection. This message invokes RFC6455 defined
1731// _Fail the WebSocket Connection_ operation. No reply is defined.
1732IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_Fail,
1733 std::string /* message */)
1734
1735// This message is a reply to WebSocket_Connect. If the |url| and |protocols|
1736// are invalid, WebSocket_ConnectReply is issued immediately and it contains
1737// proper error code in its result. Otherwise, WebSocket_ConnectReply is sent
1738// with valid |url|, |protocol|, and result PP_OK. |protocol| is not a passed
1739// |protocols|, but a result of opening handshake negotiation. If the
1740// connection can not be established successfully, WebSocket_ConnectReply is
1741// not issued, but WebSocket_ClosedReply is sent instead.
1742IPC_MESSAGE_CONTROL2(PpapiPluginMsg_WebSocket_ConnectReply,
1743 std::string /* url */,
1744 std::string /* protocol */)
1745
1746// This message is a reply to WebSocket_Close. If the operation fails,
1747// WebSocket_CloseReply is issued immediately and it contains PP_ERROR_FAILED.
1748// Otherwise, CloseReply will be issued after the closing handshake is
1749// finished. All arguments will be valid iff the result is PP_OK and it means
1750// that the client initiated closing handshake is finished gracefully.
1751IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_CloseReply,
1752 uint64_t /* buffered_amount */,
1753 bool /* was_clean */,
1754 uint16_t /* code */,
1755 std::string /* reason */)
1756
1757// Unsolicited reply message to transmit a receiving text frame.
1758IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveTextReply,
1759 std::string /* message */)
1760
1761// Unsolicited reply message to transmit a receiving binary frame.
1762IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveBinaryReply,
1763 std::vector<uint8_t> /* message */)
1764
1765// Unsolicited reply message to notify a error on underlying network connetion.
1766IPC_MESSAGE_CONTROL0(PpapiPluginMsg_WebSocket_ErrorReply)
1767
1768// Unsolicited reply message to update the buffered amount value.
1769IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_BufferedAmountReply,
1770 uint64_t /* buffered_amount */)
1771
1772// Unsolicited reply message to update |state| because of incoming external
1773// events, e.g., protocol error, or unexpected network closure.
1774IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_StateReply,
1775 int32_t /* state */)
1776
1777// Unsolicited reply message to notify that the connection is closed without
1778// any WebSocket_Close request. Server initiated closing handshake or
1779// unexpected network errors will invoke this message.
1780IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_ClosedReply,
1781 uint64_t /* buffered_amount */,
1782 bool /* was_clean */,
1783 uint16_t /* code */,
1784 std::string /* reason */)
1785
1786#if !defined(OS_NACL) && !defined(NACL_WIN64)
1787
1788// Audio input.
1789IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Create)
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001790IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open,
1791 std::string /* device_id */,
1792 PP_AudioSampleRate /* sample_rate */,
1793 uint32_t /* sample_frame_count */)
1794// Reply to an Open call. This supplies a socket handle and a shared memory
1795// handle. Both handles are passed in the ReplyParams struct.
1796IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioInput_OpenReply)
1797IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioInput_StartOrStop, bool /* capture */)
1798IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Close)
1799
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001800// BrowserFont -----------------------------------------------------------------
1801
1802IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_Create)
1803
1804// Requests that the browser reply with the list of font families via
1805// PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply.
1806IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_GetFontFamilies)
1807
1808// Reply to PpapiHostMsg_BrowserFontSingleton_GetFontFamilies with the font
1809// family list. The |families| result is encoded by separating each family name
1810// by a null character.
1811IPC_MESSAGE_CONTROL1(PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply,
1812 std::string /* families */)
1813
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001814// FileRef.
1815// Requests that the browser reply with file system and path information about
1816// the resource indicated in |params| which exists in the given
1817// |child_process_id|. |routing_id| is sent so that the reply can be routed
1818// properly in the renderer.
1819// Only sent from the renderer to the browser.
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001820IPC_MESSAGE_CONTROL4(PpapiHostMsg_FileRef_GetInfoForRenderer,
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001821 int /* routing_id */,
1822 int /* child_process_id */,
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001823 int32_t /* sequence */,
1824 std::vector<PP_Resource> /* resources */)
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001825
1826// Reply to PpapiHostMsg_FileRef_GetInfoForRenderer with a sequence number for
1827// invoking the right callback, |fs_type| which indicates the file system, and
1828// path information in either |file_system_url_spec| (for internal file systems)
1829// or |external_path| (for external file systems).
1830// Only sent from the browser to the renderer.
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001831IPC_MESSAGE_ROUTED5(PpapiHostMsg_FileRef_GetInfoForRendererReply,
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001832 int32_t /* sequence */,
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001833 std::vector<PP_Resource> /* resources */,
1834 std::vector<PP_FileSystemType> /* fs_type */,
1835 std::vector<std::string> /* file_system_url_spec */,
1836 std::vector<base::FilePath> /* external_path */)
Ben Murdoch7dbb3d52013-07-17 14:55:54 +01001837
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001838// Flash -----------------------------------------------------------------------
1839
1840IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_Create)
1841
1842// Message to notify the browser to register an update in system activity.
1843IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_UpdateActivity)
1844
1845// Query the browser for the proxy server to use for the given URL.
1846IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_GetProxyForURL, std::string /* url */)
1847// Reply message for GetProxyForURL containing the proxy server.
1848IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetProxyForURLReply,
1849 std::string /* proxy */)
1850
1851// Queries the browser for the local time zone offset for a given time.
1852IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_GetLocalTimeZoneOffset,
1853 base::Time /* time */)
1854// Reply to GetLocalTimeZoneOffset containing the time zone offset as a double.
1855IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetLocalTimeZoneOffsetReply,
1856 double /* offset */)
1857
1858// Query the browser for the restrictions on storing Flash LSOs.
1859IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_GetLocalDataRestrictions)
1860// Reply message for GetLocalDataRestrictions containing the restrictions to
1861// use. These are PP_FlashLSORestrictions cast to an int32_t.
1862IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetLocalDataRestrictionsReply,
1863 int32_t /* restrictions */)
1864
1865// Notifies the renderer whether the Flash instance is in windowed mode. No
1866// reply is sent.
1867IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_SetInstanceAlwaysOnTop,
1868 bool /* on_top */)
1869
1870// Notifies the renderer to draw text to the given PP_ImageData resource. All
1871// parmeters for drawing (including the resource to draw to) are contianed in
1872// the PPBFlash_DrawGlyphs_Params structure. An error code is sent in a reply
1873// message indicating success.
1874IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_DrawGlyphs,
1875 ppapi::proxy::PPBFlash_DrawGlyphs_Params /* params */)
1876
1877// Notifies the renderer to navigate to the given URL contained in the
1878// URLRequestInfoData. An error code is sent in a reply message indicating
1879// success.
1880IPC_MESSAGE_CONTROL3(PpapiHostMsg_Flash_Navigate,
1881 ppapi::URLRequestInfoData /* data */,
1882 std::string /* target */,
1883 bool /* from_user_action */)
1884
1885// Queries the renderer on whether the plugin instance is the topmost element
1886// in the area of the instance specified by the given PP_Rect. PP_OK is sent as
1887// the error code in a reply message if the rect is topmost otherwise
1888// PP_ERROR_FAILED is sent.
1889IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_IsRectTopmost,
1890 PP_Rect /* rect */)
1891
1892// Notifies the renderer to invoke printing for the given plugin instance. No
1893// reply is sent.
1894IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_InvokePrinting)
1895
1896// DeviceEnumeration -----------------------------------------------------------
1897// Device enumeration messages used by audio input and video capture.
1898IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
1899IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
1900 std::vector<ppapi::DeviceRefData> /* devices */)
1901IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
1902 uint32_t /* callback_id */)
1903IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
1904IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
1905 uint32_t /* callback_id */,
1906 std::vector<ppapi::DeviceRefData> /* devices */)
1907
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001908// Flash clipboard.
1909IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashClipboard_Create)
1910IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_RegisterCustomFormat,
1911 std::string /* format_name */)
1912IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_RegisterCustomFormatReply,
1913 uint32_t /* format */)
1914IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashClipboard_IsFormatAvailable,
1915 uint32_t /* clipboard_type */,
1916 uint32_t /* format */)
1917IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashClipboard_ReadData,
1918 uint32_t /* clipboard_type */,
1919 uint32_t /* format */)
1920IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_ReadDataReply,
1921 std::string /* result */)
1922IPC_MESSAGE_CONTROL3(PpapiHostMsg_FlashClipboard_WriteData,
1923 uint32_t /* clipboard_type */,
1924 std::vector<uint32_t> /* formats */,
1925 std::vector<std::string> /* data */)
1926
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001927// Flash file.
1928IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_Create)
1929IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_OpenFile,
1930 ppapi::PepperFilePath /* path */,
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001931 int /* pp_open_flags */)
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001932IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_RenameFile,
1933 ppapi::PepperFilePath /* from_path */,
1934 ppapi::PepperFilePath /* to_path */)
1935IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_DeleteFileOrDir,
1936 ppapi::PepperFilePath /* path */,
1937 bool /* recursive */)
1938IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_CreateDir,
1939 ppapi::PepperFilePath /* path */)
1940IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_QueryFile,
1941 ppapi::PepperFilePath /* path */)
1942IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_QueryFileReply,
1943 base::PlatformFileInfo /* file_info */)
1944IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_GetDirContents,
1945 ppapi::PepperFilePath /* path */)
1946IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_GetDirContentsReply,
1947 ppapi::DirContents /* entries */)
1948IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_CreateTemporaryFile)
1949
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001950// Flash font file.
1951IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFontFile_Create,
1952 ppapi::proxy::SerializedFontDescription /* description */,
1953 PP_PrivateFontCharset /* charset */)
1954IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFontFile_GetFontTable,
1955 uint32_t /* table */)
1956IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFontFile_GetFontTableReply,
1957 std::string /* output */)
1958
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00001959// Flash fullscreen.
1960IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFullscreen_Create)
1961IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFullscreen_SetFullscreen,
1962 bool /* fullscreen */)
1963
1964// FlashMenu ------------------------------------------------------------------
1965
1966// Creates the flash menu with the given data.
1967IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Create,
1968 ppapi::proxy::SerializedFlashMenu /* menu_data */)
1969
1970// Shows the menu at the given location relative to the plugin instance.
1971IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Show,
1972 PP_Point /* location */)
1973
1974// Reply to a show command. If the resource reply is PP_OK, the selected_id
1975// will be the menu item ID chosen by the user.
1976IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashMenu_ShowReply,
1977 int32_t /* selected_id */)
1978
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01001979// PDF ------------------------------------------------------------------------
1980
1981// Creates the PDF resource.
1982IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_Create)
1983
1984// Requests the localized string for the given ID.
1985IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_GetLocalizedString,
1986 PP_ResourceString /* string_id */)
1987// Reply for PpapiHostMsg_PDF_GetLocalizedString containing the localized
1988// string.
1989IPC_MESSAGE_CONTROL1(PpapiPluginMsg_PDF_GetLocalizedStringReply,
1990 std::string /* localized_string*/)
1991
1992// Notifies the renderer that the PDF started loading.
1993IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_DidStartLoading)
1994
1995// Notifies the renderer that the PDF stopped loading.
1996IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_DidStopLoading)
1997
1998// Sets any restrictions on the PDF content.
1999IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetContentRestriction,
2000 int /* restrictions */)
2001
2002// Requests that the specified action be recorded with UMA.
2003IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_UserMetricsRecordAction,
2004 std::string /* action */)
2005
2006// Notifies the renderer that the current PDF uses an unsupported feature.
2007IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_HasUnsupportedFeature)
2008
2009// Notifies the renderer to print the current PDF.
2010IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_Print)
2011
2012// Notifies the renderer to save the current PDF.
2013IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_SaveAs)
2014
2015// Requests a resource image for the plugin at a particular scale.
2016IPC_MESSAGE_CONTROL2(PpapiHostMsg_PDF_GetResourceImage,
2017 PP_ResourceImage /* image_id */,
2018 float /* scale */)
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01002019
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01002020// Reply for PpapiHostMsg_PDF_GetResourceImage containing the host resource id
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01002021// of the image and a PP_ImageDataDesc which describes the image. Also carries
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01002022// a shared memory handle pointing to the memory containg the image.
2023IPC_MESSAGE_CONTROL2(PpapiPluginMsg_PDF_GetResourceImageReply,
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01002024 ppapi::HostResource /* resource_id */,
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +01002025 PP_ImageDataDesc /* image_data_desc */)
Torne (Richard Coles)c2e0dbd2013-05-09 18:35:53 +01002026
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00002027// VideoCapture_Dev, plugin -> host
2028IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Create)
2029IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StartCapture)
2030IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoCapture_ReuseBuffer,
2031 uint32_t /* buffer */)
2032IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StopCapture)
2033IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Close)
2034
2035// VideoCapture_Dev, plugin -> host -> plugin
2036IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoCapture_Open,
2037 std::string /* device_id */,
2038 PP_VideoCaptureDeviceInfo_Dev /* requested_info */,
2039 uint32_t /* buffer_count */)
2040IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoCapture_OpenReply)
2041
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00002042// VideoCapture_Dev, host -> plugin
2043IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoCapture_OnDeviceInfo,
2044 PP_VideoCaptureDeviceInfo_Dev /* info */,
2045 std::vector<ppapi::HostResource> /* buffers */,
2046 uint32_t /* buffer_size */)
2047IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnStatus,
2048 uint32_t /* status */)
2049IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnError,
2050 uint32_t /* error */)
2051IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnBufferReady,
2052 uint32_t /* buffer */)
2053
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +01002054// Talk ------------------------------------------------------------------------
2055
2056IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_Create)
2057IPC_MESSAGE_CONTROL1(PpapiHostMsg_Talk_RequestPermission,
2058 PP_TalkPermission /* permission */)
2059IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_RequestPermissionReply)
2060IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_StartRemoting)
2061IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_StartRemotingReply)
2062IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_StopRemoting)
2063IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_StopRemotingReply)
2064IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Talk_NotifyEvent, PP_TalkEvent /* event */)
2065
Torne (Richard Coles)58218062012-11-14 11:43:16 +00002066#endif // !defined(OS_NACL) && !defined(NACL_WIN64)