Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Side by Side Diff: components/autofill/content/renderer/password_form_conversion_utils_browsertest.cc

Issue 2148303005: [Password Generation] Sends the flag whether a field has nonempty user input (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes addressed to reviewer comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 // values in the form elements came from the user input. 172 // values in the form elements came from the user input.
173 std::unique_ptr<PasswordForm> LoadHTMLAndConvertForm( 173 std::unique_ptr<PasswordForm> LoadHTMLAndConvertForm(
174 const std::string& html, 174 const std::string& html,
175 FormsPredictionsMap* predictions, 175 FormsPredictionsMap* predictions,
176 bool with_user_input) { 176 bool with_user_input) {
177 WebFormElement form; 177 WebFormElement form;
178 LoadWebFormFromHTML(html, &form); 178 LoadWebFormFromHTML(html, &form);
179 179
180 WebVector<WebFormControlElement> control_elements; 180 WebVector<WebFormControlElement> control_elements;
181 form.getFormControlElements(control_elements); 181 form.getFormControlElements(control_elements);
182 ModifiedValues user_input; 182 FieldValueAndPropertiesMaskMap user_input;
183 for (size_t i = 0; i < control_elements.size(); ++i) { 183 for (size_t i = 0; i < control_elements.size(); ++i) {
184 WebInputElement* input_element = toWebInputElement(&control_elements[i]); 184 WebInputElement* input_element = toWebInputElement(&control_elements[i]);
185 if (input_element->hasAttribute("set-activated-submit")) 185 if (input_element->hasAttribute("set-activated-submit"))
186 input_element->setActivatedSubmit(true); 186 input_element->setActivatedSubmit(true);
187 if (with_user_input) 187 if (with_user_input)
188 user_input[*input_element] = input_element->value(); 188 user_input[*input_element] =
189 std::pair<base::string16, FieldPropertiesMask>(
190 input_element->value(), 0U);
189 } 191 }
190 192
191 return CreatePasswordFormFromWebForm( 193 return CreatePasswordFormFromWebForm(
192 form, with_user_input ? &user_input : nullptr, predictions); 194 form, with_user_input ? &user_input : nullptr, predictions);
193 } 195 }
194 196
195 // Iterates on the form generated by the |html| and adds the fields and type 197 // Iterates on the form generated by the |html| and adds the fields and type
196 // predictions corresponding to |predictions_positions| to |predictions|. 198 // predictions corresponding to |predictions_positions| to |predictions|.
197 void SetPredictions(const std::string& html, 199 void SetPredictions(const std::string& html,
198 FormsPredictionsMap* predictions, 200 FormsPredictionsMap* predictions,
199 const std::map<int, PasswordFormFieldPredictionType>& 201 const std::map<int, PasswordFormFieldPredictionType>&
200 predictions_positions) { 202 predictions_positions) {
201 WebFormElement form; 203 WebFormElement form;
202 LoadWebFormFromHTML(html, &form); 204 LoadWebFormFromHTML(html, &form);
203 205
204 FormData form_data; 206 FormData form_data;
205 ASSERT_TRUE(form_util::WebFormElementToFormData( 207 ASSERT_TRUE(form_util::WebFormElementToFormData(
206 form, WebFormControlElement(), form_util::EXTRACT_NONE, &form_data, 208 form, WebFormControlElement(), nullptr, form_util::EXTRACT_NONE,
207 nullptr)); 209 &form_data, nullptr));
208 210
209 FormStructure form_structure(form_data); 211 FormStructure form_structure(form_data);
210 212
211 int field_index = 0; 213 int field_index = 0;
212 for (std::vector<AutofillField *>::const_iterator 214 for (std::vector<AutofillField *>::const_iterator
213 field = form_structure.begin(); 215 field = form_structure.begin();
214 field != form_structure.end(); ++field, ++field_index) { 216 field != form_structure.end(); ++field, ++field_index) {
215 if (predictions_positions.find(field_index) != 217 if (predictions_positions.find(field_index) !=
216 predictions_positions.end()) { 218 predictions_positions.end()) {
217 (*predictions)[form_data][*(*field)] = 219 (*predictions)[form_data][*(*field)] =
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 builder.AddPasswordField("password", "secret", nullptr); 1452 builder.AddPasswordField("password", "secret", nullptr);
1451 std::string html = builder.ProduceHTML(); 1453 std::string html = builder.ProduceHTML();
1452 1454
1453 std::unique_ptr<PasswordForm> password_form = 1455 std::unique_ptr<PasswordForm> password_form =
1454 LoadHTMLAndConvertForm(html, nullptr, true); 1456 LoadHTMLAndConvertForm(html, nullptr, true);
1455 ASSERT_TRUE(password_form); 1457 ASSERT_TRUE(password_form);
1456 EXPECT_FALSE(password_form->does_look_like_signup_form); 1458 EXPECT_FALSE(password_form->does_look_like_signup_form);
1457 } 1459 }
1458 1460
1459 } // namespace autofill 1461 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698