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. 4 5 // Multiply-included message header, no traditional include guard. 6 #include <string> 7 #include <vector> 8 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" 71 72 #undef IPC_MESSAGE_EXPORT 73 #define IPC_MESSAGE_EXPORT PPAPI_PROXY_EXPORT 74 75 #define IPC_MESSAGE_START PpapiMsgStart 76 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) 113 114 IPC_STRUCT_TRAITS_BEGIN(PP_Point) 115 IPC_STRUCT_TRAITS_MEMBER(x) 116 IPC_STRUCT_TRAITS_MEMBER(y) 117 IPC_STRUCT_TRAITS_END() 118 119 IPC_STRUCT_TRAITS_BEGIN(PP_FloatPoint) 120 IPC_STRUCT_TRAITS_MEMBER(x) 121 IPC_STRUCT_TRAITS_MEMBER(y) 122 IPC_STRUCT_TRAITS_END() 123 124 IPC_STRUCT_TRAITS_BEGIN(PP_Size) 125 IPC_STRUCT_TRAITS_MEMBER(height) 126 IPC_STRUCT_TRAITS_MEMBER(width) 127 IPC_STRUCT_TRAITS_END() 128 129 IPC_STRUCT_TRAITS_BEGIN(PP_Rect) 130 IPC_STRUCT_TRAITS_MEMBER(point) 131 IPC_STRUCT_TRAITS_MEMBER(size) 132 IPC_STRUCT_TRAITS_END() 133 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() 139 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() 145 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() 150 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() 155 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() 161 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() 166 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() 177 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() 182 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() 193 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() 199 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() 204 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() 212 213 IPC_STRUCT_TRAITS_BEGIN(ppapi::FlashSiteSetting) 214 IPC_STRUCT_TRAITS_MEMBER(site) 215 IPC_STRUCT_TRAITS_MEMBER(permission) 216 IPC_STRUCT_TRAITS_END() 217 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() 226 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() 234 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() 247 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() 271 272 IPC_STRUCT_TRAITS_BEGIN(ppapi::HostPortPair) 273 IPC_STRUCT_TRAITS_MEMBER(host) 274 IPC_STRUCT_TRAITS_MEMBER(port) 275 IPC_STRUCT_TRAITS_END() 276 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() 297 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() 307 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() 316 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() 325 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() 335 336 #if !defined(OS_NACL) && !defined(NACL_WIN64) 337 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() 343 344 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) 345 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 */) 351 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 */) 358 359 // Creates a channel to talk to a renderer. This message is only used by the 360 // NaCl IPC proxy. It is intercepted by NaClIPCAdapter, which creates the 361 // actual channel and rewrites the message for the untrusted side. 362 IPC_MESSAGE_CONTROL3(PpapiMsg_CreateNaClChannel, 363 int /* renderer_id */, 364 ppapi::PpapiNaClChannelArgs /* args */, 365 ppapi::proxy::SerializedHandle /* channel_handle */) 366 367 // Instructs the plugin process to crash. 368 IPC_MESSAGE_CONTROL0(PpapiMsg_Crash) 369 370 // Instructs the plugin process to hang. 371 IPC_MESSAGE_CONTROL0(PpapiMsg_Hang) 372 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. 378 // 379 // We resolve this by having the renderer generate a unique instance ID inside 380 // its process. It then asks the plugin to reserve that ID by sending this sync 381 // message. If the plugin has not yet seen this ID, it will remember it as used 382 // (to prevent a race condition if another renderer tries to then use the same 383 // instance), and set usable as true. 384 // 385 // If the plugin has already seen the instance ID, it will set usable as false 386 // and the renderer must retry a new instance ID. 387 IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_ReserveInstanceId, 388 PP_Instance /* instance */, 389 bool /* usable */) 390 391 // Passes the WebKit preferences to the plugin. 392 IPC_MESSAGE_CONTROL1(PpapiMsg_SetPreferences, 393 ppapi::Preferences) 394 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 */) 400 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 */) 406 407 // Requests a list of sites that have data stored from the plugin. The plugin 408 // process will respond with PpapiHostMsg_GetSitesWithDataResult. This is used 409 // for Flash. 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 */) 416 417 // Instructs the plugin to clear data for the given site & time. The plugin 418 // process will respond with PpapiHostMsg_ClearSiteDataResult. This is used 419 // for Flash. 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 */) 429 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 */) 436 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 */) 447 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 */) 457 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 */) 466 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) 473 474 // PPB_Audio. 475 476 // Notifies the result of the audio stream create call. This is called in 477 // both error cases and in the normal success case. These cases are 478 // differentiated by the result code, which is one of the standard PPAPI 479 // result codes. 480 // 481 // The handler of this message should always close all of the handles passed 482 // in, since some could be valid even in the error case. 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 */) 488 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 */) 497 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 */) 504 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 */) 512 513 // PPB_FileSystem. 514 IPC_MESSAGE_ROUTED2( 515 PpapiMsg_PPBFileSystem_OpenComplete, 516 ppapi::HostResource /* filesystem */, 517 int32_t /* result */) 518 519 // PPB_Graphics3D. 520 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBGraphics3D_SwapBuffersACK, 521 ppapi::HostResource /* graphics_3d */, 522 int32_t /* pp_error */) 523 524 // PPB_ImageData. 525 IPC_MESSAGE_ROUTED1(PpapiMsg_PPBImageData_NotifyUnusedImageData, 526 ppapi::HostResource /* old_image_data */) 527 528 // PPB_Instance. 529 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBInstance_MouseLockComplete, 530 PP_Instance /* instance */, 531 int32_t /* result */) 532 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 */) 584 585 // PPP_Graphics3D_Dev. 586 IPC_MESSAGE_ROUTED1(PpapiMsg_PPPGraphics3D_ContextLost, 587 PP_Instance /* instance */) 588 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 */) 597 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 */) 617 618 // PPP_Messaging. 619 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPMessaging_HandleMessage, 620 PP_Instance /* instance */, 621 ppapi::proxy::SerializedVar /* message */) 622 623 // PPP_MouseLock. 624 IPC_MESSAGE_ROUTED1(PpapiMsg_PPPMouseLock_MouseLockLost, 625 PP_Instance /* instance */) 626 627 // PPB_NetworkMonitor_Private. 628 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBNetworkMonitor_NetworkList, 629 uint32 /* plugin_dispatcher_id */, 630 ppapi::NetworkList /* network_list */) 631 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 */) 649 650 // PPP_TextInput. 651 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPTextInput_RequestSurroundingText, 652 PP_Instance /* instance */, 653 uint32_t /* desired_number_of_characters */) 654 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 */) 662 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) 705 706 // PPB_TCPSocket and PPB_TCPSocket_Private. 707 IPC_MESSAGE_ROUTED5(PpapiMsg_PPBTCPSocket_ConnectACK, 708 uint32 /* plugin_dispatcher_id */, 709 uint32 /* socket_id */, 710 int32_t /* result */, 711 PP_NetAddress_Private /* local_addr */, 712 PP_NetAddress_Private /* remote_addr */) 713 IPC_MESSAGE_ROUTED4(PpapiMsg_PPBTCPSocket_SSLHandshakeACK, 714 uint32 /* plugin_dispatcher_id */, 715 uint32 /* socket_id */, 716 bool /* succeeded */, 717 ppapi::PPB_X509Certificate_Fields /* certificate_fields */) 718 IPC_MESSAGE_ROUTED4(PpapiMsg_PPBTCPSocket_ReadACK, 719 uint32 /* plugin_dispatcher_id */, 720 uint32 /* socket_id */, 721 int32_t /* result */, 722 std::string /* data */) 723 IPC_MESSAGE_ROUTED3(PpapiMsg_PPBTCPSocket_WriteACK, 724 uint32 /* plugin_dispatcher_id */, 725 uint32 /* socket_id */, 726 int32_t /* result */) 727 IPC_MESSAGE_ROUTED3(PpapiMsg_PPBTCPSocket_SetOptionACK, 728 uint32 /* plugin_dispatcher_id */, 729 uint32 /* socket_id */, 730 int32_t /* result */) 731 732 #if !defined(OS_NACL) && !defined(NACL_WIN64) 733 // PPP_Instance_Private. 734 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPInstancePrivate_GetInstanceObject, 735 PP_Instance /* instance */, 736 ppapi::proxy::SerializedVar /* result */) 737 738 // PPB_VideoDecoder_Dev. 739 // (Messages from renderer to plugin to notify it to run callbacks.) 740 IPC_MESSAGE_ROUTED3(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK, 741 ppapi::HostResource /* video_decoder */, 742 int32_t /* bitstream buffer id */, 743 int32_t /* PP_CompletionCallback result */) 744 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_FlushACK, 745 ppapi::HostResource /* video_decoder */, 746 int32_t /* PP_CompletionCallback result */) 747 IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_ResetACK, 748 ppapi::HostResource /* video_decoder */, 749 int32_t /* PP_CompletionCallback result */) 750 751 // PPP_VideoDecoder_Dev. 752 IPC_MESSAGE_ROUTED4(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers, 753 ppapi::HostResource /* video_decoder */, 754 uint32_t /* requested number of buffers */, 755 PP_Size /* dimensions of buffers */, 756 uint32_t /* texture_target */) 757 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer, 758 ppapi::HostResource /* video_decoder */, 759 int32_t /* picture buffer id */) 760 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady, 761 ppapi::HostResource /* video_decoder */, 762 PP_Picture_Dev /* output picture */) 763 IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError, 764 ppapi::HostResource /* video_decoder */, 765 PP_VideoDecodeError_Dev /* error */) 766 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) 767 768 // ----------------------------------------------------------------------------- 769 // These are from the plugin to the renderer. 770 771 // Reply to PpapiMsg_CreateChannel. The handle will be NULL if the channel 772 // could not be established. This could be because the IPC could not be created 773 // for some weird reason, but more likely that the plugin failed to load or 774 // initialize properly. 775 IPC_MESSAGE_CONTROL1(PpapiHostMsg_ChannelCreated, 776 IPC::ChannelHandle /* handle */) 777 778 // Logs the given message to the console of all instances. 779 IPC_MESSAGE_CONTROL4(PpapiHostMsg_LogWithSource, 780 PP_Instance /* instance */, 781 int /* log_level */, 782 std::string /* source */, 783 std::string /* value */) 784 785 // PPB_Audio. 786 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBAudio_Create, 787 PP_Instance /* instance_id */, 788 int32_t /* sample_rate */, 789 uint32_t /* sample_frame_count */, 790 ppapi::HostResource /* result */) 791 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBAudio_StartOrStop, 792 ppapi::HostResource /* audio_id */, 793 bool /* play */) 794 795 // PPB_Core. 796 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_AddRefResource, 797 ppapi::HostResource) 798 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_ReleaseResource, 799 ppapi::HostResource) 800 801 // PPB_FileRef. 802 // TODO(teravest): Remove these messages when we've switched over to the "new" 803 // proxy. 804 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBFileRef_Create, 805 PP_Instance /* instance */, 806 PP_Resource /* file_system */, 807 std::string /* path */, 808 ppapi::PPB_FileRef_CreateInfo /* result */) 809 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFileRef_GetParent, 810 ppapi::HostResource /* file_ref */, 811 ppapi::PPB_FileRef_CreateInfo /* result */) 812 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBFileRef_MakeDirectory, 813 ppapi::HostResource /* file_ref */, 814 PP_Bool /* make_ancestors */, 815 uint32_t /* callback_id */) 816 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBFileRef_Touch, 817 ppapi::HostResource /* file_ref */, 818 PP_Time /* last_access */, 819 PP_Time /* last_modified */, 820 uint32_t /* callback_id */) 821 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBFileRef_Delete, 822 ppapi::HostResource /* file_ref */, 823 uint32_t /* callback_id */) 824 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBFileRef_Rename, 825 ppapi::HostResource /* file_ref */, 826 ppapi::HostResource /* new_file_ref */, 827 uint32_t /* callback_id */) 828 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBFileRef_Query, 829 ppapi::HostResource /* file_ref */, 830 uint32_t /* callback_id */) 831 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFileRef_GetAbsolutePath, 832 ppapi::HostResource /* file_ref */, 833 ppapi::proxy::SerializedVar /* result */) 834 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBFileRef_ReadDirectoryEntries, 835 ppapi::HostResource /* file_ref */, 836 uint32_t /* callback_id */) 837 838 // PPB_Graphics3D. 839 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBGraphics3D_Create, 840 PP_Instance /* instance */, 841 ppapi::HostResource /* share_context */, 842 std::vector<int32_t> /* attrib_list */, 843 ppapi::HostResource /* result */) 844 IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_SetGetBuffer, 845 ppapi::HostResource /* context */, 846 int32 /* transfer_buffer_id */) 847 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBGraphics3D_GetState, 848 ppapi::HostResource /* context */, 849 gpu::CommandBuffer::State /* state */, 850 bool /* success */) 851 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_Flush, 852 ppapi::HostResource /* context */, 853 int32 /* put_offset */, 854 int32 /* last_known_get */, 855 gpu::CommandBuffer::State /* state */, 856 bool /* success */) 857 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBGraphics3D_AsyncFlush, 858 ppapi::HostResource /* context */, 859 int32 /* put_offset */) 860 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer, 861 ppapi::HostResource /* context */, 862 uint32 /* size */, 863 int32 /* id */) 864 IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer, 865 ppapi::HostResource /* context */, 866 int32 /* id */) 867 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBGraphics3D_GetTransferBuffer, 868 ppapi::HostResource /* context */, 869 int32 /* id */, 870 ppapi::proxy::SerializedHandle /* transfer_buffer */) 871 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBGraphics3D_SwapBuffers, 872 ppapi::HostResource /* graphics_3d */) 873 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBGraphics3D_InsertSyncPoint, 874 ppapi::HostResource /* context */, 875 uint32 /* sync_point */) 876 877 // PPB_ImageData. 878 IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreatePlatform, 879 PP_Instance /* instance */, 880 int32 /* format */, 881 PP_Size /* size */, 882 PP_Bool /* init_to_zero */, 883 ppapi::HostResource /* result_resource */, 884 PP_ImageDataDesc /* image_data_desc */, 885 ppapi::proxy::ImageHandle /* result */) 886 IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreateSimple, 887 PP_Instance /* instance */, 888 int32 /* format */, 889 PP_Size /* size */, 890 PP_Bool /* init_to_zero */, 891 ppapi::HostResource /* result_resource */, 892 PP_ImageDataDesc /* image_data_desc */, 893 ppapi::proxy::SerializedHandle /* result */) 894 895 // PPB_Instance. 896 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetWindowObject, 897 PP_Instance /* instance */, 898 ppapi::proxy::SerializedVar /* result */) 899 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetOwnerElementObject, 900 PP_Instance /* instance */, 901 ppapi::proxy::SerializedVar /* result */) 902 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_BindGraphics, 903 PP_Instance /* instance */, 904 PP_Resource /* device */) 905 IPC_SYNC_MESSAGE_ROUTED1_1( 906 PpapiHostMsg_PPBInstance_GetAudioHardwareOutputSampleRate, 907 PP_Instance /* instance */, 908 uint32_t /* result */) 909 IPC_SYNC_MESSAGE_ROUTED1_1( 910 PpapiHostMsg_PPBInstance_GetAudioHardwareOutputBufferSize, 911 PP_Instance /* instance */, 912 uint32_t /* result */) 913 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_IsFullFrame, 914 PP_Instance /* instance */, 915 PP_Bool /* result */) 916 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBInstance_ExecuteScript, 917 PP_Instance /* instance */, 918 ppapi::proxy::SerializedVar /* script */, 919 ppapi::proxy::SerializedVar /* out_exception */, 920 ppapi::proxy::SerializedVar /* result */) 921 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetDefaultCharSet, 922 PP_Instance /* instance */, 923 ppapi::proxy::SerializedVar /* result */) 924 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_SetFullscreen, 925 PP_Instance /* instance */, 926 PP_Bool /* fullscreen */, 927 PP_Bool /* result */) 928 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetScreenSize, 929 PP_Instance /* instance */, 930 PP_Bool /* result */, 931 PP_Size /* size */) 932 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_RequestInputEvents, 933 PP_Instance /* instance */, 934 bool /* is_filtering */, 935 uint32_t /* event_classes */) 936 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_ClearInputEvents, 937 PP_Instance /* instance */, 938 uint32_t /* event_classes */) 939 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PostMessage, 940 PP_Instance /* instance */, 941 ppapi::proxy::SerializedVar /* message */) 942 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_LockMouse, 943 PP_Instance /* instance */) 944 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_UnlockMouse, 945 PP_Instance /* instance */) 946 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_ResolveRelativeToDocument, 947 PP_Instance /* instance */, 948 ppapi::proxy::SerializedVar /* relative */, 949 ppapi::proxy::SerializedVar /* result */) 950 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanRequest, 951 PP_Instance /* instance */, 952 ppapi::proxy::SerializedVar /* relative */, 953 PP_Bool /* result */) 954 IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument, 955 PP_Instance /* active */, 956 PP_Instance /* target */, 957 PP_Bool /* result */) 958 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetDocumentURL, 959 PP_Instance /* active */, 960 PP_URLComponents_Dev /* components */, 961 ppapi::proxy::SerializedVar /* result */) 962 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetPluginInstanceURL, 963 PP_Instance /* active */, 964 ppapi::proxy::SerializedVar /* result */) 965 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SetCursor, 966 PP_Instance /* instance */, 967 int32_t /* type */, 968 ppapi::HostResource /* custom_image */, 969 PP_Point /* hot_spot */) 970 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SetTextInputType, 971 PP_Instance /* instance */, 972 PP_TextInput_Type /* type */) 973 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_UpdateCaretPosition, 974 PP_Instance /* instance */, 975 PP_Rect /* caret */, 976 PP_Rect /* bounding_box */) 977 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_CancelCompositionText, 978 PP_Instance /* instance */) 979 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_UpdateSurroundingText, 980 PP_Instance /* instance */, 981 std::string /* text */, 982 uint32_t /* caret */, 983 uint32_t /* anchor */) 984 985 // PPB_Var. 986 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBVar_AddRefObject, 987 int64 /* object_id */, 988 int /* unused - need a return value for sync msgs */) 989 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVar_ReleaseObject, 990 int64 /* object_id */) 991 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasProperty, 992 ppapi::proxy::SerializedVar /* object */, 993 ppapi::proxy::SerializedVar /* property */, 994 ppapi::proxy::SerializedVar /* out_exception */, 995 PP_Bool /* result */) 996 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasMethodDeprecated, 997 ppapi::proxy::SerializedVar /* object */, 998 ppapi::proxy::SerializedVar /* method */, 999 ppapi::proxy::SerializedVar /* out_exception */, 1000 PP_Bool /* result */) 1001 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_GetProperty, 1002 ppapi::proxy::SerializedVar /* object */, 1003 ppapi::proxy::SerializedVar /* property */, 1004 ppapi::proxy::SerializedVar /* out_exception */, 1005 ppapi::proxy::SerializedVar /* result */) 1006 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_DeleteProperty, 1007 ppapi::proxy::SerializedVar /* object */, 1008 ppapi::proxy::SerializedVar /* property */, 1009 ppapi::proxy::SerializedVar /* out_exception */, 1010 PP_Bool /* result */) 1011 IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBVar_EnumerateProperties, 1012 ppapi::proxy::SerializedVar /* object */, 1013 std::vector<ppapi::proxy::SerializedVar> /* props */, 1014 ppapi::proxy::SerializedVar /* out_exception */) 1015 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_SetPropertyDeprecated, 1016 ppapi::proxy::SerializedVar /* object */, 1017 ppapi::proxy::SerializedVar /* name */, 1018 ppapi::proxy::SerializedVar /* value */, 1019 ppapi::proxy::SerializedVar /* out_exception */) 1020 IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBVar_CallDeprecated, 1021 ppapi::proxy::SerializedVar /* object */, 1022 ppapi::proxy::SerializedVar /* method_name */, 1023 std::vector<ppapi::proxy::SerializedVar> /* args */, 1024 ppapi::proxy::SerializedVar /* out_exception */, 1025 ppapi::proxy::SerializedVar /* result */) 1026 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_Construct, 1027 ppapi::proxy::SerializedVar /* object */, 1028 std::vector<ppapi::proxy::SerializedVar> /* args */, 1029 ppapi::proxy::SerializedVar /* out_exception */, 1030 ppapi::proxy::SerializedVar /* result */) 1031 IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_IsInstanceOfDeprecated, 1032 ppapi::proxy::SerializedVar /* var */, 1033 int64 /* object_class */, 1034 int64 /* object-data */, 1035 PP_Bool /* result */) 1036 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_CreateObjectDeprecated, 1037 PP_Instance /* instance */, 1038 int64 /* object_class */, 1039 int64 /* object_data */, 1040 ppapi::proxy::SerializedVar /* result */) 1041 1042 #if !defined(OS_NACL) && !defined(NACL_WIN64) 1043 // PPB_Broker. 1044 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBBroker_Create, 1045 PP_Instance /* instance */, 1046 ppapi::HostResource /* result_resource */) 1047 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBBroker_Connect, 1048 ppapi::HostResource /* broker */) 1049 1050 // PPB_Buffer. 1051 IPC_SYNC_MESSAGE_ROUTED2_2( 1052 PpapiHostMsg_PPBBuffer_Create, 1053 PP_Instance /* instance */, 1054 uint32_t /* size */, 1055 ppapi::HostResource /* result_resource */, 1056 ppapi::proxy::SerializedHandle /* result_shm_handle */) 1057 1058 // PPB_ContentDecryptor_Dev messages handled in PPB_Instance_Proxy. 1059 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_NeedKey, 1060 PP_Instance /* instance */, 1061 ppapi::proxy::SerializedVar /* key_system, String */, 1062 ppapi::proxy::SerializedVar /* session_id, String */, 1063 ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */) 1064 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_KeyAdded, 1065 PP_Instance /* instance */, 1066 ppapi::proxy::SerializedVar /* key_system, String */, 1067 ppapi::proxy::SerializedVar /* session_id, String */) 1068 IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_KeyMessage, 1069 PP_Instance /* instance */, 1070 ppapi::proxy::SerializedVar /* key_system, String */, 1071 ppapi::proxy::SerializedVar /* session_id, String */, 1072 ppapi::proxy::SerializedVar /* message, ArrayBuffer */, 1073 ppapi::proxy::SerializedVar /* default_url, String */) 1074 IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_KeyError, 1075 PP_Instance /* instance */, 1076 ppapi::proxy::SerializedVar /* key_system, String */, 1077 ppapi::proxy::SerializedVar /* session_id, String */, 1078 int32_t /* media_error */, 1079 int32_t /* system_code */) 1080 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverBlock, 1081 PP_Instance /* instance */, 1082 PP_Resource /* decrypted_block, PPB_Buffer_Dev */, 1083 std::string /* serialized_block_info */) 1084 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_DecoderInitializeDone, 1085 PP_Instance /* instance */, 1086 PP_DecryptorStreamType /* decoder_type */, 1087 uint32_t /* request_id */, 1088 PP_Bool /* success */) 1089 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DecoderDeinitializeDone, 1090 PP_Instance /* instance */, 1091 PP_DecryptorStreamType /* decoder_type */, 1092 uint32_t /* request_id */) 1093 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DecoderResetDone, 1094 PP_Instance /* instance */, 1095 PP_DecryptorStreamType /* decoder_type */, 1096 uint32_t /* request_id */) 1097 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverFrame, 1098 PP_Instance /* instance */, 1099 PP_Resource /* decrypted_frame, PPB_Buffer_Dev */, 1100 std::string /* serialized_block_info */) 1101 IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverSamples, 1102 PP_Instance /* instance */, 1103 PP_Resource /* audio_frames, PPB_Buffer_Dev */, 1104 std::string /* serialized_block_info */) 1105 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) 1106 1107 // PPB_NetworkMonitor_Private. 1108 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PPBNetworkMonitor_Start, 1109 uint32 /* plugin_dispatcher_id */) 1110 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PPBNetworkMonitor_Stop, 1111 uint32 /* plugin_dispatcher_id */) 1112 1113 // PPB_Testing. 1114 IPC_SYNC_MESSAGE_ROUTED3_1( 1115 PpapiHostMsg_PPBTesting_ReadImageData, 1116 ppapi::HostResource /* device_context_2d */, 1117 ppapi::HostResource /* image */, 1118 PP_Point /* top_left */, 1119 PP_Bool /* result */) 1120 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBTesting_GetLiveObjectsForInstance, 1121 PP_Instance /* instance */, 1122 uint32 /* result */) 1123 IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBTesting_SimulateInputEvent, 1124 PP_Instance /* instance */, 1125 ppapi::InputEventData /* input_event */) 1126 IPC_SYNC_MESSAGE_ROUTED1_0( 1127 PpapiHostMsg_PPBTesting_SetMinimumArrayBufferSizeForShmem, 1128 uint32_t /* threshold */) 1129 1130 #if !defined(OS_NACL) && !defined(NACL_WIN64) 1131 1132 // PPB_VideoDecoder. 1133 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVideoDecoder_Create, 1134 PP_Instance /* instance */, 1135 ppapi::HostResource /* context */, 1136 PP_VideoDecoder_Profile /* profile */, 1137 ppapi::HostResource /* result */) 1138 IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBVideoDecoder_Decode, 1139 ppapi::HostResource /* video_decoder */, 1140 ppapi::HostResource /* bitstream buffer */, 1141 int32 /* bitstream buffer id */, 1142 uint32 /* size of buffer */) 1143 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_AssignPictureBuffers, 1144 ppapi::HostResource /* video_decoder */, 1145 std::vector<PP_PictureBuffer_Dev> /* picture buffers */) 1146 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_ReusePictureBuffer, 1147 ppapi::HostResource /* video_decoder */, 1148 int32_t /* picture buffer id */) 1149 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Flush, 1150 ppapi::HostResource /* video_decoder */) 1151 IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Reset, 1152 ppapi::HostResource /* video_decoder */) 1153 IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVideoDecoder_Destroy, 1154 ppapi::HostResource /* video_decoder */) 1155 1156 // PPB_Flash_MessageLoop. 1157 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Create, 1158 PP_Instance /* instance */, 1159 ppapi::HostResource /* result */) 1160 IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Run, 1161 ppapi::HostResource /* flash_message_loop */, 1162 int32_t /* result */) 1163 IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBFlashMessageLoop_Quit, 1164 ppapi::HostResource /* flash_message_loop */) 1165 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) 1166 1167 // PPB_TCPSocket and PPB_TCPSocket_Private. 1168 // Creates a PPB_TCPSocket resource. 1169 IPC_SYNC_MESSAGE_CONTROL2_1(PpapiHostMsg_PPBTCPSocket_Create, 1170 int32 /* routing_id */, 1171 uint32 /* plugin_dispatcher_id */, 1172 uint32 /* socket_id */) 1173 // Creates a PPB_TCPSocket_Private resource. 1174 IPC_SYNC_MESSAGE_CONTROL2_1(PpapiHostMsg_PPBTCPSocket_CreatePrivate, 1175 int32 /* routing_id */, 1176 uint32 /* plugin_dispatcher_id */, 1177 uint32 /* socket_id */) 1178 IPC_MESSAGE_CONTROL4(PpapiHostMsg_PPBTCPSocket_Connect, 1179 int32 /* routing_id */, 1180 uint32 /* socket_id */, 1181 std::string /* host */, 1182 uint16_t /* port */) 1183 IPC_MESSAGE_CONTROL3(PpapiHostMsg_PPBTCPSocket_ConnectWithNetAddress, 1184 int32 /* routing_id */, 1185 uint32 /* socket_id */, 1186 PP_NetAddress_Private /* net_addr */) 1187 IPC_MESSAGE_CONTROL5(PpapiHostMsg_PPBTCPSocket_SSLHandshake, 1188 uint32 /* socket_id */, 1189 std::string /* server_name */, 1190 uint16_t /* server_port */, 1191 std::vector<std::vector<char> > /* trusted_certs */, 1192 std::vector<std::vector<char> > /* untrusted_certs */) 1193 IPC_MESSAGE_CONTROL2(PpapiHostMsg_PPBTCPSocket_Read, 1194 uint32 /* socket_id */, 1195 int32_t /* bytes_to_read */) 1196 IPC_MESSAGE_CONTROL2(PpapiHostMsg_PPBTCPSocket_Write, 1197 uint32 /* socket_id */, 1198 std::string /* data */) 1199 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PPBTCPSocket_Disconnect, 1200 uint32 /* socket_id */) 1201 IPC_MESSAGE_CONTROL3(PpapiHostMsg_PPBTCPSocket_SetOption, 1202 uint32 /* socket_id */, 1203 PP_TCPSocket_Option /* name */, 1204 ppapi::SocketOptionData /* value */) 1205 1206 // PPB_X509Certificate_Private 1207 IPC_SYNC_MESSAGE_CONTROL1_2(PpapiHostMsg_PPBX509Certificate_ParseDER, 1208 std::vector<char> /* der */, 1209 bool /* succeeded */, 1210 ppapi::PPB_X509Certificate_Fields /* result */) 1211 1212 //----------------------------------------------------------------------------- 1213 // Resource call/reply messages. 1214 // 1215 // These are the new-style resource implementations where the resource is only 1216 // implemented in the proxy and "resource messages" are sent between this and a 1217 // host object. Resource messages are a wrapper around some general routing 1218 // information and a separate message of a type defined by the specific resource 1219 // sending/receiving it. The extra paremeters allow the nested message to be 1220 // routed automatically to the correct resource. 1221 1222 // Notification that a resource has been created in the plugin. The nested 1223 // message will be resource-type-specific. 1224 IPC_MESSAGE_CONTROL3(PpapiHostMsg_ResourceCreated, 1225 ppapi::proxy::ResourceMessageCallParams /* call_params */, 1226 PP_Instance /* instance */, 1227 IPC::Message /* nested_msg */) 1228 1229 // Notification that a resource has been destroyed in the plugin. 1230 IPC_MESSAGE_CONTROL1(PpapiHostMsg_ResourceDestroyed, 1231 PP_Resource /* resource */) 1232 1233 // Most resources are created by the plugin, which then sends a ResourceCreated 1234 // message to create a corresponding ResourceHost in the renderer or browser 1235 // host process. However, some resources are first created in the host and 1236 // "pushed" or returned to the plugin. 1237 // 1238 // In this case, the host will create a "pending" ResourceHost object which 1239 // is identified by an ID. The ID is sent to the plugin process and the 1240 // PluginResource object is created. This message is sent from the plugin to 1241 // the host process to connect the PluginResource and the pending ResourceHost 1242 // (at which point, it's no longer pending). 1243 IPC_MESSAGE_CONTROL2(PpapiHostMsg_AttachToPendingHost, 1244 PP_Resource /* resource */, 1245 int /* pending_host_id */) 1246 1247 // A resource call is a request from the plugin to the host. It may or may not 1248 // require a reply, depending on the params. The nested message will be 1249 // resource-type-specific. 1250 IPC_MESSAGE_CONTROL2(PpapiHostMsg_ResourceCall, 1251 ppapi::proxy::ResourceMessageCallParams /* call_params */, 1252 IPC::Message /* nested_msg */) 1253 IPC_MESSAGE_CONTROL3(PpapiHostMsg_InProcessResourceCall, 1254 int /* routing_id */, 1255 ppapi::proxy::ResourceMessageCallParams /* call_params */, 1256 IPC::Message /* nested_msg */) 1257 1258 // A resource reply is a response to a ResourceCall from a host to the 1259 // plugin. The resource ID + sequence number in the params will correspond to 1260 // that of the previous ResourceCall. 1261 IPC_MESSAGE_CONTROL2( 1262 PpapiPluginMsg_ResourceReply, 1263 ppapi::proxy::ResourceMessageReplyParams /* reply_params */, 1264 IPC::Message /* nested_msg */) 1265 IPC_MESSAGE_ROUTED2( 1266 PpapiHostMsg_InProcessResourceReply, 1267 ppapi::proxy::ResourceMessageReplyParams /* reply_params */, 1268 IPC::Message /* nested_msg */) 1269 1270 1271 IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_ResourceSyncCall, 1272 ppapi::proxy::ResourceMessageCallParams /* call_params */, 1273 IPC::Message /* nested_msg */, 1274 ppapi::proxy::ResourceMessageReplyParams /* reply_params */, 1275 IPC::Message /* reply_msg */) 1276 1277 // This message is sent from the renderer to the browser when it wants to create 1278 // a ResourceHost in the browser. It contains the process ID of the plugin and 1279 // the instance of the plugin for which to create the resource for. params 1280 // contains the sequence number for the message to track the response. 1281 // The nested message is a ResourceHost creation message. 1282 IPC_MESSAGE_CONTROL5( 1283 PpapiHostMsg_CreateResourceHostFromHost, 1284 int /* routing_id */, 1285 int /* child_process_id */, 1286 ppapi::proxy::ResourceMessageCallParams /* params */, 1287 PP_Instance /* instance */, 1288 IPC::Message /* nested_msg */) 1289 1290 // This message is sent from the browser to the renderer when it has created a 1291 // ResourceHost for the renderer. It contains the sequence number that was sent 1292 // in the request and the ID of the pending ResourceHost which was created in 1293 // the browser. This ID is only useful for the plugin which can attach to the 1294 // ResourceHost in the browser. 1295 IPC_MESSAGE_ROUTED2( 1296 PpapiHostMsg_CreateResourceHostFromHostReply, 1297 int32_t /* sequence */, 1298 int /* pending_host_id */) 1299 1300 //----------------------------------------------------------------------------- 1301 // Messages for resources using call/reply above. 1302 1303 // Broker ---------------------------------------------------------------------- 1304 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_Create) 1305 1306 // Queries whether the plugin has permission to connect to the Pepper broker. 1307 // The response is contained in the error value of the 1308 // ResourceMessageReplyParams in the reply message. 1309 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_IsAllowed) 1310 1311 // Extensions common ----------------------------------------------------------- 1312 IPC_MESSAGE_CONTROL0(PpapiHostMsg_ExtensionsCommon_Create) 1313 1314 // Starts an extension API request which doesn't expect a response. 1315 // |request_name| is an API function name. |args| is a list of input arguments. 1316 IPC_MESSAGE_CONTROL2(PpapiHostMsg_ExtensionsCommon_Post, 1317 std::string /* request_name */, 1318 base::ListValue /* args */) 1319 1320 // Starts an extension API request which expects a response sent back using a 1321 // PpapiPluginMsg_ExtensionsCommon_CallReply message. 1322 // |request_name| is an API function name. |args| is a list of input arguments. 1323 // |output| is a list of output results. 1324 IPC_MESSAGE_CONTROL2(PpapiHostMsg_ExtensionsCommon_Call, 1325 std::string /* request_name */, 1326 base::ListValue /* args */) 1327 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_ExtensionsCommon_CallReply, 1328 base::ListValue /* output */) 1329 1330 // Ext_CrxFileSystem 1331 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Ext_CrxFileSystem_Create) 1332 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Ext_CrxFileSystem_BrowserOpen) 1333 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Ext_CrxFileSystem_BrowserOpenReply, 1334 std::string /* fsid */) 1335 1336 // File chooser. 1337 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileChooser_Create) 1338 IPC_MESSAGE_CONTROL4(PpapiHostMsg_FileChooser_Show, 1339 bool /* save_as */, 1340 bool /* open_multiple */, 1341 std::string /* suggested_file_name */, 1342 std::vector<std::string> /* accept_mime_types */) 1343 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileChooser_ShowReply, 1344 std::vector<ppapi::PPB_FileRef_CreateInfo> /* files */) 1345 1346 // FileIO 1347 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Create) 1348 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Open, 1349 PP_Resource /* file_ref_resource */, 1350 int32_t /* open_flags */) 1351 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_OpenReply) 1352 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Close) 1353 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Touch, 1354 PP_Time /* last_access_time */, 1355 PP_Time /* last_modified_time */) 1356 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Write, 1357 int64_t /* offset */, 1358 std::string /* data */) 1359 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_SetLength, 1360 int64_t /* length */) 1361 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Flush) 1362 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_WillWrite, 1363 int64_t /* offset */, 1364 int32_t /* bytes_to_write */) 1365 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_WillSetLength, 1366 int64_t /* length */) 1367 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_GetOSFileDescriptor) 1368 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileIO_GetOSFileDescriptorReply, 1369 int32_t /* file descriptor */) 1370 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_RequestOSFileHandle) 1371 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_RequestOSFileHandleReply) 1372 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_GeneralReply) 1373 1374 // FileRef 1375 // Creates a FileRef to a path on an external file system. This message may 1376 // only be sent from the renderer. 1377 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_CreateExternal, 1378 base::FilePath /* external_path */) 1379 1380 // Creates a FileRef to a path on an internal file system. This message may 1381 // be sent from the renderer or the plugin. 1382 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_CreateInternal, 1383 PP_Resource /* file_system */, 1384 std::string /* internal_path */) 1385 1386 // Requests that the browser create a directory at the location indicated by 1387 // the FileRef. 1388 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_MakeDirectory, 1389 bool /* make_ancestors */) 1390 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_MakeDirectoryReply) 1391 1392 // Requests that the browser update the last accessed and last modified times 1393 // at the location indicated by the FileRef. 1394 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_Touch, 1395 PP_Time /* last_accessed */, 1396 PP_Time /* last_modified */) 1397 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_TouchReply) 1398 1399 // Requests that the browser delete a file or directory at the location 1400 // indicated by the FileRef. 1401 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Delete) 1402 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_DeleteReply) 1403 1404 // Requests that the browser rename a file or directory at the location 1405 // indicated by the FileRef. 1406 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_Rename, 1407 PP_Resource /* new_file_ref */) 1408 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_RenameReply) 1409 1410 // Requests that the browser retrieve metadata information for a file or 1411 // directory at the location indicated by the FileRef. 1412 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Query) 1413 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_QueryReply, 1414 PP_FileInfo /* file_info */) 1415 1416 // Requests that the browser retrieve then entries in a directory at the 1417 // location indicated by the FileRef. 1418 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_ReadDirectoryEntries) 1419 1420 // FileRef_CreateInfo does not provide file type information, so two 1421 // corresponding vectors are returned. 1422 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileRef_ReadDirectoryEntriesReply, 1423 std::vector<ppapi::FileRef_CreateInfo> /* files */, 1424 std::vector<PP_FileType> /* file_types */) 1425 1426 // Requests that the browser reply with the absolute path to the indicated 1427 // file. 1428 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_GetAbsolutePath) 1429 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_GetAbsolutePathReply, 1430 std::string /* absolute_path */) 1431 1432 // FileSystem 1433 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Create, 1434 PP_FileSystemType /* type */) 1435 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Open, 1436 int64_t /* expected_size */) 1437 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileSystem_OpenReply) 1438 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_InitIsolatedFileSystem, 1439 std::string /* fsid */) 1440 1441 // Flash DRM ------------------------------------------------------------------ 1442 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_Create) 1443 1444 // Requests the device ID. 1445 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetDeviceID) 1446 // Reply for GetDeviceID which includes the device ID as a string. 1447 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetDeviceIDReply, 1448 std::string /* id */) 1449 1450 // Requests the HMONITOR corresponding to the monitor on which the instance is 1451 // displayed. 1452 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetHmonitor) 1453 // Reply message for GetHmonitor which contains the HMONITOR as an int64_t. 1454 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetHmonitorReply, 1455 int64_t /* hmonitor */) 1456 1457 // Requests the voucher file which is used to verify the integrity of the Flash 1458 // module. A PPB_FileRef resource will be created. 1459 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetVoucherFile) 1460 // Reply message for GetVoucherFile which contains the CreateInfo for a 1461 // PPB_FileRef which points to the voucher file. 1462 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetVoucherFileReply, 1463 ppapi::PPB_FileRef_CreateInfo /* file_info */) 1464 1465 // Gamepad. 1466 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_Create) 1467 1468 // Requests that the gamepad host send the shared memory handle to the plugin 1469 // process. 1470 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_RequestMemory) 1471 1472 // Reply to a RequestMemory call. This supplies the shared memory handle. The 1473 // actual handle is passed in the ReplyParams struct. 1474 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Gamepad_SendMemory) 1475 1476 1477 // Graphics2D, plugin -> host 1478 IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_Create, 1479 PP_Size /* size */, 1480 PP_Bool /* is_always_opaque */) 1481 IPC_MESSAGE_CONTROL4(PpapiHostMsg_Graphics2D_PaintImageData, 1482 ppapi::HostResource /* image_data */, 1483 PP_Point /* top_left */, 1484 bool /* src_rect_specified */, 1485 PP_Rect /* src_rect */) 1486 IPC_MESSAGE_CONTROL3(PpapiHostMsg_Graphics2D_Scroll, 1487 bool /* clip_specified */, 1488 PP_Rect /* clip */, 1489 PP_Point /* amount */) 1490 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_ReplaceContents, 1491 ppapi::HostResource /* image_data */) 1492 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_Dev_SetScale, 1493 float /* scale */) 1494 1495 // Graphics2D, plugin -> host -> plugin 1496 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Graphics2D_Flush) 1497 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_FlushAck) 1498 1499 IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_ReadImageData, 1500 PP_Resource /* image */, 1501 PP_Point /* top_left */) 1502 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_ReadImageDataAck) 1503 1504 // NetworkProxy ---------------------------------------------------------------- 1505 IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkProxy_Create) 1506 1507 // Query the browser for the proxy server to use for the given URL. 1508 IPC_MESSAGE_CONTROL1(PpapiHostMsg_NetworkProxy_GetProxyForURL, 1509 std::string /* url */) 1510 1511 // Reply message for GetProxyForURL containing the proxy server. 1512 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkProxy_GetProxyForURLReply, 1513 std::string /* proxy */) 1514 1515 // TrueTypeFont. 1516 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFontSingleton_Create) 1517 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFontSingleton_GetFontFamilies) 1518 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFontSingleton_GetFontFamiliesReply, 1519 std::vector<std::string> /* font_families */) 1520 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TrueTypeFontSingleton_GetFontsInFamily, 1521 std::string /* family */) 1522 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFontSingleton_GetFontsInFamilyReply, 1523 std::vector<ppapi::proxy::SerializedTrueTypeFontDesc> 1524 /* fonts */) 1525 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TrueTypeFont_Create, 1526 ppapi::proxy::SerializedTrueTypeFontDesc /* desc */) 1527 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFont_Describe) 1528 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_DescribeReply, 1529 ppapi::proxy::SerializedTrueTypeFontDesc /* desc */) 1530 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TrueTypeFont_GetTableTags) 1531 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_GetTableTagsReply, 1532 std::vector<uint32_t> /* tags */) 1533 IPC_MESSAGE_CONTROL3(PpapiHostMsg_TrueTypeFont_GetTable, 1534 uint32_t /* table */, 1535 int32_t /* offset */, 1536 int32_t /* max_data_length */) 1537 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TrueTypeFont_GetTableReply, 1538 std::string /* data */) 1539 1540 // Host Resolver --------------------------------------------------------------- 1541 // Creates a PPB_HostResolver resource. 1542 IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_Create) 1543 1544 // Creates a PPB_HostResolver_Private resource. 1545 IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_CreatePrivate) 1546 1547 // Resolves the given hostname. 1548 IPC_MESSAGE_CONTROL2(PpapiHostMsg_HostResolver_Resolve, 1549 ppapi::HostPortPair /* host_port */, 1550 PP_HostResolver_Private_Hint /* hint */) 1551 1552 // This message is a reply to HostResolver_Resolve. On success, 1553 // |canonical_name| contains the canonical name of the host; |net_address_list| 1554 // is a list of network addresses. On failure, both fields are set to empty. 1555 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_HostResolver_ResolveReply, 1556 std::string /* canonical_name */, 1557 std::vector<PP_NetAddress_Private> /* net_address_list */) 1558 1559 // Printing. 1560 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_Create) 1561 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_GetDefaultPrintSettings) 1562 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply, 1563 PP_PrintSettings_Dev /* print_settings */) 1564 1565 // TCP Server Socket ----------------------------------------------------------- 1566 // Creates a PPB_TCPServerSocket_Private resource. 1567 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_CreatePrivate) 1568 1569 IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPServerSocket_Listen, 1570 PP_NetAddress_Private /* addr */, 1571 int32_t /* backlog */) 1572 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPServerSocket_ListenReply, 1573 PP_NetAddress_Private /* local_addr */) 1574 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPServerSocket_Accept, 1575 uint32 /* plugin_dispatcher_id */) 1576 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_TCPServerSocket_AcceptReply, 1577 uint32 /* accepted_socket_id */, 1578 PP_NetAddress_Private /* local_addr */, 1579 PP_NetAddress_Private /* remote_addr */) 1580 IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_StopListening) 1581 1582 // UDP Socket ------------------------------------------------------------------ 1583 // Creates a PPB_UDPSocket resource. 1584 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Create) 1585 1586 // Creates a PPB_UDPSocket_Private resource. 1587 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_CreatePrivate) 1588 1589 IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SetOption, 1590 PP_UDPSocket_Option /* name */, 1591 ppapi::SocketOptionData /* value */) 1592 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_SetOptionReply) 1593 IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_Bind, 1594 PP_NetAddress_Private /* net_addr */) 1595 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_BindReply, 1596 PP_NetAddress_Private /* bound_addr */) 1597 IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_RecvFrom, 1598 int32_t /* num_bytes */) 1599 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_UDPSocket_RecvFromReply, 1600 std::string /* data */, 1601 PP_NetAddress_Private /* remote_addr */) 1602 IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SendTo, 1603 std::string /* data */, 1604 PP_NetAddress_Private /* net_addr */) 1605 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_SendToReply, 1606 int32_t /* bytes_written */) 1607 IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Close) 1608 1609 // URLLoader ------------------------------------------------------------------ 1610 1611 IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Create) 1612 1613 // These messages correspond to PPAPI calls and all should get a 1614 // CallbackComplete message. 1615 IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_Open, 1616 ppapi::URLRequestInfoData /* request_data */) 1617 1618 // The plugin can tell the host to defer a load to hold off on sending more 1619 // data because the buffer in the plugin is full. When defers_loading is set to 1620 // false, data streaming will resume. 1621 // 1622 // When auditing redirects (no auto follow) the load will be automatically 1623 // deferred each time we get a redirect. The plugin will reset this to false 1624 // by sending this message when it wants to continue following the redirect. 1625 // 1626 // When streaming data, the host may still send more data after this call (for 1627 // example, it could already be in-flight at the time of this request). 1628 IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_SetDeferLoading, 1629 bool /* defers_loading */) 1630 1631 // Closes the URLLoader. There is no reply. 1632 IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Close) 1633 1634 // Requests that cross-site restrictions be ignored. The plugin must have 1635 // the private permission set. Otherwise this message will be ignored by the 1636 // renderer. There is no reply. 1637 IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_GrantUniversalAccess) 1638 1639 // Push notification that a response is available. 1640 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_ReceivedResponse, 1641 ppapi::URLResponseInfoData /* response */) 1642 1643 // Push notification with load data from the renderer. It is a custom generated 1644 // message with the response data (array of bytes stored via WriteData) 1645 // appended. 1646 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_URLLoader_SendData) 1647 1648 // Push notification indicating that all data has been sent, either via 1649 // SendData or by streaming it to a file. Note that since this is a push 1650 // notification, we don't use the result field of the ResourceMessageReply. 1651 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_FinishedLoading, 1652 int32_t /* result */) 1653 1654 // Push notification from the renderer to the plugin to tell it about download 1655 // and upload progress. This will only be sent if the plugin has requested 1656 // progress updates, and only the fields requested by the plugin will be 1657 // valid. 1658 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_URLLoader_UpdateProgress, 1659 int64_t /* bytes_sent */, 1660 int64_t /* total_bytes_to_be_sent */, 1661 int64_t /* bytes_received */, 1662 int64_t /* total_bytes_to_be_received */) 1663 1664 // Shared memory --------------------------------------------------------------- 1665 1666 // Creates shared memory on the host side, returning a handle to the shared 1667 // memory on the plugin and keeping the memory mapped in on the host. 1668 // We return a "host handle_id" that can be mapped back to the 1669 // handle on the host side by PpapiGlobals::UntrackSharedMemoryHandle(). 1670 IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_SharedMemory_CreateSharedMemory, 1671 PP_Instance /* instance */, 1672 uint32_t /* size */, 1673 int /* host_handle_id */, 1674 ppapi::proxy::SerializedHandle /* plugin_handle */) 1675 1676 // MediaStream ----------------------------------------------------------------- 1677 1678 // VideoDestination Private. 1679 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDestination_Create) 1680 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoDestination_Open, 1681 std::string /* stream_url */) 1682 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDestination_OpenReply) 1683 IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDestination_PutFrame, 1684 ppapi::HostResource /* image_data */, 1685 PP_TimeTicks /* timestamp */) 1686 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDestination_Close) 1687 1688 // VideoSource Private. 1689 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_Create) 1690 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoSource_Open, 1691 std::string /* stream_url */) 1692 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoSource_OpenReply) 1693 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_GetFrame) 1694 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoSource_GetFrameReply, 1695 ppapi::HostResource /* resource_id */, 1696 PP_ImageDataDesc /* image_data_desc */, 1697 PP_TimeTicks /* timestamp */) 1698 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoSource_Close) 1699 1700 // WebSocket ------------------------------------------------------------------- 1701 1702 IPC_MESSAGE_CONTROL0(PpapiHostMsg_WebSocket_Create) 1703 1704 // Establishes the connection to a server. This message requires 1705 // WebSocket_ConnectReply as a reply message. 1706 IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Connect, 1707 std::string /* url */, 1708 std::vector<std::string> /* protocols */) 1709 1710 // Closes established connection with graceful closing handshake. This message 1711 // requires WebSocket_CloseReply as a reply message. 1712 IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Close, 1713 int32_t /* code */, 1714 std::string /* reason */) 1715 1716 // Sends a text frame to the server. No reply is defined. 1717 IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendText, 1718 std::string /* message */) 1719 1720 // Sends a binary frame to the server. No reply is defined. 1721 IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendBinary, 1722 std::vector<uint8_t> /* message */) 1723 1724 // Fails the connection. This message invokes RFC6455 defined 1725 // _Fail the WebSocket Connection_ operation. No reply is defined. 1726 IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_Fail, 1727 std::string /* message */) 1728 1729 // This message is a reply to WebSocket_Connect. If the |url| and |protocols| 1730 // are invalid, WebSocket_ConnectReply is issued immediately and it contains 1731 // proper error code in its result. Otherwise, WebSocket_ConnectReply is sent 1732 // with valid |url|, |protocol|, and result PP_OK. |protocol| is not a passed 1733 // |protocols|, but a result of opening handshake negotiation. If the 1734 // connection can not be established successfully, WebSocket_ConnectReply is 1735 // not issued, but WebSocket_ClosedReply is sent instead. 1736 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_WebSocket_ConnectReply, 1737 std::string /* url */, 1738 std::string /* protocol */) 1739 1740 // This message is a reply to WebSocket_Close. If the operation fails, 1741 // WebSocket_CloseReply is issued immediately and it contains PP_ERROR_FAILED. 1742 // Otherwise, CloseReply will be issued after the closing handshake is 1743 // finished. All arguments will be valid iff the result is PP_OK and it means 1744 // that the client initiated closing handshake is finished gracefully. 1745 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_CloseReply, 1746 uint64_t /* buffered_amount */, 1747 bool /* was_clean */, 1748 uint16_t /* code */, 1749 std::string /* reason */) 1750 1751 // Unsolicited reply message to transmit a receiving text frame. 1752 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveTextReply, 1753 std::string /* message */) 1754 1755 // Unsolicited reply message to transmit a receiving binary frame. 1756 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveBinaryReply, 1757 std::vector<uint8_t> /* message */) 1758 1759 // Unsolicited reply message to notify a error on underlying network connetion. 1760 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_WebSocket_ErrorReply) 1761 1762 // Unsolicited reply message to update the buffered amount value. 1763 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_BufferedAmountReply, 1764 uint64_t /* buffered_amount */) 1765 1766 // Unsolicited reply message to update |state| because of incoming external 1767 // events, e.g., protocol error, or unexpected network closure. 1768 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_StateReply, 1769 int32_t /* state */) 1770 1771 // Unsolicited reply message to notify that the connection is closed without 1772 // any WebSocket_Close request. Server initiated closing handshake or 1773 // unexpected network errors will invoke this message. 1774 IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_ClosedReply, 1775 uint64_t /* buffered_amount */, 1776 bool /* was_clean */, 1777 uint16_t /* code */, 1778 std::string /* reason */) 1779 1780 #if !defined(OS_NACL) && !defined(NACL_WIN64) 1781 1782 // Audio input. 1783 IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Create) 1784 IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open, 1785 std::string /* device_id */, 1786 PP_AudioSampleRate /* sample_rate */, 1787 uint32_t /* sample_frame_count */) 1788 // Reply to an Open call. This supplies a socket handle and a shared memory 1789 // handle. Both handles are passed in the ReplyParams struct. 1790 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioInput_OpenReply) 1791 IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioInput_StartOrStop, bool /* capture */) 1792 IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Close) 1793 1794 // BrowserFont ----------------------------------------------------------------- 1795 1796 IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_Create) 1797 1798 // Requests that the browser reply with the list of font families via 1799 // PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply. 1800 IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_GetFontFamilies) 1801 1802 // Reply to PpapiHostMsg_BrowserFontSingleton_GetFontFamilies with the font 1803 // family list. The |families| result is encoded by separating each family name 1804 // by a null character. 1805 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply, 1806 std::string /* families */) 1807 1808 // FileRef. 1809 // Requests that the browser reply with file system and path information about 1810 // the resource indicated in |params| which exists in the given 1811 // |child_process_id|. |routing_id| is sent so that the reply can be routed 1812 // properly in the renderer. 1813 // Only sent from the renderer to the browser. 1814 IPC_MESSAGE_CONTROL4(PpapiHostMsg_FileRef_GetInfoForRenderer, 1815 int /* routing_id */, 1816 int /* child_process_id */, 1817 int32_t /* sequence */, 1818 std::vector<PP_Resource> /* resources */) 1819 1820 // Reply to PpapiHostMsg_FileRef_GetInfoForRenderer with a sequence number for 1821 // invoking the right callback, |fs_type| which indicates the file system, and 1822 // path information in either |file_system_url_spec| (for internal file systems) 1823 // or |external_path| (for external file systems). 1824 // Only sent from the browser to the renderer. 1825 IPC_MESSAGE_ROUTED5(PpapiHostMsg_FileRef_GetInfoForRendererReply, 1826 int32_t /* sequence */, 1827 std::vector<PP_Resource> /* resources */, 1828 std::vector<PP_FileSystemType> /* fs_type */, 1829 std::vector<std::string> /* file_system_url_spec */, 1830 std::vector<base::FilePath> /* external_path */) 1831 1832 // Flash ----------------------------------------------------------------------- 1833 1834 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_Create) 1835 1836 // Message to notify the browser to register an update in system activity. 1837 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_UpdateActivity) 1838 1839 // Query the browser for the proxy server to use for the given URL. 1840 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_GetProxyForURL, std::string /* url */) 1841 // Reply message for GetProxyForURL containing the proxy server. 1842 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetProxyForURLReply, 1843 std::string /* proxy */) 1844 1845 // Queries the browser for the local time zone offset for a given time. 1846 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_GetLocalTimeZoneOffset, 1847 base::Time /* time */) 1848 // Reply to GetLocalTimeZoneOffset containing the time zone offset as a double. 1849 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetLocalTimeZoneOffsetReply, 1850 double /* offset */) 1851 1852 // Query the browser for the restrictions on storing Flash LSOs. 1853 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_GetLocalDataRestrictions) 1854 // Reply message for GetLocalDataRestrictions containing the restrictions to 1855 // use. These are PP_FlashLSORestrictions cast to an int32_t. 1856 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Flash_GetLocalDataRestrictionsReply, 1857 int32_t /* restrictions */) 1858 1859 // Notifies the renderer whether the Flash instance is in windowed mode. No 1860 // reply is sent. 1861 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_SetInstanceAlwaysOnTop, 1862 bool /* on_top */) 1863 1864 // Notifies the renderer to draw text to the given PP_ImageData resource. All 1865 // parmeters for drawing (including the resource to draw to) are contianed in 1866 // the PPBFlash_DrawGlyphs_Params structure. An error code is sent in a reply 1867 // message indicating success. 1868 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_DrawGlyphs, 1869 ppapi::proxy::PPBFlash_DrawGlyphs_Params /* params */) 1870 1871 // Notifies the renderer to navigate to the given URL contained in the 1872 // URLRequestInfoData. An error code is sent in a reply message indicating 1873 // success. 1874 IPC_MESSAGE_CONTROL3(PpapiHostMsg_Flash_Navigate, 1875 ppapi::URLRequestInfoData /* data */, 1876 std::string /* target */, 1877 bool /* from_user_action */) 1878 1879 // Queries the renderer on whether the plugin instance is the topmost element 1880 // in the area of the instance specified by the given PP_Rect. PP_OK is sent as 1881 // the error code in a reply message if the rect is topmost otherwise 1882 // PP_ERROR_FAILED is sent. 1883 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_IsRectTopmost, 1884 PP_Rect /* rect */) 1885 1886 // Notifies the renderer to invoke printing for the given plugin instance. No 1887 // reply is sent. 1888 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_InvokePrinting) 1889 1890 // DeviceEnumeration ----------------------------------------------------------- 1891 // Device enumeration messages used by audio input and video capture. 1892 IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices) 1893 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply, 1894 std::vector<ppapi::DeviceRefData> /* devices */) 1895 IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange, 1896 uint32_t /* callback_id */) 1897 IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange) 1898 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange, 1899 uint32_t /* callback_id */, 1900 std::vector<ppapi::DeviceRefData> /* devices */) 1901 1902 // Flash clipboard. 1903 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashClipboard_Create) 1904 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_RegisterCustomFormat, 1905 std::string /* format_name */) 1906 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_RegisterCustomFormatReply, 1907 uint32_t /* format */) 1908 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashClipboard_IsFormatAvailable, 1909 uint32_t /* clipboard_type */, 1910 uint32_t /* format */) 1911 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashClipboard_ReadData, 1912 uint32_t /* clipboard_type */, 1913 uint32_t /* format */) 1914 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_ReadDataReply, 1915 std::string /* result */) 1916 IPC_MESSAGE_CONTROL3(PpapiHostMsg_FlashClipboard_WriteData, 1917 uint32_t /* clipboard_type */, 1918 std::vector<uint32_t> /* formats */, 1919 std::vector<std::string> /* data */) 1920 1921 // Flash file. 1922 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_Create) 1923 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_OpenFile, 1924 ppapi::PepperFilePath /* path */, 1925 int /* pp_open_flags */) 1926 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_RenameFile, 1927 ppapi::PepperFilePath /* from_path */, 1928 ppapi::PepperFilePath /* to_path */) 1929 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFile_DeleteFileOrDir, 1930 ppapi::PepperFilePath /* path */, 1931 bool /* recursive */) 1932 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_CreateDir, 1933 ppapi::PepperFilePath /* path */) 1934 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_QueryFile, 1935 ppapi::PepperFilePath /* path */) 1936 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_QueryFileReply, 1937 base::PlatformFileInfo /* file_info */) 1938 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_GetDirContents, 1939 ppapi::PepperFilePath /* path */) 1940 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_GetDirContentsReply, 1941 ppapi::DirContents /* entries */) 1942 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_CreateTemporaryFile) 1943 1944 // Flash font file. 1945 IPC_MESSAGE_CONTROL2(PpapiHostMsg_FlashFontFile_Create, 1946 ppapi::proxy::SerializedFontDescription /* description */, 1947 PP_PrivateFontCharset /* charset */) 1948 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFontFile_GetFontTable, 1949 uint32_t /* table */) 1950 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFontFile_GetFontTableReply, 1951 std::string /* output */) 1952 1953 // Flash fullscreen. 1954 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFullscreen_Create) 1955 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFullscreen_SetFullscreen, 1956 bool /* fullscreen */) 1957 1958 // FlashMenu ------------------------------------------------------------------ 1959 1960 // Creates the flash menu with the given data. 1961 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Create, 1962 ppapi::proxy::SerializedFlashMenu /* menu_data */) 1963 1964 // Shows the menu at the given location relative to the plugin instance. 1965 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Show, 1966 PP_Point /* location */) 1967 1968 // Reply to a show command. If the resource reply is PP_OK, the selected_id 1969 // will be the menu item ID chosen by the user. 1970 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashMenu_ShowReply, 1971 int32_t /* selected_id */) 1972 1973 // PDF ------------------------------------------------------------------------ 1974 1975 // Creates the PDF resource. 1976 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_Create) 1977 1978 // Requests the localized string for the given ID. 1979 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_GetLocalizedString, 1980 PP_ResourceString /* string_id */) 1981 // Reply for PpapiHostMsg_PDF_GetLocalizedString containing the localized 1982 // string. 1983 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_PDF_GetLocalizedStringReply, 1984 std::string /* localized_string*/) 1985 1986 // Notifies the renderer that the PDF started loading. 1987 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_DidStartLoading) 1988 1989 // Notifies the renderer that the PDF stopped loading. 1990 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_DidStopLoading) 1991 1992 // Sets any restrictions on the PDF content. 1993 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetContentRestriction, 1994 int /* restrictions */) 1995 1996 // Requests that the specified action be recorded with UMA. 1997 IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_UserMetricsRecordAction, 1998 std::string /* action */) 1999 2000 // Notifies the renderer that the current PDF uses an unsupported feature. 2001 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_HasUnsupportedFeature) 2002 2003 // Notifies the renderer to print the current PDF. 2004 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_Print) 2005 2006 // Notifies the renderer to save the current PDF. 2007 IPC_MESSAGE_CONTROL0(PpapiHostMsg_PDF_SaveAs) 2008 2009 // Requests a resource image for the plugin at a particular scale. 2010 IPC_MESSAGE_CONTROL2(PpapiHostMsg_PDF_GetResourceImage, 2011 PP_ResourceImage /* image_id */, 2012 float /* scale */) 2013 2014 // Reply for PpapiHostMsg_PDF_GetResourceImage containing the host resource id 2015 // of the image and a PP_ImageDataDesc which describes the image. Also carries 2016 // a shared memory handle pointing to the memory containg the image. 2017 IPC_MESSAGE_CONTROL2(PpapiPluginMsg_PDF_GetResourceImageReply, 2018 ppapi::HostResource /* resource_id */, 2019 PP_ImageDataDesc /* image_data_desc */) 2020 2021 // VideoCapture_Dev, plugin -> host 2022 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Create) 2023 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StartCapture) 2024 IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoCapture_ReuseBuffer, 2025 uint32_t /* buffer */) 2026 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StopCapture) 2027 IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Close) 2028 2029 // VideoCapture_Dev, plugin -> host -> plugin 2030 IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoCapture_Open, 2031 std::string /* device_id */, 2032 PP_VideoCaptureDeviceInfo_Dev /* requested_info */, 2033 uint32_t /* buffer_count */) 2034 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoCapture_OpenReply) 2035 2036 // VideoCapture_Dev, host -> plugin 2037 IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoCapture_OnDeviceInfo, 2038 PP_VideoCaptureDeviceInfo_Dev /* info */, 2039 std::vector<ppapi::HostResource> /* buffers */, 2040 uint32_t /* buffer_size */) 2041 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnStatus, 2042 uint32_t /* status */) 2043 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnError, 2044 uint32_t /* error */) 2045 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnBufferReady, 2046 uint32_t /* buffer */) 2047 2048 // Talk ------------------------------------------------------------------------ 2049 2050 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_Create) 2051 IPC_MESSAGE_CONTROL1(PpapiHostMsg_Talk_RequestPermission, 2052 PP_TalkPermission /* permission */) 2053 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_RequestPermissionReply) 2054 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_StartRemoting) 2055 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_StartRemotingReply) 2056 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Talk_StopRemoting) 2057 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Talk_StopRemotingReply) 2058 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Talk_NotifyEvent, PP_TalkEvent /* event */) 2059 2060 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) 2061