15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message file, so no include guard. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/memory/shared_memory.h" 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "content/common/clipboard_format.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/common_param_traits.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/clipboard/clipboard.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START ClipboardMsgStart 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)IPC_ENUM_TRAITS_MAX_VALUE(content::ClipboardFormat, 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) content::CLIPBOARD_FORMAT_LAST) 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_ENUM_TRAITS_MAX_VALUE(ui::ClipboardType, ui::CLIPBOARD_TYPE_LAST) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Clipboard IPC messages sent from the renderer to the browser. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This message is used when the object list does not contain a bitmap. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ClipboardHostMsg_WriteObjectsAsync, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::Clipboard::ObjectMap /* objects */) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This message is used when the object list contains a bitmap. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// It is synchronized so that the renderer knows when it is safe to 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// free the shared memory used to transfer the bitmap. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL2_0(ClipboardHostMsg_WriteObjectsSync, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::Clipboard::ObjectMap /* objects */, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::SharedMemoryHandle /* bitmap handle */) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_GetSequenceNumber, 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint64 /* result */) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_IsFormatAvailable, 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) content::ClipboardFormat /* format */, 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* result */) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ClipboardHostMsg_Clear, 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadAvailableTypes, 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 44a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) std::vector<base::string16> /* types */, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* contains filenames */) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadText, 474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 48a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 /* result */) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_4(ClipboardHostMsg_ReadHTML, 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 51a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 /* markup */, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL /* url */, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32 /* fragment start */, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32 /* fragment end */) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_1(ClipboardHostMsg_ReadRTF, 564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string /* result */) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadImage, 594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::SharedMemoryHandle /* PNG-encoded image */, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32 /* image size */) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_ReadCustomData, 634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::ClipboardType /* type */, 64a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 /* type */, 65a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 /* result */) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(ClipboardHostMsg_FindPboardWriteStringAsync, 69a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 /* text */) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 71