diff options
Diffstat (limited to 'content')
5 files changed, 23 insertions, 0 deletions
diff --git a/content/browser/renderer_host/clipboard_message_filter.cc b/content/browser/renderer_host/clipboard_message_filter.cc index cd4b6df..1825b34 100644 --- a/content/browser/renderer_host/clipboard_message_filter.cc +++ b/content/browser/renderer_host/clipboard_message_filter.cc @@ -62,6 +62,7 @@ bool ClipboardMessageFilter::OnMessageReceived(const IPC::Message& message, IPC_MESSAGE_HANDLER(ClipboardHostMsg_ReadAsciiText, OnReadAsciiText) IPC_MESSAGE_HANDLER(ClipboardHostMsg_ReadHTML, OnReadHTML) IPC_MESSAGE_HANDLER_DELAY_REPLY(ClipboardHostMsg_ReadImage, OnReadImage) + IPC_MESSAGE_HANDLER(ClipboardHostMsg_ReadCustomData, OnReadCustomData) #if defined(OS_MACOSX) IPC_MESSAGE_HANDLER(ClipboardHostMsg_FindPboardWriteStringAsync, OnFindPboardWriteString) @@ -195,6 +196,11 @@ void ClipboardMessageFilter::OnReadImageReply( Send(reply_msg); } +void ClipboardMessageFilter::OnReadCustomData( + ui::Clipboard::Buffer buffer, const string16& type, string16* result) { + GetClipboard()->ReadCustomData(buffer, type, result); +} + // static ui::Clipboard* ClipboardMessageFilter::GetClipboard() { // We have a static instance of the clipboard service for use by all message diff --git a/content/browser/renderer_host/clipboard_message_filter.h b/content/browser/renderer_host/clipboard_message_filter.h index b4f24bb..72169e0 100644 --- a/content/browser/renderer_host/clipboard_message_filter.h +++ b/content/browser/renderer_host/clipboard_message_filter.h @@ -44,6 +44,9 @@ class ClipboardMessageFilter : public BrowserMessageFilter { uint32* fragment_start, uint32* fragment_end); void OnReadImage(ui::Clipboard::Buffer buffer, IPC::Message* reply_msg); void OnReadImageReply(const SkBitmap& bitmap, IPC::Message* reply_msg); + void OnReadCustomData(ui::Clipboard::Buffer buffer, + const string16& type, + string16* result); #if defined(OS_MACOSX) void OnFindPboardWriteString(const string16& text); #endif diff --git a/content/common/clipboard_messages.h b/content/common/clipboard_messages.h index 93e26fe..00497dc 100644 --- a/content/common/clipboard_messages.h +++ b/content/common/clipboard_messages.h @@ -55,6 +55,10 @@ IPC_SYNC_MESSAGE_CONTROL1_2(ClipboardHostMsg_ReadImage, ui::Clipboard::Buffer /* buffer */, base::SharedMemoryHandle /* PNG-encoded image */, uint32 /* image size */) +IPC_SYNC_MESSAGE_CONTROL2_1(ClipboardHostMsg_ReadCustomData, + ui::Clipboard::Buffer /* buffer */, + string16 /* type */, + string16 /* result */) #if defined(OS_MACOSX) IPC_MESSAGE_CONTROL1(ClipboardHostMsg_FindPboardWriteStringAsync, diff --git a/content/renderer/renderer_clipboard_client.cc b/content/renderer/renderer_clipboard_client.cc index d87d527..87e8b60 100644 --- a/content/renderer/renderer_clipboard_client.cc +++ b/content/renderer/renderer_clipboard_client.cc @@ -169,6 +169,13 @@ void RendererClipboardClient::ReadImage(ui::Clipboard::Buffer buffer, } } +void RendererClipboardClient::ReadCustomData(ui::Clipboard::Buffer buffer, + const string16& type, + string16* data) { + RenderThreadImpl::current()->Send( + new ClipboardHostMsg_ReadCustomData(buffer, type, data)); +} + webkit_glue::ClipboardClient::WriteContext* RendererClipboardClient::CreateWriteContext() { return new RendererClipboardWriteContext; diff --git a/content/renderer/renderer_clipboard_client.h b/content/renderer/renderer_clipboard_client.h index df0ab07..bf1de96 100644 --- a/content/renderer/renderer_clipboard_client.h +++ b/content/renderer/renderer_clipboard_client.h @@ -30,6 +30,9 @@ class RendererClipboardClient : public webkit_glue::ClipboardClient { uint32* fragment_end) OVERRIDE; virtual void ReadImage(ui::Clipboard::Buffer buffer, std::string* data) OVERRIDE; + virtual void ReadCustomData(ui::Clipboard::Buffer buffer, + const string16& type, + string16* data) OVERRIDE; virtual WriteContext* CreateWriteContext() OVERRIDE; }; |