Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Multiply-included message header, no traditional include guard. | 5 // Multiply-included message header, no traditional include guard. |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
| 11 #include "base/process/process.h" | 11 #include "base/process/process.h" |
| 12 #include "base/values.h" | 12 #include "base/values.h" |
| 13 #include "cc/output/compositor_frame.h" | 13 #include "cc/output/compositor_frame.h" |
| 14 #include "cc/output/compositor_frame_ack.h" | 14 #include "cc/output/compositor_frame_ack.h" |
| 15 #include "content/common/content_export.h" | 15 #include "content/common/content_export.h" |
| 16 #include "content/common/content_param_traits.h" | 16 #include "content/common/content_param_traits.h" |
| 17 #include "content/common/edit_command.h" | 17 #include "content/common/edit_command.h" |
| 18 #include "content/common/frame_param_macros.h" | |
| 18 #include "content/public/common/browser_plugin_permission_type.h" | 19 #include "content/public/common/browser_plugin_permission_type.h" |
| 19 #include "content/public/common/common_param_traits.h" | 20 #include "content/public/common/common_param_traits.h" |
| 20 #include "content/public/common/drop_data.h" | 21 #include "content/public/common/drop_data.h" |
| 21 #include "ipc/ipc_channel_handle.h" | 22 #include "ipc/ipc_channel_handle.h" |
| 22 #include "ipc/ipc_message_macros.h" | 23 #include "ipc/ipc_message_macros.h" |
| 23 #include "ipc/ipc_message_utils.h" | 24 #include "ipc/ipc_message_utils.h" |
| 24 #include "third_party/skia/include/core/SkBitmap.h" | 25 #include "third_party/skia/include/core/SkBitmap.h" |
| 25 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" | 26 #include "third_party/WebKit/public/web/WebCompositionUnderline.h" |
| 26 #include "third_party/WebKit/public/web/WebDragOperation.h" | 27 #include "third_party/WebKit/public/web/WebDragOperation.h" |
| 27 #include "third_party/WebKit/public/web/WebDragStatus.h" | 28 #include "third_party/WebKit/public/web/WebDragStatus.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 78 IPC_STRUCT_MEMBER(BrowserPluginHostMsg_ResizeGuest_Params, | 79 IPC_STRUCT_MEMBER(BrowserPluginHostMsg_ResizeGuest_Params, |
| 79 resize_guest_params) | 80 resize_guest_params) |
| 80 IPC_STRUCT_END() | 81 IPC_STRUCT_END() |
| 81 | 82 |
| 82 IPC_STRUCT_BEGIN(BrowserPluginMsg_Attach_ACK_Params) | 83 IPC_STRUCT_BEGIN(BrowserPluginMsg_Attach_ACK_Params) |
| 83 IPC_STRUCT_MEMBER(std::string, storage_partition_id) | 84 IPC_STRUCT_MEMBER(std::string, storage_partition_id) |
| 84 IPC_STRUCT_MEMBER(bool, persist_storage) | 85 IPC_STRUCT_MEMBER(bool, persist_storage) |
| 85 IPC_STRUCT_MEMBER(std::string, name) | 86 IPC_STRUCT_MEMBER(std::string, name) |
| 86 IPC_STRUCT_END() | 87 IPC_STRUCT_END() |
| 87 | 88 |
| 88 IPC_STRUCT_BEGIN(BrowserPluginMsg_BuffersSwapped_Params) | |
| 89 IPC_STRUCT_MEMBER(gfx::Size, size) | |
| 90 IPC_STRUCT_MEMBER(gfx::Rect, damage_rect) | |
| 91 IPC_STRUCT_MEMBER(std::string, mailbox_name) | |
| 92 IPC_STRUCT_MEMBER(int, route_id) | |
| 93 IPC_STRUCT_MEMBER(int, host_id) | |
| 94 IPC_STRUCT_END() | |
| 95 | |
| 96 IPC_STRUCT_BEGIN(BrowserPluginMsg_UpdateRect_Params) | 89 IPC_STRUCT_BEGIN(BrowserPluginMsg_UpdateRect_Params) |
| 97 // The sequence number of the damage buffer used by the browser process. | 90 // The sequence number of the damage buffer used by the browser process. |
| 98 IPC_STRUCT_MEMBER(uint32, damage_buffer_sequence_id) | 91 IPC_STRUCT_MEMBER(uint32, damage_buffer_sequence_id) |
| 99 | 92 |
| 100 // The position and size of the bitmap. | 93 // The position and size of the bitmap. |
| 101 IPC_STRUCT_MEMBER(gfx::Rect, bitmap_rect) | 94 IPC_STRUCT_MEMBER(gfx::Rect, bitmap_rect) |
| 102 | 95 |
| 103 // The scroll delta. Only one of the delta components can be non-zero, and if | 96 // The scroll delta. Only one of the delta components can be non-zero, and if |
| 104 // they are both zero, then it means there is no scrolling and the scroll_rect | 97 // they are both zero, then it means there is no scrolling and the scroll_rect |
| 105 // is ignored. | 98 // is ignored. |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 221 | 214 |
| 222 // A BrowserPlugin sends this to BrowserPluginEmbedder (browser process) when it | 215 // A BrowserPlugin sends this to BrowserPluginEmbedder (browser process) when it |
| 223 // wants to navigate to a given src URL. If a guest WebContents already exists, | 216 // wants to navigate to a given src URL. If a guest WebContents already exists, |
| 224 // it will navigate that WebContents. If not, it will create the WebContents, | 217 // it will navigate that WebContents. If not, it will create the WebContents, |
| 225 // associate it with the BrowserPluginGuest, and navigate it to the requested | 218 // associate it with the BrowserPluginGuest, and navigate it to the requested |
| 226 // URL. | 219 // URL. |
| 227 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateGuest, | 220 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateGuest, |
| 228 int /* instance_id*/, | 221 int /* instance_id*/, |
| 229 std::string /* src */) | 222 std::string /* src */) |
| 230 | 223 |
| 231 // Acknowledge that we presented a HW buffer and provide a sync point | |
| 232 // to specify the location in the command stream when the compositor | |
| 233 // is no longer using it. | |
| 234 IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_BuffersSwappedACK, | |
| 235 int /* instance_id */, | |
| 236 int /* route_id */, | |
| 237 int /* gpu_host_id */, | |
| 238 std::string /* mailbox_name */, | |
| 239 uint32 /* sync_point */) | |
| 240 | |
| 241 IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_CopyFromCompositingSurfaceAck, | 224 IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_CopyFromCompositingSurfaceAck, |
| 242 int /* instance_id */, | 225 int /* instance_id */, |
| 243 int /* request_id */, | 226 int /* request_id */, |
| 244 SkBitmap); | 227 SkBitmap); |
| 245 | 228 |
| 246 // Acknowledge that we presented an ubercomp frame. | |
| 247 IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_CompositorFrameACK, | |
| 248 int /* instance_id */, | |
| 249 int /* route_id */, | |
| 250 uint32 /* output_surface_id */, | |
| 251 int /* renderer_host_id */, | |
| 252 cc::CompositorFrameAck /* ack */) | |
| 253 | |
| 254 // Notify the guest renderer that some resources given to the embededer | 229 // Notify the guest renderer that some resources given to the embededer |
| 255 // are not used any more. | 230 // are not used any more. |
| 256 IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_ReclaimCompositorResources, | 231 IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_ReclaimCompositorResources, |
| 257 int /* instance_id */, | 232 int /* instance_id */, |
| 258 int /* route_id */, | 233 int /* route_id */, |
| 259 uint32 /* output_surface_id */, | 234 uint32 /* output_surface_id */, |
| 260 int /* renderer_host_id */, | 235 int /* renderer_host_id */, |
| 261 cc::CompositorFrameAck /* ack */) | 236 cc::CompositorFrameAck /* ack */) |
| 262 | 237 |
| 263 // When a BrowserPlugin has been removed from the embedder's DOM, it informs | 238 // When a BrowserPlugin has been removed from the embedder's DOM, it informs |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 382 IPC_MESSAGE_ROUTED2(BrowserPluginMsg_PluginAtPositionRequest, | 357 IPC_MESSAGE_ROUTED2(BrowserPluginMsg_PluginAtPositionRequest, |
| 383 int /* request_id */, | 358 int /* request_id */, |
| 384 gfx::Point /* position */) | 359 gfx::Point /* position */) |
| 385 | 360 |
| 386 // Informs BrowserPlugin of a new name set for the top-level guest frame. | 361 // Informs BrowserPlugin of a new name set for the top-level guest frame. |
| 387 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_UpdatedName, | 362 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_UpdatedName, |
| 388 int /* instance_id */, | 363 int /* instance_id */, |
| 389 std::string /* name */) | 364 std::string /* name */) |
| 390 | 365 |
| 391 // Guest renders into an FBO with textures provided by the embedder. | 366 // Guest renders into an FBO with textures provided by the embedder. |
| 392 // When HW accelerated buffers are swapped in the guest, the message | 367 // BrowserPlugin shares mostly the same logic as out-of-process RenderFrames but |
| 393 // is forwarded to the embedder to notify it of a new texture | 368 // because BrowserPlugins implement custom a second leverl of routing logic, |
|
Fady Samuel
2013/12/19 21:35:01
s/leverl/level
awong
2013/12/20 23:53:38
Done.
| |
| 394 // available for compositing. | 369 // the IPCs need to be annotated with an extra instance_id. These messages |
| 370 // provide that extra id. | |
| 395 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_BuffersSwapped, | 371 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_BuffersSwapped, |
| 396 int /* instance_id */, | 372 int /* instance_id */, |
| 397 BrowserPluginMsg_BuffersSwapped_Params) | 373 FrameMsg_BuffersSwapped_Params /* params */) |
| 398 | 374 |
| 399 IPC_MESSAGE_CONTROL5(BrowserPluginMsg_CompositorFrameSwapped, | 375 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompositorFrameSwapped, |
| 400 int /* instance_id */, | 376 int /* instance_id */, |
| 401 cc::CompositorFrame /* frame */, | 377 FrameMsg_CompositorFrameSwapped_Params /* params */) |
| 402 int /* route_id */, | |
| 403 uint32 /* output_surface_id */, | |
| 404 int /* renderer_host_id */) | |
| 405 | 378 |
| 406 // Forwards a PointerLock Unlock request to the BrowserPlugin. | 379 // Forwards a PointerLock Unlock request to the BrowserPlugin. |
| 407 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetMouseLock, | 380 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetMouseLock, |
| 408 int /* instance_id */, | 381 int /* instance_id */, |
| 409 bool /* enable */) | 382 bool /* enable */) |
| 383 | |
| 384 // See comment about BrowserPluginMsg_BuffersSwapped and | |
| 385 // BrowserPluginMsg_CompositorFrameSwapped for how these related | |
| 386 // to the FrameHostMsg variants. | |
| 387 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_BuffersSwappedACK, | |
| 388 int /* instance_id */, | |
| 389 FrameHostMsg_BuffersSwappedACK_Params /* params */) | |
| 390 | |
| 391 // Acknowledge that we presented an ubercomp frame. | |
| 392 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_CompositorFrameSwappedACK, | |
| 393 int /* instance_id */, | |
| 394 FrameHostMsg_CompositorFrameSwappedACK_Params /* params */) | |
| OLD | NEW |