| Index: chrome/browser/autofill/form_structure.cc | 
| diff --git a/chrome/browser/autofill/form_structure.cc b/chrome/browser/autofill/form_structure.cc | 
| index 0eab86b4baf93b2c842dcc10d8bfae290126687f..b5b2db78be6aa1309d76b943c04ada0050010197 100644 | 
| --- a/chrome/browser/autofill/form_structure.cc | 
| +++ b/chrome/browser/autofill/form_structure.cc | 
| @@ -107,7 +107,7 @@ bool FormStructure::EncodeUploadRequest(bool auto_fill_used, | 
| std::string* encoded_xml) const { | 
| DCHECK(encoded_xml); | 
| encoded_xml->clear(); | 
| -  bool auto_fillable = IsAutoFillable(); | 
| +  bool auto_fillable = IsAutoFillable(false); | 
| DCHECK(auto_fillable);  // Caller should've checked for search pages. | 
| if (!auto_fillable) | 
| return false; | 
| @@ -232,8 +232,6 @@ void FormStructure::ParseQueryResponse(const std::string& response_xml, | 
|  | 
| form->UpdateAutoFillCount(); | 
| } | 
| - | 
| -  return; | 
| } | 
|  | 
| std::string FormStructure::FormSignature() const { | 
| @@ -247,11 +245,11 @@ std::string FormStructure::FormSignature() const { | 
| return Hash64Bit(form_string); | 
| } | 
|  | 
| -bool FormStructure::IsAutoFillable() const { | 
| +bool FormStructure::IsAutoFillable(bool require_method_post) const { | 
| if (autofill_count() < kRequiredFillableFields) | 
| return false; | 
|  | 
| -  return ShouldBeParsed(); | 
| +  return ShouldBeParsed(require_method_post); | 
| } | 
|  | 
| bool FormStructure::HasAutoFillableValues() const { | 
| @@ -268,46 +266,6 @@ bool FormStructure::HasAutoFillableValues() const { | 
| return false; | 
| } | 
|  | 
| -// TODO(jhawkins): Cache this result. | 
| -bool FormStructure::HasBillingFields() const { | 
| -  for (std::vector<AutoFillField*>::const_iterator iter = begin(); | 
| -       iter != end(); ++iter) { | 
| -    if (!*iter) | 
| -      return false; | 
| - | 
| -    AutoFillField* field = *iter; | 
| -    if (!field) | 
| -      continue; | 
| - | 
| -    AutoFillType type(field->type()); | 
| -    if (type.group() == AutoFillType::ADDRESS_BILLING || | 
| -        type.group() == AutoFillType::CREDIT_CARD) | 
| -      return true; | 
| -  } | 
| - | 
| -  return false; | 
| -} | 
| - | 
| -// TODO(jhawkins): Cache this result. | 
| -bool FormStructure::HasNonBillingFields() const { | 
| -  for (std::vector<AutoFillField*>::const_iterator iter = begin(); | 
| -       iter != end(); ++iter) { | 
| -    if (!*iter) | 
| -      return false; | 
| - | 
| -    AutoFillField* field = *iter; | 
| -    if (!field) | 
| -      continue; | 
| - | 
| -    AutoFillType type(field->type()); | 
| -    if (type.group() != AutoFillType::ADDRESS_BILLING && | 
| -        type.group() != AutoFillType::CREDIT_CARD) | 
| -      return true; | 
| -  } | 
| - | 
| -  return false; | 
| -} | 
| - | 
| void FormStructure::UpdateAutoFillCount() { | 
| autofill_count_ = 0; | 
| for (std::vector<AutoFillField*>::const_iterator iter = begin(); | 
| @@ -318,7 +276,7 @@ void FormStructure::UpdateAutoFillCount() { | 
| } | 
| } | 
|  | 
| -bool FormStructure::ShouldBeParsed() const { | 
| +bool FormStructure::ShouldBeParsed(bool require_method_post) const { | 
| if (field_count() < kRequiredFillableFields) | 
| return false; | 
|  | 
| @@ -328,10 +286,7 @@ bool FormStructure::ShouldBeParsed() const { | 
| if (target_url_.path() == "/search") | 
| return false; | 
|  | 
| -  if (method_ == GET) | 
| -    return false; | 
| - | 
| -  return true; | 
| +  return !require_method_post || (method_ == POST); | 
| } | 
|  | 
| void FormStructure::set_possible_types(int index, const FieldTypeSet& types) { | 
|  |