summaryrefslogtreecommitdiffstats
path: root/chrome/browser/accessibility/browser_accessibility_win.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/accessibility/browser_accessibility_win.cc')
-rw-r--r--chrome/browser/accessibility/browser_accessibility_win.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/browser/accessibility/browser_accessibility_win.cc b/chrome/browser/accessibility/browser_accessibility_win.cc
index fcd01a5..b5bf894 100644
--- a/chrome/browser/accessibility/browser_accessibility_win.cc
+++ b/chrome/browser/accessibility/browser_accessibility_win.cc
@@ -1223,9 +1223,17 @@ LONG BrowserAccessibilityWin::FindBoundary(
LONG start_offset,
LONG direction) {
LONG text_size = static_cast<LONG>(text.size());
- DCHECK(start_offset >= 0 && start_offset <= text_size);
+ DCHECK((start_offset >= 0 && start_offset <= text_size) ||
+ start_offset == IA2_TEXT_OFFSET_LENGTH ||
+ start_offset == IA2_TEXT_OFFSET_CARET);
DCHECK(direction == 1 || direction == -1);
+ if (start_offset == IA2_TEXT_OFFSET_LENGTH) {
+ start_offset = text_size;
+ } else if (start_offset == IA2_TEXT_OFFSET_CARET) {
+ get_caretOffset(&start_offset);
+ }
+
if (boundary == IA2_TEXT_BOUNDARY_CHAR) {
if (direction == 1 && start_offset < text_size)
return start_offset + 1;