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
3 // found in the LICENSE file.
5 #include "components/autofill/content/renderer/password_form_conversion_utils.h"
7 #include "components/autofill/content/renderer/form_autofill_util.h"
8 #include "components/autofill/core/common/password_form.h"
9 #include "third_party/WebKit/public/web/WebFormControlElement.h"
10 #include "third_party/WebKit/public/web/WebPasswordFormData.h"
12 using WebKit::WebFormElement;
13 using WebKit::WebPasswordFormData;
18 scoped_ptr<PasswordForm> InitPasswordFormFromWebPasswordForm(
19 const WebFormElement& web_form,
20 const WebKit::WebPasswordFormData& web_password_form) {
21 PasswordForm* password_form = new PasswordForm();
22 password_form->signon_realm = web_password_form.signonRealm.utf8();
23 password_form->origin = web_password_form.origin;
24 password_form->action = web_password_form.action;
25 password_form->submit_element = web_password_form.submitElement;
26 password_form->username_element = web_password_form.userNameElement;
27 password_form->username_value = web_password_form.userNameValue;
28 password_form->other_possible_usernames.insert(
29 password_form->other_possible_usernames.begin(),
30 web_password_form.possibleUserNames.data(),
31 web_password_form.possibleUserNames.data() +
32 web_password_form.possibleUserNames.size());
33 password_form->password_element = web_password_form.passwordElement;
34 password_form->password_value = web_password_form.passwordValue;
35 password_form->password_autocomplete_set =
36 web_password_form.passwordShouldAutocomplete;
37 password_form->old_password_element = web_password_form.oldPasswordElement;
38 password_form->old_password_value = web_password_form.oldPasswordValue;
39 password_form->scheme = PasswordForm::SCHEME_HTML;
40 password_form->ssl_valid = false;
41 password_form->preferred = false;
42 password_form->blacklisted_by_user = false;
43 password_form->type = PasswordForm::TYPE_MANUAL;
44 WebFormElementToFormData(web_form,
45 WebKit::WebFormControlElement(),
48 &password_form->form_data,
49 NULL /* FormFieldData */);
50 return scoped_ptr<PasswordForm>(password_form);
55 scoped_ptr<PasswordForm> CreatePasswordForm(const WebFormElement& webform) {
56 WebPasswordFormData web_password_form(webform);
57 if (web_password_form.isValid())
58 return InitPasswordFormFromWebPasswordForm(webform, web_password_form);
59 return scoped_ptr<PasswordForm>();
62 } // namespace autofill