summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-04 06:19:37 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-04 06:19:37 +0000
commitc6562f4b883b37a288205a206bdadf9a37978bf3 (patch)
tree1a576398bcb2cd32e972449068bc1b66324df84f /content
parent5d2cded762eacf51f77021b3de61de430f50a9d8 (diff)
downloadchromium_src-c6562f4b883b37a288205a206bdadf9a37978bf3.zip
chromium_src-c6562f4b883b37a288205a206bdadf9a37978bf3.tar.gz
chromium_src-c6562f4b883b37a288205a206bdadf9a37978bf3.tar.bz2
Add glue for supporting custom MIME types in DataTransfer.
BUG=31037 TEST=none in this patch, will be landed in WebKit as layout tests. Review URL: http://codereview.chromium.org/8775025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112927 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/clipboard_message_filter.cc6
-rw-r--r--content/browser/renderer_host/clipboard_message_filter.h3
-rw-r--r--content/common/clipboard_messages.h4
-rw-r--r--content/renderer/renderer_clipboard_client.cc7
-rw-r--r--content/renderer/renderer_clipboard_client.h3
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;
};