Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index d9c65a9e7e0984ccf337ee2b94470f020c5e4316..12cf2aec16f00a836832d6bafc52b0d575c70c3d 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1034,6 +1034,27 @@ void RenderViewImpl::PluginFocusChanged(bool focused, int plugin_id) { |
Send(new ViewHostMsg_PluginFocusChanged(routing_id(), focused, plugin_id)); |
} |
+void RenderViewImpl::OnGetSmartClipDataFromRect(const gfx::Rect& rect) { |
+ if (webview()) { |
Alexei Svitkine (slow)
2014/06/19 14:55:09
Nit: Reverse cond and early return instead.
|
+ std::string text = webview()->getSmartClipData(rect).utf8(); |
Alexei Svitkine (slow)
2014/06/19 14:55:09
Is it possible to iterate on the chars without con
|
+ // Skips to the first valid char. SmartClip returns a string |
+ // of Text along with its position |
Alexei Svitkine (slow)
2014/06/19 14:55:09
Nit: Missing punctuation at the end.
Also, the co
|
+ if (text.size()) { |
Alexei Svitkine (slow)
2014/06/19 14:55:09
Nit: !text.empty(), same below.
|
+ size_t chars_to_skip = 0; |
+ for (size_t i = 0; i < text.length(); ++i) { |
+ if (isalpha(text[i])) { |
+ chars_to_skip = i; |
+ break; |
+ } |
+ } |
+ if (text.size() && chars_to_skip > 0) { |
+ std::string trimmed_text = text.substr(chars_to_skip, text.length()); |
+ Send(new ViewMsg_ExtractedDataFromRect(routing_id(), trimmed_text)); |
+ } |
+ } |
+ } |
+} |
+ |
void RenderViewImpl::StartPluginIme() { |
IPC::Message* msg = new ViewHostMsg_StartPluginIme(routing_id()); |
// This message can be sent during event-handling, and needs to be delivered |
@@ -1136,15 +1157,18 @@ bool RenderViewImpl::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(ViewMsg_WindowSnapshotCompleted, |
OnWindowSnapshotCompleted) |
IPC_MESSAGE_HANDLER(ViewMsg_SelectWordAroundCaret, OnSelectWordAroundCaret) |
+ |
#if defined(OS_ANDROID) |
+ IPC_MESSAGE_HANDLER(ViewMsg_ExtractSmartClipData, OnExtractSmartClipData) |
IPC_MESSAGE_HANDLER(InputMsg_ActivateNearestFindResult, |
OnActivateNearestFindResult) |
IPC_MESSAGE_HANDLER(ViewMsg_FindMatchRects, OnFindMatchRects) |
IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItems, OnSelectPopupMenuItems) |
IPC_MESSAGE_HANDLER(ViewMsg_UpdateTopControlsState, |
OnUpdateTopControlsState) |
- IPC_MESSAGE_HANDLER(ViewMsg_ExtractSmartClipData, OnExtractSmartClipData) |
#elif defined(OS_MACOSX) |
+ IPC_MESSAGE_HANDLER(ViewMsg_GetSmartClipDataFromRect, |
+ OnGetSmartClipDataFromRect) |
IPC_MESSAGE_HANDLER(ViewMsg_PluginImeCompositionCompleted, |
OnPluginImeCompositionCompleted) |
IPC_MESSAGE_HANDLER(ViewMsg_SelectPopupMenuItem, OnSelectPopupMenuItem) |