summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r--chrome/renderer/render_view.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index af8ddbf..1da9696 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -356,6 +356,7 @@ void RenderView::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(ViewMsg_Redo, OnRedo)
IPC_MESSAGE_HANDLER(ViewMsg_Cut, OnCut)
IPC_MESSAGE_HANDLER(ViewMsg_Copy, OnCopy)
+ IPC_MESSAGE_HANDLER(ViewMsg_CopyToFindPboard, OnCopyToFindPboard)
IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste)
IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace)
IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellPanel, OnToggleSpellPanel)
@@ -830,6 +831,22 @@ void RenderView::OnCopy() {
UserMetricsRecordAction(L"Copy");
}
+void RenderView::OnCopyToFindPboard() {
+ if (!webview())
+ return;
+
+ // Since the find pasteboard supports only plain text, this can be simpler
+ // than the |OnCopy()| case.
+ WebFrame* frame = webview()->GetFocusedFrame();
+ if (frame->hasSelection()) {
+ string16 selection = frame->selectionAsText();
+ RenderThread::current()->Send(
+ new ViewHostMsg_ClipboardFindPboardWriteStringAsync(selection));
+ }
+
+ UserMetricsRecordAction(L"CopyToFindPboard");
+}
+
void RenderView::OnPaste() {
if (!webview())
return;