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() { |