diff options
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 17 |
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; |