Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 094ebe88c06436458f2a162326fd408e02c635ef..8ea0405434f3117fd4ea201b1b7a14b9457ea17f 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -1009,6 +1009,8 @@ bool RenderFrameImpl::OnMessageReceived(const IPC::Message& msg) { |
IPC_MESSAGE_HANDLER(InputMsg_Delete, OnDelete) |
IPC_MESSAGE_HANDLER(InputMsg_SelectAll, OnSelectAll) |
IPC_MESSAGE_HANDLER(InputMsg_SelectRange, OnSelectRange) |
+ IPC_MESSAGE_HANDLER(InputMsg_ExpandSelectionByCharacterOffset, |
+ OnExpandSelectionByCharacterOffset) |
IPC_MESSAGE_HANDLER(InputMsg_Unselect, OnUnselect) |
IPC_MESSAGE_HANDLER(InputMsg_MoveRangeSelectionExtent, |
OnMoveRangeSelectionExtent) |
@@ -1325,6 +1327,19 @@ void RenderFrameImpl::OnSelectRange(const gfx::Point& base, |
frame_->selectRange(base, extent); |
} |
+void RenderFrameImpl::OnExpandSelectionByCharacterOffset(int start_adjust, |
+ int end_adjust) { |
+ size_t start, length; |
+ if (!GetRenderWidget()->webwidget()->caretOrSelectionRange( |
+ &start, &length)) { |
+ return; |
+ } |
+ start -= start_adjust; |
+ length += end_adjust + start_adjust; |
+ frame_->selectRange(WebRange::fromDocumentRange(frame_, start, length)); |
+ |
Charlie Reis
2015/07/07 17:02:27
nit: No blank line.
aurimas (slooooooooow)
2015/07/07 18:18:05
Done
|
+} |
+ |
void RenderFrameImpl::OnUnselect() { |
base::AutoReset<bool> handling_select_range(&handling_select_range_, true); |
frame_->executeCommand(WebString::fromUTF8("Unselect"), GetFocusedElement()); |