• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 file, so no include guard.
6 
7 #include <string>
8 #include <vector>
9 
10 #include "base/memory/shared_memory.h"
11 #include "content/common/clipboard_format.h"
12 #include "content/public/common/common_param_traits.h"
13 #include "ipc/ipc_message_macros.h"
14 #include "ui/base/clipboard/clipboard.h"
15 
16 #define IPC_MESSAGE_START ClipboardMsgStart
17 
18 IPC_ENUM_TRAITS_MAX_VALUE(content::ClipboardFormat,
19                           content::CLIPBOARD_FORMAT_LAST)
20 IPC_ENUM_TRAITS_MAX_VALUE(ui::ClipboardType, ui::CLIPBOARD_TYPE_LAST)
21 
22 // Clipboard IPC messages sent from the renderer to the browser.
23 
24 // This message is used when the object list does not contain a bitmap.
25 IPC_MESSAGE_CONTROL1(ClipboardHostMsg_WriteObjectsAsync,
26                      ui::Clipboard::ObjectMap /* objects */)
27 // This message is used when the object list contains a bitmap.
28 // It is synchronized so that the renderer knows when it is safe to
29 // free the shared memory used to transfer the bitmap.
30 IPC_SYNC_MESSAGE_CONTROL2_0(ClipboardHostMsg_WriteObjectsSync,
31                             ui::Clipboard::ObjectMap /* objects */,
32                             base::SharedMemoryHandle /* bitmap handle */)
33 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_GetSequenceNumber,
34                             ui::ClipboardType /* type */,
35                             uint64 /* result */)
36 IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_IsFormatAvailable,
37                             content::ClipboardFormat /* format */,
38                             ui::ClipboardType /* type */,
39                             bool /* result */)
40 IPC_MESSAGE_CONTROL1(ClipboardHostMsg_Clear,
41                      ui::ClipboardType /* type */)
42 IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadAvailableTypes,
43                             ui::ClipboardType /* type */,
44                             std::vector<base::string16> /* types */,
45                             bool /* contains filenames */)
46 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadText,
47                             ui::ClipboardType /* type */,
48                             base::string16 /* result */)
49 IPC_SYNC_MESSAGE_CONTROL1_4(ClipboardHostMsg_ReadHTML,
50                             ui::ClipboardType /* type */,
51                             base::string16 /* markup */,
52                             GURL /* url */,
53                             uint32 /* fragment start */,
54                             uint32 /* fragment end */)
55 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadRTF,
56                             ui::ClipboardType /* type */,
57                             std::string /* result */)
58 IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadImage,
59                             ui::ClipboardType /* type */,
60                             base::SharedMemoryHandle /* PNG-encoded image */,
61                             uint32 /* image size */)
62 IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_ReadCustomData,
63                             ui::ClipboardType /* type */,
64                             base::string16 /* type */,
65                             base::string16 /* result */)
66 
67 #if defined(OS_MACOSX)
68 IPC_MESSAGE_CONTROL1(ClipboardHostMsg_FindPboardWriteStringAsync,
69                      base::string16 /* text */)
70 #endif
71