Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(886)

Unified Diff: content/renderer/text_input_client_observer.cc

Issue 2537363002: Handling firstRectForCharacterRange when range argument has invalid range (Mac) (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698