Index: chrome/renderer/render_view.cc |
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc |
index 9b71058a5375da46a4f53eb6786e1754e80be856..946467291f64866776e3364732ec70dfb5d44db1 100644 |
--- a/chrome/renderer/render_view.cc |
+++ b/chrome/renderer/render_view.cc |
@@ -195,6 +195,7 @@ |
#include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebRenderTheme.h" |
#elif defined(OS_MACOSX) |
#include "skia/ext/skia_utils_mac.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/mac/WebTextHelper.h" |
#endif |
using WebKit::WebAccessibilityCache; |
@@ -1070,6 +1071,11 @@ bool RenderView::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(ViewMsg_WindowFrameChanged, OnWindowFrameChanged) |
IPC_MESSAGE_HANDLER(ViewMsg_PluginImeCompositionConfirmed, |
OnPluginImeCompositionConfirmed) |
+ IPC_MESSAGE_HANDLER(ViewMsg_CharacterIndexForPoint, |
+ OnCharacterIndexForPoint) |
+ IPC_MESSAGE_HANDLER(ViewMsg_FirstRectForCharacterRange, |
+ OnFirstRectForCharacterRange) |
+ IPC_MESSAGE_HANDLER(ViewMsg_StringForRange, OnStringForRange) |
#endif |
IPC_MESSAGE_HANDLER(ViewMsg_SetEditCommandsForNextKeyEvent, |
OnSetEditCommandsForNextKeyEvent) |
@@ -5659,6 +5665,24 @@ void RenderView::OnSelectPopupMenuItem(int selected_index) { |
external_popup_menu_->DidSelectItem(selected_index); |
external_popup_menu_.reset(); |
} |
+ |
+void RenderView::OnCharacterIndexForPoint(gfx::Point point) { |
+ WebKit::WebTextHelper helper(webview()->mainFrame()); |
+ uint index = helper.characterIndexForPoint(point.x(), point.y()); |
+ Send(new ViewHostMsg_GotCharacterIndexForPoint(routing_id(), index)); |
+} |
+ |
+void RenderView::OnFirstRectForCharacterRange(uint location, uint length) { |
+ WebKit::WebTextHelper helper(webview()->mainFrame()); |
+ gfx::Rect rect(helper.firstRectForRange(location, length)); |
+ Send(new ViewHostMsg_GotFirstRectForRange(routing_id(), rect)); |
+} |
+ |
+void RenderView::OnStringForRange(uint location, uint length) { |
+ WebKit::WebTextHelper helper(webview()->mainFrame()); |
+ WebKit::WebString webstring(helper.substringInRange(location, length)); |
+ Send(new ViewHostMsg_GotStringForRange(routing_id(), webstring)); |
+} |
#endif |
void RenderView::AddErrorToRootConsole(const string16& message) { |