Home | History | Annotate | Download | only in common
      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/public/common/common_param_traits.h"
     12 #include "ipc/ipc_message_macros.h"
     13 #include "ipc/ipc_param_traits.h"
     14 #include "ui/base/clipboard/clipboard.h"
     15 
     16 #define IPC_MESSAGE_START ClipboardMsgStart
     17 
     18 #ifndef CONTENT_COMMON_CLIPBOARD_MESSAGES_H_
     19 #define CONTENT_COMMON_CLIPBOARD_MESSAGES_H_
     20 
     21 namespace IPC {
     22 
     23 template<>
     24 struct ParamTraits<ui::Clipboard::FormatType> {
     25   typedef ui::Clipboard::FormatType param_type;
     26   static void Write(Message* m, const param_type& p);
     27   static bool Read(const Message* m, PickleIterator* iter, param_type* r);
     28   static void Log(const param_type& p, std::string* l);
     29 };
     30 
     31 }  // namespace IPC
     32 
     33 #endif  // CONTENT_COMMON_CLIPBOARD_MESSAGES_H_
     34 
     35 IPC_ENUM_TRAITS(ui::ClipboardType)
     36 
     37 // Clipboard IPC messages sent from the renderer to the browser.
     38 
     39 // This message is used when the object list does not contain a bitmap.
     40 IPC_MESSAGE_CONTROL1(ClipboardHostMsg_WriteObjectsAsync,
     41                      ui::Clipboard::ObjectMap /* objects */)
     42 // This message is used when the object list contains a bitmap.
     43 // It is synchronized so that the renderer knows when it is safe to
     44 // free the shared memory used to transfer the bitmap.
     45 IPC_SYNC_MESSAGE_CONTROL2_0(ClipboardHostMsg_WriteObjectsSync,
     46                             ui::Clipboard::ObjectMap /* objects */,
     47                             base::SharedMemoryHandle /* bitmap handle */)
     48 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_GetSequenceNumber,
     49                             ui::ClipboardType /* type */,
     50                             uint64 /* result */)
     51 IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_IsFormatAvailable,
     52                             ui::Clipboard::FormatType /* format */,
     53                             ui::ClipboardType /* type */,
     54                             bool /* result */)
     55 IPC_MESSAGE_CONTROL1(ClipboardHostMsg_Clear,
     56                      ui::ClipboardType /* type */)
     57 IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadAvailableTypes,
     58                             ui::ClipboardType /* type */,
     59                             std::vector<base::string16> /* types */,
     60                             bool /* contains filenames */)
     61 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadText,
     62                             ui::ClipboardType /* type */,
     63                             base::string16 /* result */)
     64 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadAsciiText,
     65                             ui::ClipboardType /* type */,
     66                             std::string /* result */)
     67 IPC_SYNC_MESSAGE_CONTROL1_4(ClipboardHostMsg_ReadHTML,
     68                             ui::ClipboardType /* type */,
     69                             base::string16 /* markup */,
     70                             GURL /* url */,
     71                             uint32 /* fragment start */,
     72                             uint32 /* fragment end */)
     73 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadRTF,
     74                             ui::ClipboardType /* type */,
     75                             std::string /* result */)
     76 IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadImage,
     77                             ui::ClipboardType /* type */,
     78                             base::SharedMemoryHandle /* PNG-encoded image */,
     79                             uint32 /* image size */)
     80 IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_ReadCustomData,
     81                             ui::ClipboardType /* type */,
     82                             base::string16 /* type */,
     83                             base::string16 /* result */)
     84 IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadData,
     85                             ui::Clipboard::FormatType /* format */,
     86                             std::string /* result */)
     87 
     88 #if defined(OS_MACOSX)
     89 IPC_MESSAGE_CONTROL1(ClipboardHostMsg_FindPboardWriteStringAsync,
     90                      base::string16 /* text */)
     91 #endif
     92