Index: chrome/browser/autofill/autofill_scanner.cc |
diff --git a/chrome/browser/autofill/autofill_scanner.cc b/chrome/browser/autofill/autofill_scanner.cc |
index 41aadc894f85a2dcaf3f99525f7e0c5fa9d30006..ae217572f99af187f3c66b18ef1a4951a37d3cb8 100644 |
--- a/chrome/browser/autofill/autofill_scanner.cc |
+++ b/chrome/browser/autofill/autofill_scanner.cc |
@@ -19,11 +19,12 @@ AutofillScanner::~AutofillScanner() { |
} |
void AutofillScanner::Advance() { |
+ SkipClickables(); |
DCHECK(!IsEnd()); |
++cursor_; |
} |
-const AutofillField* AutofillScanner::Cursor() const { |
+const AutofillField* AutofillScanner::Cursor() { |
if (IsEnd()) { |
NOTREACHED(); |
return NULL; |
@@ -32,7 +33,8 @@ const AutofillField* AutofillScanner::Cursor() const { |
return *cursor_; |
} |
-bool AutofillScanner::IsEnd() const { |
+bool AutofillScanner::IsEnd() { |
+ SkipClickables(); |
return cursor_ == end_; |
} |
@@ -52,3 +54,8 @@ size_t AutofillScanner::SaveCursor() { |
saved_cursor_ = cursor_; |
return static_cast<size_t>(cursor_ - begin_); |
} |
+ |
+void AutofillScanner::SkipClickables() { |
+ while (cursor_ != end_ && (*cursor_)->is_checkable) |
+ ++cursor_; |
+} |