| Index: chrome/browser/renderer_host/render_widget_host_view_views.cc
|
| diff --git a/chrome/browser/renderer_host/render_widget_host_view_views.cc b/chrome/browser/renderer_host/render_widget_host_view_views.cc
|
| index f277597430666c6620800831408388b7a028c846..13ce888776d49a25cda8bf357a6f65b70960de5d 100644
|
| --- a/chrome/browser/renderer_host/render_widget_host_view_views.cc
|
| +++ b/chrome/browser/renderer_host/render_widget_host_view_views.cc
|
| @@ -752,9 +752,9 @@ bool RenderWidgetHostViewViews::HasCompositionText() {
|
| }
|
|
|
| bool RenderWidgetHostViewViews::GetTextRange(ui::Range* range) {
|
| - // TODO(suzhe): implement this method when fixing http://crbug.com/55130.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + *range = ui::Range(selection_text_offset_,
|
| + selection_text_offset_ + selection_text_.length());
|
| + return true;
|
| }
|
|
|
| bool RenderWidgetHostViewViews::GetCompositionTextRange(ui::Range* range) {
|
| @@ -764,9 +764,8 @@ bool RenderWidgetHostViewViews::GetCompositionTextRange(ui::Range* range) {
|
| }
|
|
|
| bool RenderWidgetHostViewViews::GetSelectionRange(ui::Range* range) {
|
| - // TODO(suzhe): implement this method when fixing http://crbug.com/55130.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + *range = selection_range_;
|
| + return true;
|
| }
|
|
|
| bool RenderWidgetHostViewViews::SetSelectionRange(const ui::Range& range) {
|
| @@ -783,10 +782,22 @@ bool RenderWidgetHostViewViews::DeleteRange(const ui::Range& range) {
|
|
|
| bool RenderWidgetHostViewViews::GetTextFromRange(
|
| const ui::Range& range,
|
| - const base::Callback<void(const string16&)>& callback) {
|
| - // TODO(suzhe): implement this method when fixing http://crbug.com/55130.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| + string16* text,
|
| + ui::Range* actual_range) {
|
| + ui::Range selection_text_range(
|
| + selection_text_offset_,
|
| + selection_text_offset_ + selection_text_.length());
|
| + *actual_range = selection_text_range.Intersect(range);
|
| +
|
| + if (!actual_range->IsValid() || actual_range->is_empty()) {
|
| + text->clear();
|
| + } else {
|
| + *text = selection_text_.substr(
|
| + actual_range->GetMin() - selection_text_offset_,
|
| + actual_range->length());
|
| + }
|
| +
|
| + return true;
|
| }
|
|
|
| void RenderWidgetHostViewViews::OnInputMethodChanged() {
|
|
|