181 lines
5.6 KiB
C++
181 lines
5.6 KiB
C++
/*
|
|
* Copyright (C) 2016-2020 Apple Inc. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
* THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <wtf/EnumTraits.h>
|
|
#include <wtf/text/AtomString.h>
|
|
#include <wtf/text/WTFString.h>
|
|
|
|
namespace WebCore {
|
|
|
|
enum class AutofillMantle {
|
|
Expectation,
|
|
Anchor
|
|
};
|
|
|
|
enum class AutofillFieldName {
|
|
None,
|
|
Name,
|
|
HonorificPrefix,
|
|
GivenName,
|
|
AdditionalName,
|
|
FamilyName,
|
|
HonorificSuffix,
|
|
Nickname,
|
|
Username,
|
|
NewPassword,
|
|
CurrentPassword,
|
|
OrganizationTitle,
|
|
Organization,
|
|
StreetAddress,
|
|
AddressLine1,
|
|
AddressLine2,
|
|
AddressLine3,
|
|
AddressLevel4,
|
|
AddressLevel3,
|
|
AddressLevel2,
|
|
AddressLevel1,
|
|
Country,
|
|
CountryName,
|
|
PostalCode,
|
|
CcName,
|
|
CcGivenName,
|
|
CcAdditionalName,
|
|
CcFamilyName,
|
|
CcNumber,
|
|
CcExp,
|
|
CcExpMonth,
|
|
CcExpYear,
|
|
CcCsc,
|
|
CcType,
|
|
TransactionCurrency,
|
|
TransactionAmount,
|
|
Language,
|
|
Bday,
|
|
BdayDay,
|
|
BdayMonth,
|
|
BdayYear,
|
|
Sex,
|
|
URL,
|
|
Photo,
|
|
Tel,
|
|
TelCountryCode,
|
|
TelNational,
|
|
TelAreaCode,
|
|
TelLocal,
|
|
TelLocalPrefix,
|
|
TelLocalSuffix,
|
|
TelExtension,
|
|
Email,
|
|
Impp
|
|
};
|
|
|
|
WEBCORE_EXPORT AutofillFieldName toAutofillFieldName(const AtomString&);
|
|
|
|
class HTMLFormControlElement;
|
|
|
|
class AutofillData {
|
|
public:
|
|
static AutofillData createFromHTMLFormControlElement(const HTMLFormControlElement&);
|
|
|
|
AutofillData(const AtomString& fieldName, const String& idlExposedValue)
|
|
: fieldName(fieldName)
|
|
, idlExposedValue(idlExposedValue)
|
|
{
|
|
}
|
|
|
|
// We could add support for hint tokens and scope tokens if those ever became useful to anyone.
|
|
|
|
AtomString fieldName;
|
|
String idlExposedValue;
|
|
};
|
|
|
|
} // namespace WebCore
|
|
|
|
namespace WTF {
|
|
|
|
template<> struct EnumTraits<WebCore::AutofillFieldName> {
|
|
using values = EnumValues<
|
|
WebCore::AutofillFieldName,
|
|
WebCore::AutofillFieldName::None,
|
|
WebCore::AutofillFieldName::Name,
|
|
WebCore::AutofillFieldName::HonorificPrefix,
|
|
WebCore::AutofillFieldName::GivenName,
|
|
WebCore::AutofillFieldName::AdditionalName,
|
|
WebCore::AutofillFieldName::FamilyName,
|
|
WebCore::AutofillFieldName::HonorificSuffix,
|
|
WebCore::AutofillFieldName::Nickname,
|
|
WebCore::AutofillFieldName::Username,
|
|
WebCore::AutofillFieldName::NewPassword,
|
|
WebCore::AutofillFieldName::CurrentPassword,
|
|
WebCore::AutofillFieldName::OrganizationTitle,
|
|
WebCore::AutofillFieldName::Organization,
|
|
WebCore::AutofillFieldName::StreetAddress,
|
|
WebCore::AutofillFieldName::AddressLine1,
|
|
WebCore::AutofillFieldName::AddressLine2,
|
|
WebCore::AutofillFieldName::AddressLine3,
|
|
WebCore::AutofillFieldName::AddressLevel4,
|
|
WebCore::AutofillFieldName::AddressLevel3,
|
|
WebCore::AutofillFieldName::AddressLevel2,
|
|
WebCore::AutofillFieldName::AddressLevel1,
|
|
WebCore::AutofillFieldName::Country,
|
|
WebCore::AutofillFieldName::CountryName,
|
|
WebCore::AutofillFieldName::PostalCode,
|
|
WebCore::AutofillFieldName::CcName,
|
|
WebCore::AutofillFieldName::CcGivenName,
|
|
WebCore::AutofillFieldName::CcAdditionalName,
|
|
WebCore::AutofillFieldName::CcFamilyName,
|
|
WebCore::AutofillFieldName::CcNumber,
|
|
WebCore::AutofillFieldName::CcExp,
|
|
WebCore::AutofillFieldName::CcExpMonth,
|
|
WebCore::AutofillFieldName::CcExpYear,
|
|
WebCore::AutofillFieldName::CcCsc,
|
|
WebCore::AutofillFieldName::CcType,
|
|
WebCore::AutofillFieldName::TransactionCurrency,
|
|
WebCore::AutofillFieldName::TransactionAmount,
|
|
WebCore::AutofillFieldName::Language,
|
|
WebCore::AutofillFieldName::Bday,
|
|
WebCore::AutofillFieldName::BdayDay,
|
|
WebCore::AutofillFieldName::BdayMonth,
|
|
WebCore::AutofillFieldName::BdayYear,
|
|
WebCore::AutofillFieldName::Sex,
|
|
WebCore::AutofillFieldName::URL,
|
|
WebCore::AutofillFieldName::Photo,
|
|
WebCore::AutofillFieldName::Tel,
|
|
WebCore::AutofillFieldName::TelCountryCode,
|
|
WebCore::AutofillFieldName::TelNational,
|
|
WebCore::AutofillFieldName::TelAreaCode,
|
|
WebCore::AutofillFieldName::TelLocal,
|
|
WebCore::AutofillFieldName::TelLocalPrefix,
|
|
WebCore::AutofillFieldName::TelLocalSuffix,
|
|
WebCore::AutofillFieldName::TelExtension,
|
|
WebCore::AutofillFieldName::Email,
|
|
WebCore::AutofillFieldName::Impp
|
|
>;
|
|
};
|
|
|
|
} // namespace WTF
|