Chromium Code Reviews| 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()); |