Suppress data races in blink::Scheduler
[chromium-blink-merge.git] / ppapi / proxy / ppapi_messages.h
blobd23a0773e29f272f6f14258bd6d5d9269bb6c9da
1 // 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.
5 // Multiply-included message header, no traditional include guard.
6 #include <map>
7 #include <string>
8 #include <vector>
10 #include "base/basictypes.h"
11 #include "base/files/file_path.h"
12 #include "base/memory/shared_memory.h"
13 #include "base/process/process.h"
14 #include "base/strings/string16.h"
15 #include "base/sync_socket.h"
16 #include "gpu/command_buffer/common/command_buffer.h"
17 #include "gpu/command_buffer/common/mailbox.h"
18 #include "gpu/ipc/gpu_command_buffer_traits.h"
19 #include "ipc/ipc_channel_handle.h"
20 #include "ipc/ipc_message_macros.h"
21 #include "ipc/ipc_message_utils.h"
22 #include "ipc/ipc_platform_file.h"
23 #include "ppapi/c/dev/pp_video_capture_dev.h"
24 #include "ppapi/c/dev/pp_video_dev.h"
25 #include "ppapi/c/dev/ppb_truetype_font_dev.h"
26 #include "ppapi/c/dev/ppb_url_util_dev.h"
27 #include "ppapi/c/dev/ppp_printing_dev.h"
28 #include "ppapi/c/pp_bool.h"
29 #include "ppapi/c/pp_codecs.h"
30 #include "ppapi/c/pp_file_info.h"
31 #include "ppapi/c/pp_instance.h"
32 #include "ppapi/c/pp_module.h"
33 #include "ppapi/c/pp_point.h"
34 #include "ppapi/c/pp_rect.h"
35 #include "ppapi/c/pp_resource.h"
36 #include "ppapi/c/pp_size.h"
37 #include "ppapi/c/pp_time.h"
38 #include "ppapi/c/ppb_audio_config.h"
39 #include "ppapi/c/ppb_compositor_layer.h"
40 #include "ppapi/c/ppb_image_data.h"
41 #include "ppapi/c/ppb_tcp_socket.h"
42 #include "ppapi/c/ppb_text_input_controller.h"
43 #include "ppapi/c/ppb_udp_socket.h"
44 #include "ppapi/c/private/pp_content_decryptor.h"
45 #include "ppapi/c/private/pp_private_font_charset.h"
46 #include "ppapi/c/private/ppb_flash.h"
47 #include "ppapi/c/private/ppb_host_resolver_private.h"
48 #include "ppapi/c/private/ppb_isolated_file_system_private.h"
49 #include "ppapi/c/private/ppb_net_address_private.h"
50 #include "ppapi/c/private/ppb_pdf.h"
51 #include "ppapi/c/private/ppb_talk_private.h"
52 #include "ppapi/c/private/ppp_flash_browser_operations.h"
53 #include "ppapi/c/private/ppp_pdf.h"
54 #include "ppapi/proxy/host_resolver_private_resource.h"
55 #include "ppapi/proxy/network_list_resource.h"
56 #include "ppapi/proxy/ppapi_param_traits.h"
57 #include "ppapi/proxy/ppapi_proxy_export.h"
58 #include "ppapi/proxy/resource_message_params.h"
59 #include "ppapi/proxy/serialized_flash_menu.h"
60 #include "ppapi/proxy/serialized_handle.h"
61 #include "ppapi/proxy/serialized_structs.h"
62 #include "ppapi/proxy/serialized_var.h"
63 #include "ppapi/shared_impl/compositor_layer_data.h"
64 #include "ppapi/shared_impl/dir_contents.h"
65 #include "ppapi/shared_impl/file_growth.h"
66 #include "ppapi/shared_impl/file_path.h"
67 #include "ppapi/shared_impl/file_ref_create_info.h"
68 #include "ppapi/shared_impl/media_stream_audio_track_shared.h"
69 #include "ppapi/shared_impl/media_stream_video_track_shared.h"
70 #include "ppapi/shared_impl/ppapi_nacl_plugin_args.h"
71 #include "ppapi/shared_impl/ppapi_preferences.h"
72 #include "ppapi/shared_impl/ppb_device_ref_shared.h"
73 #include "ppapi/shared_impl/ppb_input_event_shared.h"
74 #include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
75 #include "ppapi/shared_impl/ppb_view_shared.h"
76 #include "ppapi/shared_impl/ppp_flash_browser_operations_shared.h"
77 #include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
78 #include "ppapi/shared_impl/socket_option_data.h"
79 #include "ppapi/shared_impl/url_request_info_data.h"
80 #include "ppapi/shared_impl/url_response_info_data.h"
81 #include "ui/events/ipc/latency_info_param_traits.h"
83 #undef IPC_MESSAGE_EXPORT
84 #define IPC_MESSAGE_EXPORT PPAPI_PROXY_EXPORT
86 #define IPC_MESSAGE_START PpapiMsgStart
88 IPC_ENUM_TRAITS_MAX_VALUE(ppapi::TCPSocketVersion,
89 ppapi::TCP_SOCKET_VERSION_1_1_OR_ABOVE)
90 IPC_ENUM_TRAITS(PP_AudioSampleRate)
91 IPC_ENUM_TRAITS_MAX_VALUE(PP_BlendMode, PP_BLENDMODE_LAST)
92 IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmExceptionCode, PP_CDMEXCEPTIONCODE_OUTPUTERROR)
93 IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmKeyStatus, PP_CDMKEYSTATUS_OUTPUTNOTALLOWED)
94 IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmMessageType, PP_CDMMESSAGETYPE_LICENSE_RELEASE)
95 IPC_ENUM_TRAITS(PP_DeviceType_Dev)
96 IPC_ENUM_TRAITS(PP_DecryptorStreamType)
97 IPC_ENUM_TRAITS_MAX_VALUE(PP_FileSystemType, PP_FILESYSTEMTYPE_ISOLATED)
98 IPC_ENUM_TRAITS_MAX_VALUE(PP_FileType, PP_FILETYPE_OTHER)
99 IPC_ENUM_TRAITS(PP_Flash_BrowserOperations_Permission)
100 IPC_ENUM_TRAITS(PP_Flash_BrowserOperations_SettingType)
101 IPC_ENUM_TRAITS(PP_FlashSetting)
102 IPC_ENUM_TRAITS(PP_ImageDataFormat)
103 IPC_ENUM_TRAITS(PP_InputEvent_MouseButton)
104 IPC_ENUM_TRAITS(PP_InputEvent_Type)
105 IPC_ENUM_TRAITS_MAX_VALUE(PP_IsolatedFileSystemType_Private,
106 PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE)
107 IPC_ENUM_TRAITS_MAX_VALUE(PP_NetAddressFamily_Private,
108 PP_NETADDRESSFAMILY_PRIVATE_IPV6)
109 IPC_ENUM_TRAITS_MAX_VALUE(PP_NetworkList_State, PP_NETWORKLIST_STATE_UP)
110 IPC_ENUM_TRAITS_MAX_VALUE(PP_NetworkList_Type, PP_NETWORKLIST_TYPE_CELLULAR)
111 IPC_ENUM_TRAITS(PP_PrintOrientation_Dev)
112 IPC_ENUM_TRAITS(PP_PrintOutputFormat_Dev)
113 IPC_ENUM_TRAITS(PP_PrintScalingOption_Dev)
114 IPC_ENUM_TRAITS(PP_PrivateFontCharset)
115 IPC_ENUM_TRAITS(PP_ResourceImage)
116 IPC_ENUM_TRAITS(PP_ResourceString)
117 IPC_ENUM_TRAITS_MAX_VALUE(PP_SessionType, PP_SESSIONTYPE_PERSISTENT_RELEASE)
118 IPC_ENUM_TRAITS_MAX_VALUE(PP_TalkEvent, PP_TALKEVENT_NUM_EVENTS - 1)
119 IPC_ENUM_TRAITS_MAX_VALUE(PP_TalkPermission,
120 PP_TALKPERMISSION_NUM_PERMISSIONS - 1)
121 IPC_ENUM_TRAITS_MAX_VALUE(PP_TCPSocket_Option,
122 PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE)
123 IPC_ENUM_TRAITS(PP_TextInput_Type)
124 IPC_ENUM_TRAITS(PP_TrueTypeFontFamily_Dev)
125 IPC_ENUM_TRAITS(PP_TrueTypeFontStyle_Dev)
126 IPC_ENUM_TRAITS(PP_TrueTypeFontWeight_Dev)
127 IPC_ENUM_TRAITS(PP_TrueTypeFontWidth_Dev)
128 IPC_ENUM_TRAITS(PP_TrueTypeFontCharset_Dev)
129 IPC_ENUM_TRAITS_MAX_VALUE(PP_UDPSocket_Option,
130 PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE)
131 IPC_ENUM_TRAITS(PP_VideoDecodeError_Dev)
132 IPC_ENUM_TRAITS(PP_VideoDecoder_Profile)
133 IPC_ENUM_TRAITS_MAX_VALUE(PP_VideoFrame_Format, PP_VIDEOFRAME_FORMAT_LAST)
134 IPC_ENUM_TRAITS_MAX_VALUE(PP_HardwareAcceleration, PP_HARDWAREACCELERATION_LAST)
135 IPC_ENUM_TRAITS_MAX_VALUE(PP_VideoProfile, PP_VIDEOPROFILE_MAX)
137 IPC_STRUCT_TRAITS_BEGIN(PP_Point)
138 IPC_STRUCT_TRAITS_MEMBER(x)
139 IPC_STRUCT_TRAITS_MEMBER(y)
140 IPC_STRUCT_TRAITS_END()
142 IPC_STRUCT_TRAITS_BEGIN(PP_FloatPoint)
143 IPC_STRUCT_TRAITS_MEMBER(x)
144 IPC_STRUCT_TRAITS_MEMBER(y)
145 IPC_STRUCT_TRAITS_END()
147 IPC_STRUCT_TRAITS_BEGIN(PP_Size)
148 IPC_STRUCT_TRAITS_MEMBER(height)
149 IPC_STRUCT_TRAITS_MEMBER(width)
150 IPC_STRUCT_TRAITS_END()
152 IPC_STRUCT_TRAITS_BEGIN(PP_FloatSize)
153 IPC_STRUCT_TRAITS_MEMBER(height)
154 IPC_STRUCT_TRAITS_MEMBER(width)
155 IPC_STRUCT_TRAITS_END()
157 IPC_STRUCT_TRAITS_BEGIN(PP_Rect)
158 IPC_STRUCT_TRAITS_MEMBER(point)
159 IPC_STRUCT_TRAITS_MEMBER(size)
160 IPC_STRUCT_TRAITS_END()
162 IPC_STRUCT_TRAITS_BEGIN(PP_FloatRect)
163 IPC_STRUCT_TRAITS_MEMBER(point)
164 IPC_STRUCT_TRAITS_MEMBER(size)
165 IPC_STRUCT_TRAITS_END()
167 IPC_STRUCT_TRAITS_BEGIN(PP_ImageDataDesc)
168 IPC_STRUCT_TRAITS_MEMBER(format)
169 IPC_STRUCT_TRAITS_MEMBER(size)
170 IPC_STRUCT_TRAITS_MEMBER(stride)
171 IPC_STRUCT_TRAITS_END()
173 IPC_STRUCT_TRAITS_BEGIN(PP_PictureBuffer_Dev)
174 IPC_STRUCT_TRAITS_MEMBER(id)
175 IPC_STRUCT_TRAITS_MEMBER(size)
176 IPC_STRUCT_TRAITS_MEMBER(texture_id)
177 IPC_STRUCT_TRAITS_END()
179 IPC_STRUCT_TRAITS_BEGIN(PP_Picture_Dev)
180 IPC_STRUCT_TRAITS_MEMBER(picture_buffer_id)
181 IPC_STRUCT_TRAITS_MEMBER(bitstream_buffer_id)
182 IPC_STRUCT_TRAITS_END()
184 IPC_STRUCT_TRAITS_BEGIN(PP_PrintPageNumberRange_Dev)
185 IPC_STRUCT_TRAITS_MEMBER(first_page_number)
186 IPC_STRUCT_TRAITS_MEMBER(last_page_number)
187 IPC_STRUCT_TRAITS_END()
189 IPC_STRUCT_TRAITS_BEGIN(PP_VideoCaptureDeviceInfo_Dev)
190 IPC_STRUCT_TRAITS_MEMBER(width)
191 IPC_STRUCT_TRAITS_MEMBER(height)
192 IPC_STRUCT_TRAITS_MEMBER(frames_per_second)
193 IPC_STRUCT_TRAITS_END()
195 IPC_STRUCT_TRAITS_BEGIN(PP_HostResolver_Private_Hint)
196 IPC_STRUCT_TRAITS_MEMBER(family)
197 IPC_STRUCT_TRAITS_MEMBER(flags)
198 IPC_STRUCT_TRAITS_END()
200 IPC_STRUCT_TRAITS_BEGIN(PP_PrintSettings_Dev)
201 IPC_STRUCT_TRAITS_MEMBER(printable_area)
202 IPC_STRUCT_TRAITS_MEMBER(content_area)
203 IPC_STRUCT_TRAITS_MEMBER(paper_size)
204 IPC_STRUCT_TRAITS_MEMBER(dpi)
205 IPC_STRUCT_TRAITS_MEMBER(orientation)
206 IPC_STRUCT_TRAITS_MEMBER(print_scaling_option)
207 IPC_STRUCT_TRAITS_MEMBER(grayscale)
208 IPC_STRUCT_TRAITS_MEMBER(format)
209 IPC_STRUCT_TRAITS_END()
211 IPC_STRUCT_TRAITS_BEGIN(PP_PdfPrintPresetOptions_Dev)
212 IPC_STRUCT_TRAITS_MEMBER(is_scaling_disabled)
213 IPC_STRUCT_TRAITS_MEMBER(copies)
214 IPC_STRUCT_TRAITS_END()
216 IPC_STRUCT_TRAITS_BEGIN(PP_URLComponent_Dev)
217 IPC_STRUCT_TRAITS_MEMBER(begin)
218 IPC_STRUCT_TRAITS_MEMBER(len)
219 IPC_STRUCT_TRAITS_END()
221 IPC_STRUCT_TRAITS_BEGIN(PP_URLComponents_Dev)
222 IPC_STRUCT_TRAITS_MEMBER(scheme)
223 IPC_STRUCT_TRAITS_MEMBER(username)
224 IPC_STRUCT_TRAITS_MEMBER(password)
225 IPC_STRUCT_TRAITS_MEMBER(host)
226 IPC_STRUCT_TRAITS_MEMBER(port)
227 IPC_STRUCT_TRAITS_MEMBER(path)
228 IPC_STRUCT_TRAITS_MEMBER(query)
229 IPC_STRUCT_TRAITS_MEMBER(ref)
230 IPC_STRUCT_TRAITS_END()
232 IPC_STRUCT_TRAITS_BEGIN(PP_FileInfo)
233 IPC_STRUCT_TRAITS_MEMBER(size)
234 IPC_STRUCT_TRAITS_MEMBER(type)
235 IPC_STRUCT_TRAITS_MEMBER(system_type)
236 IPC_STRUCT_TRAITS_MEMBER(creation_time)
237 IPC_STRUCT_TRAITS_MEMBER(last_access_time)
238 IPC_STRUCT_TRAITS_MEMBER(last_modified_time)
239 IPC_STRUCT_TRAITS_END()
241 IPC_STRUCT_TRAITS_BEGIN(ppapi::FileGrowth)
242 IPC_STRUCT_TRAITS_MEMBER(max_written_offset)
243 IPC_STRUCT_TRAITS_MEMBER(append_mode_write_amount)
244 IPC_STRUCT_TRAITS_END()
246 IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData)
247 IPC_STRUCT_TRAITS_MEMBER(common)
248 IPC_STRUCT_TRAITS_MEMBER(color)
249 IPC_STRUCT_TRAITS_MEMBER(texture)
250 IPC_STRUCT_TRAITS_MEMBER(image)
251 IPC_STRUCT_TRAITS_END()
253 IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::LayerCommon)
254 IPC_STRUCT_TRAITS_MEMBER(size)
255 IPC_STRUCT_TRAITS_MEMBER(clip_rect)
256 IPC_STRUCT_TRAITS_MEMBER(transform)
257 IPC_STRUCT_TRAITS_MEMBER(blend_mode)
258 IPC_STRUCT_TRAITS_MEMBER(opacity)
259 IPC_STRUCT_TRAITS_MEMBER(resource_id)
260 IPC_STRUCT_TRAITS_END()
262 IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::ColorLayer)
263 IPC_STRUCT_TRAITS_MEMBER(red)
264 IPC_STRUCT_TRAITS_MEMBER(green)
265 IPC_STRUCT_TRAITS_MEMBER(blue)
266 IPC_STRUCT_TRAITS_MEMBER(alpha)
267 IPC_STRUCT_TRAITS_END()
269 IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::ImageLayer)
270 IPC_STRUCT_TRAITS_MEMBER(resource)
271 IPC_STRUCT_TRAITS_MEMBER(source_rect)
272 IPC_STRUCT_TRAITS_END()
274 IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::TextureLayer)
275 IPC_STRUCT_TRAITS_MEMBER(mailbox)
276 IPC_STRUCT_TRAITS_MEMBER(target)
277 IPC_STRUCT_TRAITS_MEMBER(sync_point)
278 IPC_STRUCT_TRAITS_MEMBER(source_rect)
279 IPC_STRUCT_TRAITS_MEMBER(premult_alpha)
280 IPC_STRUCT_TRAITS_END()
282 IPC_STRUCT_TRAITS_BEGIN(ppapi::DeviceRefData)
283 IPC_STRUCT_TRAITS_MEMBER(type)
284 IPC_STRUCT_TRAITS_MEMBER(name)
285 IPC_STRUCT_TRAITS_MEMBER(id)
286 IPC_STRUCT_TRAITS_END()
288 IPC_STRUCT_TRAITS_BEGIN(ppapi::DirEntry)
289 IPC_STRUCT_TRAITS_MEMBER(name)
290 IPC_STRUCT_TRAITS_MEMBER(is_dir)
291 IPC_STRUCT_TRAITS_END()
293 IPC_STRUCT_TRAITS_BEGIN(ppapi::FileRefCreateInfo)
294 IPC_STRUCT_TRAITS_MEMBER(file_system_type)
295 IPC_STRUCT_TRAITS_MEMBER(internal_path)
296 IPC_STRUCT_TRAITS_MEMBER(display_name)
297 IPC_STRUCT_TRAITS_MEMBER(browser_pending_host_resource_id)
298 IPC_STRUCT_TRAITS_MEMBER(renderer_pending_host_resource_id)
299 IPC_STRUCT_TRAITS_MEMBER(file_system_plugin_resource)
300 IPC_STRUCT_TRAITS_END()
302 IPC_STRUCT_TRAITS_BEGIN(ppapi::FlashSiteSetting)
303 IPC_STRUCT_TRAITS_MEMBER(site)
304 IPC_STRUCT_TRAITS_MEMBER(permission)
305 IPC_STRUCT_TRAITS_END()
307 IPC_STRUCT_TRAITS_BEGIN(ppapi::MediaStreamAudioTrackShared::Attributes)
308 IPC_STRUCT_TRAITS_MEMBER(buffers)
309 IPC_STRUCT_TRAITS_MEMBER(duration)
310 IPC_STRUCT_TRAITS_END()
312 IPC_STRUCT_TRAITS_BEGIN(ppapi::MediaStreamVideoTrackShared::Attributes)
313 IPC_STRUCT_TRAITS_MEMBER(buffers)
314 IPC_STRUCT_TRAITS_MEMBER(width)
315 IPC_STRUCT_TRAITS_MEMBER(height)
316 IPC_STRUCT_TRAITS_MEMBER(format)
317 IPC_STRUCT_TRAITS_END()
319 IPC_STRUCT_TRAITS_BEGIN(ppapi::ViewData)
320 IPC_STRUCT_TRAITS_MEMBER(rect)
321 IPC_STRUCT_TRAITS_MEMBER(is_fullscreen)
322 IPC_STRUCT_TRAITS_MEMBER(is_page_visible)
323 IPC_STRUCT_TRAITS_MEMBER(clip_rect)
324 IPC_STRUCT_TRAITS_MEMBER(device_scale)
325 IPC_STRUCT_TRAITS_MEMBER(css_scale)
326 IPC_STRUCT_TRAITS_MEMBER(scroll_offset)
327 IPC_STRUCT_TRAITS_END()
329 IPC_STRUCT_TRAITS_BEGIN(PP_TouchPoint)
330 IPC_STRUCT_TRAITS_MEMBER(id)
331 IPC_STRUCT_TRAITS_MEMBER(position)
332 IPC_STRUCT_TRAITS_MEMBER(radius)
333 IPC_STRUCT_TRAITS_MEMBER(rotation_angle)
334 IPC_STRUCT_TRAITS_MEMBER(pressure)
335 IPC_STRUCT_TRAITS_END()
337 IPC_STRUCT_TRAITS_BEGIN(ppapi::Preferences)
338 IPC_STRUCT_TRAITS_MEMBER(standard_font_family_map)
339 IPC_STRUCT_TRAITS_MEMBER(fixed_font_family_map)
340 IPC_STRUCT_TRAITS_MEMBER(serif_font_family_map)
341 IPC_STRUCT_TRAITS_MEMBER(sans_serif_font_family_map)
342 IPC_STRUCT_TRAITS_MEMBER(default_font_size)
343 IPC_STRUCT_TRAITS_MEMBER(default_fixed_font_size)
344 IPC_STRUCT_TRAITS_MEMBER(number_of_cpu_cores)
345 IPC_STRUCT_TRAITS_MEMBER(is_3d_supported)
346 IPC_STRUCT_TRAITS_MEMBER(is_stage3d_supported)
347 IPC_STRUCT_TRAITS_MEMBER(is_stage3d_baseline_supported)
348 IPC_STRUCT_TRAITS_MEMBER(is_accelerated_video_decode_enabled)
349 IPC_STRUCT_TRAITS_END()
351 IPC_STRUCT_TRAITS_BEGIN(ppapi::InputEventData)
352 IPC_STRUCT_TRAITS_MEMBER(is_filtered)
353 IPC_STRUCT_TRAITS_MEMBER(event_type)
354 IPC_STRUCT_TRAITS_MEMBER(event_time_stamp)
355 IPC_STRUCT_TRAITS_MEMBER(event_modifiers)
356 IPC_STRUCT_TRAITS_MEMBER(mouse_button)
357 IPC_STRUCT_TRAITS_MEMBER(mouse_position)
358 IPC_STRUCT_TRAITS_MEMBER(mouse_click_count)
359 IPC_STRUCT_TRAITS_MEMBER(mouse_movement)
360 IPC_STRUCT_TRAITS_MEMBER(wheel_delta)
361 IPC_STRUCT_TRAITS_MEMBER(wheel_ticks)
362 IPC_STRUCT_TRAITS_MEMBER(wheel_scroll_by_page)
363 IPC_STRUCT_TRAITS_MEMBER(key_code)
364 IPC_STRUCT_TRAITS_MEMBER(code)
365 IPC_STRUCT_TRAITS_MEMBER(character_text)
366 IPC_STRUCT_TRAITS_MEMBER(composition_segment_offsets)
367 IPC_STRUCT_TRAITS_MEMBER(composition_target_segment)
368 IPC_STRUCT_TRAITS_MEMBER(composition_selection_start)
369 IPC_STRUCT_TRAITS_MEMBER(composition_selection_end)
370 IPC_STRUCT_TRAITS_MEMBER(touches)
371 IPC_STRUCT_TRAITS_MEMBER(changed_touches)
372 IPC_STRUCT_TRAITS_MEMBER(target_touches)
373 IPC_STRUCT_TRAITS_MEMBER(latency_info)
374 IPC_STRUCT_TRAITS_END()
376 IPC_STRUCT_TRAITS_BEGIN(ppapi::HostPortPair)
377 IPC_STRUCT_TRAITS_MEMBER(host)
378 IPC_STRUCT_TRAITS_MEMBER(port)
379 IPC_STRUCT_TRAITS_END()
381 IPC_STRUCT_TRAITS_BEGIN(ppapi::URLRequestInfoData)
382 IPC_STRUCT_TRAITS_MEMBER(url)
383 IPC_STRUCT_TRAITS_MEMBER(method)
384 IPC_STRUCT_TRAITS_MEMBER(headers)
385 IPC_STRUCT_TRAITS_MEMBER(stream_to_file)
386 IPC_STRUCT_TRAITS_MEMBER(follow_redirects)
387 IPC_STRUCT_TRAITS_MEMBER(record_download_progress)
388 IPC_STRUCT_TRAITS_MEMBER(record_upload_progress)
389 IPC_STRUCT_TRAITS_MEMBER(has_custom_referrer_url)
390 IPC_STRUCT_TRAITS_MEMBER(custom_referrer_url)
391 IPC_STRUCT_TRAITS_MEMBER(allow_cross_origin_requests)
392 IPC_STRUCT_TRAITS_MEMBER(allow_credentials)
393 IPC_STRUCT_TRAITS_MEMBER(has_custom_content_transfer_encoding)
394 IPC_STRUCT_TRAITS_MEMBER(custom_content_transfer_encoding)
395 IPC_STRUCT_TRAITS_MEMBER(prefetch_buffer_upper_threshold)
396 IPC_STRUCT_TRAITS_MEMBER(prefetch_buffer_lower_threshold)
397 IPC_STRUCT_TRAITS_MEMBER(has_custom_user_agent)
398 IPC_STRUCT_TRAITS_MEMBER(custom_user_agent)
399 IPC_STRUCT_TRAITS_MEMBER(body)
400 IPC_STRUCT_TRAITS_END()
402 IPC_STRUCT_TRAITS_BEGIN(ppapi::URLRequestInfoData::BodyItem)
403 IPC_STRUCT_TRAITS_MEMBER(is_file)
404 IPC_STRUCT_TRAITS_MEMBER(data)
405 IPC_STRUCT_TRAITS_MEMBER(file_ref_pp_resource)
406 IPC_STRUCT_TRAITS_MEMBER(start_offset)
407 IPC_STRUCT_TRAITS_MEMBER(number_of_bytes)
408 IPC_STRUCT_TRAITS_MEMBER(expected_last_modified_time)
409 IPC_STRUCT_TRAITS_END()
411 IPC_STRUCT_TRAITS_BEGIN(ppapi::URLResponseInfoData)
412 IPC_STRUCT_TRAITS_MEMBER(url)
413 IPC_STRUCT_TRAITS_MEMBER(headers)
414 IPC_STRUCT_TRAITS_MEMBER(status_code)
415 IPC_STRUCT_TRAITS_MEMBER(status_text)
416 IPC_STRUCT_TRAITS_MEMBER(redirect_url)
417 IPC_STRUCT_TRAITS_MEMBER(body_as_file_ref)
418 IPC_STRUCT_TRAITS_END()
420 IPC_STRUCT_TRAITS_BEGIN(ppapi::proxy::SerializedNetworkInfo)
421 IPC_STRUCT_TRAITS_MEMBER(name)
422 IPC_STRUCT_TRAITS_MEMBER(type)
423 IPC_STRUCT_TRAITS_MEMBER(state)
424 IPC_STRUCT_TRAITS_MEMBER(addresses)
425 IPC_STRUCT_TRAITS_MEMBER(display_name)
426 IPC_STRUCT_TRAITS_MEMBER(mtu)
427 IPC_STRUCT_TRAITS_END()
429 // Only whitelisted switches passed through PpapiNaClPluginArgs.
430 // The list of switches can be found in:
431 // components/nacl/browser/nacl_process_host.cc
432 IPC_STRUCT_TRAITS_BEGIN(ppapi::PpapiNaClPluginArgs)
433 IPC_STRUCT_TRAITS_MEMBER(off_the_record)
434 IPC_STRUCT_TRAITS_MEMBER(permissions)
435 IPC_STRUCT_TRAITS_MEMBER(keepalive_throttle_interval_milliseconds)
436 IPC_STRUCT_TRAITS_MEMBER(switch_names)
437 IPC_STRUCT_TRAITS_MEMBER(switch_values)
438 IPC_STRUCT_TRAITS_END()
440 #if !defined(OS_NACL) && !defined(NACL_WIN64)
442 IPC_STRUCT_TRAITS_BEGIN(ppapi::proxy::PPPDecryptor_Buffer)
443 IPC_STRUCT_TRAITS_MEMBER(resource)
444 IPC_STRUCT_TRAITS_MEMBER(handle)
445 IPC_STRUCT_TRAITS_MEMBER(size)
446 IPC_STRUCT_TRAITS_END()
448 #endif // !defined(OS_NACL) && !defined(NACL_WIN64)
450 // These are from the browser to the plugin.
451 // Loads the given plugin.
452 IPC_MESSAGE_CONTROL2(PpapiMsg_LoadPlugin,
453 base::FilePath /* path */,
454 ppapi::PpapiPermissions /* permissions */)
456 // Creates a channel to talk to a renderer. The plugin will respond with
457 // PpapiHostMsg_ChannelCreated.
458 IPC_MESSAGE_CONTROL3(PpapiMsg_CreateChannel,
459 base::ProcessId /* renderer_pid */,
460 int /* renderer_child_id */,
461 bool /* incognito */)
463 // Initializes the IPC dispatchers in the NaCl plugin.
464 IPC_MESSAGE_CONTROL1(PpapiMsg_InitializeNaClDispatcher,
465 ppapi::PpapiNaClPluginArgs /* args */)
467 // Instructs the plugin process to crash.
468 IPC_MESSAGE_CONTROL0(PpapiMsg_Crash)
470 // Instructs the plugin process to hang.
471 IPC_MESSAGE_CONTROL0(PpapiMsg_Hang)
473 // Each plugin may be referenced by multiple renderers. We need the instance
474 // IDs to be unique within a plugin, despite coming from different renderers,
475 // and unique within a renderer, despite going to different plugins. This means
476 // that neither the renderer nor the plugin can generate instance IDs without
477 // consulting the other.
479 // We resolve this by having the renderer generate a unique instance ID inside
480 // its process. It then asks the plugin to reserve that ID by sending this sync
481 // message. If the plugin has not yet seen this ID, it will remember it as used
482 // (to prevent a race condition if another renderer tries to then use the same
483 // instance), and set usable as true.
485 // If the plugin has already seen the instance ID, it will set usable as false
486 // and the renderer must retry a new instance ID.
487 IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_ReserveInstanceId,
488 PP_Instance /* instance */,
489 bool /* usable */)
491 // Passes the WebKit preferences to the plugin.
492 IPC_MESSAGE_CONTROL1(PpapiMsg_SetPreferences,
493 ppapi::Preferences)
495 // Sent in both directions to see if the other side supports the given
496 // interface.
497 IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_SupportsInterface,
498 std::string /* interface_name */,
499 bool /* result */)
501 IPC_MESSAGE_CONTROL1(PpapiHostMsg_LogInterfaceUsage,
502 int /* interface_hash */)
504 #if !defined(OS_NACL) && !defined(NACL_WIN64)
505 // Network state notification from the browser for implementing
506 // PPP_NetworkState_Dev.
507 IPC_MESSAGE_CONTROL1(PpapiMsg_SetNetworkState,
508 bool /* online */)
510 // Requests a list of sites that have data stored from the plugin. The plugin
511 // process will respond with PpapiHostMsg_GetSitesWithDataResult. This is used
512 // for Flash.
513 IPC_MESSAGE_CONTROL2(PpapiMsg_GetSitesWithData,
514 uint32 /* request_id */,
515 base::FilePath /* plugin_data_path */)
516 IPC_MESSAGE_CONTROL2(PpapiHostMsg_GetSitesWithDataResult,
517 uint32 /* request_id */,
518 std::vector<std::string> /* sites */)
520 // Instructs the plugin to clear data for the given site & time. The plugin
521 // process will respond with PpapiHostMsg_ClearSiteDataResult. This is used
522 // for Flash.
523 IPC_MESSAGE_CONTROL5(PpapiMsg_ClearSiteData,
524 uint32 /* request_id */,
525 base::FilePath /* plugin_data_path */,
526 std::string /* site */,
527 uint64 /* flags */,
528 uint64 /* max_age */)
529 IPC_MESSAGE_CONTROL2(PpapiHostMsg_ClearSiteDataResult,
530 uint32 /* request_id */,
531 bool /* success */)
533 IPC_MESSAGE_CONTROL2(PpapiMsg_DeauthorizeContentLicenses,
534 uint32 /* request_id */,
535 base::FilePath /* plugin_data_path */)
536 IPC_MESSAGE_CONTROL2(PpapiHostMsg_DeauthorizeContentLicensesResult,
537 uint32 /* request_id */,
538 bool /* success */)
540 IPC_MESSAGE_CONTROL3(PpapiMsg_GetPermissionSettings,
541 uint32 /* request_id */,
542 base::FilePath /* plugin_data_path */,
543 PP_Flash_BrowserOperations_SettingType /* setting_type */)
544 IPC_MESSAGE_CONTROL4(
545 PpapiHostMsg_GetPermissionSettingsResult,
546 uint32 /* request_id */,
547 bool /* success */,
548 PP_Flash_BrowserOperations_Permission /* default_permission */,
549 ppapi::FlashSiteSettings /* sites */)
551 IPC_MESSAGE_CONTROL5(PpapiMsg_SetDefaultPermission,
552 uint32 /* request_id */,
553 base::FilePath /* plugin_data_path */,
554 PP_Flash_BrowserOperations_SettingType /* setting_type */,
555 PP_Flash_BrowserOperations_Permission /* permission */,
556 bool /* clear_site_specific */)
557 IPC_MESSAGE_CONTROL2(PpapiHostMsg_SetDefaultPermissionResult,
558 uint32 /* request_id */,
559 bool /* success */)
561 IPC_MESSAGE_CONTROL4(PpapiMsg_SetSitePermission,
562 uint32 /* request_id */,
563 base::FilePath /* plugin_data_path */,
564 PP_Flash_BrowserOperations_SettingType /* setting_type */,
565 ppapi::FlashSiteSettings /* sites */)
566 IPC_MESSAGE_CONTROL2(PpapiHostMsg_SetSitePermissionResult,
567 uint32 /* request_id */,
568 bool /* success */)
570 // Broker Process.
571 IPC_SYNC_MESSAGE_CONTROL2_1(PpapiMsg_ConnectToPlugin,
572 PP_Instance /* instance */,
573 IPC::PlatformFileForTransit /* handle */,
574 int32_t /* result */)
575 #endif // !defined(OS_NACL) && !defined(NACL_WIN64)
577 // PPB_Audio.
579 // Notifies the result of the audio stream create call. This is called in
580 // both error cases and in the normal success case. These cases are
581 // differentiated by the result code, which is one of the standard PPAPI
582 // result codes.
584 // The handler of this message should always close all of the handles passed
585 // in, since some could be valid even in the error case.
586 IPC_MESSAGE_ROUTED4(PpapiMsg_PPBAudio_NotifyAudioStreamCreated,
587 ppapi::HostResource /* audio_id */,
588 int32_t /* result_code (will be != PP_OK on failure) */,
589 ppapi::proxy::SerializedHandle /* socket_handle */,
590 ppapi::proxy::SerializedHandle /* handle */)
592 // PPB_Graphics3D.
593 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBGraphics3D_SwapBuffersACK,
594 ppapi::HostResource /* graphics_3d */,
595 int32_t /* pp_error */)
597 // PPB_ImageData.
598 IPC_MESSAGE_ROUTED1(PpapiMsg_PPBImageData_NotifyUnusedImageData,
599 ppapi::HostResource /* old_image_data */)
601 // PPB_Instance.
602 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBInstance_MouseLockComplete,
603 PP_Instance /* instance */,
604 int32_t /* result */)
606 // PPP_Class.
607 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_HasProperty,
608 int64 /* ppp_class */,
609 int64 /* object */,
610 ppapi::proxy::SerializedVar /* property */,
611 ppapi::proxy::SerializedVar /* out_exception */,
612 bool /* result */)
613 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_HasMethod,
614 int64 /* ppp_class */,
615 int64 /* object */,
616 ppapi::proxy::SerializedVar /* method */,
617 ppapi::proxy::SerializedVar /* out_exception */,
618 bool /* result */)
619 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_GetProperty,
620 int64 /* ppp_class */,
621 int64 /* object */,
622 ppapi::proxy::SerializedVar /* property */,
623 ppapi::proxy::SerializedVar /* out_exception */,
624 ppapi::proxy::SerializedVar /* result */)
625 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiMsg_PPPClass_EnumerateProperties,
626 int64 /* ppp_class */,
627 int64 /* object */,
628 std::vector<ppapi::proxy::SerializedVar> /* props */,
629 ppapi::proxy::SerializedVar /* out_exception */)
630 IPC_SYNC_MESSAGE_ROUTED4_1(PpapiMsg_PPPClass_SetProperty,
631 int64 /* ppp_class */,
632 int64 /* object */,
633 ppapi::proxy::SerializedVar /* name */,
634 ppapi::proxy::SerializedVar /* value */,
635 ppapi::proxy::SerializedVar /* out_exception */)
636 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPClass_RemoveProperty,
637 int64 /* ppp_class */,
638 int64 /* object */,
639 ppapi::proxy::SerializedVar /* property */,
640 ppapi::proxy::SerializedVar /* out_exception */)
641 IPC_SYNC_MESSAGE_ROUTED4_2(PpapiMsg_PPPClass_Call,
642 int64 /* ppp_class */,
643 int64 /* object */,
644 ppapi::proxy::SerializedVar /* method_name */,
645 std::vector<ppapi::proxy::SerializedVar> /* args */,
646 ppapi::proxy::SerializedVar /* out_exception */,
647 ppapi::proxy::SerializedVar /* result */)
648 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_Construct,
649 int64 /* ppp_class */,
650 int64 /* object */,
651 std::vector<ppapi::proxy::SerializedVar> /* args */,
652 ppapi::proxy::SerializedVar /* out_exception */,
653 ppapi::proxy::SerializedVar /* result */)
654 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPClass_Deallocate,
655 int64 /* ppp_class */,
656 int64 /* object */)
658 // PPP_Graphics3D_Dev.
659 IPC_MESSAGE_ROUTED1(PpapiMsg_PPPGraphics3D_ContextLost,
660 PP_Instance /* instance */)
662 // PPP_InputEvent.
663 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPInputEvent_HandleInputEvent,
664 PP_Instance /* instance */,
665 ppapi::InputEventData /* data */)
666 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPInputEvent_HandleFilteredInputEvent,
667 PP_Instance /* instance */,
668 ppapi::InputEventData /* data */,
669 PP_Bool /* result */)
671 // PPP_Instance.
672 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPInstance_DidCreate,
673 PP_Instance /* instance */,
674 std::vector<std::string> /* argn */,
675 std::vector<std::string> /* argv */,
676 PP_Bool /* result */)
677 IPC_SYNC_MESSAGE_ROUTED1_0(PpapiMsg_PPPInstance_DidDestroy,
678 PP_Instance /* instance */)
679 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_DidChangeView,
680 PP_Instance /* instance */,
681 ppapi::ViewData /* new_data */,
682 PP_Bool /* flash_fullscreen */)
683 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPInstance_DidChangeFocus,
684 PP_Instance /* instance */,
685 PP_Bool /* has_focus */)
686 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_HandleDocumentLoad,
687 PP_Instance /* instance */,
688 int /* pending_loader_host_id */,
689 ppapi::URLResponseInfoData /* response */)
691 // PPP_Messaging and PPP_MessageHandler.
692 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPMessaging_HandleMessage,
693 PP_Instance /* instance */,
694 ppapi::proxy::SerializedVar /* message */)
695 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiMsg_PPPMessageHandler_HandleBlockingMessage,
696 PP_Instance /* instance */,
697 ppapi::proxy::SerializedVar /* message */,
698 ppapi::proxy::SerializedVar /* result */,
699 bool /* was_handled */)
701 // PPP_MouseLock.
702 IPC_MESSAGE_ROUTED1(PpapiMsg_PPPMouseLock_MouseLockLost,
703 PP_Instance /* instance */)
705 // PPP_Pdf
706 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPPdf_Rotate,
707 PP_Instance /* instance */,
708 bool /* clockwise */)
709 IPC_SYNC_MESSAGE_ROUTED1_2(
710 PpapiMsg_PPPPdf_PrintPresetOptions,
711 PP_Instance /* instance */,
712 PP_PdfPrintPresetOptions_Dev /* print preset options */,
713 PP_Bool /* result */)
715 // Find
716 IPC_MESSAGE_ROUTED2(PpapiPluginMsg_PPPFind_StartFind,
717 PP_Instance /* instance */,
718 std::string /* text */)
719 IPC_MESSAGE_ROUTED2(PpapiPluginMsg_PPPFind_SelectFindResult,
720 PP_Instance /* instance */,
721 PP_Bool /* forward */)
722 IPC_MESSAGE_ROUTED1(PpapiPluginMsg_PPPFind_StopFind,
723 PP_Instance /* instance */)
725 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_SetPluginToHandleFindRequests,
726 PP_Instance /* instance */)
727 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_NumberOfFindResultsChanged,
728 PP_Instance /* instance */,
729 int32_t /* total */,
730 PP_Bool /* final_result */)
731 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SelectFindResultChanged,
732 PP_Instance /* instance */,
733 int32_t /* index */)
734 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SetTickmarks,
735 PP_Instance /* instance */,
736 std::vector<PP_Rect> /* tickmarks */)
738 // PPP_Printing
739 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_QuerySupportedFormats,
740 PP_Instance /* instance */,
741 uint32_t /* result */)
742 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_Begin,
743 PP_Instance /* instance */,
744 std::string /* settings_string */,
745 int32_t /* result */)
746 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_PrintPages,
747 PP_Instance /* instance */,
748 std::vector<PP_PrintPageNumberRange_Dev> /* pages */,
749 ppapi::HostResource /* result */)
750 IPC_MESSAGE_ROUTED1(PpapiMsg_PPPPrinting_End,
751 PP_Instance /* instance */)
752 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_IsScalingDisabled,
753 PP_Instance /* instance */,
754 bool /* result */)
756 // PPP_TextInput.
757 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPTextInput_RequestSurroundingText,
758 PP_Instance /* instance */,
759 uint32_t /* desired_number_of_characters */)
761 #if !defined(OS_NACL) && !defined(NACL_WIN64)
762 // PPB_Broker.
763 IPC_MESSAGE_ROUTED3(
764 PpapiMsg_PPBBroker_ConnectComplete,
765 ppapi::HostResource /* broker */,
766 IPC::PlatformFileForTransit /* handle */,
767 int32_t /* result */)
769 // PPP_ContentDecryptor_Dev
770 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPContentDecryptor_Initialize,
771 PP_Instance /* instance */,
772 ppapi::proxy::SerializedVar /* key_system, String */)
773 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_SetServerCertificate,
774 PP_Instance /* instance */,
775 uint32_t /* promise_id */,
776 std::vector<uint8_t> /* certificate */)
777 IPC_MESSAGE_ROUTED5(
778 PpapiMsg_PPPContentDecryptor_CreateSessionAndGenerateRequest,
779 PP_Instance /* instance */,
780 uint32_t /* promise_id */,
781 PP_SessionType /* session_type */,
782 ppapi::proxy::SerializedVar /* init_data_type, String */,
783 ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */)
784 IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_LoadSession,
785 PP_Instance /* instance */,
786 uint32_t /* promise_id */,
787 PP_SessionType /* session_type */,
788 ppapi::proxy::SerializedVar /* session_id, String */)
789 IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_UpdateSession,
790 PP_Instance /* instance */,
791 uint32_t /* promise_id */,
792 ppapi::proxy::SerializedVar /* session_id, String */,
793 ppapi::proxy::SerializedVar /* response, ArrayBuffer */)
794 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_CloseSession,
795 PP_Instance /* instance */,
796 uint32_t /* promise_id */,
797 std::string /* session_id */)
798 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_RemoveSession,
799 PP_Instance /* instance */,
800 uint32_t /* promise_id */,
801 std::string /* session_id */)
802 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_Decrypt,
803 PP_Instance /* instance */,
804 ppapi::proxy::PPPDecryptor_Buffer /* buffer */,
805 std::string /* serialized_block_info */)
806 IPC_MESSAGE_ROUTED3(
807 PpapiMsg_PPPContentDecryptor_InitializeAudioDecoder,
808 PP_Instance /* instance */,
809 std::string /* serialized_decoder_config */,
810 ppapi::proxy::PPPDecryptor_Buffer /* extra_data_buffer */)
811 IPC_MESSAGE_ROUTED3(
812 PpapiMsg_PPPContentDecryptor_InitializeVideoDecoder,
813 PP_Instance /* instance */,
814 std::string /* serialized_decoder_config */,
815 ppapi::proxy::PPPDecryptor_Buffer /* extra_data_buffer. */)
816 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_DeinitializeDecoder,
817 PP_Instance /* instance */,
818 PP_DecryptorStreamType /* decoder_type */,
819 uint32_t /* request_id */)
820 IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_ResetDecoder,
821 PP_Instance /* instance */,
822 PP_DecryptorStreamType /* decoder_type */,
823 uint32_t /* request_id */)
824 IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_DecryptAndDecode,
825 PP_Instance /* instance */,
826 PP_DecryptorStreamType /* decoder_type */,
827 ppapi::proxy::PPPDecryptor_Buffer /* buffer */,
828 std::string /* serialized_block_info */)
830 // PPP_Instance_Private.
831 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPInstancePrivate_GetInstanceObject,
832 PP_Instance /* instance */,
833 ppapi::proxy::SerializedVar /* result */)
835 #endif // !defined(OS_NACL) && !defined(NACL_WIN64)
837 // Reports to the browser that a plugin has been active.
838 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Keepalive)
840 // -----------------------------------------------------------------------------
841 // These are from the plugin to the renderer.
843 // Reply to PpapiMsg_CreateChannel. The handle will be NULL if the channel
844 // could not be established. This could be because the IPC could not be created
845 // for some weird reason, but more likely that the plugin failed to load or
846 // initialize properly.
847 IPC_MESSAGE_CONTROL1(PpapiHostMsg_ChannelCreated,
848 IPC::ChannelHandle /* handle */)
850 // Notify the renderer that the PPAPI channel gets ready in the plugin.
851 IPC_MESSAGE_CONTROL0(PpapiHostMsg_StartupInitializationComplete)
853 // Calls renderer to open a resource file for nacl_irt_open_resource().
854 IPC_SYNC_MESSAGE_CONTROL1_3(PpapiHostMsg_OpenResource,
855 std::string /* key */,
856 ppapi::proxy::SerializedHandle /* fd */,
857 uint64_t /* file_token_lo */,
858 uint64_t /* file_token_hi */)
860 // Logs the given message to the console of all instances.
861 IPC_MESSAGE_CONTROL4(PpapiHostMsg_LogWithSource,
862 PP_Instance /* instance */,
863 int /* log_level */,
864 std::string /* source */,
865 std::string /* value */)
867 // PPB_Audio.
868 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBAudio_Create,
869 PP_Instance /* instance_id */,
870 int32_t /* sample_rate */,
871 uint32_t /* sample_frame_count */,
872 ppapi::HostResource /* result */)
873 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBAudio_StartOrStop,
874 ppapi::HostResource /* audio_id */,
875 bool /* play */)
877 // PPB_Core.
878 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_AddRefResource,
879 ppapi::HostResource)
880 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_ReleaseResource,
881 ppapi::HostResource)
883 // PPB_Graphics3D.
884 IPC_SYNC_MESSAGE_ROUTED3_3(PpapiHostMsg_PPBGraphics3D_Create,
885 PP_Instance /* instance */,
886 ppapi::HostResource /* share_context */,
887 std::vector<int32_t> /* attrib_list */,
888 ppapi::HostResource /* result */,
889 gpu::Capabilities /* capabilities */,
890 ppapi::proxy::SerializedHandle /* shared_state */)
891 IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_SetGetBuffer,
892 ppapi::HostResource /* context */,
893 int32 /* transfer_buffer_id */)
894 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange,
895 ppapi::HostResource /* context */,
896 int32 /* start */,
897 int32 /* end */,
898 gpu::CommandBuffer::State /* state */,
899 bool /* success */)
900 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange,
901 ppapi::HostResource /* context */,
902 int32 /* start */,
903 int32 /* end */,
904 gpu::CommandBuffer::State /* state */,
905 bool /* success */)
906 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBGraphics3D_AsyncFlush,
907 ppapi::HostResource /* context */,
908 int32 /* put_offset */)
909 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
910 ppapi::HostResource /* context */,
911 uint32 /* size */,
912 int32 /* id */,
913 ppapi::proxy::SerializedHandle /* transfer_buffer */)
914 IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer,
915 ppapi::HostResource /* context */,
916 int32 /* id */)
917 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBGraphics3D_SwapBuffers,
918 ppapi::HostResource /* graphics_3d */)
919 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBGraphics3D_InsertSyncPoint,
920 ppapi::HostResource /* context */,
921 uint32 /* sync_point */)
922 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBGraphics3D_InsertFutureSyncPoint,
923 ppapi::HostResource /* context */,
924 uint32 /* sync_point */)
925 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBGraphics3D_RetireSyncPoint,
926 ppapi::HostResource /* context */,
927 uint32 /* sync_point */)
929 // PPB_ImageData.
930 IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreatePlatform,
931 PP_Instance /* instance */,
932 int32 /* format */,
933 PP_Size /* size */,
934 PP_Bool /* init_to_zero */,
935 ppapi::HostResource /* result_resource */,
936 PP_ImageDataDesc /* image_data_desc */,
937 ppapi::proxy::ImageHandle /* result */)
938 IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreateSimple,
939 PP_Instance /* instance */,
940 int32 /* format */,
941 PP_Size /* size */,
942 PP_Bool /* init_to_zero */,
943 ppapi::HostResource /* result_resource */,
944 PP_ImageDataDesc /* image_data_desc */,
945 ppapi::proxy::SerializedHandle /* result */)
947 // PPB_Instance.
948 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetWindowObject,
949 PP_Instance /* instance */,
950 ppapi::proxy::SerializedVar /* result */)
951 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetOwnerElementObject,
952 PP_Instance /* instance */,
953 ppapi::proxy::SerializedVar /* result */)
954 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_BindGraphics,
955 PP_Instance /* instance */,
956 PP_Resource /* device */)
957 IPC_SYNC_MESSAGE_ROUTED1_1(
958 PpapiHostMsg_PPBInstance_GetAudioHardwareOutputSampleRate,
959 PP_Instance /* instance */,
960 uint32_t /* result */)
961 IPC_SYNC_MESSAGE_ROUTED1_1(
962 PpapiHostMsg_PPBInstance_GetAudioHardwareOutputBufferSize,
963 PP_Instance /* instance */,
964 uint32_t /* result */)
965 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_IsFullFrame,
966 PP_Instance /* instance */,
967 PP_Bool /* result */)
968 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBInstance_ExecuteScript,
969 PP_Instance /* instance */,
970 ppapi::proxy::SerializedVar /* script */,
971 ppapi::proxy::SerializedVar /* out_exception */,
972 ppapi::proxy::SerializedVar /* result */)
973 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetDefaultCharSet,
974 PP_Instance /* instance */,
975 ppapi::proxy::SerializedVar /* result */)
976 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_SetFullscreen,
977 PP_Instance /* instance */,
978 PP_Bool /* fullscreen */,
979 PP_Bool /* result */)
980 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetScreenSize,
981 PP_Instance /* instance */,
982 PP_Bool /* result */,
983 PP_Size /* size */)
984 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_RequestInputEvents,
985 PP_Instance /* instance */,
986 bool /* is_filtering */,
987 uint32_t /* event_classes */)
988 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_ClearInputEvents,
989 PP_Instance /* instance */,
990 uint32_t /* event_classes */)
991 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_StartTrackingLatency,
992 PP_Instance /* instance */)
993 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PostMessage,
994 PP_Instance /* instance */,
995 ppapi::proxy::SerializedVar /* message */)
996 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_LockMouse,
997 PP_Instance /* instance */)
998 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_UnlockMouse,
999 PP_Instance /* instance */)
1000 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_ResolveRelativeToDocument,
1001 PP_Instance /* instance */,
1002 ppapi::proxy::SerializedVar /* relative */,
1003 ppapi::proxy::SerializedVar /* result */)
1004 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanRequest,
1005 PP_Instance /* instance */,
1006 ppapi::proxy::SerializedVar /* relative */,
1007 PP_Bool /* result */)
1008 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument,
1009 PP_Instance /* active */,
1010 PP_Instance /* target */,
1011 PP_Bool /* result */)
1012 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetDocumentURL,
1013 PP_Instance /* active */,
1014 PP_URLComponents_Dev /* components */,
1015 ppapi::proxy::SerializedVar /* result */)
1016 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetPluginInstanceURL,
1017 PP_Instance /* active */,
1018 ppapi::proxy::SerializedVar /* result */)
1019 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetPluginReferrerURL,
1020 PP_Instance /* instance */,
1021 ppapi::proxy::SerializedVar /* result */)
1022 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SetCursor,
1023 PP_Instance /* instance */,
1024 int32_t /* type */,
1025 ppapi::HostResource /* custom_image */,
1026 PP_Point /* hot_spot */)
1027 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SetTextInputType,
1028 PP_Instance /* instance */,
1029 PP_TextInput_Type /* type */)
1030 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_UpdateCaretPosition,
1031 PP_Instance /* instance */,
1032 PP_Rect /* caret */,
1033 PP_Rect /* bounding_box */)
1034 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_CancelCompositionText,
1035 PP_Instance /* instance */)
1036 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_UpdateSurroundingText,
1037 PP_Instance /* instance */,
1038 std::string /* text */,
1039 uint32_t /* caret */,
1040 uint32_t /* anchor */)
1042 // PPB_Var.
1043 IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVar_AddRefObject,
1044 int64 /* object_id */)
1045 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVar_ReleaseObject,
1046 int64 /* object_id */)
1047 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasProperty,
1048 ppapi::proxy::SerializedVar /* object */,
1049 ppapi::proxy::SerializedVar /* property */,
1050 ppapi::proxy::SerializedVar /* out_exception */,
1051 PP_Bool /* result */)
1052 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasMethodDeprecated,
1053 ppapi::proxy::SerializedVar /* object */,
1054 ppapi::proxy::SerializedVar /* method */,
1055 ppapi::proxy::SerializedVar /* out_exception */,
1056 PP_Bool /* result */)
1057 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_GetProperty,
1058 ppapi::proxy::SerializedVar /* object */,
1059 ppapi::proxy::SerializedVar /* property */,
1060 ppapi::proxy::SerializedVar /* out_exception */,
1061 ppapi::proxy::SerializedVar /* result */)
1062 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_DeleteProperty,
1063 ppapi::proxy::SerializedVar /* object */,
1064 ppapi::proxy::SerializedVar /* property */,
1065 ppapi::proxy::SerializedVar /* out_exception */,
1066 PP_Bool /* result */)
1067 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBVar_EnumerateProperties,
1068 ppapi::proxy::SerializedVar /* object */,
1069 std::vector<ppapi::proxy::SerializedVar> /* props */,
1070 ppapi::proxy::SerializedVar /* out_exception */)
1071 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_SetPropertyDeprecated,
1072 ppapi::proxy::SerializedVar /* object */,
1073 ppapi::proxy::SerializedVar /* name */,
1074 ppapi::proxy::SerializedVar /* value */,
1075 ppapi::proxy::SerializedVar /* out_exception */)
1076 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBVar_CallDeprecated,
1077 ppapi::proxy::SerializedVar /* object */,
1078 ppapi::proxy::SerializedVar /* method_name */,
1079 std::vector<ppapi::proxy::SerializedVar> /* args */,
1080 ppapi::proxy::SerializedVar /* out_exception */,
1081 ppapi::proxy::SerializedVar /* result */)
1082 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_Construct,
1083 ppapi::proxy::SerializedVar /* object */,
1084 std::vector<ppapi::proxy::SerializedVar> /* args */,
1085 ppapi::proxy::SerializedVar /* out_exception */,
1086 ppapi::proxy::SerializedVar /* result */)
1087 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_IsInstanceOfDeprecated,
1088 ppapi::proxy::SerializedVar /* var */,
1089 int64 /* object_class */,
1090 int64 /* object-data */,
1091 PP_Bool /* result */)
1092 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_CreateObjectDeprecated,
1093 PP_Instance /* instance */,
1094 int64 /* object_class */,
1095 int64 /* object_data */,
1096 ppapi::proxy::SerializedVar /* result */)
1098 #if !defined(OS_NACL) && !defined(NACL_WIN64)
1099 // PPB_Broker.
1100 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBBroker_Create,
1101 PP_Instance /* instance */,
1102 ppapi::HostResource /* result_resource */)
1103 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBBroker_Connect,
1104 ppapi::HostResource /* broker */)
1106 // PPB_Buffer.
1107 IPC_SYNC_MESSAGE_ROUTED2_2(
1108 PpapiHostMsg_PPBBuffer_Create,
1109 PP_Instance /* instance */,
1110 uint32_t /* size */,
1111 ppapi::HostResource /* result_resource */,
1112 ppapi::proxy::SerializedHandle /* result_shm_handle */)
1114 // PPB_ContentDecryptor_Dev messages handled in PPB_Instance_Proxy.
1115 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PromiseResolved,
1116 PP_Instance /* instance */,
1117 uint32_t /* promise_id */)
1118 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_PromiseResolvedWithSession,
1119 PP_Instance /* instance */,
1120 uint32_t /* promise_id */,
1121 ppapi::proxy::SerializedVar /* session_id, String */)
1122 IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_PromiseRejected,
1123 PP_Instance /* instance */,
1124 uint32_t /* promise_id */,
1125 PP_CdmExceptionCode /* exception_code */,
1126 int32_t /* system_code */,
1127 ppapi::proxy::SerializedVar /* error_description, String */)
1128 IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_SessionMessage,
1129 PP_Instance /* instance */,
1130 ppapi::proxy::SerializedVar /* session_id, String */,
1131 PP_CdmMessageType /* message_type */,
1132 ppapi::proxy::SerializedVar /* message, ArrayBuffer */,
1133 ppapi::proxy::SerializedVar /* destination_url, String */)
1134 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SessionKeysChange,
1135 PP_Instance /* instance */,
1136 std::string /* session_id */,
1137 PP_Bool /* has_additional_usable_key */,
1138 std::vector<PP_KeyInformation> /* key_information */)
1139 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_SessionExpirationChange,
1140 PP_Instance /* instance */,
1141 std::string /* session_id */,
1142 PP_Time /* new_expiry_time */)
1143 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SessionClosed,
1144 PP_Instance /* instance */,
1145 ppapi::proxy::SerializedVar /* session_id, String */)
1146 IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_SessionError,
1147 PP_Instance /* instance */,
1148 ppapi::proxy::SerializedVar /* session_id, String */,
1149 PP_CdmExceptionCode /* exception_code */,
1150 int32_t /* system_code */,
1151 ppapi::proxy::SerializedVar /* error_description, String */)
1152 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverBlock,
1153 PP_Instance /* instance */,
1154 PP_Resource /* decrypted_block, PPB_Buffer_Dev */,
1155 std::string /* serialized_block_info */)
1156 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_DecoderInitializeDone,
1157 PP_Instance /* instance */,
1158 PP_DecryptorStreamType /* decoder_type */,
1159 uint32_t /* request_id */,
1160 PP_Bool /* success */)
1161 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DecoderDeinitializeDone,
1162 PP_Instance /* instance */,
1163 PP_DecryptorStreamType /* decoder_type */,
1164 uint32_t /* request_id */)
1165 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DecoderResetDone,
1166 PP_Instance /* instance */,
1167 PP_DecryptorStreamType /* decoder_type */,
1168 uint32_t /* request_id */)
1169 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverFrame,
1170 PP_Instance /* instance */,
1171 PP_Resource /* decrypted_frame, PPB_Buffer_Dev */,
1172 std::string /* serialized_block_info */)
1173 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverSamples,
1174 PP_Instance /* instance */,
1175 PP_Resource /* audio_frames, PPB_Buffer_Dev */,
1176 std::string /* serialized_block_info */)
1177 #endif // !defined(OS_NACL) && !defined(NACL_WIN64)
1179 // PPB_Testing.
1180 IPC_SYNC_MESSAGE_ROUTED3_1(
1181 PpapiHostMsg_PPBTesting_ReadImageData,
1182 ppapi::HostResource /* device_context_2d */,
1183 ppapi::HostResource /* image */,
1184 PP_Point /* top_left */,
1185 PP_Bool /* result */)
1186 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBTesting_GetLiveObjectsForInstance,
1187 PP_Instance /* instance */,
1188 uint32 /* result */)
1189 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBTesting_SimulateInputEvent,
1190 PP_Instance /* instance */,
1191 ppapi::InputEventData /* input_event */)
1192 IPC_SYNC_MESSAGE_ROUTED1_0(
1193 PpapiHostMsg_PPBTesting_SetMinimumArrayBufferSizeForShmem,
1194 uint32_t /* threshold */)
1196 #if !defined(OS_NACL) && !defined(NACL_WIN64)
1198 // PPB_VideoDecoder_Dev.
1199 // (Messages from plugin to renderer.)
1200 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVideoDecoder_Create,
1201 PP_Instance /* instance */,
1202 ppapi::HostResource /* context */,
1203 PP_VideoDecoder_Profile /* profile */,
1204 ppapi::HostResource /* result */)
1205 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBVideoDecoder_Decode,
1206 ppapi::HostResource /* video_decoder */,
1207 ppapi::HostResource /* bitstream buffer */,
1208 int32 /* bitstream buffer id */,
1209 uint32 /* size of buffer */)
1210 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_AssignPictureBuffers,
1211 ppapi::HostResource /* video_decoder */,
1212 std::vector<PP_PictureBuffer_Dev> /* picture buffers */)
1213 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_ReusePictureBuffer,
1214 ppapi::HostResource /* video_decoder */,
1215 int32_t /* picture buffer id */)
1216 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Flush,
1217 ppapi::HostResource /* video_decoder */)
1218 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Reset,
1219 ppapi::HostResource /* video_decoder */)
1220 IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVideoDecoder_Destroy,
1221 ppapi::HostResource /* video_decoder */)
1223 // PPB_VideoDecoder_Dev.
1224 // (Messages from renderer to plugin to notify it to run callbacks.)
1225 IPC_MESSAGE_ROUTED3(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK,
1226 ppapi::HostResource /* video_decoder */,
1227 int32_t /* bitstream buffer id */,
1228 int32_t /* PP_CompletionCallback result */)
1229 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_FlushACK,
1230 ppapi::HostResource /* video_decoder */,
1231 int32_t /* PP_CompletionCallback result */)
1232 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_ResetACK,
1233 ppapi::HostResource /* video_decoder */,
1234 int32_t /* PP_CompletionCallback result */)
1236 // PPP_VideoDecoder_Dev.
1237 IPC_MESSAGE_ROUTED4(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers,
1238 ppapi::HostResource /* video_decoder */,
1239 uint32_t /* requested number of buffers */,
1240 PP_Size /* dimensions of buffers */,
1241 uint32_t /* texture_target */)
1242 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer,
1243 ppapi::HostResource /* video_decoder */,
1244 int32_t /* picture buffer id */)
1245 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady,
1246 ppapi::HostResource /* video_decoder */,
1247 PP_Picture_Dev /* output picture */)
1248 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
1249 ppapi::HostResource /* video_decoder */,
1250 PP_VideoDecodeError_Dev /* error */)
1251 #endif // !defined(OS_NACL) && !defined(NACL_WIN64)
1253 // PPB_X509Certificate_Private
1254 IPC_SYNC_MESSAGE_CONTROL1_2(PpapiHostMsg_PPBX509Certificate_ParseDER,
1255 std::vector<char> /* der */,
1256 bool /* succeeded */,
1257 ppapi::PPB_X509Certificate_Fields /* result */)
1259 //-----------------------------------------------------------------------------
1260 // Resource call/reply messages.
1262 // These are the new-style resource implementations where the resource is only
1263 // implemented in the proxy and "resource messages" are sent between this and a
1264 // host object. Resource messages are a wrapper around some general routing
1265 // information and a separate message of a type defined by the specific resource
1266 // sending/receiving it. The extra paremeters allow the nested message to be
1267 // routed automatically to the correct resource.
1269 // Notification that a resource has been created in the plugin. The nested
1270 // message will be resource-type-specific.
1271 IPC_MESSAGE_CONTROL3(PpapiHostMsg_ResourceCreated,
1272 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1273 PP_Instance /* instance */,
1274 IPC::Message /* nested_msg */)
1276 // Notification that a resource has been destroyed in the plugin.
1277 IPC_MESSAGE_CONTROL1(PpapiHostMsg_ResourceDestroyed,
1278 PP_Resource /* resource */)
1280 // Most resources are created by the plugin, which then sends a ResourceCreated
1281 // message to create a corresponding ResourceHost in the renderer or browser
1282 // host process. However, some resources are first created in the host and
1283 // "pushed" or returned to the plugin.
1285 // In this case, the host will create a "pending" ResourceHost object which
1286 // is identified by an ID. The ID is sent to the plugin process and the
1287 // PluginResource object is created. This message is sent from the plugin to
1288 // the host process to connect the PluginResource and the pending ResourceHost
1289 // (at which point, it's no longer pending).
1290 IPC_MESSAGE_CONTROL2(PpapiHostMsg_AttachToPendingHost,
1291 PP_Resource /* resource */,
1292 int /* pending_host_id */)
1294 // A resource call is a request from the plugin to the host. It may or may not
1295 // require a reply, depending on the params. The nested message will be
1296 // resource-type-specific.
1297 IPC_MESSAGE_CONTROL2(PpapiHostMsg_ResourceCall,
1298 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1299 IPC::Message /* nested_msg */)
1300 IPC_MESSAGE_CONTROL3(PpapiHostMsg_InProcessResourceCall,
1301 int /* routing_id */,
1302 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1303 IPC::Message /* nested_msg */)
1305 // A resource reply is a response to a ResourceCall from a host to the
1306 // plugin. The resource ID + sequence number in the params will correspond to
1307 // that of the previous ResourceCall.
1308 IPC_MESSAGE_CONTROL2(
1309 PpapiPluginMsg_ResourceReply,
1310 ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
1311 IPC::Message /* nested_msg */)
1312 IPC_MESSAGE_ROUTED2(
1313 PpapiHostMsg_InProcessResourceReply,
1314 ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
1315 IPC::Message /* nested_msg */)
1317 IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_ResourceSyncCall,
1318 ppapi::proxy::ResourceMessageCallParams /* call_params */,
1319 IPC::Message /* nested_msg */,
1320 ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
1321 IPC::Message /* reply_msg */)
1323 // This message is sent from the renderer to the browser when it wants to create
1324 // ResourceHosts in the browser. It contains the process ID of the plugin and
1325 // the instance of the plugin for which to create the resource for. params
1326 // contains the sequence number for the message to track the response.
1327 // The nested messages are ResourceHost creation messages.
1328 IPC_MESSAGE_CONTROL5(
1329 PpapiHostMsg_CreateResourceHostsFromHost,
1330 int /* routing_id */,
1331 int /* child_process_id */,
1332 ppapi::proxy::ResourceMessageCallParams /* params */,
1333 PP_Instance /* instance */,
1334 std::vector<IPC::Message> /* nested_msgs */)
1336 // This message is sent from the browser to the renderer when it has created
1337 // ResourceHosts for the renderer. It contains the sequence number that was sent
1338 // in the request and the IDs of the pending ResourceHosts which were created in
1339 // the browser. These IDs are only useful for the plugin which can attach to the
1340 // ResourceHosts in the browser.
1341 IPC_MESSAGE_ROUTED2(
1342 PpapiHostMsg_CreateResourceHostsFromHostReply,
1343 int32_t /* sequence */,
1344 std::vector<int> /* pending_host_ids */)
1346 //-----------------------------------------------------------------------------
1347 // Messages for resources using call/reply above.
1349 // Broker ----------------------------------------------------------------------
1350 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_Create)
1352 // Queries whether the plugin has permission to connect to the Pepper broker.
1353 // The response is contained in the error value of the
1354 // ResourceMessageReplyParams in the reply message.
1355 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_IsAllowed)
1357 // UMA
1358 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UMA_Create)
1359 IPC_MESSAGE_CONTROL5(PpapiHostMsg_UMA_HistogramCustomTimes,
1360 std::string /* name */,
1361 int64_t /* sample */,
1362 int64_t /* min */,
1363 int64_t /* max */,
1364 uint32_t /* bucket_count */)
1365 IPC_MESSAGE_CONTROL5(PpapiHostMsg_UMA_HistogramCustomCounts,
1366 std::string /* name */,
1367 int32_t /* sample */,
1368 int32_t /* min */,
1369 int32_t /* max */,
1370 uint32_t /* bucket_count */)
1371 IPC_MESSAGE_CONTROL3(PpapiHostMsg_UMA_HistogramEnumeration,
1372 std::string /* name */,
1373 int32_t /* sample */,
1374 int32_t /* boundary_value */)
1375 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UMA_IsCrashReportingEnabled)
1376 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UMA_IsCrashReportingEnabledReply)
1378 // Compositor
1379 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Compositor_Create)
1380 IPC_MESSAGE_CONTROL2(PpapiHostMsg_Compositor_CommitLayers,
1381 std::vector<ppapi::CompositorLayerData> /* layers */,
1382 bool /* reset */)
1383 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Compositor_CommitLayersReply)
1384 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_Compositor_ReleaseResource,
1385 int32_t /* id */,
1386 uint32_t /* sync_point */,
1387 bool /* is_lost */)
1389 // File chooser.
1390 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileChooser_Create)
1391 IPC_MESSAGE_CONTROL4(PpapiHostMsg_FileChooser_Show,
1392 bool /* save_as */,
1393 bool /* open_multiple */,
1394 std::string /* suggested_file_name */,
1395 std::vector<std::string> /* accept_mime_types */)
1396 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileChooser_ShowReply,
1397 std::vector<ppapi::FileRefCreateInfo> /* files */)
1399 // FileIO
1400 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Create)
1401 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Open,
1402 PP_Resource /* file_ref_resource */,
1403 int32_t /* open_flags */)
1404 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileIO_OpenReply,
1405 PP_Resource /* quota_file_system */,
1406 int64_t /* file_size */)
1407 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_Close,
1408 ppapi::FileGrowth /* file_growth */)
1409 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Touch,
1410 PP_Time /* last_access_time */,
1411 PP_Time /* last_modified_time */)
1412 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_SetLength,
1413 int64_t /* length */)
1414 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Flush)
1415 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_RequestOSFileHandle)
1416 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_RequestOSFileHandleReply)
1417 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_GeneralReply)
1419 // FileRef
1420 // Creates a FileRef to a path on an external file system. This message may
1421 // only be sent from the renderer.
1422 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_CreateForRawFS,
1423 base::FilePath /* external_path */)
1425 // Creates a FileRef to a path on a file system that uses fileapi.
1426 // This message may be sent from the renderer or the plugin.
1427 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_CreateForFileAPI,
1428 PP_Resource /* file_system */,
1429 std::string /* internal_path */)
1431 // Requests that the browser create a directory at the location indicated by
1432 // the FileRef.
1433 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_MakeDirectory,
1434 int32_t /* make_directory_flags */)
1435 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_MakeDirectoryReply)
1437 // Requests that the browser update the last accessed and last modified times
1438 // at the location indicated by the FileRef.
1439 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_Touch,
1440 PP_Time /* last_accessed */,
1441 PP_Time /* last_modified */)
1442 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_TouchReply)
1444 // Requests that the browser delete a file or directory at the location
1445 // indicated by the FileRef.
1446 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Delete)
1447 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_DeleteReply)
1449 // Requests that the browser rename a file or directory at the location
1450 // indicated by the FileRef.
1451 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_Rename,
1452 PP_Resource /* new_file_ref */)
1453 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_RenameReply)
1455 // Requests that the browser retrieve metadata information for a file or
1456 // directory at the location indicated by the FileRef.
1457 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Query)
1458 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_QueryReply,
1459 PP_FileInfo /* file_info */)
1461 // Requests that the browser retrieve then entries in a directory at the
1462 // location indicated by the FileRef.
1463 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_ReadDirectoryEntries)
1465 // FileRefCreateInfo does not provide file type information, so two
1466 // corresponding vectors are returned.
1467 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileRef_ReadDirectoryEntriesReply,
1468 std::vector<ppapi::FileRefCreateInfo> /* files */,
1469 std::vector<PP_FileType> /* file_types */)
1471 // Requests that the browser reply with the absolute path to the indicated
1472 // file.
1473 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_GetAbsolutePath)
1474 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_GetAbsolutePathReply,
1475 std::string /* absolute_path */)
1477 // FileSystem
1478 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Create,
1479 PP_FileSystemType /* type */)
1480 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Open,
1481 int64_t /* expected_size */)
1482 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileSystem_OpenReply)
1483 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_InitIsolatedFileSystem,
1484 std::string /* fsid */,
1485 PP_IsolatedFileSystemType_Private /* type */)
1486 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileSystem_InitIsolatedFileSystemReply)
1487 // Passed from renderer to browser. Creates an already-open file system with a
1488 // given |root_url| and |file_system_type|.
1489 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_CreateFromRenderer,
1490 std::string /* root_url */,
1491 PP_FileSystemType /* file_system_type */)
1492 // Nested within a ResourceVar for file systems being passed from the renderer
1493 // to the plugin. Creates an already-open file system resource on the plugin,
1494 // linked to the existing resource host given in the ResourceVar.
1495 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileSystem_CreateFromPendingHost,
1496 PP_FileSystemType /* file_system_type */)
1497 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_ReserveQuota,
1498 int64_t /* amount */,
1499 ppapi::FileGrowthMap /* file_growths */)
1500 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileSystem_ReserveQuotaReply,
1501 int64_t /* amount */,
1502 ppapi::FileSizeMap /* file_sizes */)
1504 // Gamepad.
1505 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_Create)
1507 // Requests that the gamepad host send the shared memory handle to the plugin
1508 // process.
1509 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_RequestMemory)
1511 // Reply to a RequestMemory call. This supplies the shared memory handle. The
1512 // actual handle is passed in the ReplyParams struct.
1513 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Gamepad_SendMemory)
1516 // Graphics2D, plugin -> host
1517 IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_Create,
1518 PP_Size /* size */,
1519 PP_Bool /* is_always_opaque */)
1520 IPC_MESSAGE_CONTROL4(PpapiHostMsg_Graphics2D_PaintImageData,
1521 ppapi::HostResource /* image_data */,
1522 PP_Point /* top_left */,
1523 bool /* src_rect_specified */,
1524 PP_Rect /* src_rect */)
1525 IPC_MESSAGE_CONTROL3(PpapiHostMsg_Graphics2D_Scroll,
1526 bool /* clip_specified */,
1527 PP_Rect /* clip */,
1528 PP_Point /* amount */)
1529 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_ReplaceContents,
1530 ppapi::HostResource /* image_data */)
1531 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_SetScale,
1532 float /* scale */)
1534 // Graphics2D, plugin -> host -> plugin
1535 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_Flush,
1536 std::vector<ui::LatencyInfo> /* latency_info */)
1537 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_FlushAck)
1539 IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_ReadImageData,
1540 PP_Resource /* image */,
1541 PP_Point /* top_left */)
1542 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_ReadImageDataAck)
1544 // IsolatedFileSystem
1545 IPC_MESSAGE_CONTROL0(PpapiHostMsg_IsolatedFileSystem_Create)
1546 IPC_MESSAGE_CONTROL1(PpapiHostMsg_IsolatedFileSystem_BrowserOpen,
1547 PP_IsolatedFileSystemType_Private /* type */)
1548 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_IsolatedFileSystem_BrowserOpenReply,
1549 std::string /* fsid */)
1551 // MediaStream -----------------------------------------------------------------
1552 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost,
1553 std::string /* track_id */)
1554 IPC_MESSAGE_CONTROL1(
1555 PpapiHostMsg_MediaStreamAudioTrack_Configure,
1556 ppapi::MediaStreamAudioTrackShared::Attributes /* attributes */)
1557 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaStreamAudioTrack_ConfigureReply)
1558 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost,
1559 std::string /* track_id */)
1560 IPC_MESSAGE_CONTROL0(PpapiHostMsg_MediaStreamVideoTrack_Create)
1561 IPC_MESSAGE_CONTROL1(
1562 PpapiHostMsg_MediaStreamVideoTrack_Configure,
1563 ppapi::MediaStreamVideoTrackShared::Attributes /* attributes */)
1564 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamVideoTrack_ConfigureReply,
1565 std::string /* track_id */)
1567 // Message for init buffers. It also takes a shared memory handle which is put
1568 // in the outer ResourceReplyMessage.
1569 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_MediaStreamTrack_InitBuffers,
1570 int32_t /* number_of_buffers */,
1571 int32_t /* buffer_size */,
1572 bool /* readonly */)
1573 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamTrack_EnqueueBuffer,
1574 int32_t /* index */)
1575 IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaStreamTrack_EnqueueBuffer,
1576 int32_t /* index */)
1577 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamTrack_EnqueueBuffers,
1578 std::vector<int32_t> /* indices */)
1579 IPC_MESSAGE_CONTROL0(PpapiHostMsg_MediaStreamTrack_Close)
1581 // NetworkMonitor.
1582 IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkMonitor_Create)
1583 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkMonitor_NetworkList,
1584 ppapi::proxy::SerializedNetworkList /* network_list */)
1585 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_NetworkMonitor_Forbidden)
1587 // NetworkProxy ----------------------------------------------------------------
1588 IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkProxy_Create)
1590 // Query the browser for the proxy server to use for the given URL.
1591 IPC_MESSAGE_CONTROL1(PpapiHostMsg_NetworkProxy_GetProxyForURL,
1592 std::string /* url */)
1594 // Reply message for GetProxyForURL containing the proxy server.
1595 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkProxy_GetProxyForURLReply,
1596 std::string /* proxy */)
1598 // TrueTypeFont.
1599 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFontSingleton_Create)
1600 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFontSingleton_GetFontFamilies)
1601 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFontSingleton_GetFontFamiliesReply,
1602 std::vector<std::string> /* font_families */)
1603 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TrueTypeFontSingleton_GetFontsInFamily,
1604 std::string /* family */)
1605 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFontSingleton_GetFontsInFamilyReply,
1606 std::vector<ppapi::proxy::SerializedTrueTypeFontDesc>
1607 /* fonts */)
1608 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TrueTypeFont_Create,
1609 ppapi::proxy::SerializedTrueTypeFontDesc /* desc */)
1610 // Unsolicited reply to return the actual font's desc to the plugin.
1611 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_TrueTypeFont_CreateReply,
1612 ppapi::proxy::SerializedTrueTypeFontDesc /* desc */,
1613 int32_t /* result */)
1614 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFont_GetTableTags)
1615 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_GetTableTagsReply,
1616 std::vector<uint32_t> /* tags */)
1617 IPC_MESSAGE_CONTROL3(PpapiHostMsg_TrueTypeFont_GetTable,
1618 uint32_t /* table */,
1619 int32_t /* offset */,
1620 int32_t /* max_data_length */)
1621 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_GetTableReply,
1622 std::string /* data */)
1624 // Host Resolver ---------------------------------------------------------------
1625 // Creates a PPB_HostResolver resource.
1626 IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_Create)
1628 // Creates a PPB_HostResolver_Private resource.
1629 IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_CreatePrivate)
1631 // Resolves the given hostname.
1632 IPC_MESSAGE_CONTROL2(PpapiHostMsg_HostResolver_Resolve,
1633 ppapi::HostPortPair /* host_port */,
1634 PP_HostResolver_Private_Hint /* hint */)
1636 // This message is a reply to HostResolver_Resolve. On success,
1637 // |canonical_name| contains the canonical name of the host; |net_address_list|
1638 // is a list of network addresses. On failure, both fields are set to empty.
1639 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_HostResolver_ResolveReply,
1640 std::string /* canonical_name */,
1641 std::vector<PP_NetAddress_Private> /* net_address_list */)
1643 // Platform Verification -------------------------------------------------------
1644 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PlatformVerification_Create)
1645 IPC_MESSAGE_CONTROL2(PpapiHostMsg_PlatformVerification_ChallengePlatform,
1646 std::string /* service_id */,
1647 std::vector<uint8_t> /* challenge */)
1648 IPC_MESSAGE_CONTROL3(PpapiHostMsg_PlatformVerification_ChallengePlatformReply,
1649 std::vector<uint8_t> /* signed_data */,
1650 std::vector<uint8_t> /* signed_data_signature */,
1651 std::string /* platform_key_certificate */)
1653 // Printing.
1654 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_Create)
1655 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_GetDefaultPrintSettings)
1656 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply,
1657 PP_PrintSettings_Dev /* print_settings */)
1659 // TCP Socket ------------------------------------------------------------------
1660 // Creates a PPB_TCPSocket resource.
1661 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Create,
1662 ppapi::TCPSocketVersion /* version */)
1664 // Creates a PPB_TCPSocket_Private resource.
1665 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPSocket_CreatePrivate)
1667 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Bind,
1668 PP_NetAddress_Private /* net_addr */)
1669 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_BindReply,
1670 PP_NetAddress_Private /* local_addr */)
1671 IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPSocket_Connect,
1672 std::string /* host */,
1673 uint16_t /* port */)
1674 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_ConnectWithNetAddress,
1675 PP_NetAddress_Private /* net_addr */)
1676 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_TCPSocket_ConnectReply,
1677 PP_NetAddress_Private /* local_addr */,
1678 PP_NetAddress_Private /* remote_addr */)
1679 IPC_MESSAGE_CONTROL4(PpapiHostMsg_TCPSocket_SSLHandshake,
1680 std::string /* server_name */,
1681 uint16_t /* server_port */,
1682 std::vector<std::vector<char> > /* trusted_certs */,
1683 std::vector<std::vector<char> > /* untrusted_certs */)
1684 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_SSLHandshakeReply,
1685 ppapi::PPB_X509Certificate_Fields /* certificate_fields */)
1686 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Read,
1687 int32_t /* bytes_to_read */)
1688 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_ReadReply,
1689 std::string /* data */)
1690 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Write,
1691 std::string /* data */)
1692 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_WriteReply)
1693 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Listen,
1694 int32_t /* backlog */)
1695 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_ListenReply)
1696 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPSocket_Accept)
1697 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_TCPSocket_AcceptReply,
1698 int /* pending_host_id*/,
1699 PP_NetAddress_Private /* local_addr */,
1700 PP_NetAddress_Private /* remote_addr */)
1701 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPSocket_Close)
1702 IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPSocket_SetOption,
1703 PP_TCPSocket_Option /* name */,
1704 ppapi::SocketOptionData /* value */)
1705 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_SetOptionReply)
1707 // TCP Server Socket -----------------------------------------------------------
1708 // Creates a PPB_TCPServerSocket_Private resource.
1709 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_CreatePrivate)
1711 IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPServerSocket_Listen,
1712 PP_NetAddress_Private /* addr */,
1713 int32_t /* backlog */)
1714 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPServerSocket_ListenReply,
1715 PP_NetAddress_Private /* local_addr */)
1716 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_Accept)
1717 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_TCPServerSocket_AcceptReply,
1718 int /* pending_resource_id */,
1719 PP_NetAddress_Private /* local_addr */,
1720 PP_NetAddress_Private /* remote_addr */)
1721 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_StopListening)
1723 // UDP Socket ------------------------------------------------------------------
1724 // Creates a PPB_UDPSocket resource.
1725 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Create)
1727 // Creates a PPB_UDPSocket_Private resource.
1728 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_CreatePrivate)
1730 IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SetOption,
1731 PP_UDPSocket_Option /* name */,
1732 ppapi::SocketOptionData /* value */)
1733 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_SetOptionReply)
1734 IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_Bind,
1735 PP_NetAddress_Private /* net_addr */)
1736 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_BindReply,
1737 PP_NetAddress_Private /* bound_addr */)
1738 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_UDPSocket_PushRecvResult,
1739 int32_t /* result */,
1740 std::string /* data */,
1741 PP_NetAddress_Private /* remote_addr */)
1742 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_RecvSlotAvailable)
1743 IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SendTo,
1744 std::string /* data */,
1745 PP_NetAddress_Private /* net_addr */)
1746 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_SendToReply,
1747 int32_t /* bytes_written */)
1748 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Close)
1750 // URLLoader ------------------------------------------------------------------
1752 IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Create)
1754 // These messages correspond to PPAPI calls and all should get a
1755 // CallbackComplete message.
1756 IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_Open,
1757 ppapi::URLRequestInfoData /* request_data */)
1759 // The plugin can tell the host to defer a load to hold off on sending more
1760 // data because the buffer in the plugin is full. When defers_loading is set to
1761 // false, data streaming will resume.
1763 // When auditing redirects (no auto follow) the load will be automatically
1764 // deferred each time we get a redirect. The plugin will reset this to false
1765 // by sending this message when it wants to continue following the redirect.
1767 // When streaming data, the host may still send more data after this call (for
1768 // example, it could already be in-flight at the time of this request).
1769 IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_SetDeferLoading,
1770 bool /* defers_loading */)
1772 // Closes the URLLoader. There is no reply.
1773 IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Close)
1775 // Requests that cross-site restrictions be ignored. The plugin must have
1776 // the private permission set. Otherwise this message will be ignored by the
1777 // renderer. There is no reply.
1778 IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_GrantUniversalAccess)
1780 // Push notification that a response is available.
1781 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_ReceivedResponse,
1782 ppapi::URLResponseInfoData /* response */)
1784 // Push notification with load data from the renderer. It is a custom generated
1785 // message with the response data (array of bytes stored via WriteData)
1786 // appended.
1787 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_URLLoader_SendData)
1789 // Push notification indicating that all data has been sent, either via
1790 // SendData or by streaming it to a file. Note that since this is a push
1791 // notification, we don't use the result field of the ResourceMessageReply.
1792 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_FinishedLoading,
1793 int32_t /* result */)
1795 // Push notification from the renderer to the plugin to tell it about download
1796 // and upload progress. This will only be sent if the plugin has requested
1797 // progress updates, and only the fields requested by the plugin will be
1798 // valid.
1799 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_URLLoader_UpdateProgress,
1800 int64_t /* bytes_sent */,
1801 int64_t /* total_bytes_to_be_sent */,
1802 int64_t /* bytes_received */,
1803 int64_t /* total_bytes_to_be_received */)
1805 // Shared memory ---------------------------------------------------------------
1807 // Creates shared memory on the host side, returning a handle to the shared
1808 // memory on the plugin and keeping the memory mapped in on the host.
1809 // We return a "host handle_id" that can be mapped back to the
1810 // handle on the host side by PpapiGlobals::UntrackSharedMemoryHandle().
1811 IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_SharedMemory_CreateSharedMemory,
1812 PP_Instance /* instance */,
1813 uint32_t /* size */,
1814 int /* host_handle_id */,
1815 ppapi::proxy::SerializedHandle /* plugin_handle */)
1817 // MediaStream -----------------------------------------------------------------
1819 // VideoDestination Private.
1820 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDestination_Create)
1821 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoDestination_Open,
1822 std::string /* stream_url */)
1823 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDestination_OpenReply)
1824 IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDestination_PutFrame,
1825 ppapi::HostResource /* image_data */,
1826 PP_TimeTicks /* timestamp */)
1827 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDestination_Close)
1829 // VideoSource Private.
1830 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_Create)
1831 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoSource_Open,
1832 std::string /* stream_url */)
1833 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoSource_OpenReply)
1834 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_GetFrame)
1835 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoSource_GetFrameReply,
1836 ppapi::HostResource /* resource_id */,
1837 PP_ImageDataDesc /* image_data_desc */,
1838 PP_TimeTicks /* timestamp */)
1839 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_Close)
1841 // WebSocket -------------------------------------------------------------------
1843 IPC_MESSAGE_CONTROL0(PpapiHostMsg_WebSocket_Create)
1845 // Establishes the connection to a server. This message requires
1846 // WebSocket_ConnectReply as a reply message.
1847 IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Connect,
1848 std::string /* url */,
1849 std::vector<std::string> /* protocols */)
1851 // Closes established connection with graceful closing handshake. This message
1852 // requires WebSocket_CloseReply as a reply message.
1853 IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Close,
1854 int32_t /* code */,
1855 std::string /* reason */)
1857 // Sends a text frame to the server. No reply is defined.
1858 IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendText,
1859 std::string /* message */)
1861 // Sends a binary frame to the server. No reply is defined.
1862 IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendBinary,
1863 std::vector<uint8_t> /* message */)
1865 // Fails the connection. This message invokes RFC6455 defined
1866 // _Fail the WebSocket Connection_ operation. No reply is defined.
1867 IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_Fail,
1868 std::string /* message */)
1870 // This message is a reply to WebSocket_Connect. If the |url| and |protocols|
1871 // are invalid, WebSocket_ConnectReply is issued immediately and it contains
1872 // proper error code in its result. Otherwise, WebSocket_ConnectReply is sent
1873 // with valid |url|, |protocol|, and result PP_OK. |protocol| is not a passed
1874 // |protocols|, but a result of opening handshake negotiation. If the
1875 // connection can not be established successfully, WebSocket_ConnectReply is
1876 // not issued, but WebSocket_ClosedReply is sent instead.
1877 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_WebSocket_ConnectReply,
1878 std::string /* url */,
1879 std::string /* protocol */)
1881 // This message is a reply to WebSocket_Close. If the operation fails,
1882 // WebSocket_CloseReply is issued immediately and it contains PP_ERROR_FAILED.
1883 // Otherwise, CloseReply will be issued after the closing handshake is
1884 // finished. All arguments will be valid iff the result is PP_OK and it means
1885 // that the client initiated closing handshake is finished gracefully.
1886 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_CloseReply,
1887 uint64_t /* buffered_amount */,
1888 bool /* was_clean */,
1889 uint16_t /* code */,
1890 std::string /* reason */)
1892 // Unsolicited reply message to transmit a receiving text frame.
1893 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveTextReply,
1894 std::string /* message */)
1896 // Unsolicited reply message to transmit a receiving binary frame.
1897 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveBinaryReply,
1898 std::vector<uint8_t> /* message */)
1900 // Unsolicited reply message to notify a error on underlying network connetion.
1901 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_WebSocket_ErrorReply)
1903 // Unsolicited reply message to update the buffered amount value.
1904 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_BufferedAmountReply,
1905 uint64_t /* buffered_amount */)
1907 // Unsolicited reply message to update |state| because of incoming external
1908 // events, e.g., protocol error, or unexpected network closure.
1909 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_StateReply,
1910 int32_t /* state */)
1912 // Unsolicited reply message to notify that the connection is closed without
1913 // any WebSocket_Close request. Server initiated closing handshake or
1914 // unexpected network errors will invoke this message.
1915 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_ClosedReply,
1916 uint64_t /* buffered_amount */,
1917 bool /* was_clean */,
1918 uint16_t /* code */,
1919 std::string /* reason */)
1921 // OutputProtection -----------------------------------------------------------
1923 IPC_MESSAGE_CONTROL0(PpapiHostMsg_OutputProtection_Create)
1924 IPC_MESSAGE_CONTROL1(PpapiHostMsg_OutputProtection_EnableProtection,
1925 uint32_t /* desired_method_mask */)
1926 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_OutputProtection_EnableProtectionReply)
1927 IPC_MESSAGE_CONTROL0(PpapiHostMsg_OutputProtection_QueryStatus)
1928 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_OutputProtection_QueryStatusReply,
1929 uint32_t /* link_mask */,
1930 uint32_t /* protection_mask */)
1932 // VideoDecoder ------------------------------------------------------
1934 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Create)
1935 IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoDecoder_Initialize,
1936 ppapi::HostResource /* graphics_context */,
1937 PP_VideoProfile /* profile */,
1938 PP_HardwareAcceleration /* acceleration */)
1939 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_InitializeReply)
1940 IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDecoder_GetShm,
1941 uint32_t /* shm_id */,
1942 uint32_t /* shm_size */)
1943 // On success, a shm handle is passed in the ReplyParams struct.
1944 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_GetShmReply,
1945 uint32_t /* shm_size */)
1946 IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoDecoder_Decode,
1947 uint32_t /* shm_id */,
1948 uint32_t /* size */,
1949 int32_t /* decode_id */)
1950 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_DecodeReply,
1951 uint32_t /* shm_id */)
1952 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_VideoDecoder_RequestTextures,
1953 uint32_t /* num_textures */,
1954 PP_Size /* size */,
1955 uint32_t /* texture_target */,
1956 std::vector<gpu::Mailbox> /* mailboxes*/)
1957 IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDecoder_AssignTextures,
1958 PP_Size /* size */,
1959 std::vector<uint32_t> /* texture_ids */)
1960 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoDecoder_PictureReady,
1961 int32_t /* decode_id */,
1962 uint32_t /* texture_id */,
1963 PP_Rect /* visible_rect */)
1964 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoDecoder_RecyclePicture,
1965 uint32_t /* texture_id */)
1966 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_DismissPicture,
1967 uint32_t /* texture_id */)
1968 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Flush)
1969 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_FlushReply)
1970 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Reset)
1971 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_ResetReply)
1972 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_NotifyError,
1973 int32_t /* error */)
1975 #if !defined(OS_NACL) && !defined(NACL_WIN64)
1977 // Audio input.
1978 IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Create)
1979 IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open,
1980 std::string /* device_id */,
1981 PP_AudioSampleRate /* sample_rate */,
1982 uint32_t /* sample_frame_count */)
1983 // Reply to an Open call. This supplies a socket handle and a shared memory
1984 // handle. Both handles are passed in the ReplyParams struct.
1985 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioInput_OpenReply)
1986 IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioInput_StartOrStop, bool /* capture */)
1987 IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Close)
1989 // BrowserFont -----------------------------------------------------------------
1991 IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_Create)
1993 // Requests that the browser reply with the list of font families via
1994 // PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply.
1995 IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_GetFontFamilies)
1997 // Reply to PpapiHostMsg_BrowserFontSingleton_GetFontFamilies with the font
1998 // family list. The |families| result is encoded by separating each family name
1999 // by a null character.
2000 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply,
2001 std::string /* families */)
2003 // Flash -----------------------------------------------------------------------
2005 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_Create)
2007 // Message to notify the browser to register an update in system activity.
2008 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_UpdateActivity)
2010 // Query the browser for the proxy server to use for the given URL.
2011 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_GetProxyForURL, std::string /* url */)
2012 // Reply message for GetProxyForURL containing the proxy server.
2013 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetProxyForURLReply,
2014 std::string /* proxy */)
2016 // Queries the browser for the local time zone offset for a given time.
2017 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_GetLocalTimeZoneOffset,
2018 base::Time /* time */)
2019 // Reply to GetLocalTimeZoneOffset containing the time zone offset as a double.
2020 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetLocalTimeZoneOffsetReply,
2021 double /* offset */)
2023 // Query the browser for the restrictions on storing Flash LSOs.
2024 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_GetLocalDataRestrictions)
2025 // Reply message for GetLocalDataRestrictions containing the restrictions to
2026 // use. These are PP_FlashLSORestrictions cast to an int32_t.
2027 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetLocalDataRestrictionsReply,
2028 int32_t /* restrictions */)
2030 // Notifies the renderer whether the Flash instance is in windowed mode. No
2031 // reply is sent.
2032 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_SetInstanceAlwaysOnTop,
2033 bool /* on_top */)
2035 // Notifies the renderer to draw text to the given PP_ImageData resource. All
2036 // parmeters for drawing (including the resource to draw to) are contianed in
2037 // the PPBFlash_DrawGlyphs_Params structure. An error code is sent in a reply
2038 // message indicating success.
2039 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_DrawGlyphs,
2040 ppapi::proxy::PPBFlash_DrawGlyphs_Params /* params */)
2042 // Notifies the renderer to navigate to the given URL contained in the
2043 // URLRequestInfoData. An error code is sent in a reply message indicating
2044 // success.
2045 IPC_MESSAGE_CONTROL3(PpapiHostMsg_Flash_Navigate,
2046 ppapi::URLRequestInfoData /* data */,
2047 std::string /* target */,
2048 bool /* from_user_action */)
2050 // Queries the renderer on whether the plugin instance is the topmost element
2051 // in the area of the instance specified by the given PP_Rect. PP_OK is sent as
2052 // the error code in a reply message if the rect is topmost otherwise
2053 // PP_ERROR_FAILED is sent.
2054 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_IsRectTopmost,
2055 PP_Rect /* rect */)
2057 // Notifies the renderer to invoke printing for the given plugin instance. No
2058 // reply is sent.
2059 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_InvokePrinting)
2061 // DeviceEnumeration -----------------------------------------------------------
2062 // Device enumeration messages used by audio input and video capture.
2063 IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
2064 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
2065 std::vector<ppapi::DeviceRefData> /* devices */)
2066 IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
2067 uint32_t /* callback_id */)
2068 IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
2069 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
2070 uint32_t /* callback_id */,
2071 std::vector<ppapi::DeviceRefData> /* devices */)
2073 // Flash clipboard.
2074 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashClipboard_Create)
2075 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_RegisterCustomFormat,
2076 std::string /* format_name */)
2077 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_RegisterCustomFormatReply,
2078 uint32_t /* format */)
2079 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashClipboard_IsFormatAvailable,
2080 uint32_t /* clipboard_type */,
2081 uint32_t /* format */)
2082 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashClipboard_ReadData,
2083 uint32_t /* clipboard_type */,
2084 uint32_t /* format */)
2085 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_ReadDataReply,
2086 std::string /* result */)
2087 IPC_MESSAGE_CONTROL3(PpapiHostMsg_FlashClipboard_WriteData,
2088 uint32_t /* clipboard_type */,
2089 std::vector<uint32_t> /* formats */,
2090 std::vector<std::string> /* data */)
2091 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_GetSequenceNumber,
2092 uint32_t /* clipboard_type */)
2093 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_GetSequenceNumberReply,
2094 uint64_t /* sequence_number */)
2096 // Flash DRM.
2097 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_Create)
2099 // Requests the device ID.
2100 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetDeviceID)
2101 // Reply for GetDeviceID which includes the device ID as a string.
2102 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetDeviceIDReply,
2103 std::string /* id */)
2105 // Requests the HMONITOR corresponding to the monitor on which the instance is
2106 // displayed.
2107 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetHmonitor)
2108 // Reply message for GetHmonitor which contains the HMONITOR as an int64_t.
2109 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetHmonitorReply,
2110 int64_t /* hmonitor */)
2112 // Requests the voucher file which is used to verify the integrity of the Flash
2113 // module. A PPB_FileRef resource will be created.
2114 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetVoucherFile)
2115 // Reply message for GetVoucherFile which contains the CreateInfo for a
2116 // PPB_FileRef which points to the voucher file.
2117 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetVoucherFileReply,
2118 ppapi::FileRefCreateInfo /* file_info */)
2120 // Requests a value indicating whether the monitor on which the instance is
2121 // displayed is external.
2122 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_MonitorIsExternal)
2123 // Reply message for MonitorIsExternal which contains the value indicating if
2124 // the monitor is external.
2125 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_MonitorIsExternalReply,
2126 PP_Bool /* is_external */)
2128 // Flash file.
2129 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_Create)
2130 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_OpenFile,
2131 ppapi::PepperFilePath /* path */,
2132 int /* pp_open_flags */)
2133 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_RenameFile,
2134 ppapi::PepperFilePath /* from_path */,
2135 ppapi::PepperFilePath /* to_path */)
2136 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_DeleteFileOrDir,
2137 ppapi::PepperFilePath /* path */,
2138 bool /* recursive */)
2139 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_CreateDir,
2140 ppapi::PepperFilePath /* path */)
2141 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_QueryFile,
2142 ppapi::PepperFilePath /* path */)
2143 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_QueryFileReply,
2144 base::File::Info /* file_info */)
2145 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_GetDirContents,
2146 ppapi::PepperFilePath /* path */)
2147 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_GetDirContentsReply,
2148 ppapi::DirContents /* entries */)
2149 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_CreateTemporaryFile)
2151 // Flash font file.
2152 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFontFile_Create,
2153 ppapi::proxy::SerializedFontDescription /* description */,
2154 PP_PrivateFontCharset /* charset */)
2155 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFontFile_GetFontTable,
2156 uint32_t /* table */)
2157 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFontFile_GetFontTableReply,
2158 std::string /* output */)
2160 // Flash fullscreen.
2161 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFullscreen_Create)
2162 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFullscreen_SetFullscreen,
2163 bool /* fullscreen */)
2165 // FlashMenu.
2167 // Creates the flash menu with the given data.
2168 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Create,
2169 ppapi::proxy::SerializedFlashMenu /* menu_data */)
2171 // Shows the menu at the given location relative to the plugin instance.
2172 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Show,
2173 PP_Point /* location */)
2175 // Reply to a show command. If the resource reply is PP_OK, the selected_id
2176 // will be the menu item ID chosen by the user.
2177 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashMenu_ShowReply,
2178 int32_t /* selected_id */)
2180 // PPB_Flash_MessageLoop.
2181 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Create,
2182 PP_Instance /* instance */,
2183 ppapi::HostResource /* result */)
2184 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Run,
2185 ppapi::HostResource /* flash_message_loop */,
2186 int32_t /* result */)
2187 IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBFlashMessageLoop_Quit,
2188 ppapi::HostResource /* flash_message_loop */)
2190 // PDF ------------------------------------------------------------------------
2192 // Creates the PDF resource.
2193 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_Create)
2195 // Requests the localized string for the given ID.
2196 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_GetLocalizedString,
2197 PP_ResourceString /* string_id */)
2198 // Reply for PpapiHostMsg_PDF_GetLocalizedString containing the localized
2199 // string.
2200 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_PDF_GetLocalizedStringReply,
2201 std::string /* localized_string*/)
2203 // Notifies the renderer that the PDF started loading.
2204 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_DidStartLoading)
2206 // Notifies the renderer that the PDF stopped loading.
2207 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_DidStopLoading)
2209 // Sets any restrictions on the PDF content.
2210 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetContentRestriction,
2211 int /* restrictions */)
2213 // Requests that the specified action be recorded with UMA.
2214 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_UserMetricsRecordAction,
2215 std::string /* action */)
2217 // Notifies the renderer that the current PDF uses an unsupported feature.
2218 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_HasUnsupportedFeature)
2220 // Notifies the renderer to print the current PDF.
2221 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_Print)
2223 // Notifies the renderer to save the current PDF.
2224 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_SaveAs)
2226 // Requests a resource image for the plugin at a particular scale.
2227 IPC_MESSAGE_CONTROL2(PpapiHostMsg_PDF_GetResourceImage,
2228 PP_ResourceImage /* image_id */,
2229 float /* scale */)
2231 // Reply for PpapiHostMsg_PDF_GetResourceImage containing the host resource id
2232 // of the image and a PP_ImageDataDesc which describes the image. Also carries
2233 // a shared memory handle pointing to the memory containg the image.
2234 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_PDF_GetResourceImageReply,
2235 ppapi::HostResource /* resource_id */,
2236 PP_ImageDataDesc /* image_data_desc */)
2238 // Called by the plugin when its selection changes.
2239 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetSelectedText,
2240 base::string16 /* selected_text */)
2242 // Called by the plugin to set the link under the cursor.
2243 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetLinkUnderCursor,
2244 std::string /* url */)
2246 // VideoCapture_Dev, plugin -> host
2247 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Create)
2248 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StartCapture)
2249 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoCapture_ReuseBuffer,
2250 uint32_t /* buffer */)
2251 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StopCapture)
2252 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Close)
2254 // VideoCapture_Dev, plugin -> host -> plugin
2255 IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoCapture_Open,
2256 std::string /* device_id */,
2257 PP_VideoCaptureDeviceInfo_Dev /* requested_info */,
2258 uint32_t /* buffer_count */)
2259 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoCapture_OpenReply)
2261 // VideoCapture_Dev, host -> plugin
2262 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoCapture_OnDeviceInfo,
2263 PP_VideoCaptureDeviceInfo_Dev /* info */,
2264 std::vector<ppapi::HostResource> /* buffers */,
2265 uint32_t /* buffer_size */)
2266 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnStatus,
2267 uint32_t /* status */)
2268 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnError,
2269 uint32_t /* error */)
2270 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnBufferReady,
2271 uint32_t /* buffer */)
2273 // Talk ------------------------------------------------------------------------
2275 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_Create)
2276 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Talk_RequestPermission,
2277 PP_TalkPermission /* permission */)
2278 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_RequestPermissionReply)
2279 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_StartRemoting)
2280 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_StartRemotingReply)
2281 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_StopRemoting)
2282 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_StopRemotingReply)
2283 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Talk_NotifyEvent, PP_TalkEvent /* event */)
2285 #endif // !defined(OS_NACL) && !defined(NACL_WIN64)