| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index f4e7528bc0074de772f3643ac0fb13aa411500cc..f7f255f66a09b723db91f5351798328ba07bda62 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,18 @@ 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));
|
| +}
|
| +
|
| void RenderFrameImpl::OnUnselect() {
|
| base::AutoReset<bool> handling_select_range(&handling_select_range_, true);
|
| frame_->executeCommand(WebString::fromUTF8("Unselect"), GetFocusedElement());
|
|
|