#include "third_party/blink/renderer/core/html/forms/email_input_type.h"
#include <unicode/idna.h>
#include <unicode/unistr.h>
#include <unicode/uvernum.h>
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
#include "third_party/blink/renderer/core/input_type_names.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/platform/bindings/script_regexp.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#if U_ICU_VERSION_MAJOR_NUM >= 59
#include <unicode/char16ptr.h>
#endif
namespace {
const char kLocalPartCharacters[] = …;
const char kEmailPattern[] = …;
const int32_t kMaximumDomainNameLength = …;
const int32_t kIdnaConversionOption = …;
}
namespace blink {
ScriptRegexp* EmailInputType::CreateEmailRegexp(v8::Isolate* isolate) { … }
Vector<String> EmailInputType::ParseMultipleValues(const String& value) { … }
String EmailInputType::ConvertEmailAddressToASCII(const ScriptRegexp& regexp,
const String& address) { … }
String EmailInputType::ConvertEmailAddressToUnicode(
const String& address) const { … }
static bool IsInvalidLocalPartCharacter(UChar ch) { … }
static bool IsInvalidDomainCharacter(UChar ch) { … }
static bool CheckValidDotUsage(const String& domain) { … }
bool EmailInputType::IsValidEmailAddress(const ScriptRegexp& regexp,
const String& address) { … }
EmailInputType::EmailInputType(HTMLInputElement& element)
: … { … }
void EmailInputType::CountUsage() { … }
String EmailInputType::FindInvalidAddress(const String& value) const { … }
bool EmailInputType::TypeMismatchFor(const String& value) const { … }
bool EmailInputType::TypeMismatch() const { … }
String EmailInputType::TypeMismatchText() const { … }
bool EmailInputType::SupportsSelectionAPI() const { … }
String EmailInputType::SanitizeValue(const String& proposed_value) const { … }
String EmailInputType::ConvertFromVisibleValue(
const String& visible_value) const { … }
String EmailInputType::VisibleValue() const { … }
void EmailInputType::MultipleAttributeChanged() { … }
}