Chromium Code Reviews| Index: content/renderer/text_input_client_observer.cc |
| diff --git a/content/renderer/text_input_client_observer.cc b/content/renderer/text_input_client_observer.cc |
| index eb9ef89d1ae4281e23b73bfbcc50cb7d78e43f61..6208c5b65c8418a21db8c09c3bf13b21c996f53f 100644 |
| --- a/content/renderer/text_input_client_observer.cc |
| +++ b/content/renderer/text_input_client_observer.cc |
| @@ -26,6 +26,14 @@ |
| namespace content { |
| +namespace { |
| +uint32_t GetCurrentCursorPositionInFrame(blink::WebLocalFrame* localFrame) { |
| + blink::WebRange range = localFrame->selectionRange(); |
| + return range.startOffset() != -1 ? static_cast<uint32_t>(range.startOffset()) |
|
erikchen
2016/11/30 15:24:33
should this be an IsNull check instead of != -1?
EhsanK
2016/11/30 16:40:52
I believe yes. Thanks!
|
| + : 0U; |
| +} |
| +} |
| + |
| TextInputClientObserver::TextInputClientObserver(RenderWidget* render_widget) |
| : render_widget_(render_widget) {} |
| @@ -133,8 +141,9 @@ void TextInputClientObserver::OnFirstRectForCharacterRange(gfx::Range range) { |
| // See crbug.com/304341 |
| if (frame) { |
| blink::WebRect web_rect; |
| - frame->firstRectForCharacterRange(range.start(), range.length(), |
| - web_rect); |
| + uint32_t start = range.IsValid() ? range.start() |
| + : GetCurrentCursorPositionInFrame(frame); |
| + frame->firstRectForCharacterRange(start, range.length(), web_rect); |
| rect = web_rect; |
| } |
| } |