blob: 8b6c601c36ca1f5aaf7fc30b36c7d6cc66a6ec3f [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/autofill/content/renderer/password_form_conversion_utils.h"
#include "components/autofill/content/renderer/form_autofill_util.h"
#include "components/autofill/core/common/password_form.h"
#include "third_party/WebKit/public/web/WebFormControlElement.h"
#include "third_party/WebKit/public/web/WebPasswordFormData.h"
using blink::WebFormElement;
using blink::WebPasswordFormData;
namespace autofill {
namespace {
scoped_ptr<PasswordForm> InitPasswordFormFromWebPasswordForm(
const WebFormElement& web_form,
const blink::WebPasswordFormData& web_password_form) {
PasswordForm* password_form = new PasswordForm();
password_form->signon_realm = web_password_form.signonRealm.utf8();
password_form->origin = web_password_form.origin;
password_form->action = web_password_form.action;
password_form->submit_element = web_password_form.submitElement;
password_form->username_element = web_password_form.userNameElement;
password_form->username_value = web_password_form.userNameValue;
password_form->other_possible_usernames.insert(
password_form->other_possible_usernames.begin(),
web_password_form.possibleUserNames.data(),
web_password_form.possibleUserNames.data() +
web_password_form.possibleUserNames.size());
password_form->password_element = web_password_form.passwordElement;
password_form->password_value = web_password_form.passwordValue;
password_form->old_password_element = web_password_form.oldPasswordElement;
password_form->old_password_value = web_password_form.oldPasswordValue;
password_form->scheme = PasswordForm::SCHEME_HTML;
password_form->ssl_valid = false;
password_form->preferred = false;
password_form->blacklisted_by_user = false;
password_form->type = PasswordForm::TYPE_MANUAL;
WebFormElementToFormData(web_form,
blink::WebFormControlElement(),
REQUIRE_NONE,
EXTRACT_NONE,
&password_form->form_data,
NULL /* FormFieldData */);
return scoped_ptr<PasswordForm>(password_form);
}
} // namespace
scoped_ptr<PasswordForm> CreatePasswordForm(const WebFormElement& webform) {
WebPasswordFormData web_password_form(webform);
if (web_password_form.isValid())
return InitPasswordFormFromWebPasswordForm(webform, web_password_form);
return scoped_ptr<PasswordForm>();
}
} // namespace autofill