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