Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_STRUCTURE_H_ | 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_STRUCTURE_H_ |
| 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_STRUCTURE_H_ | 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_STRUCTURE_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/gtest_prod_util.h" | 13 #include "base/gtest_prod_util.h" |
| 14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
| 15 #include "base/memory/scoped_vector.h" | 15 #include "base/memory/scoped_vector.h" |
| 16 #include "base/strings/string16.h" | 16 #include "base/strings/string16.h" |
| 17 #include "components/autofill/core/browser/autofill_field.h" | 17 #include "components/autofill/core/browser/autofill_field.h" |
| 18 #include "components/autofill/core/browser/autofill_type.h" | 18 #include "components/autofill/core/browser/autofill_type.h" |
| 19 #include "components/autofill/core/browser/field_types.h" | 19 #include "components/autofill/core/browser/field_types.h" |
| 20 #include "components/autofill/core/common/web_element_descriptor.h" | 20 #include "components/autofill/core/common/web_element_descriptor.h" |
| 21 #include "url/gurl.h" | 21 #include "url/gurl.h" |
| 22 | 22 |
| 23 enum RequestMethod { | |
| 24 GET, | |
| 25 POST | |
| 26 }; | |
| 27 | |
| 28 enum UploadRequired { | 23 enum UploadRequired { |
| 29 UPLOAD_NOT_REQUIRED, | 24 UPLOAD_NOT_REQUIRED, |
| 30 UPLOAD_REQUIRED, | 25 UPLOAD_REQUIRED, |
| 31 USE_UPLOAD_RATES | 26 USE_UPLOAD_RATES |
| 32 }; | 27 }; |
| 33 | 28 |
| 34 namespace base { | 29 namespace base { |
| 35 class TimeTicks; | 30 class TimeTicks; |
| 36 } | 31 } |
| 37 | 32 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 89 // fields' predicted types. | 84 // fields' predicted types. |
| 90 static void GetFieldTypePredictions( | 85 static void GetFieldTypePredictions( |
| 91 const std::vector<FormStructure*>& form_structures, | 86 const std::vector<FormStructure*>& form_structures, |
| 92 std::vector<FormDataPredictions>* forms); | 87 std::vector<FormDataPredictions>* forms); |
| 93 | 88 |
| 94 // The unique signature for this form, composed of the target url domain, | 89 // The unique signature for this form, composed of the target url domain, |
| 95 // the form name, and the form field names in a 64-bit hash. | 90 // the form name, and the form field names in a 64-bit hash. |
| 96 std::string FormSignature() const; | 91 std::string FormSignature() const; |
| 97 | 92 |
| 98 // Runs a quick heuristic to rule out forms that are obviously not | 93 // Runs a quick heuristic to rule out forms that are obviously not |
| 99 // auto-fillable, like google/yahoo/msn search, etc. The requirement that the | 94 // auto-fillable, like google/yahoo/msn search, etc. |
| 100 // form's method be POST is only applied if |require_method_post| is true. | 95 bool IsAutofillable() const; |
| 101 bool IsAutofillable(bool require_method_post) const; | |
| 102 | 96 |
| 103 // Resets |autofill_count_| and counts the number of auto-fillable fields. | 97 // Resets |autofill_count_| and counts the number of auto-fillable fields. |
| 104 // This is used when we receive server data for form fields. At that time, | 98 // This is used when we receive server data for form fields. At that time, |
| 105 // we may have more known fields than just the number of fields we matched | 99 // we may have more known fields than just the number of fields we matched |
| 106 // heuristically. | 100 // heuristically. |
| 107 void UpdateAutofillCount(); | 101 void UpdateAutofillCount(); |
| 108 | 102 |
| 109 // Returns true if this form matches the structural requirements for Autofill. | 103 // Returns true if this form matches the structural requirements for Autofill. |
| 110 // The requirement that the form's method be POST is only applied if | 104 bool ShouldBeParsed() const; |
| 111 // |require_method_post| is true. | |
| 112 bool ShouldBeParsed(bool require_method_post) const; | |
| 113 | 105 |
| 114 // Returns true if we should query the crowdsourcing server to determine this | 106 // Returns true if we should query the crowdsourcing server to determine this |
| 115 // form's field types. If the form includes author-specified types, this will | 107 // form's field types. If the form includes author-specified types, this will |
| 116 // return false. | 108 // return false. |
| 117 bool ShouldBeCrowdsourced() const; | 109 bool ShouldBeCrowdsourced() const; |
| 118 | 110 |
| 119 // Sets the field types to be those set for |cached_form|. | 111 // Sets the field types to be those set for |cached_form|. |
| 120 void UpdateFromCache(const FormStructure& cached_form); | 112 void UpdateFromCache(const FormStructure& cached_form); |
| 121 | 113 |
| 122 // Logs quality metrics for |this|, which should be a user-submitted form. | 114 // Logs quality metrics for |this|, which should be a user-submitted form. |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 247 | 239 |
| 248 // The names of the form input elements, that are part of the form signature. | 240 // The names of the form input elements, that are part of the form signature. |
| 249 // The string starts with "&" and the names are also separated by the "&" | 241 // The string starts with "&" and the names are also separated by the "&" |
| 250 // character. E.g.: "&form_input1_name&form_input2_name&...&form_inputN_name" | 242 // character. E.g.: "&form_input1_name&form_input2_name&...&form_inputN_name" |
| 251 std::string form_signature_field_names_; | 243 std::string form_signature_field_names_; |
| 252 | 244 |
| 253 // Whether the server expects us to always upload, never upload, or default | 245 // Whether the server expects us to always upload, never upload, or default |
| 254 // to the stored upload rates. | 246 // to the stored upload rates. |
| 255 UploadRequired upload_required_; | 247 UploadRequired upload_required_; |
| 256 | 248 |
| 257 // GET or POST. | 249 // The method attribute on the form (e.g. POST or GET). |
| 258 RequestMethod method_; | 250 base::string16 method_; |
|
Ilya Sherman
2014/07/15 03:21:24
Hmm, it doesn't look like this is used -- can this
Evan Stade
2014/07/15 19:01:57
Done.
| |
| 259 | 251 |
| 260 // Whether the form includes any field types explicitly specified by the site | 252 // Whether the form includes any field types explicitly specified by the site |
| 261 // author, via the |autocompletetype| attribute. | 253 // author, via the |autocompletetype| attribute. |
| 262 bool has_author_specified_types_; | 254 bool has_author_specified_types_; |
| 263 | 255 |
| 264 DISALLOW_COPY_AND_ASSIGN(FormStructure); | 256 DISALLOW_COPY_AND_ASSIGN(FormStructure); |
| 265 }; | 257 }; |
| 266 | 258 |
| 267 } // namespace autofill | 259 } // namespace autofill |
| 268 | 260 |
| 269 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_STRUCTURE_H_ | 261 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_STRUCTURE_H_ |
| OLD | NEW |