Index: chrome/browser/autofill/form_structure.cc |
diff --git a/chrome/browser/autofill/form_structure.cc b/chrome/browser/autofill/form_structure.cc |
index d1ca6d10bedf80cc2b56709590438e5c04e0025c..d0e9120ff6c832d5314901ecfecc91e9de67fad3 100644 |
--- a/chrome/browser/autofill/form_structure.cc |
+++ b/chrome/browser/autofill/form_structure.cc |
@@ -229,6 +229,8 @@ FormStructure::FormStructure(const FormData& form) |
autofill_count_(0), |
upload_required_(USE_UPLOAD_RATES), |
server_experiment_id_("no server response"), |
+ page_number_(-1), |
+ total_pages_(-1), |
has_author_specified_types_(false) { |
// Copy the form fields. |
std::map<string16, size_t> unique_names; |
@@ -264,6 +266,14 @@ FormStructure::FormStructure(const FormData& form) |
FormStructure::~FormStructure() {} |
+bool FormStructure::IsStartOfAutofillableFlow() const { |
+ return page_number_ == 0; |
+} |
+ |
+bool FormStructure::IsInAutofillableFlow() const { |
+ return page_number_ >=0 && page_number_ < total_pages_; |
+} |
+ |
void FormStructure::DetermineHeuristicTypes( |
const AutofillMetrics& metric_logger) { |
// First, try to detect field types based on each field's |autocomplete| |
@@ -429,6 +439,8 @@ void FormStructure::ParseQueryResponse(const std::string& response_xml, |
FormStructure* form = *iter; |
form->upload_required_ = upload_required; |
form->server_experiment_id_ = experiment_id; |
+ form->page_number_ = parse_handler.page_number(); |
+ form->total_pages_ = parse_handler.total_pages(); |
for (std::vector<AutofillField*>::iterator field = form->fields_.begin(); |
field != form->fields_.end(); ++field, ++current_type) { |