[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

tkent at chromium.org tkent at chromium.org
Wed Dec 22 13:54:19 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 970a1cb1d331adad4cb629f6794e735d0529e009
Author: tkent at chromium.org <tkent at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 29 06:18:18 2010 +0000

    Refactor HTMLInputElement: Introducing InputType class and classes
    for each input element types.
    https://bugs.webkit.org/show_bug.cgi?id=45872
    
    Reviewed by Darin Adler.
    
    No new tests because this doesn't change any behavior.
    
    * Android.mk: Add new files.
    * CMakeLists.txt: ditto.
    * GNUmakefile.am: ditto.
    * WebCore.gypi: ditto.
    * WebCore.pro: ditto.
    * WebCore.vcproj/WebCore.vcproj: ditto.
    * WebCore.xcodeproj/project.pbxproj: ditto.
    * html/BaseTextInputType.cpp: Added.
    (WebCore::BaseTextInputType::isTextType):
    (WebCore::BaseTextInputType::patternMismatch):
    * html/BaseTextInputType.h: Added.
    (WebCore::BaseTextInputType::BaseTextInputType):
    * html/ButtonInputType.cpp: Added.
    (WebCore::ButtonInputType::create):
    (WebCore::ButtonInputType::formControlType):
    * html/ButtonInputType.h: Added.
    (WebCore::ButtonInputType::ButtonInputType):
    * html/CheckboxInputType.cpp: Added.
    (WebCore::CheckboxInputType::create):
    (WebCore::CheckboxInputType::formControlType):
    * html/CheckboxInputType.h: Added.
    (WebCore::CheckboxInputType::CheckboxInputType):
    * html/ColorInputType.cpp: Added.
    (WebCore::ColorInputType::create):
    (WebCore::ColorInputType::formControlType):
    * html/ColorInputType.h: Added.
    (WebCore::ColorInputType::ColorInputType):
    * html/DateInputType.cpp: Added.
    (WebCore::DateInputType::create):
    (WebCore::DateInputType::formControlType):
    * html/DateInputType.h: Added.
    (WebCore::DateInputType::DateInputType):
    * html/DateTimeInputType.cpp: Added.
    (WebCore::DateTimeInputType::create):
    (WebCore::DateTimeInputType::formControlType):
    * html/DateTimeInputType.h: Added.
    (WebCore::DateTimeInputType::DateTimeInputType):
    * html/DateTimeLocalInputType.cpp: Added.
    (WebCore::DateTimeLocalInputType::create):
    (WebCore::DateTimeLocalInputType::formControlType):
    * html/DateTimeLocalInputType.h: Added.
    (WebCore::DateTimeLocalInputType::DateTimeLocalInputType):
    * html/EmailInputType.cpp: Added.
    (WebCore::EmailInputType::create):
    (WebCore::EmailInputType::formControlType):
    * html/EmailInputType.h: Added.
    (WebCore::EmailInputType::EmailInputType):
    * html/FileInputType.cpp: Added.
    (WebCore::FileInputType::create):
    (WebCore::FileInputType::formControlType):
    * html/FileInputType.h: Added.
    (WebCore::FileInputType::FileInputType):
    * html/HTMLInputElement.cpp:
    (WebCore::HTMLInputElement::HTMLInputElement): Initialize m_inputType.
    (WebCore::HTMLInputElement::patternMismatch): Delegate to InputType.
    (WebCore::HTMLInputElement::updateType): Update m_inputType with new type.
    (WebCore::HTMLInputElement::formControlType): Delegate to InputType.
    (WebCore::HTMLInputElement::isTextField): ditto.
    (WebCore::HTMLInputElement::isTextType): ditto.
    * html/HTMLInputElement.h:
    * html/HiddenInputType.cpp: Added.
    (WebCore::HiddenInputType::create):
    (WebCore::HiddenInputType::formControlType):
    * html/HiddenInputType.h: Added.
    (WebCore::HiddenInputType::HiddenInputType):
    * html/ImageInputType.cpp: Added.
    (WebCore::ImageInputType::create):
    (WebCore::ImageInputType::formControlType):
    * html/ImageInputType.h: Added.
    (WebCore::ImageInputType::ImageInputType):
    * html/InputType.cpp: Added.
    (WebCore::createInputTypeFactoryMap):
    (WebCore::InputType::create):
    (WebCore::InputType::createText):
    (WebCore::InputType::~InputType):
    (WebCore::InputType::isTextField):
    (WebCore::InputType::isTextType):
    (WebCore::InputType::patternMismatch):
    (WebCore::InputTypeNames::button):
    (WebCore::InputTypeNames::checkbox):
    (WebCore::InputTypeNames::color):
    (WebCore::InputTypeNames::date):
    (WebCore::InputTypeNames::datetime):
    (WebCore::InputTypeNames::datetimelocal):
    (WebCore::InputTypeNames::email):
    (WebCore::InputTypeNames::file):
    (WebCore::InputTypeNames::hidden):
    (WebCore::InputTypeNames::image):
    (WebCore::InputTypeNames::isindex):
    (WebCore::InputTypeNames::month):
    (WebCore::InputTypeNames::number):
    (WebCore::InputTypeNames::password):
    (WebCore::InputTypeNames::radio):
    (WebCore::InputTypeNames::range):
    (WebCore::InputTypeNames::reset):
    (WebCore::InputTypeNames::search):
    (WebCore::InputTypeNames::submit):
    (WebCore::InputTypeNames::telephone):
    (WebCore::InputTypeNames::text):
    (WebCore::InputTypeNames::time):
    (WebCore::InputTypeNames::url):
    (WebCore::InputTypeNames::week):
    * html/InputType.h: Added.
    (WebCore::InputType::InputType):
    (WebCore::InputType::element):
    * html/IsIndexInputType.cpp: Added.
    (WebCore::IsIndexInputType::create):
    (WebCore::IsIndexInputType::formControlType):
    * html/IsIndexInputType.h: Added.
    (WebCore::IsIndexInputType::IsIndexInputType):
    * html/MonthInputType.cpp: Added.
    (WebCore::MonthInputType::create):
    (WebCore::MonthInputType::formControlType):
    * html/MonthInputType.h: Added.
    (WebCore::MonthInputType::MonthInputType):
    * html/NumberInputType.cpp: Added.
    (WebCore::NumberInputType::create):
    (WebCore::NumberInputType::formControlType):
    * html/NumberInputType.h: Added.
    (WebCore::NumberInputType::NumberInputType):
    * html/PasswordInputType.cpp: Added.
    (WebCore::PasswordInputType::create):
    (WebCore::PasswordInputType::formControlType):
    * html/PasswordInputType.h: Added.
    (WebCore::PasswordInputType::PasswordInputType):
    * html/RadioInputType.cpp: Added.
    (WebCore::RadioInputType::create):
    (WebCore::RadioInputType::formControlType):
    * html/RadioInputType.h: Added.
    (WebCore::RadioInputType::RadioInputType):
    * html/RangeInputType.cpp: Added.
    (WebCore::RangeInputType::create):
    (WebCore::RangeInputType::formControlType):
    * html/RangeInputType.h: Added.
    (WebCore::RangeInputType::RangeInputType):
    * html/ResetInputType.cpp: Added.
    (WebCore::ResetInputType::create):
    (WebCore::ResetInputType::formControlType):
    * html/ResetInputType.h: Added.
    (WebCore::ResetInputType::ResetInputType):
    * html/SearchInputType.cpp: Added.
    (WebCore::SearchInputType::create):
    (WebCore::SearchInputType::formControlType):
    * html/SearchInputType.h: Added.
    (WebCore::SearchInputType::SearchInputType):
    * html/SubmitInputType.cpp: Added.
    (WebCore::SubmitInputType::create):
    (WebCore::SubmitInputType::formControlType):
    * html/SubmitInputType.h: Added.
    (WebCore::SubmitInputType::SubmitInputType):
    * html/TelephoneInputType.cpp: Added.
    (WebCore::TelephoneInputType::create):
    (WebCore::TelephoneInputType::formControlType):
    * html/TelephoneInputType.h: Added.
    (WebCore::TelephoneInputType::TelephoneInputType):
    * html/TextFieldInputType.cpp: Added.
    (WebCore::TextFieldInputType::isTextField):
    * html/TextFieldInputType.h: Added.
    (WebCore::TextFieldInputType::TextFieldInputType):
    * html/TextInputType.cpp: Added.
    (WebCore::TextInputType::create):
    (WebCore::TextInputType::formControlType):
    * html/TextInputType.h: Added.
    (WebCore::TextInputType::TextInputType):
    * html/TimeInputType.cpp: Added.
    (WebCore::TimeInputType::create):
    (WebCore::TimeInputType::formControlType):
    * html/TimeInputType.h: Added.
    (WebCore::TimeInputType::TimeInputType):
    * html/URLInputType.cpp: Added.
    (WebCore::URLInputType::create):
    (WebCore::URLInputType::formControlType):
    * html/URLInputType.h: Added.
    (WebCore::URLInputType::URLInputType):
    * html/WeekInputType.cpp: Added.
    (WebCore::WeekInputType::create):
    (WebCore::WeekInputType::formControlType):
    * html/WeekInputType.h: Added.
    (WebCore::WeekInputType::WeekInputType):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/Android.mk b/WebCore/Android.mk
index cb311e9..7047e7e 100644
--- a/WebCore/Android.mk
+++ b/WebCore/Android.mk
@@ -261,9 +261,18 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
 	history/android/HistoryItemAndroid.cpp \
 	\
 	html/AsyncImageResizer.cpp \
+	html/BaseTextInputType.cpp \
+	html/ButtonInputType.cpp \
+	html/CheckboxInputType.cpp \
 	html/CollectionCache.cpp \
 	html/parser/CSSPreloadScanner.cpp \
+	html/ColorInputType.cpp \
 	html/DOMFormData.cpp \
+	html/DateInputType.cpp \
+	html/DateTimeInputType.cpp \
+	html/DateTimeLocalInputType.cpp \
+	html/EmailInputType.cpp \
+	html/FileInputType.cpp \
 	html/FormDataList.cpp \
 	html/HTMLAllCollection.cpp \
 	html/HTMLCollection.cpp \
@@ -277,14 +286,32 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
 	html/HTMLParserErrorCodes.cpp \
 	html/HTMLTableRowsCollection.cpp \
 	html/HTMLViewSourceDocument.cpp \
+	html/HiddenInputType.cpp \
 	html/ImageData.cpp \
 	html/ImageDocument.cpp \
-  html/MediaDocument.cpp \
+	html/ImageInputType.cpp \
 	html/ImageResizerThread.cpp \
+	html/InputType.cpp \
+	html/IsIndexInputType.cpp \
+	html/MediaDocument.cpp \
+	html/MonthInputType.cpp \
+	html/NumberInputType.cpp \
+	html/PasswordInputType.cpp \
 	html/PluginDocument.cpp \
+	html/RadioInputType.cpp \
+	html/RangeInputType.cpp \
+	html/ResetInputType.cpp \
+	html/SearchInputType.cpp \
+	html/SubmitInputType.cpp \
+	html/TelephoneInputType.cpp \
 	html/TextDocument.cpp \
+	html/TextFieldInputType.cpp \
+	html/TextInputType.cpp \
+	html/TimeInputType.cpp \
 	html/TimeRanges.cpp \
+	html/URLInputType.cpp \
 	html/ValidityState.cpp \
+	html/WeekInputType.cpp \
 	\
 	html/canvas/CanvasGradient.cpp \
 	html/canvas/WebGLObject.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index 4c562a8..29a04d5 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -944,14 +944,23 @@ SET(WebCore_SOURCES
     history/PageCache.cpp
 
     html/AsyncImageResizer.cpp
+    html/BaseTextInputType.cpp
+    html/ButtonInputType.cpp
+    html/CheckboxInputType.cpp
     html/CollectionCache.cpp
+    html/ColorInputType.cpp
     html/DOMDataGridDataSource.cpp
     html/DOMFormData.cpp
     html/DOMTokenList.cpp
     html/DataGridColumn.cpp
     html/DataGridColumnList.cpp
     html/DateComponents.cpp
+    html/DateInputType.cpp
+    html/DateTimeInputType.cpp
+    html/DateTimeLocalInputType.cpp
+    html/EmailInputType.cpp
     html/FTPDirectoryDocument.cpp
+    html/FileInputType.cpp
     html/FormDataList.cpp
     html/HTMLAllCollection.cpp
     html/HTMLAnchorElement.cpp
@@ -1034,15 +1043,33 @@ SET(WebCore_SOURCES
     html/HTMLTitleElement.cpp
     html/HTMLUListElement.cpp
     html/HTMLViewSourceDocument.cpp
+    html/HiddenInputType.cpp
     html/ImageData.cpp
     html/ImageDocument.cpp
+    html/ImageInputType.cpp
     html/ImageResizerThread.cpp
+    html/InputType.cpp
+    html/IsIndexInputType.cpp
     html/LabelsNodeList.cpp
     html/MediaDocument.cpp
+    html/MonthInputType.cpp
+    html/NumberInputType.cpp
+    html/PasswordInputType.cpp
     html/PluginDocument.cpp
+    html/RadioInputType.cpp
+    html/RangeInputType.cpp
+    html/ResetInputType.cpp
+    html/SearchInputType.cpp
     html/StepRange.cpp
+    html/SubmitInputType.cpp
+    html/TelephoneInputType.cpp
     html/TextDocument.cpp
+    html/TextFieldInputType.cpp
+    html/TextInputType.cpp
+    html/TimeInputType.cpp
+    html/URLInputType.cpp
     html/ValidityState.cpp
+    html/WeekInputType.cpp
     html/canvas/CanvasGradient.cpp
     html/canvas/CanvasPattern.cpp
     html/canvas/CanvasPixelArray.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a52cc9b..20c0e2b 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,193 @@
+2010-09-28  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Darin Adler.
+
+        Refactor HTMLInputElement: Introducing InputType class and classes
+        for each input element types.
+        https://bugs.webkit.org/show_bug.cgi?id=45872
+
+        No new tests because this doesn't change any behavior.
+
+        * Android.mk: Add new files.
+        * CMakeLists.txt: ditto.
+        * GNUmakefile.am: ditto.
+        * WebCore.gypi: ditto.
+        * WebCore.pro: ditto.
+        * WebCore.vcproj/WebCore.vcproj: ditto.
+        * WebCore.xcodeproj/project.pbxproj: ditto.
+        * html/BaseTextInputType.cpp: Added.
+        (WebCore::BaseTextInputType::isTextType):
+        (WebCore::BaseTextInputType::patternMismatch):
+        * html/BaseTextInputType.h: Added.
+        (WebCore::BaseTextInputType::BaseTextInputType):
+        * html/ButtonInputType.cpp: Added.
+        (WebCore::ButtonInputType::create):
+        (WebCore::ButtonInputType::formControlType):
+        * html/ButtonInputType.h: Added.
+        (WebCore::ButtonInputType::ButtonInputType):
+        * html/CheckboxInputType.cpp: Added.
+        (WebCore::CheckboxInputType::create):
+        (WebCore::CheckboxInputType::formControlType):
+        * html/CheckboxInputType.h: Added.
+        (WebCore::CheckboxInputType::CheckboxInputType):
+        * html/ColorInputType.cpp: Added.
+        (WebCore::ColorInputType::create):
+        (WebCore::ColorInputType::formControlType):
+        * html/ColorInputType.h: Added.
+        (WebCore::ColorInputType::ColorInputType):
+        * html/DateInputType.cpp: Added.
+        (WebCore::DateInputType::create):
+        (WebCore::DateInputType::formControlType):
+        * html/DateInputType.h: Added.
+        (WebCore::DateInputType::DateInputType):
+        * html/DateTimeInputType.cpp: Added.
+        (WebCore::DateTimeInputType::create):
+        (WebCore::DateTimeInputType::formControlType):
+        * html/DateTimeInputType.h: Added.
+        (WebCore::DateTimeInputType::DateTimeInputType):
+        * html/DateTimeLocalInputType.cpp: Added.
+        (WebCore::DateTimeLocalInputType::create):
+        (WebCore::DateTimeLocalInputType::formControlType):
+        * html/DateTimeLocalInputType.h: Added.
+        (WebCore::DateTimeLocalInputType::DateTimeLocalInputType):
+        * html/EmailInputType.cpp: Added.
+        (WebCore::EmailInputType::create):
+        (WebCore::EmailInputType::formControlType):
+        * html/EmailInputType.h: Added.
+        (WebCore::EmailInputType::EmailInputType):
+        * html/FileInputType.cpp: Added.
+        (WebCore::FileInputType::create):
+        (WebCore::FileInputType::formControlType):
+        * html/FileInputType.h: Added.
+        (WebCore::FileInputType::FileInputType):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::HTMLInputElement): Initialize m_inputType.
+        (WebCore::HTMLInputElement::patternMismatch): Delegate to InputType.
+        (WebCore::HTMLInputElement::updateType): Update m_inputType with new type.
+        (WebCore::HTMLInputElement::formControlType): Delegate to InputType.
+        (WebCore::HTMLInputElement::isTextField): ditto.
+        (WebCore::HTMLInputElement::isTextType): ditto.
+        * html/HTMLInputElement.h:
+        * html/HiddenInputType.cpp: Added.
+        (WebCore::HiddenInputType::create):
+        (WebCore::HiddenInputType::formControlType):
+        * html/HiddenInputType.h: Added.
+        (WebCore::HiddenInputType::HiddenInputType):
+        * html/ImageInputType.cpp: Added.
+        (WebCore::ImageInputType::create):
+        (WebCore::ImageInputType::formControlType):
+        * html/ImageInputType.h: Added.
+        (WebCore::ImageInputType::ImageInputType):
+        * html/InputType.cpp: Added.
+        (WebCore::createInputTypeFactoryMap):
+        (WebCore::InputType::create):
+        (WebCore::InputType::createText):
+        (WebCore::InputType::~InputType):
+        (WebCore::InputType::isTextField):
+        (WebCore::InputType::isTextType):
+        (WebCore::InputType::patternMismatch):
+        (WebCore::InputTypeNames::button):
+        (WebCore::InputTypeNames::checkbox):
+        (WebCore::InputTypeNames::color):
+        (WebCore::InputTypeNames::date):
+        (WebCore::InputTypeNames::datetime):
+        (WebCore::InputTypeNames::datetimelocal):
+        (WebCore::InputTypeNames::email):
+        (WebCore::InputTypeNames::file):
+        (WebCore::InputTypeNames::hidden):
+        (WebCore::InputTypeNames::image):
+        (WebCore::InputTypeNames::isindex):
+        (WebCore::InputTypeNames::month):
+        (WebCore::InputTypeNames::number):
+        (WebCore::InputTypeNames::password):
+        (WebCore::InputTypeNames::radio):
+        (WebCore::InputTypeNames::range):
+        (WebCore::InputTypeNames::reset):
+        (WebCore::InputTypeNames::search):
+        (WebCore::InputTypeNames::submit):
+        (WebCore::InputTypeNames::telephone):
+        (WebCore::InputTypeNames::text):
+        (WebCore::InputTypeNames::time):
+        (WebCore::InputTypeNames::url):
+        (WebCore::InputTypeNames::week):
+        * html/InputType.h: Added.
+        (WebCore::InputType::InputType):
+        (WebCore::InputType::element):
+        * html/IsIndexInputType.cpp: Added.
+        (WebCore::IsIndexInputType::create):
+        (WebCore::IsIndexInputType::formControlType):
+        * html/IsIndexInputType.h: Added.
+        (WebCore::IsIndexInputType::IsIndexInputType):
+        * html/MonthInputType.cpp: Added.
+        (WebCore::MonthInputType::create):
+        (WebCore::MonthInputType::formControlType):
+        * html/MonthInputType.h: Added.
+        (WebCore::MonthInputType::MonthInputType):
+        * html/NumberInputType.cpp: Added.
+        (WebCore::NumberInputType::create):
+        (WebCore::NumberInputType::formControlType):
+        * html/NumberInputType.h: Added.
+        (WebCore::NumberInputType::NumberInputType):
+        * html/PasswordInputType.cpp: Added.
+        (WebCore::PasswordInputType::create):
+        (WebCore::PasswordInputType::formControlType):
+        * html/PasswordInputType.h: Added.
+        (WebCore::PasswordInputType::PasswordInputType):
+        * html/RadioInputType.cpp: Added.
+        (WebCore::RadioInputType::create):
+        (WebCore::RadioInputType::formControlType):
+        * html/RadioInputType.h: Added.
+        (WebCore::RadioInputType::RadioInputType):
+        * html/RangeInputType.cpp: Added.
+        (WebCore::RangeInputType::create):
+        (WebCore::RangeInputType::formControlType):
+        * html/RangeInputType.h: Added.
+        (WebCore::RangeInputType::RangeInputType):
+        * html/ResetInputType.cpp: Added.
+        (WebCore::ResetInputType::create):
+        (WebCore::ResetInputType::formControlType):
+        * html/ResetInputType.h: Added.
+        (WebCore::ResetInputType::ResetInputType):
+        * html/SearchInputType.cpp: Added.
+        (WebCore::SearchInputType::create):
+        (WebCore::SearchInputType::formControlType):
+        * html/SearchInputType.h: Added.
+        (WebCore::SearchInputType::SearchInputType):
+        * html/SubmitInputType.cpp: Added.
+        (WebCore::SubmitInputType::create):
+        (WebCore::SubmitInputType::formControlType):
+        * html/SubmitInputType.h: Added.
+        (WebCore::SubmitInputType::SubmitInputType):
+        * html/TelephoneInputType.cpp: Added.
+        (WebCore::TelephoneInputType::create):
+        (WebCore::TelephoneInputType::formControlType):
+        * html/TelephoneInputType.h: Added.
+        (WebCore::TelephoneInputType::TelephoneInputType):
+        * html/TextFieldInputType.cpp: Added.
+        (WebCore::TextFieldInputType::isTextField):
+        * html/TextFieldInputType.h: Added.
+        (WebCore::TextFieldInputType::TextFieldInputType):
+        * html/TextInputType.cpp: Added.
+        (WebCore::TextInputType::create):
+        (WebCore::TextInputType::formControlType):
+        * html/TextInputType.h: Added.
+        (WebCore::TextInputType::TextInputType):
+        * html/TimeInputType.cpp: Added.
+        (WebCore::TimeInputType::create):
+        (WebCore::TimeInputType::formControlType):
+        * html/TimeInputType.h: Added.
+        (WebCore::TimeInputType::TimeInputType):
+        * html/URLInputType.cpp: Added.
+        (WebCore::URLInputType::create):
+        (WebCore::URLInputType::formControlType):
+        * html/URLInputType.h: Added.
+        (WebCore::URLInputType::URLInputType):
+        * html/WeekInputType.cpp: Added.
+        (WebCore::WeekInputType::create):
+        (WebCore::WeekInputType::formControlType):
+        * html/WeekInputType.h: Added.
+        (WebCore::WeekInputType::WeekInputType):
+
 2010-09-28  David Hyatt  <hyatt at apple.com>
 
         Reviewed by Maciej Stachowiak.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 722b5c2..ac9b719 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -1425,6 +1425,10 @@ webcore_sources += \
 	WebCore/history/PageCache.h \
 	WebCore/html/AsyncImageResizer.cpp \
 	WebCore/html/AsyncImageResizer.h \
+	WebCore/html/BaseTextInputType.cpp \
+	WebCore/html/BaseTextInputType.h \
+	WebCore/html/ButtonInputType.cpp \
+	WebCore/html/ButtonInputType.h \
 	WebCore/html/canvas/CanvasContextAttributes.h \
 	WebCore/html/canvas/CanvasGradient.cpp \
 	WebCore/html/canvas/CanvasGradient.h \
@@ -1440,9 +1444,13 @@ webcore_sources += \
 	WebCore/html/canvas/CanvasStyle.h \
 	WebCore/html/DOMTokenList.cpp \
 	WebCore/html/DOMTokenList.h \
+	WebCore/html/CheckboxInputType.cpp \
+	WebCore/html/CheckboxInputType.h \
 	WebCore/html/CollectionCache.cpp \
 	WebCore/html/CollectionCache.h \
 	WebCore/html/CollectionType.h \
+	WebCore/html/ColorInputType.cpp \
+	WebCore/html/ColorInputType.h \
 	WebCore/html/DataGridColumn.cpp \
 	WebCore/html/DataGridColumn.h \
 	WebCore/html/DataGridColumnList.cpp \
@@ -1450,10 +1458,20 @@ webcore_sources += \
 	WebCore/html/DataGridDataSource.h \
 	WebCore/html/DateComponents.cpp \
 	WebCore/html/DateComponents.h \
+	WebCore/html/DateInputType.cpp \
+	WebCore/html/DateInputType.h \
+	WebCore/html/DateTimeInputType.cpp \
+	WebCore/html/DateTimeInputType.h \
+	WebCore/html/DateTimeLocalInputType.cpp \
+	WebCore/html/DateTimeLocalInputType.h \
 	WebCore/html/DOMDataGridDataSource.cpp \
 	WebCore/html/DOMDataGridDataSource.h \
 	WebCore/html/DOMFormData.cpp \
 	WebCore/html/DOMFormData.h \
+	WebCore/html/EmailInputType.cpp \
+	WebCore/html/EmailInputType.h \
+	WebCore/html/FileInputType.cpp \
+	WebCore/html/FileInputType.h \
 	WebCore/html/FormDataList.cpp \
 	WebCore/html/FormDataList.h \
 	WebCore/html/FTPDirectoryDocument.cpp \
@@ -1631,17 +1649,29 @@ webcore_sources += \
 	WebCore/html/HTMLVideoElement.h \
 	WebCore/html/HTMLViewSourceDocument.cpp \
 	WebCore/html/HTMLViewSourceDocument.h \
+	WebCore/html/HiddenInputType.cpp \
+	WebCore/html/HiddenInputType.h \
 	WebCore/html/ImageData.cpp \
 	WebCore/html/ImageData.h \
 	WebCore/html/ImageDocument.cpp \
 	WebCore/html/ImageDocument.h \
+	WebCore/html/ImageInputType.cpp \
+	WebCore/html/ImageInputType.h \
 	WebCore/html/ImageResizerThread.cpp \
 	WebCore/html/ImageResizerThread.h \
+	WebCore/html/InputType.cpp \
+	WebCore/html/InputType.h \
+	WebCore/html/IsIndexInputType.cpp \
+	WebCore/html/IsIndexInputType.h \
 	WebCore/html/LabelsNodeList.cpp \
 	WebCore/html/LabelsNodeList.h \
 	WebCore/html/MediaDocument.cpp \
 	WebCore/html/MediaDocument.h \
 	WebCore/html/MediaError.h \
+	WebCore/html/MonthInputType.cpp \
+	WebCore/html/MonthInputType.h \
+	WebCore/html/NumberInputType.cpp \
+	WebCore/html/NumberInputType.h \
 	WebCore/html/parser/CSSPreloadScanner.cpp \
 	WebCore/html/parser/CSSPreloadScanner.h \
 	WebCore/html/parser/HTMLConstructionSite.cpp \
@@ -1679,18 +1709,42 @@ webcore_sources += \
 	WebCore/html/parser/TextDocumentParser.h \
 	WebCore/html/parser/TextViewSourceParser.cpp \
 	WebCore/html/parser/TextViewSourceParser.h \
+	WebCore/html/PasswordInputType.cpp \
+	WebCore/html/PasswordInputType.h \
 	WebCore/html/PluginDocument.cpp \
 	WebCore/html/PluginDocument.h \
+	WebCore/html/RadioInputType.cpp \
+	WebCore/html/RadioInputType.h \
+	WebCore/html/RangeInputType.cpp \
+	WebCore/html/RangeInputType.h \
+	WebCore/html/ResetInputType.cpp \
+	WebCore/html/ResetInputType.h \
+	WebCore/html/SearchInputType.cpp \
+	WebCore/html/SearchInputType.h \
 	WebCore/html/StepRange.cpp \
 	WebCore/html/StepRange.h \
+	WebCore/html/SubmitInputType.cpp \
+	WebCore/html/SubmitInputType.h \
+	WebCore/html/TelephoneInputType.cpp \
+	WebCore/html/TelephoneInputType.h \
 	WebCore/html/TextDocument.cpp \
 	WebCore/html/TextDocument.h \
+	WebCore/html/TextFieldInputType.cpp \
+	WebCore/html/TextFieldInputType.h \
+	WebCore/html/TextInputType.cpp \
+	WebCore/html/TextInputType.h \
 	WebCore/html/TextMetrics.h \
+	WebCore/html/TimeInputType.cpp \
+	WebCore/html/TimeInputType.h \
 	WebCore/html/TimeRanges.cpp \
 	WebCore/html/TimeRanges.h \
+	WebCore/html/URLInputType.cpp \
+	WebCore/html/URLInputType.h \
 	WebCore/html/ValidityState.cpp \
 	WebCore/html/ValidityState.h \
 	WebCore/html/VoidCallback.h \
+	WebCore/html/WeekInputType.cpp \
+	WebCore/html/WeekInputType.h \
 	WebCore/icu/unicode/parseerr.h \
 	WebCore/icu/unicode/platform.h \
 	WebCore/icu/unicode/putil.h \
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index ee65f47..651a178 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -1512,9 +1512,17 @@
             'history/PageCache.h',
             'html/AsyncImageResizer.cpp',
             'html/AsyncImageResizer.h',
+            'html/BaseTextInputType.cpp',
+            'html/BaseTextInputType.h',
+            'html/ButtonInputType.cpp',
+            'html/ButtonInputType.h',
+            'html/CheckboxInputType.cpp',
+            'html/CheckboxInputType.h',
             'html/CollectionCache.cpp',
             'html/CollectionCache.h',
             'html/CollectionType.h',
+            'html/ColorInputType.cpp',
+            'html/ColorInputType.h',
             'html/DOMDataGridDataSource.cpp',
             'html/DOMDataGridDataSource.h',
             'html/DOMFormData.cpp',
@@ -1527,8 +1535,18 @@
             'html/DataGridColumnList.h',
             'html/DateComponents.cpp',
             'html/DateComponents.h',
+            'html/DateInputType.cpp',
+            'html/DateInputType.h',
+            'html/DateTimeInputType.cpp',
+            'html/DateTimeInputType.h',
+            'html/DateTimeLocalInputType.cpp',
+            'html/DateTimeLocalInputType.h',
+            'html/EmailInputType.cpp',
+            'html/EmailInputType.h',
             'html/FTPDirectoryDocument.cpp',
             'html/FTPDirectoryDocument.h',
+            'html/FileInputType.cpp',
+            'html/FileInputType.h',
             'html/FormDataList.cpp',
             'html/FormDataList.h',
             'html/HTMLAllCollection.cpp',
@@ -1701,29 +1719,65 @@
             'html/HTMLVideoElement.h',
             'html/HTMLViewSourceDocument.cpp',
             'html/HTMLViewSourceDocument.h',
+            'html/HiddenInputType.cpp',
+            'html/HiddenInputType.h',
             'html/ImageData.cpp',
             'html/ImageData.h',
             'html/ImageDocument.cpp',
             'html/ImageDocument.h',
+            'html/ImageInputType.cpp',
+            'html/ImageInputType.h',
             'html/ImageResizerThread.cpp',
             'html/ImageResizerThread.h',
+            'html/InputType.cpp',
+            'html/InputType.h',
+            'html/IsIndexInputType.cpp',
+            'html/IsIndexInputType.h',
             'html/LabelsNodeList.cpp',
             'html/LabelsNodeList.h',
             'html/MediaDocument.cpp',
             'html/MediaDocument.h',
             'html/MediaError.h',
+            'html/MonthInputType.cpp',
+            'html/MonthInputType.h',
+            'html/NumberInputType.cpp',
+            'html/NumberInputType.h',
+            'html/PasswordInputType.cpp',
+            'html/PasswordInputType.h',
             'html/PluginDocument.cpp',
             'html/PluginDocument.h',
+            'html/RadioInputType.cpp',
+            'html/RadioInputType.h',
+            'html/RangeInputType.cpp',
+            'html/RangeInputType.h',
+            'html/ResetInputType.cpp',
+            'html/ResetInputType.h',
+            'html/SearchInputType.cpp',
+            'html/SearchInputType.h',
             'html/StepRange.cpp',
             'html/StepRange.h',
+            'html/SubmitInputType.cpp',
+            'html/SubmitInputType.h',
+            'html/TelephoneInputType.cpp',
+            'html/TelephoneInputType.h',
             'html/TextDocument.cpp',
             'html/TextDocument.h',
+            'html/TextFieldInputType.cpp',
+            'html/TextFieldInputType.h',
+            'html/TextInputType.cpp',
+            'html/TextInputType.h',
             'html/TextMetrics.h',
+            'html/TimeInputType.cpp',
+            'html/TimeInputType.h',
             'html/TimeRanges.cpp',
             'html/TimeRanges.h',
+            'html/URLInputType.cpp',
+            'html/URLInputType.h',
             'html/ValidityState.cpp',
             'html/ValidityState.h',
             'html/VoidCallback.h',
+            'html/WeekInputType.cpp',
+            'html/WeekInputType.h',
             'html/canvas/ArrayBuffer.cpp',
             'html/canvas/ArrayBuffer.h',
             'html/canvas/ArrayBufferView.cpp',
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index a3422c1..e595f3b 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -836,14 +836,23 @@ SOURCES += \
     history/qt/HistoryItemQt.cpp \
     history/PageCache.cpp \
     html/AsyncImageResizer.cpp \
+    html/BaseTextInputType.cpp \
+    html/ButtonInputType.cpp \
+    html/CheckboxInputType.cpp \
     html/CollectionCache.cpp \
+    html/ColorInputType.cpp \
     html/DOMDataGridDataSource.cpp \
     html/DOMFormData.cpp \
     html/DOMTokenList.cpp \
     html/DataGridColumn.cpp \
     html/DataGridColumnList.cpp \
     html/DateComponents.cpp \
+    html/DateInputType.cpp \
+    html/DateTimeInputType.cpp \
+    html/DateTimeLocalInputType.cpp \
+    html/EmailInputType.cpp \
     html/FTPDirectoryDocument.cpp \
+    html/FileInputType.cpp \
     html/FormDataList.cpp \
     html/HTMLAllCollection.cpp \
     html/HTMLAnchorElement.cpp \
@@ -926,15 +935,33 @@ SOURCES += \
     html/HTMLTitleElement.cpp \
     html/HTMLUListElement.cpp \
     html/HTMLViewSourceDocument.cpp \
+    html/HiddenInputType.cpp \
     html/ImageData.cpp \
     html/ImageDocument.cpp \
+    html/ImageInputType.cpp \
     html/ImageResizerThread.cpp \
+    html/InputType.cpp \
+    html/IsIndexInputType.cpp \
     html/LabelsNodeList.cpp \
     html/MediaDocument.cpp \
+    html/MonthInputType.cpp \
+    html/NumberInputType.cpp \
+    html/PasswordInputType.cpp \
     html/PluginDocument.cpp \
+    html/RadioInputType.cpp \
+    html/RangeInputType.cpp \
+    html/ResetInputType.cpp \
+    html/SearchInputType.cpp \
     html/StepRange.cpp \
+    html/SubmitInputType.cpp \
+    html/TelephoneInputType.cpp \
     html/TextDocument.cpp \
+    html/TextFieldInputType.cpp \
+    html/TextInputType.cpp \
+    html/TimeInputType.cpp \
+    html/URLInputType.cpp \
     html/ValidityState.cpp \
+    html/WeekInputType.cpp \
     html/canvas/CanvasGradient.cpp \
     html/canvas/CanvasPattern.cpp \
     html/canvas/CanvasPixelArray.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 254b02a..6147ebb 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -37561,6 +37561,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\BaseTextInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\BaseTextInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\fileapi\Blob.cpp"
 				>
 			</File>
@@ -37585,6 +37593,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\ButtonInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\ButtonInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\canvas\CanvasGradient.cpp"
 				>
 			</File>
@@ -37633,6 +37649,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\CheckboxInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\CheckboxInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\CollectionCache.cpp"
 				>
 				<FileConfiguration
@@ -37653,6 +37677,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\ColorInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\ColorInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\DataGridColumn.cpp"
 				>
 			</File>
@@ -37681,6 +37713,30 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\DateInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\DateInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\DateTimeInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\DateTimeInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\DateTimeLocalInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\DateTimeLocalInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\fileapi\DirectoryEntry.cpp"
 				>
 			</File>
@@ -37729,6 +37785,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\EmailInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\EmailInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\fileapi\EntriesCallback.h"
 				>
 			</File>
@@ -37789,6 +37853,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\FileInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\FileInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\fileapi\FileList.cpp"
 				>
 			</File>
@@ -42237,6 +42309,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\HiddenInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\HiddenInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\ImageData.cpp"
 				>
 			</File>
@@ -42253,6 +42333,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\ImageInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\ImageInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\ImageResizerThread.cpp"
 				>
 			</File>
@@ -42261,6 +42349,22 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\InputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\InputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\IsIndexInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\IsIndexInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\LabelsNodeList.cpp"
 				>
 			</File>
@@ -42297,6 +42401,30 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\MonthInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\MonthInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\NumberInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\NumberInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\PasswordInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\PasswordInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\PluginDocument.cpp"
 				>
 			</File>
@@ -42305,6 +42433,38 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\RadioInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\RadioInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\RangeInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\RangeInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\ResetInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\ResetInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\SearchInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\SearchInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\StepRange.cpp"
 				>
 			</File>
@@ -42313,10 +42473,42 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\SubmitInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\SubmitInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\TelephoneInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\TelephoneInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\TextDocument.cpp"
 				>
 			</File>
 			<File
+				RelativePath="..\html\TextFieldInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\TextFieldInputType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\html\TextInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\TextInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\fileapi\ThreadableBlobRegistry.cpp"
 				>
 			</File>
@@ -42333,6 +42525,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\html\URLInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\URLInputType.h"
+				>
+			</File>
+			<File
 				RelativePath="..\html\ValidityState.cpp"
 				>
 			</File>
@@ -42344,6 +42544,14 @@
 				RelativePath="..\html\VoidCallback.h"
 				>
 			</File>
+			<File
+				RelativePath="..\html\WeekInputType.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\html\WeekInputType.h"
+				>
+			</File>
 			<Filter
 				Name="parser"
 				>
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index fd1a00b..d104455 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -826,6 +826,8 @@
 		37C238221098C84200EF9F72 /* ComplexTextControllerCoreText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37C238201098C84200EF9F72 /* ComplexTextControllerCoreText.cpp */; };
 		37C28A6810F659CC008C7813 /* TypesettingFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C28A6710F659CC008C7813 /* TypesettingFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		37C61F0112095C87007A3C67 /* AtomicStringKeyedMRUCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C61F0012095C87007A3C67 /* AtomicStringKeyedMRUCache.h */; };
+		37E3524B12450C5200BAF5D9 /* InputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37E3524A12450C5200BAF5D9 /* InputType.cpp */; };
+		37E3524D12450C6600BAF5D9 /* InputType.h in Headers */ = {isa = PBXBuildFile; fileRef = 37E3524C12450C6600BAF5D9 /* InputType.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		37F818FD0D657606005E1F05 /* WebCoreURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F818FB0D657606005E1F05 /* WebCoreURLResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		37F818FE0D657606005E1F05 /* WebCoreURLResponse.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37F818FC0D657606005E1F05 /* WebCoreURLResponse.mm */; };
 		37FD4298118368460093C029 /* TreeDepthLimit.h in Headers */ = {isa = PBXBuildFile; fileRef = 37FD4297118368460093C029 /* TreeDepthLimit.h */; };
@@ -5375,6 +5377,58 @@
 		F3D461491161D53200CA0D09 /* JSWorkerContextErrorHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = F3D461471161D53200CA0D09 /* JSWorkerContextErrorHandler.h */; };
 		F4EAF4AE10C742B1009100D3 /* OpenTypeSanitizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4EAF4AC10C742B1009100D3 /* OpenTypeSanitizer.cpp */; };
 		F4EAF4AF10C742B1009100D3 /* OpenTypeSanitizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */; };
+		F55B3DAD1251F12D003EF269 /* BaseTextInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D791251F12D003EF269 /* BaseTextInputType.cpp */; };
+		F55B3DAE1251F12D003EF269 /* BaseTextInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D7A1251F12D003EF269 /* BaseTextInputType.h */; };
+		F55B3DAF1251F12D003EF269 /* ButtonInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D7B1251F12D003EF269 /* ButtonInputType.cpp */; };
+		F55B3DB01251F12D003EF269 /* ButtonInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D7C1251F12D003EF269 /* ButtonInputType.h */; };
+		F55B3DB11251F12D003EF269 /* CheckboxInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D7D1251F12D003EF269 /* CheckboxInputType.cpp */; };
+		F55B3DB21251F12D003EF269 /* CheckboxInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D7E1251F12D003EF269 /* CheckboxInputType.h */; };
+		F55B3DB31251F12D003EF269 /* ColorInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D7F1251F12D003EF269 /* ColorInputType.cpp */; };
+		F55B3DB41251F12D003EF269 /* ColorInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D801251F12D003EF269 /* ColorInputType.h */; };
+		F55B3DB51251F12D003EF269 /* DateInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D811251F12D003EF269 /* DateInputType.cpp */; };
+		F55B3DB61251F12D003EF269 /* DateInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D821251F12D003EF269 /* DateInputType.h */; };
+		F55B3DB71251F12D003EF269 /* DateTimeInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D831251F12D003EF269 /* DateTimeInputType.cpp */; };
+		F55B3DB81251F12D003EF269 /* DateTimeInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D841251F12D003EF269 /* DateTimeInputType.h */; };
+		F55B3DB91251F12D003EF269 /* DateTimeLocalInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D851251F12D003EF269 /* DateTimeLocalInputType.cpp */; };
+		F55B3DBA1251F12D003EF269 /* DateTimeLocalInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D861251F12D003EF269 /* DateTimeLocalInputType.h */; };
+		F55B3DBB1251F12D003EF269 /* EmailInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D871251F12D003EF269 /* EmailInputType.cpp */; };
+		F55B3DBC1251F12D003EF269 /* EmailInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D881251F12D003EF269 /* EmailInputType.h */; };
+		F55B3DBD1251F12D003EF269 /* FileInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D891251F12D003EF269 /* FileInputType.cpp */; };
+		F55B3DBE1251F12D003EF269 /* FileInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D8A1251F12D003EF269 /* FileInputType.h */; };
+		F55B3DBF1251F12D003EF269 /* HiddenInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D8B1251F12D003EF269 /* HiddenInputType.cpp */; };
+		F55B3DC01251F12D003EF269 /* HiddenInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D8C1251F12D003EF269 /* HiddenInputType.h */; };
+		F55B3DC11251F12D003EF269 /* ImageInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D8D1251F12D003EF269 /* ImageInputType.cpp */; };
+		F55B3DC21251F12D003EF269 /* ImageInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D8E1251F12D003EF269 /* ImageInputType.h */; };
+		F55B3DC31251F12D003EF269 /* IsIndexInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D8F1251F12D003EF269 /* IsIndexInputType.cpp */; };
+		F55B3DC41251F12D003EF269 /* IsIndexInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D901251F12D003EF269 /* IsIndexInputType.h */; };
+		F55B3DC51251F12D003EF269 /* MonthInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D911251F12D003EF269 /* MonthInputType.cpp */; };
+		F55B3DC61251F12D003EF269 /* MonthInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D921251F12D003EF269 /* MonthInputType.h */; };
+		F55B3DC71251F12D003EF269 /* NumberInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D931251F12D003EF269 /* NumberInputType.cpp */; };
+		F55B3DC81251F12D003EF269 /* NumberInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D941251F12D003EF269 /* NumberInputType.h */; };
+		F55B3DC91251F12D003EF269 /* PasswordInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D951251F12D003EF269 /* PasswordInputType.cpp */; };
+		F55B3DCA1251F12D003EF269 /* PasswordInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D961251F12D003EF269 /* PasswordInputType.h */; };
+		F55B3DCB1251F12D003EF269 /* RadioInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D971251F12D003EF269 /* RadioInputType.cpp */; };
+		F55B3DCC1251F12D003EF269 /* RadioInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D981251F12D003EF269 /* RadioInputType.h */; };
+		F55B3DCD1251F12D003EF269 /* RangeInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D991251F12D003EF269 /* RangeInputType.cpp */; };
+		F55B3DCE1251F12D003EF269 /* RangeInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D9A1251F12D003EF269 /* RangeInputType.h */; };
+		F55B3DCF1251F12D003EF269 /* ResetInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D9B1251F12D003EF269 /* ResetInputType.cpp */; };
+		F55B3DD01251F12D003EF269 /* ResetInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D9C1251F12D003EF269 /* ResetInputType.h */; };
+		F55B3DD11251F12D003EF269 /* SearchInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D9D1251F12D003EF269 /* SearchInputType.cpp */; };
+		F55B3DD21251F12D003EF269 /* SearchInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3D9E1251F12D003EF269 /* SearchInputType.h */; };
+		F55B3DD31251F12D003EF269 /* SubmitInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D9F1251F12D003EF269 /* SubmitInputType.cpp */; };
+		F55B3DD41251F12D003EF269 /* SubmitInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DA01251F12D003EF269 /* SubmitInputType.h */; };
+		F55B3DD51251F12D003EF269 /* TelephoneInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3DA11251F12D003EF269 /* TelephoneInputType.cpp */; };
+		F55B3DD61251F12D003EF269 /* TelephoneInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DA21251F12D003EF269 /* TelephoneInputType.h */; };
+		F55B3DD71251F12D003EF269 /* TextFieldInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3DA31251F12D003EF269 /* TextFieldInputType.cpp */; };
+		F55B3DD81251F12D003EF269 /* TextFieldInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DA41251F12D003EF269 /* TextFieldInputType.h */; };
+		F55B3DD91251F12D003EF269 /* TextInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3DA51251F12D003EF269 /* TextInputType.cpp */; };
+		F55B3DDA1251F12D003EF269 /* TextInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DA61251F12D003EF269 /* TextInputType.h */; };
+		F55B3DDB1251F12D003EF269 /* TimeInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3DA71251F12D003EF269 /* TimeInputType.cpp */; };
+		F55B3DDC1251F12D003EF269 /* TimeInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DA81251F12D003EF269 /* TimeInputType.h */; };
+		F55B3DDD1251F12D003EF269 /* URLInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3DA91251F12D003EF269 /* URLInputType.cpp */; };
+		F55B3DDE1251F12D003EF269 /* URLInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DAA1251F12D003EF269 /* URLInputType.h */; };
+		F55B3DDF1251F12D003EF269 /* WeekInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3DAB1251F12D003EF269 /* WeekInputType.cpp */; };
+		F55B3DE01251F12D003EF269 /* WeekInputType.h in Headers */ = {isa = PBXBuildFile; fileRef = F55B3DAC1251F12D003EF269 /* WeekInputType.h */; };
 		F5C041DA0FFCA7CE00839D4A /* HTMLDataListElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5C041D70FFCA7CE00839D4A /* HTMLDataListElement.cpp */; };
 		F5C041DB0FFCA7CE00839D4A /* HTMLDataListElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C041D80FFCA7CE00839D4A /* HTMLDataListElement.h */; };
 		F5C041E30FFCA96D00839D4A /* DOMHTMLDataListElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C041DE0FFCA96D00839D4A /* DOMHTMLDataListElement.h */; };
@@ -6720,6 +6774,8 @@
 		37C238201098C84200EF9F72 /* ComplexTextControllerCoreText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexTextControllerCoreText.cpp; sourceTree = "<group>"; };
 		37C28A6710F659CC008C7813 /* TypesettingFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypesettingFeatures.h; sourceTree = "<group>"; };
 		37C61F0012095C87007A3C67 /* AtomicStringKeyedMRUCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AtomicStringKeyedMRUCache.h; sourceTree = "<group>"; };
+		37E3524A12450C5200BAF5D9 /* InputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InputType.cpp; sourceTree = "<group>"; };
+		37E3524C12450C6600BAF5D9 /* InputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputType.h; sourceTree = "<group>"; };
 		37F818FB0D657606005E1F05 /* WebCoreURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreURLResponse.h; sourceTree = "<group>"; };
 		37F818FC0D657606005E1F05 /* WebCoreURLResponse.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreURLResponse.mm; sourceTree = "<group>"; };
 		37FC96DA1104ED71003E1FAD /* TrailingFloatsRootInlineBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrailingFloatsRootInlineBox.h; sourceTree = "<group>"; };
@@ -11269,6 +11325,58 @@
 		F523D30402DE4476018635CA /* Range.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = Range.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		F523D30902DE4476018635CA /* XMLDocumentParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLDocumentParser.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		F523D30A02DE4476018635CA /* XMLDocumentParser.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = XMLDocumentParser.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+		F55B3D791251F12D003EF269 /* BaseTextInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BaseTextInputType.cpp; sourceTree = "<group>"; };
+		F55B3D7A1251F12D003EF269 /* BaseTextInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTextInputType.h; sourceTree = "<group>"; };
+		F55B3D7B1251F12D003EF269 /* ButtonInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ButtonInputType.cpp; sourceTree = "<group>"; };
+		F55B3D7C1251F12D003EF269 /* ButtonInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ButtonInputType.h; sourceTree = "<group>"; };
+		F55B3D7D1251F12D003EF269 /* CheckboxInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CheckboxInputType.cpp; sourceTree = "<group>"; };
+		F55B3D7E1251F12D003EF269 /* CheckboxInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CheckboxInputType.h; sourceTree = "<group>"; };
+		F55B3D7F1251F12D003EF269 /* ColorInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ColorInputType.cpp; sourceTree = "<group>"; };
+		F55B3D801251F12D003EF269 /* ColorInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorInputType.h; sourceTree = "<group>"; };
+		F55B3D811251F12D003EF269 /* DateInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DateInputType.cpp; sourceTree = "<group>"; };
+		F55B3D821251F12D003EF269 /* DateInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateInputType.h; sourceTree = "<group>"; };
+		F55B3D831251F12D003EF269 /* DateTimeInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DateTimeInputType.cpp; sourceTree = "<group>"; };
+		F55B3D841251F12D003EF269 /* DateTimeInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateTimeInputType.h; sourceTree = "<group>"; };
+		F55B3D851251F12D003EF269 /* DateTimeLocalInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DateTimeLocalInputType.cpp; sourceTree = "<group>"; };
+		F55B3D861251F12D003EF269 /* DateTimeLocalInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateTimeLocalInputType.h; sourceTree = "<group>"; };
+		F55B3D871251F12D003EF269 /* EmailInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EmailInputType.cpp; sourceTree = "<group>"; };
+		F55B3D881251F12D003EF269 /* EmailInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmailInputType.h; sourceTree = "<group>"; };
+		F55B3D891251F12D003EF269 /* FileInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileInputType.cpp; sourceTree = "<group>"; };
+		F55B3D8A1251F12D003EF269 /* FileInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileInputType.h; sourceTree = "<group>"; };
+		F55B3D8B1251F12D003EF269 /* HiddenInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HiddenInputType.cpp; sourceTree = "<group>"; };
+		F55B3D8C1251F12D003EF269 /* HiddenInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HiddenInputType.h; sourceTree = "<group>"; };
+		F55B3D8D1251F12D003EF269 /* ImageInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageInputType.cpp; sourceTree = "<group>"; };
+		F55B3D8E1251F12D003EF269 /* ImageInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageInputType.h; sourceTree = "<group>"; };
+		F55B3D8F1251F12D003EF269 /* IsIndexInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IsIndexInputType.cpp; sourceTree = "<group>"; };
+		F55B3D901251F12D003EF269 /* IsIndexInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IsIndexInputType.h; sourceTree = "<group>"; };
+		F55B3D911251F12D003EF269 /* MonthInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MonthInputType.cpp; sourceTree = "<group>"; };
+		F55B3D921251F12D003EF269 /* MonthInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonthInputType.h; sourceTree = "<group>"; };
+		F55B3D931251F12D003EF269 /* NumberInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NumberInputType.cpp; sourceTree = "<group>"; };
+		F55B3D941251F12D003EF269 /* NumberInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberInputType.h; sourceTree = "<group>"; };
+		F55B3D951251F12D003EF269 /* PasswordInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PasswordInputType.cpp; sourceTree = "<group>"; };
+		F55B3D961251F12D003EF269 /* PasswordInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PasswordInputType.h; sourceTree = "<group>"; };
+		F55B3D971251F12D003EF269 /* RadioInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RadioInputType.cpp; sourceTree = "<group>"; };
+		F55B3D981251F12D003EF269 /* RadioInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadioInputType.h; sourceTree = "<group>"; };
+		F55B3D991251F12D003EF269 /* RangeInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RangeInputType.cpp; sourceTree = "<group>"; };
+		F55B3D9A1251F12D003EF269 /* RangeInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RangeInputType.h; sourceTree = "<group>"; };
+		F55B3D9B1251F12D003EF269 /* ResetInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResetInputType.cpp; sourceTree = "<group>"; };
+		F55B3D9C1251F12D003EF269 /* ResetInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResetInputType.h; sourceTree = "<group>"; };
+		F55B3D9D1251F12D003EF269 /* SearchInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SearchInputType.cpp; sourceTree = "<group>"; };
+		F55B3D9E1251F12D003EF269 /* SearchInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchInputType.h; sourceTree = "<group>"; };
+		F55B3D9F1251F12D003EF269 /* SubmitInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SubmitInputType.cpp; sourceTree = "<group>"; };
+		F55B3DA01251F12D003EF269 /* SubmitInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubmitInputType.h; sourceTree = "<group>"; };
+		F55B3DA11251F12D003EF269 /* TelephoneInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TelephoneInputType.cpp; sourceTree = "<group>"; };
+		F55B3DA21251F12D003EF269 /* TelephoneInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelephoneInputType.h; sourceTree = "<group>"; };
+		F55B3DA31251F12D003EF269 /* TextFieldInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextFieldInputType.cpp; sourceTree = "<group>"; };
+		F55B3DA41251F12D003EF269 /* TextFieldInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextFieldInputType.h; sourceTree = "<group>"; };
+		F55B3DA51251F12D003EF269 /* TextInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextInputType.cpp; sourceTree = "<group>"; };
+		F55B3DA61251F12D003EF269 /* TextInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextInputType.h; sourceTree = "<group>"; };
+		F55B3DA71251F12D003EF269 /* TimeInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TimeInputType.cpp; sourceTree = "<group>"; };
+		F55B3DA81251F12D003EF269 /* TimeInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimeInputType.h; sourceTree = "<group>"; };
+		F55B3DA91251F12D003EF269 /* URLInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URLInputType.cpp; sourceTree = "<group>"; };
+		F55B3DAA1251F12D003EF269 /* URLInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLInputType.h; sourceTree = "<group>"; };
+		F55B3DAB1251F12D003EF269 /* WeekInputType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeekInputType.cpp; sourceTree = "<group>"; };
+		F55B3DAC1251F12D003EF269 /* WeekInputType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeekInputType.h; sourceTree = "<group>"; };
 		F58784F002DE375901EA4122 /* CursorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CursorMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		F587851502DE375901EA4122 /* DeprecatedPtrListImpl.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = DeprecatedPtrListImpl.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
 		F587851602DE375901EA4122 /* DeprecatedPtrListImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeprecatedPtrListImpl.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
@@ -14145,9 +14253,17 @@
 				97C1F5511228558800EDE616 /* parser */,
 				B0149E7911A4B21500196A7B /* AsyncImageResizer.cpp */,
 				B0149E7A11A4B21500196A7B /* AsyncImageResizer.h */,
+				F55B3D791251F12D003EF269 /* BaseTextInputType.cpp */,
+				F55B3D7A1251F12D003EF269 /* BaseTextInputType.h */,
+				F55B3D7B1251F12D003EF269 /* ButtonInputType.cpp */,
+				F55B3D7C1251F12D003EF269 /* ButtonInputType.h */,
+				F55B3D7D1251F12D003EF269 /* CheckboxInputType.cpp */,
+				F55B3D7E1251F12D003EF269 /* CheckboxInputType.h */,
 				93C441ED0F813A1A00C1A634 /* CollectionCache.cpp */,
 				93C441EE0F813A1A00C1A634 /* CollectionCache.h */,
 				93C441FF0F813AE100C1A634 /* CollectionType.h */,
+				F55B3D7F1251F12D003EF269 /* ColorInputType.cpp */,
+				F55B3D801251F12D003EF269 /* ColorInputType.h */,
 				BC77D2380FF298080070887B /* DataGridColumn.cpp */,
 				BC77CFC10FF175550070887B /* DataGridColumn.h */,
 				BC77CF9E0FF172B30070887B /* DataGridColumn.idl */,
@@ -14157,6 +14273,12 @@
 				BCBCAE360FF19385000762AE /* DataGridDataSource.h */,
 				F5D3A57A106B83B300545297 /* DateComponents.cpp */,
 				F5D3A57B106B83B300545297 /* DateComponents.h */,
+				F55B3D811251F12D003EF269 /* DateInputType.cpp */,
+				F55B3D821251F12D003EF269 /* DateInputType.h */,
+				F55B3D831251F12D003EF269 /* DateTimeInputType.cpp */,
+				F55B3D841251F12D003EF269 /* DateTimeInputType.h */,
+				F55B3D851251F12D003EF269 /* DateTimeLocalInputType.cpp */,
+				F55B3D861251F12D003EF269 /* DateTimeLocalInputType.h */,
 				BC7DAAEC0FF9615D00CE0138 /* DOMDataGridDataSource.cpp */,
 				BC7DAAED0FF9615D00CE0138 /* DOMDataGridDataSource.h */,
 				2ED609BA1145B07100C8684E /* DOMFormData.cpp */,
@@ -14165,10 +14287,16 @@
 				76FC2B0812370DA0006A991A /* DOMTokenList.cpp */,
 				76FC2B0912370DA0006A991A /* DOMTokenList.h */,
 				76FC2B0A12370DA0006A991A /* DOMTokenList.idl */,
+				F55B3D871251F12D003EF269 /* EmailInputType.cpp */,
+				F55B3D881251F12D003EF269 /* EmailInputType.h */,
+				F55B3D891251F12D003EF269 /* FileInputType.cpp */,
+				F55B3D8A1251F12D003EF269 /* FileInputType.h */,
 				A8136D370973A8E700D74463 /* FormDataList.cpp */,
 				A8136D360973A8E700D74463 /* FormDataList.h */,
 				97205AAD123928CA00B17380 /* FTPDirectoryDocument.cpp */,
 				97205AAE123928CA00B17380 /* FTPDirectoryDocument.h */,
+				F55B3D8B1251F12D003EF269 /* HiddenInputType.cpp */,
+				F55B3D8C1251F12D003EF269 /* HiddenInputType.h */,
 				BC97E239109144950010D361 /* HTMLAllCollection.cpp */,
 				BC97E238109144950010D361 /* HTMLAllCollection.h */,
 				BC97E23C109146F10010D361 /* HTMLAllCollection.idl */,
@@ -14421,30 +14549,64 @@
 				A77979150D6B9D0C003851B9 /* ImageData.idl */,
 				97205AB11239291000B17380 /* ImageDocument.cpp */,
 				97205AB21239291000B17380 /* ImageDocument.h */,
+				F55B3D8D1251F12D003EF269 /* ImageInputType.cpp */,
+				F55B3D8E1251F12D003EF269 /* ImageInputType.h */,
 				B0149E7B11A4B21500196A7B /* ImageResizerThread.cpp */,
 				B0149E7C11A4B21500196A7B /* ImageResizerThread.h */,
+				37E3524A12450C5200BAF5D9 /* InputType.cpp */,
+				37E3524C12450C6600BAF5D9 /* InputType.h */,
+				F55B3D8F1251F12D003EF269 /* IsIndexInputType.cpp */,
+				F55B3D901251F12D003EF269 /* IsIndexInputType.h */,
 				A456FA2411AD4A830020B420 /* LabelsNodeList.cpp */,
 				A456FA2511AD4A830020B420 /* LabelsNodeList.h */,
 				97205AB31239291000B17380 /* MediaDocument.cpp */,
 				97205AB41239291000B17380 /* MediaDocument.h */,
 				E446139B0CD6331000FADA75 /* MediaError.h */,
 				E446139C0CD6331000FADA75 /* MediaError.idl */,
+				F55B3D911251F12D003EF269 /* MonthInputType.cpp */,
+				F55B3D921251F12D003EF269 /* MonthInputType.h */,
+				F55B3D931251F12D003EF269 /* NumberInputType.cpp */,
+				F55B3D941251F12D003EF269 /* NumberInputType.h */,
+				F55B3D951251F12D003EF269 /* PasswordInputType.cpp */,
+				F55B3D961251F12D003EF269 /* PasswordInputType.h */,
 				97205AB91239292700B17380 /* PluginDocument.cpp */,
 				97205ABA1239292700B17380 /* PluginDocument.h */,
+				F55B3D971251F12D003EF269 /* RadioInputType.cpp */,
+				F55B3D981251F12D003EF269 /* RadioInputType.h */,
+				F55B3D991251F12D003EF269 /* RangeInputType.cpp */,
+				F55B3D9A1251F12D003EF269 /* RangeInputType.h */,
+				F55B3D9B1251F12D003EF269 /* ResetInputType.cpp */,
+				F55B3D9C1251F12D003EF269 /* ResetInputType.h */,
+				F55B3D9D1251F12D003EF269 /* SearchInputType.cpp */,
+				F55B3D9E1251F12D003EF269 /* SearchInputType.h */,
 				A5AFB34D115151A700B045CB /* StepRange.cpp */,
 				A5AFB34E115151A700B045CB /* StepRange.h */,
+				F55B3D9F1251F12D003EF269 /* SubmitInputType.cpp */,
+				F55B3DA01251F12D003EF269 /* SubmitInputType.h */,
+				F55B3DA11251F12D003EF269 /* TelephoneInputType.cpp */,
+				F55B3DA21251F12D003EF269 /* TelephoneInputType.h */,
 				97BC84B112371180000C6161 /* TextDocument.cpp */,
 				97BC84B212371180000C6161 /* TextDocument.h */,
+				F55B3DA31251F12D003EF269 /* TextFieldInputType.cpp */,
+				F55B3DA41251F12D003EF269 /* TextFieldInputType.h */,
+				F55B3DA51251F12D003EF269 /* TextInputType.cpp */,
+				F55B3DA61251F12D003EF269 /* TextInputType.h */,
 				BCEF45E80E687767001C1287 /* TextMetrics.h */,
 				BCEF453F0E676AC1001C1287 /* TextMetrics.idl */,
+				F55B3DA71251F12D003EF269 /* TimeInputType.cpp */,
+				F55B3DA81251F12D003EF269 /* TimeInputType.h */,
 				E446139D0CD6331000FADA75 /* TimeRanges.cpp */,
 				E446139E0CD6331000FADA75 /* TimeRanges.h */,
 				E446139F0CD6331000FADA75 /* TimeRanges.idl */,
+				F55B3DA91251F12D003EF269 /* URLInputType.cpp */,
+				F55B3DAA1251F12D003EF269 /* URLInputType.h */,
 				15C7708B100D3C6A005BA267 /* ValidityState.cpp */,
 				15C7708A100D3C6A005BA267 /* ValidityState.h */,
 				15C77089100D3C6A005BA267 /* ValidityState.idl */,
 				E44613B40CD6344E00FADA75 /* VoidCallback.h */,
 				E44613A00CD6331000FADA75 /* VoidCallback.idl */,
+				F55B3DAB1251F12D003EF269 /* WeekInputType.cpp */,
+				F55B3DAC1251F12D003EF269 /* WeekInputType.h */,
 			);
 			path = html;
 			sourceTree = "<group>";
@@ -17919,6 +18081,7 @@
 				BCA8CA6011E4E6D100812FB7 /* BackForwardListImpl.h in Headers */,
 				BC124EE80C2641CD009E2349 /* BarInfo.h in Headers */,
 				B2C3DA220D006C1D00EF6F26 /* Base64.h in Headers */,
+				F55B3DAE1251F12D003EF269 /* BaseTextInputType.h in Headers */,
 				BC9462D8107A7B4C00857193 /* BeforeLoadEvent.h in Headers */,
 				51721FBB11D2790700638B42 /* BeforeProcessEvent.h in Headers */,
 				AB23A32809BBA7D00067CC53 /* BeforeTextInsertedEvent.h in Headers */,
@@ -17946,6 +18109,7 @@
 				93309DDB099E64920056E581 /* BreakBlockquoteCommand.h in Headers */,
 				599E759011055A1F00D904FA /* Bridge.h in Headers */,
 				59B5977511086579007159E8 /* BridgeJSC.h in Headers */,
+				F55B3DB01251F12D003EF269 /* ButtonInputType.h in Headers */,
 				1A569CF80D7E2B82007C3983 /* c_class.h in Headers */,
 				1A569CFA0D7E2B82007C3983 /* c_instance.h in Headers */,
 				1A569CFC0D7E2B82007C3983 /* c_runtime.h in Headers */,
@@ -17978,6 +18142,7 @@
 				6550B6A0099DF0270090D781 /* CharacterData.h in Headers */,
 				B2C3DA260D006C1D00EF6F26 /* CharacterNames.h in Headers */,
 				B2C3DA2A0D006C1D00EF6F26 /* CharsetData.h in Headers */,
+				F55B3DB21251F12D003EF269 /* CheckboxInputType.h in Headers */,
 				A00B721A11DE6428008AB9FF /* CheckedInt.h in Headers */,
 				93F925430F7EF5B8007E37C9 /* CheckedRadioButtons.h in Headers */,
 				A81872200977D3C0005826D9 /* ChildNodeList.h in Headers */,
@@ -17996,6 +18161,7 @@
 				93C442000F813AE100C1A634 /* CollectionType.h in Headers */,
 				B27535670B053814002CE64F /* Color.h in Headers */,
 				B22279630D00BF220071B782 /* ColorDistance.h in Headers */,
+				F55B3DB41251F12D003EF269 /* ColorInputType.h in Headers */,
 				EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */,
 				9382DF5810A8D5C900925652 /* ColorSpace.h in Headers */,
 				BCDD454E1236C95C009A7985 /* ColumnInfo.h in Headers */,
@@ -18107,6 +18273,9 @@
 				BC22746F0E83664500E7F975 /* DataRef.h in Headers */,
 				BC64641C11D7F416006455B0 /* DatasetDOMStringMap.h in Headers */,
 				F5D3A57D106B83B300545297 /* DateComponents.h in Headers */,
+				F55B3DB61251F12D003EF269 /* DateInputType.h in Headers */,
+				F55B3DB81251F12D003EF269 /* DateTimeInputType.h in Headers */,
+				F55B3DBA1251F12D003EF269 /* DateTimeLocalInputType.h in Headers */,
 				A8C228A111D5722E00D5A7D3 /* DecodedDataDocumentParser.h in Headers */,
 				4162A451101145AE00DFF3ED /* DedicatedWorkerContext.h in Headers */,
 				41A3D58F101C152D00316D07 /* DedicatedWorkerThread.h in Headers */,
@@ -18914,6 +19083,7 @@
 				63F5D4F70E8C4B7100C0BD04 /* ElementRareData.h in Headers */,
 				E415F1840D9A1A830033CE97 /* ElementTimeControl.h in Headers */,
 				A8CFF6BE0A156118000A4234 /* EllipsisBox.h in Headers */,
+				F55B3DBC1251F12D003EF269 /* EmailInputType.h in Headers */,
 				B25599A50D00D8BA00BB825C /* EmptyClients.h in Headers */,
 				5DC87EF011716DF2001C0E6D /* EmptyProtocolDefinitions.h in Headers */,
 				A8EA7EC20A1945D000A8EF5F /* Entity.h in Headers */,
@@ -18957,6 +19127,7 @@
 				89878562122CA064003AABDA /* FileEntry.h in Headers */,
 				976D6C83122B8A3D001FD1F7 /* FileError.h in Headers */,
 				2EDF369F122C94C8002F7D4E /* FileException.h in Headers */,
+				F55B3DBE1251F12D003EF269 /* FileInputType.h in Headers */,
 				976D6C86122B8A3D001FD1F7 /* FileList.h in Headers */,
 				976D6C89122B8A3D001FD1F7 /* FileReader.h in Headers */,
 				2EDF369D122C94B4002F7D4E /* FileReaderSync.h in Headers */,
@@ -19048,6 +19219,7 @@
 				C50B561712119D23008B46E0 /* GroupSettings.h in Headers */,
 				7693BAD2106C2DCA007B0823 /* HaltablePlugin.h in Headers */,
 				8482B7461198C35400BFB005 /* HashChangeEvent.h in Headers */,
+				F55B3DC01251F12D003EF269 /* HiddenInputType.h in Headers */,
 				BC94D1540C275C8B006BC617 /* History.h in Headers */,
 				97DCE20210807C750057D394 /* HistoryController.h in Headers */,
 				51741D110B07259A00ED442C /* HistoryItem.h in Headers */,
@@ -19207,6 +19379,7 @@
 				BCA979171215D055005C485C /* ImageBufferData.h in Headers */,
 				A779791A0D6B9D0C003851B9 /* ImageData.h in Headers */,
 				97205AB61239291000B17380 /* ImageDocument.h in Headers */,
+				F55B3DC21251F12D003EF269 /* ImageInputType.h in Headers */,
 				089582560E857A7E00F82C83 /* ImageLoader.h in Headers */,
 				BC7F44A80B9E324E00A9D081 /* ImageObserver.h in Headers */,
 				B0149E8011A4B21500196A7B /* ImageResizerThread.h in Headers */,
@@ -19221,6 +19394,7 @@
 				BCE789161120D6080060ECE5 /* InlineIterator.h in Headers */,
 				BCEA485A097D93020094C9E4 /* InlineTextBox.h in Headers */,
 				08591AA50F085C4E009BACB1 /* InputElement.h in Headers */,
+				37E3524D12450C6600BAF5D9 /* InputType.h in Headers */,
 				93309DEA099E64920056E581 /* InsertIntoTextNodeCommand.h in Headers */,
 				93309DEC099E64920056E581 /* InsertLineBreakCommand.h in Headers */,
 				D07DEABA0A36554A00CA30F8 /* InsertListCommand.h in Headers */,
@@ -19255,6 +19429,7 @@
 				B27535740B053814002CE64F /* IntRect.h in Headers */,
 				B27535750B053814002CE64F /* IntSize.h in Headers */,
 				B27535760B053814002CE64F /* IntSizeHash.h in Headers */,
+				F55B3DC41251F12D003EF269 /* IsIndexInputType.h in Headers */,
 				59E560A71105336600AA1258 /* JavaClassJSC.h in Headers */,
 				59A9E7B21104759400DFB4C1 /* JavaInstanceJSC.h in Headers */,
 				E16982681134680700894115 /* JavaRuntimeObject.h in Headers */,
@@ -19784,6 +19959,7 @@
 				8987856A122CA064003AABDA /* MetadataCallback.h in Headers */,
 				BC772C4F0C4EB3040083285F /* MIMETypeRegistry.h in Headers */,
 				C6D74AD509AA282E000B0A52 /* ModifySelectionListLevel.h in Headers */,
+				F55B3DC61251F12D003EF269 /* MonthInputType.h in Headers */,
 				85031B460A44EFC700F992E0 /* MouseEvent.h in Headers */,
 				935C476309AC4CE600A6AAB4 /* MouseEventWithHitTestResults.h in Headers */,
 				85031B480A44EFC700F992E0 /* MouseRelatedEvent.h in Headers */,
@@ -19821,6 +19997,7 @@
 				1A569D100D7E2B82007C3983 /* npruntime_internal.h in Headers */,
 				1A569D110D7E2B82007C3983 /* npruntime_priv.h in Headers */,
 				1A27CF97118A354C0041D632 /* nptypes.h in Headers */,
+				F55B3DC81251F12D003EF269 /* NumberInputType.h in Headers */,
 				1A569D120D7E2B82007C3983 /* objc_class.h in Headers */,
 				1A569D140D7E2B82007C3983 /* objc_header.h in Headers */,
 				1A569D150D7E2B82007C3983 /* objc_instance.h in Headers */,
@@ -19848,6 +20025,7 @@
 				0885068011DA045B00182B98 /* PaintPhase.h in Headers */,
 				A80E6CFB0A1989CA007FB8C5 /* Pair.h in Headers */,
 				BC76AC130DD7AD5C00415F34 /* ParserUtilities.h in Headers */,
+				F55B3DCA1251F12D003EF269 /* PasswordInputType.h in Headers */,
 				4B2708C70AF19EE40065127F /* Pasteboard.h in Headers */,
 				A7D3C5240B576B4B002CA450 /* PasteboardHelper.h in Headers */,
 				B27535800B053814002CE64F /* Path.h in Headers */,
@@ -19900,9 +20078,11 @@
 				E4D687790ED7AE4F006EA978 /* PurgeableBuffer.h in Headers */,
 				550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */,
 				B22279720D00BF220071B782 /* RadialGradientAttributes.h in Headers */,
+				F55B3DCC1251F12D003EF269 /* RadioInputType.h in Headers */,
 				93F1991808245E59001E9ABC /* Range.h in Headers */,
 				93D9D53C0DA27E180077216C /* RangeBoundaryPoint.h in Headers */,
 				D23CA56C0AB0EB8D005108A5 /* RangeException.h in Headers */,
+				F55B3DCE1251F12D003EF269 /* RangeInputType.h in Headers */,
 				A84D827C11D333ED00972990 /* RawDataDocumentParser.h in Headers */,
 				BC4368E80C226E32005EFB5F /* Rect.h in Headers */,
 				979F43D41075E44A0000F83B /* RedirectScheduler.h in Headers */,
@@ -20024,6 +20204,7 @@
 				A89CCC530F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.h in Headers */,
 				93309E0A099E64920056E581 /* ReplaceSelectionCommand.h in Headers */,
 				BCB16C2F0979C3BD00467741 /* Request.h in Headers */,
+				F55B3DD01251F12D003EF269 /* ResetInputType.h in Headers */,
 				934F71420D5A6F4400018D69 /* ResourceError.h in Headers */,
 				934F713C0D5A6F1900018D69 /* ResourceErrorBase.h in Headers */,
 				514C76790CE923A1007EF3CD /* ResourceHandle.h in Headers */,
@@ -20086,6 +20267,7 @@
 				5D925B680F64D4DD00B847F0 /* ScrollBehavior.h in Headers */,
 				93C09C860B0657AA005ABD4D /* ScrollTypes.h in Headers */,
 				BC6D6E2609AF943500F59759 /* ScrollView.h in Headers */,
+				F55B3DD21251F12D003EF269 /* SearchInputType.h in Headers */,
 				AB7170890B3118080017123E /* SearchPopupMenu.h in Headers */,
 				D39D009D11F907E6006041F2 /* SearchPopupMenuMac.h in Headers */,
 				33C0CCD5112C5E6200CE057D /* SecureTextInput.h in Headers */,
@@ -20196,6 +20378,7 @@
 				BC5EB8100E81F2CE00B25965 /* StyleTransformData.h in Headers */,
 				BC5EB69A0E81DA6300B25965 /* StyleVisualData.h in Headers */,
 				D000ED2811C1B9CD00C47726 /* SubframeLoader.h in Headers */,
+				F55B3DD41251F12D003EF269 /* SubmitInputType.h in Headers */,
 				656D37480ADBA5DE00A4554D /* SubresourceLoader.h in Headers */,
 				1A3178930B20A81600316987 /* SubresourceLoaderClient.h in Headers */,
 				659A7D130B6DB4D9001155B3 /* SubstituteData.h in Headers */,
@@ -20390,6 +20573,7 @@
 				93E62D9B0985F41600E1B5E3 /* SystemTime.h in Headers */,
 				A8CFF0510A154F09000A4234 /* TableLayout.h in Headers */,
 				BCE3BEC30D222B1D007E06E4 /* TagNodeList.h in Headers */,
+				F55B3DD61251F12D003EF269 /* TelephoneInputType.h in Headers */,
 				6550B6A6099DF0270090D781 /* Text.h in Headers */,
 				93309E17099E64920056E581 /* TextAffinity.h in Headers */,
 				B2C3DA340D006C1D00EF6F26 /* TextBoundaries.h in Headers */,
@@ -20409,7 +20593,9 @@
 				C105DA640F3AA6B8001DD44F /* TextEncodingDetector.h in Headers */,
 				B2C3DA490D006C1D00EF6F26 /* TextEncodingRegistry.h in Headers */,
 				933A14300B7D188600A53FFD /* TextEvent.h in Headers */,
+				F55B3DD81251F12D003EF269 /* TextFieldInputType.h in Headers */,
 				93309E18099E64920056E581 /* TextGranularity.h in Headers */,
+				F55B3DDA1251F12D003EF269 /* TextInputType.h in Headers */,
 				93309E1C099E64920056E581 /* TextIterator.h in Headers */,
 				BCEF45E90E687767001C1287 /* TextMetrics.h in Headers */,
 				930FC68A1072B9280045293E /* TextRenderingMode.h in Headers */,
@@ -20428,6 +20614,7 @@
 				51DF6D7E0B92A16D00C2DC85 /* ThreadCheck.h in Headers */,
 				E1FF57A30F01255B00891EBB /* ThreadGlobalData.h in Headers */,
 				185BCF290F3279CE000EA262 /* ThreadTimers.h in Headers */,
+				F55B3DDC1251F12D003EF269 /* TimeInputType.h in Headers */,
 				7553CFE8108F473F00EA281E /* TimelineRecordFactory.h in Headers */,
 				9305B24D098F1B6B00C28855 /* Timer.h in Headers */,
 				E44613B00CD6331000FADA75 /* TimeRanges.h in Headers */,
@@ -20454,6 +20641,7 @@
 				B2C3DA4D0D006C1D00EF6F26 /* UnicodeRange.h in Headers */,
 				E4AFCFA50DAF29A300F5F55C /* UnitBezier.h in Headers */,
 				D086FE9809D53AAB005BC74D /* UnlinkCommand.h in Headers */,
+				F55B3DDE1251F12D003EF269 /* URLInputType.h in Headers */,
 				656581B209D14EE6000E61D7 /* UserAgentStyleSheets.h in Headers */,
 				003F1FEA11E6AB43008258D9 /* UserContentTypes.h in Headers */,
 				BCACF3BD1072921A00C0C8A3 /* UserContentURLPattern.h in Headers */,
@@ -20514,6 +20702,7 @@
 				7637C543112E7B7E003D6CDC /* WebSocketHandshakeRequest.h in Headers */,
 				767F99C011A119560080C51D /* WebSocketHandshakeResponse.h in Headers */,
 				0FCF332D0F2B9A25004B6795 /* WebTiledLayer.h in Headers */,
+				F55B3DE01251F12D003EF269 /* WeekInputType.h in Headers */,
 				85031B510A44EFC700F992E0 /* WheelEvent.h in Headers */,
 				9380F47409A11AB4001FDB34 /* Widget.h in Headers */,
 				939B02EF0EA2DBC400C54570 /* WidthIterator.h in Headers */,
@@ -20971,6 +21160,7 @@
 				BCA8CA5F11E4E6D100812FB7 /* BackForwardListImpl.cpp in Sources */,
 				BC124EE70C2641CD009E2349 /* BarInfo.cpp in Sources */,
 				B2C3DA210D006C1D00EF6F26 /* Base64.cpp in Sources */,
+				F55B3DAD1251F12D003EF269 /* BaseTextInputType.cpp in Sources */,
 				5172204B11D2960500638B42 /* BeforeProcessEvent.cpp in Sources */,
 				AB23A32709BBA7D00067CC53 /* BeforeTextInsertedEvent.cpp in Sources */,
 				85031B3C0A44EFC700F992E0 /* BeforeUnloadEvent.cpp in Sources */,
@@ -20989,6 +21179,7 @@
 				BCEA4854097D93020094C9E4 /* break_lines.cpp in Sources */,
 				93309DDA099E64920056E581 /* BreakBlockquoteCommand.cpp in Sources */,
 				59B597731108656B007159E8 /* BridgeJSC.cpp in Sources */,
+				F55B3DAF1251F12D003EF269 /* ButtonInputType.cpp in Sources */,
 				1A569CF70D7E2B82007C3983 /* c_class.cpp in Sources */,
 				1A569CF90D7E2B82007C3983 /* c_instance.cpp in Sources */,
 				1A569CFB0D7E2B82007C3983 /* c_runtime.cpp in Sources */,
@@ -21016,6 +21207,7 @@
 				514185EF0CD65F0400763C99 /* ChangeVersionWrapper.cpp in Sources */,
 				6550B69F099DF0270090D781 /* CharacterData.cpp in Sources */,
 				9326DC0C09DAD5D600AFC847 /* CharsetData.cpp in Sources */,
+				F55B3DB11251F12D003EF269 /* CheckboxInputType.cpp in Sources */,
 				93F925440F7EF5B8007E37C9 /* CheckedRadioButtons.cpp in Sources */,
 				A81872250977D3C0005826D9 /* ChildNodeList.cpp in Sources */,
 				14D8238B0AF92DF60004F057 /* Chrome.cpp in Sources */,
@@ -21030,6 +21222,7 @@
 				B27535660B053814002CE64F /* Color.cpp in Sources */,
 				0FCF33240F2B9715004B6795 /* ColorCG.cpp in Sources */,
 				B22279620D00BF220071B782 /* ColorDistance.cpp in Sources */,
+				F55B3DB31251F12D003EF269 /* ColorInputType.cpp in Sources */,
 				B27535770B053814002CE64F /* ColorMac.mm in Sources */,
 				6550B6A1099DF0270090D781 /* Comment.cpp in Sources */,
 				37C236101097EE7700EF9F72 /* ComplexTextController.cpp in Sources */,
@@ -21118,6 +21311,9 @@
 				BC77D1FD0FF28D9B0070887B /* DataGridColumnList.cpp in Sources */,
 				BC64641D11D7F416006455B0 /* DatasetDOMStringMap.cpp in Sources */,
 				F5D3A57C106B83B300545297 /* DateComponents.cpp in Sources */,
+				F55B3DB51251F12D003EF269 /* DateInputType.cpp in Sources */,
+				F55B3DB71251F12D003EF269 /* DateTimeInputType.cpp in Sources */,
+				F55B3DB91251F12D003EF269 /* DateTimeLocalInputType.cpp in Sources */,
 				A8C228A211D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp in Sources */,
 				4162A450101145AE00DFF3ED /* DedicatedWorkerContext.cpp in Sources */,
 				41A3D58E101C152D00316D07 /* DedicatedWorkerThread.cpp in Sources */,
@@ -21456,6 +21652,7 @@
 				ED501DC60B249F2900AE18D9 /* EditorMac.mm in Sources */,
 				A8C4A80809D563270003AC8D /* Element.cpp in Sources */,
 				A8CFF6CB0A1561CD000A4234 /* EllipsisBox.cpp in Sources */,
+				F55B3DBB1251F12D003EF269 /* EmailInputType.cpp in Sources */,
 				A8EA7EC30A1945D000A8EF5F /* Entity.cpp in Sources */,
 				A8EA7EC10A1945D000A8EF5F /* EntityReference.cpp in Sources */,
 				8987855B122CA064003AABDA /* Entry.cpp in Sources */,
@@ -21491,6 +21688,7 @@
 				934FE9E50B5CA539003E4A73 /* FileChooser.cpp in Sources */,
 				066C772D0AB603D200238CC4 /* FileChooserMac.mm in Sources */,
 				89878561122CA064003AABDA /* FileEntry.cpp in Sources */,
+				F55B3DBD1251F12D003EF269 /* FileInputType.cpp in Sources */,
 				976D6C85122B8A3D001FD1F7 /* FileList.cpp in Sources */,
 				976D6C88122B8A3D001FD1F7 /* FileReader.cpp in Sources */,
 				2EDF369C122C94B4002F7D4E /* FileReaderSync.cpp in Sources */,
@@ -21569,6 +21767,7 @@
 				0F580B050F12A2550051D689 /* GraphicsLayerCA.mm in Sources */,
 				B2A015AA0AF6CD53006BCE0E /* GraphicsTypes.cpp in Sources */,
 				C50B561612119D23008B46E0 /* GroupSettings.cpp in Sources */,
+				F55B3DBF1251F12D003EF269 /* HiddenInputType.cpp in Sources */,
 				BC94D1530C275C8B006BC617 /* History.cpp in Sources */,
 				97DCE20110807C750057D394 /* HistoryController.cpp in Sources */,
 				51741D120B07259A00ED442C /* HistoryItem.cpp in Sources */,
@@ -21715,6 +21914,7 @@
 				B275355E0B053814002CE64F /* ImageCG.cpp in Sources */,
 				A77979190D6B9D0C003851B9 /* ImageData.cpp in Sources */,
 				97205AB51239291000B17380 /* ImageDocument.cpp in Sources */,
+				F55B3DC11251F12D003EF269 /* ImageInputType.cpp in Sources */,
 				089582550E857A7E00F82C83 /* ImageLoader.cpp in Sources */,
 				B275357B0B053814002CE64F /* ImageMac.mm in Sources */,
 				B0149E7F11A4B21500196A7B /* ImageResizerThread.cpp in Sources */,
@@ -21728,6 +21928,7 @@
 				A8CFF5E40A155A05000A4234 /* InlineFlowBox.cpp in Sources */,
 				BCEA4859097D93020094C9E4 /* InlineTextBox.cpp in Sources */,
 				08700BE70F086C5300919419 /* InputElement.cpp in Sources */,
+				37E3524B12450C5200BAF5D9 /* InputType.cpp in Sources */,
 				93309DE9099E64920056E581 /* InsertIntoTextNodeCommand.cpp in Sources */,
 				93309DEB099E64920056E581 /* InsertLineBreakCommand.cpp in Sources */,
 				D07DEAB90A36554A00CA30F8 /* InsertListCommand.cpp in Sources */,
@@ -21761,6 +21962,7 @@
 				B275357D0B053814002CE64F /* IntRectMac.mm in Sources */,
 				B27535620B053814002CE64F /* IntSizeCG.cpp in Sources */,
 				B275357E0B053814002CE64F /* IntSizeMac.mm in Sources */,
+				F55B3DC31251F12D003EF269 /* IsIndexInputType.cpp in Sources */,
 				59E560A91105336F00AA1258 /* JavaClassJSC.cpp in Sources */,
 				59A9E7B01104758800DFB4C1 /* JavaInstanceJSC.cpp in Sources */,
 				E1698264113467F300894115 /* JavaRuntimeObject.cpp in Sources */,
@@ -22378,6 +22580,7 @@
 				BC772C4E0C4EB3040083285F /* MIMETypeRegistry.cpp in Sources */,
 				BC772C5E0C4EB3440083285F /* MIMETypeRegistryMac.mm in Sources */,
 				C6D74AE409AA290A000B0A52 /* ModifySelectionListLevel.cpp in Sources */,
+				F55B3DC51251F12D003EF269 /* MonthInputType.cpp in Sources */,
 				85031B450A44EFC700F992E0 /* MouseEvent.cpp in Sources */,
 				93EB355F09E37FD600F43799 /* MouseEventWithHitTestResults.cpp in Sources */,
 				85031B470A44EFC700F992E0 /* MouseRelatedEvent.cpp in Sources */,
@@ -22403,6 +22606,7 @@
 				3390CA550FFC157B00921962 /* NotificationCenter.cpp in Sources */,
 				1A569D0A0D7E2B82007C3983 /* NP_jsobject.cpp in Sources */,
 				1A569D0D0D7E2B82007C3983 /* npruntime.cpp in Sources */,
+				F55B3DC71251F12D003EF269 /* NumberInputType.cpp in Sources */,
 				1A569D130D7E2B82007C3983 /* objc_class.mm in Sources */,
 				1A569D160D7E2B82007C3983 /* objc_instance.mm in Sources */,
 				1A569D180D7E2B82007C3983 /* objc_runtime.mm in Sources */,
@@ -22424,6 +22628,7 @@
 				1C26497C0D7E24EC00BD10F2 /* PageMac.cpp in Sources */,
 				E1284AEA10447DEE00EAEB52 /* PageTransitionEvent.cpp in Sources */,
 				51E1ECC20C91C90400DC255B /* PageURLRecord.cpp in Sources */,
+				F55B3DC91251F12D003EF269 /* PasswordInputType.cpp in Sources */,
 				4B2709830AF2E5E00065127F /* PasteboardMac.mm in Sources */,
 				B275357F0B053814002CE64F /* Path.cpp in Sources */,
 				B27535630B053814002CE64F /* PathCG.cpp in Sources */,
@@ -22460,7 +22665,9 @@
 				514C76740CE923A1007EF3CD /* ProtectionSpace.cpp in Sources */,
 				E4D687770ED7AE3D006EA978 /* PurgeableBufferMac.cpp in Sources */,
 				550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */,
+				F55B3DCB1251F12D003EF269 /* RadioInputType.cpp in Sources */,
 				93F19AB908245E59001E9ABC /* Range.cpp in Sources */,
+				F55B3DCD1251F12D003EF269 /* RangeInputType.cpp in Sources */,
 				979F43D31075E44A0000F83B /* RedirectScheduler.cpp in Sources */,
 				85031B4B0A44EFC700F992E0 /* RegisteredEventListener.cpp in Sources */,
 				B2C3DA2C0D006C1D00EF6F26 /* RegularExpression.cpp in Sources */,
@@ -22578,6 +22785,7 @@
 				A89CCC520F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.cpp in Sources */,
 				93309E09099E64920056E581 /* ReplaceSelectionCommand.cpp in Sources */,
 				BCB16C2E0979C3BD00467741 /* Request.cpp in Sources */,
+				F55B3DCF1251F12D003EF269 /* ResetInputType.cpp in Sources */,
 				934F713E0D5A6F2800018D69 /* ResourceErrorBase.cpp in Sources */,
 				514C76500CE9234E007EF3CD /* ResourceErrorMac.mm in Sources */,
 				514C76780CE923A1007EF3CD /* ResourceHandle.cpp in Sources */,
@@ -22632,6 +22840,7 @@
 				5D925B670F64D4DD00B847F0 /* ScrollBehavior.cpp in Sources */,
 				BC2441C40E8B65D00055320F /* ScrollView.cpp in Sources */,
 				9353676B09AED88B00D35CD6 /* ScrollViewMac.mm in Sources */,
+				F55B3DD11251F12D003EF269 /* SearchInputType.cpp in Sources */,
 				AB7170A00B31193B0017123E /* SearchPopupMenuMac.mm in Sources */,
 				33C0CCD4112C5E6200CE057D /* SecureTextInput.cpp in Sources */,
 				BCD0E0FA0E972C3500265DEA /* SecurityOrigin.cpp in Sources */,
@@ -22733,6 +22942,7 @@
 				BC5EB80F0E81F2CE00B25965 /* StyleTransformData.cpp in Sources */,
 				BC5EB6990E81DA6300B25965 /* StyleVisualData.cpp in Sources */,
 				D000ED2711C1B9CD00C47726 /* SubframeLoader.cpp in Sources */,
+				F55B3DD31251F12D003EF269 /* SubmitInputType.cpp in Sources */,
 				93E227E40AF589AD00D48324 /* SubresourceLoader.cpp in Sources */,
 				93B2D8180F9920EE006AE6B2 /* SuddenTermination.mm in Sources */,
 				62C1217C11AB9E77003C462C /* SuspendableTimer.cpp in Sources */,
@@ -22912,6 +23122,7 @@
 				B2E4EC970D00C22B00432643 /* SVGZoomEvent.cpp in Sources */,
 				6582A16309999D6D00BEEB6D /* SystemTimeMac.cpp in Sources */,
 				BCE3BEC20D222B1D007E06E4 /* TagNodeList.cpp in Sources */,
+				F55B3DD51251F12D003EF269 /* TelephoneInputType.cpp in Sources */,
 				6550B6A5099DF0270090D781 /* Text.cpp in Sources */,
 				B2AFFC970D00A5DF0030074D /* TextBoundaries.mm in Sources */,
 				B2C3DA370D006C1D00EF6F26 /* TextBreakIteratorICU.cpp in Sources */,
@@ -22929,6 +23140,8 @@
 				C105DA620F3AA68F001DD44F /* TextEncodingDetectorICU.cpp in Sources */,
 				B2C3DA480D006C1D00EF6F26 /* TextEncodingRegistry.cpp in Sources */,
 				933A142E0B7D188600A53FFD /* TextEvent.cpp in Sources */,
+				F55B3DD71251F12D003EF269 /* TextFieldInputType.cpp in Sources */,
+				F55B3DD91251F12D003EF269 /* TextInputType.cpp in Sources */,
 				93309E1B099E64920056E581 /* TextIterator.cpp in Sources */,
 				93F19A9D08245E59001E9ABC /* TextResourceDecoder.cpp in Sources */,
 				B2C3DA4A0D006C1D00EF6F26 /* TextStream.cpp in Sources */,
@@ -22941,6 +23154,7 @@
 				51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */,
 				E1FF57A60F01256B00891EBB /* ThreadGlobalData.cpp in Sources */,
 				185BCF280F3279CE000EA262 /* ThreadTimers.cpp in Sources */,
+				F55B3DDB1251F12D003EF269 /* TimeInputType.cpp in Sources */,
 				7553CFE9108F473F00EA281E /* TimelineRecordFactory.cpp in Sources */,
 				93309EA4099EB78C0056E581 /* Timer.cpp in Sources */,
 				E44613AF0CD6331000FADA75 /* TimeRanges.cpp in Sources */,
@@ -22961,6 +23175,7 @@
 				49EECDEE10503C2400099FAB /* Uint8Array.cpp in Sources */,
 				B2C3DA4C0D006C1D00EF6F26 /* UnicodeRange.cpp in Sources */,
 				D086FE9909D53AAB005BC74D /* UnlinkCommand.cpp in Sources */,
+				F55B3DDD1251F12D003EF269 /* URLInputType.cpp in Sources */,
 				65DF326109D1E199000BE325 /* UserAgentStyleSheetsData.cpp in Sources */,
 				BCACF3BC1072921A00C0C8A3 /* UserContentURLPattern.cpp in Sources */,
 				2542F4DA1166C25A00E89A86 /* UserGestureIndicator.cpp in Sources */,
@@ -23005,6 +23220,7 @@
 				7637C541112E7B74003D6CDC /* WebSocketHandshakeRequest.cpp in Sources */,
 				767F99BE11A1194A0080C51D /* WebSocketHandshakeResponse.cpp in Sources */,
 				0FCF332C0F2B9A25004B6795 /* WebTiledLayer.mm in Sources */,
+				F55B3DDF1251F12D003EF269 /* WeekInputType.cpp in Sources */,
 				85031B500A44EFC700F992E0 /* WheelEvent.cpp in Sources */,
 				935C477309AC4D7700A6AAB4 /* WheelEventMac.mm in Sources */,
 				9380F47309A11AB4001FDB34 /* Widget.cpp in Sources */,
diff --git a/WebCore/html/BaseTextInputType.cpp b/WebCore/html/BaseTextInputType.cpp
new file mode 100644
index 0000000..3e57ace
--- /dev/null
+++ b/WebCore/html/BaseTextInputType.cpp
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the WebKit project.
+ *
+ * Copyright (C) 2009 Michelangelo De Simone <micdesim at gmail.com>
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "BaseTextInputType.h"
+
+#include "HTMLInputElement.h"
+#include "HTMLNames.h"
+#include "RegularExpression.h"
+
+namespace WebCore {
+
+using namespace HTMLNames;
+
+bool BaseTextInputType::isTextType() const
+{
+    return true;
+}
+
+bool BaseTextInputType::patternMismatch(const String& value) const
+{
+    const AtomicString& pattern = element()->fastGetAttribute(patternAttr);
+    // Empty values can't be mismatched
+    if (pattern.isEmpty() || value.isEmpty())
+        return false;
+    int matchLength = 0;
+    int valueLength = value.length();
+    int matchOffset = RegularExpression(pattern, TextCaseSensitive).match(value, 0, &matchLength);
+    return matchOffset || matchLength != valueLength;
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/BaseTextInputType.h b/WebCore/html/BaseTextInputType.h
new file mode 100644
index 0000000..9bd6c6d
--- /dev/null
+++ b/WebCore/html/BaseTextInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef BaseTextInputType_h
+#define BaseTextInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+// Base of email, password, search, tel, text, and URL types.
+// They support maxlength, selection functions, and so on.
+class BaseTextInputType : public TextFieldInputType {
+protected:
+    BaseTextInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual bool isTextType() const;
+    virtual bool patternMismatch(const String&) const;
+};
+
+} // namespace WebCore
+
+#endif // BaseTextInputType_h
diff --git a/WebCore/html/ButtonInputType.cpp b/WebCore/html/ButtonInputType.cpp
new file mode 100644
index 0000000..7f56970
--- /dev/null
+++ b/WebCore/html/ButtonInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "ButtonInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> ButtonInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new ButtonInputType(element));
+}
+
+const AtomicString& ButtonInputType::formControlType() const
+{
+    return InputTypeNames::button();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/ButtonInputType.h b/WebCore/html/ButtonInputType.h
new file mode 100644
index 0000000..99b3574
--- /dev/null
+++ b/WebCore/html/ButtonInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef ButtonInputType_h
+#define ButtonInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class ButtonInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    ButtonInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // ButtonInputType_h
diff --git a/WebCore/html/CheckboxInputType.cpp b/WebCore/html/CheckboxInputType.cpp
new file mode 100644
index 0000000..1c7ea4b
--- /dev/null
+++ b/WebCore/html/CheckboxInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "CheckboxInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> CheckboxInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new CheckboxInputType(element));
+}
+
+const AtomicString& CheckboxInputType::formControlType() const
+{
+    return InputTypeNames::checkbox();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/CheckboxInputType.h b/WebCore/html/CheckboxInputType.h
new file mode 100644
index 0000000..6a152e9
--- /dev/null
+++ b/WebCore/html/CheckboxInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef CheckboxInputType_h
+#define CheckboxInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class CheckboxInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    CheckboxInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // CheckboxInputType_h
diff --git a/WebCore/html/ColorInputType.cpp b/WebCore/html/ColorInputType.cpp
new file mode 100644
index 0000000..c68acea
--- /dev/null
+++ b/WebCore/html/ColorInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "ColorInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> ColorInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new ColorInputType(element));
+}
+
+const AtomicString& ColorInputType::formControlType() const
+{
+    return InputTypeNames::color();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/ColorInputType.h b/WebCore/html/ColorInputType.h
new file mode 100644
index 0000000..7259346
--- /dev/null
+++ b/WebCore/html/ColorInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef ColorInputType_h
+#define ColorInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class ColorInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    ColorInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // ButtonInputType_h
diff --git a/WebCore/html/DateInputType.cpp b/WebCore/html/DateInputType.cpp
new file mode 100644
index 0000000..0605846
--- /dev/null
+++ b/WebCore/html/DateInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "DateInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> DateInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new DateInputType(element));
+}
+
+const AtomicString& DateInputType::formControlType() const
+{
+    return InputTypeNames::date();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/DateInputType.h b/WebCore/html/DateInputType.h
new file mode 100644
index 0000000..e6f60d7
--- /dev/null
+++ b/WebCore/html/DateInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef DateInputType_h
+#define DateInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class DateInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    DateInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // DateInputType_h
diff --git a/WebCore/html/DateTimeInputType.cpp b/WebCore/html/DateTimeInputType.cpp
new file mode 100644
index 0000000..0bf5e04
--- /dev/null
+++ b/WebCore/html/DateTimeInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "DateTimeInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> DateTimeInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new DateTimeInputType(element));
+}
+
+const AtomicString& DateTimeInputType::formControlType() const
+{
+    return InputTypeNames::datetime();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/DateTimeInputType.h b/WebCore/html/DateTimeInputType.h
new file mode 100644
index 0000000..f24ebfb
--- /dev/null
+++ b/WebCore/html/DateTimeInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef DateTimeInputType_h
+#define DateTimeInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class DateTimeInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    DateTimeInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // DateTimeInputType_h
diff --git a/WebCore/html/DateTimeLocalInputType.cpp b/WebCore/html/DateTimeLocalInputType.cpp
new file mode 100644
index 0000000..33c6cfa
--- /dev/null
+++ b/WebCore/html/DateTimeLocalInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "DateTimeLocalInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> DateTimeLocalInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new DateTimeLocalInputType(element));
+}
+
+const AtomicString& DateTimeLocalInputType::formControlType() const
+{
+    return InputTypeNames::datetimelocal();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/DateTimeLocalInputType.h b/WebCore/html/DateTimeLocalInputType.h
new file mode 100644
index 0000000..1a3d866
--- /dev/null
+++ b/WebCore/html/DateTimeLocalInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef DateTimeLocalInputType_h
+#define DateTimeLocalInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class DateTimeLocalInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    DateTimeLocalInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // DateTimeLocalInputType_h
diff --git a/WebCore/html/EmailInputType.cpp b/WebCore/html/EmailInputType.cpp
new file mode 100644
index 0000000..4472310
--- /dev/null
+++ b/WebCore/html/EmailInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "EmailInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> EmailInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new EmailInputType(element));
+}
+
+const AtomicString& EmailInputType::formControlType() const
+{
+    return InputTypeNames::email();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/EmailInputType.h b/WebCore/html/EmailInputType.h
new file mode 100644
index 0000000..bbf6f73
--- /dev/null
+++ b/WebCore/html/EmailInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef EmailInputType_h
+#define EmailInputType_h
+
+#include "BaseTextInputType.h"
+
+namespace WebCore {
+
+class EmailInputType : public BaseTextInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    EmailInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // ButtonInputType_h
diff --git a/WebCore/html/FileInputType.cpp b/WebCore/html/FileInputType.cpp
new file mode 100644
index 0000000..0e08362
--- /dev/null
+++ b/WebCore/html/FileInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "FileInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> FileInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new FileInputType(element));
+}
+
+const AtomicString& FileInputType::formControlType() const
+{
+    return InputTypeNames::file();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/FileInputType.h b/WebCore/html/FileInputType.h
new file mode 100644
index 0000000..cebfab7
--- /dev/null
+++ b/WebCore/html/FileInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef FileInputType_h
+#define FileInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class FileInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    FileInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // FileInputType_h
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp
index b06aa35..6c19e38 100644
--- a/WebCore/html/HTMLInputElement.cpp
+++ b/WebCore/html/HTMLInputElement.cpp
@@ -51,6 +51,7 @@
 #include "HTMLNames.h"
 #include "HTMLOptionElement.h"
 #include "HTMLParserIdioms.h"
+#include "InputType.h"
 #include "KeyboardEvent.h"
 #include "LocalizedStrings.h"
 #include "MouseEvent.h"
@@ -161,6 +162,7 @@ HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* docum
     , m_autocomplete(Uninitialized)
     , m_autofilled(false)
     , m_inited(false)
+    , m_inputType(InputType::createText(this))
 {
     ASSERT(hasTagName(inputTag) || hasTagName(isindexTag));
 }
@@ -345,17 +347,7 @@ bool HTMLInputElement::valueMissing(const String& value) const
 
 bool HTMLInputElement::patternMismatch(const String& value) const
 {
-    if (!isTextType())
-        return false;
-    const AtomicString& pattern = getAttribute(patternAttr);
-    // Empty values can't be mismatched
-    if (pattern.isEmpty() || value.isEmpty())
-        return false;
-    RegularExpression patternRegExp(pattern, TextCaseSensitive);
-    int matchLength = 0;
-    int valueLength = value.length();
-    int matchOffset = patternRegExp.match(value, 0, &matchLength);
-    return matchOffset || matchLength != valueLength;
+    return m_inputType->patternMismatch(value);
 }
 
 bool HTMLInputElement::tooLong(const String& value, NeedsToCheckDirtyFlag check) const
@@ -911,6 +903,7 @@ void HTMLInputElement::updateType()
             bool wasPasswordField = deprecatedInputType() == PASSWORD;
             bool didRespectHeightAndWidth = respectHeightAndWidthAttrs();
             m_deprecatedTypeNumber = newType;
+            m_inputType = InputType::create(this, typeString);
             setNeedsWillValidateCheck();
             bool willStoreValue = storesValueSeparateFromAttribute();
             bool isPasswordField = deprecatedInputType() == PASSWORD;
@@ -959,42 +952,9 @@ void HTMLInputElement::updateType()
         m_imageLoader.clear();
 }
 
-static const AtomicString* createFormControlTypes()
-{
-    AtomicString* types = new AtomicString[HTMLInputElement::deprecatedNumberOfTypes];
-    // The values must be lowercased because they will be the return values of
-    //  input.type and it must be lowercase according to DOM Level 2.
-    types[HTMLInputElement::BUTTON] = "button";
-    types[HTMLInputElement::CHECKBOX] = "checkbox";
-    types[HTMLInputElement::COLOR] = "color";
-    types[HTMLInputElement::DATE] = "date";
-    types[HTMLInputElement::DATETIME] = "datetime";
-    types[HTMLInputElement::DATETIMELOCAL] = "datetime-local";
-    types[HTMLInputElement::EMAIL] = "email";
-    types[HTMLInputElement::FILE] = "file";
-    types[HTMLInputElement::HIDDEN] = "hidden";
-    types[HTMLInputElement::IMAGE] = "image";
-    types[HTMLInputElement::ISINDEX] = emptyAtom;
-    types[HTMLInputElement::MONTH] = "month";
-    types[HTMLInputElement::NUMBER] = "number";
-    types[HTMLInputElement::PASSWORD] = "password";
-    types[HTMLInputElement::RADIO] = "radio";
-    types[HTMLInputElement::RANGE] = "range";
-    types[HTMLInputElement::RESET] = "reset";
-    types[HTMLInputElement::SEARCH] = "search";
-    types[HTMLInputElement::SUBMIT] = "submit";
-    types[HTMLInputElement::TELEPHONE] = "tel";
-    types[HTMLInputElement::TEXT] = "text";
-    types[HTMLInputElement::TIME] = "time";
-    types[HTMLInputElement::URL] = "url";
-    types[HTMLInputElement::WEEK] = "week";
-    return types;
-}
-
 const AtomicString& HTMLInputElement::formControlType() const
 {
-    static const AtomicString* formControlTypes = createFormControlTypes();
-    return formControlTypes[deprecatedInputType()];
+    return m_inputType->formControlType();
 }
 
 bool HTMLInputElement::saveFormControlState(String& result) const
@@ -1481,70 +1441,12 @@ void HTMLInputElement::reset()
 
 bool HTMLInputElement::isTextField() const
 {
-    switch (deprecatedInputType()) {
-    case COLOR:
-    case DATE:
-    case DATETIME:
-    case DATETIMELOCAL:
-    case EMAIL:
-    case ISINDEX:
-    case MONTH:
-    case NUMBER:
-    case PASSWORD:
-    case SEARCH:
-    case TELEPHONE:
-    case TEXT:
-    case TIME:
-    case URL:
-    case WEEK:
-        return true;
-    case BUTTON:
-    case CHECKBOX:
-    case FILE:
-    case HIDDEN:
-    case IMAGE:
-    case RADIO:
-    case RANGE:
-    case RESET:
-    case SUBMIT:
-        return false;
-    }
-    ASSERT_NOT_REACHED();
-    return false;
+    return m_inputType->isTextField();
 }
 
 bool HTMLInputElement::isTextType() const
 {
-    switch (deprecatedInputType()) {
-    case EMAIL:
-    case PASSWORD:
-    case SEARCH:
-    case TELEPHONE:
-    case TEXT:
-    case URL:
-        return true;
-    case BUTTON:
-    case CHECKBOX:
-    case COLOR:
-    case DATE:
-    case DATETIME:
-    case DATETIMELOCAL:
-    case FILE:
-    case HIDDEN:
-    case IMAGE:
-    case ISINDEX:
-    case MONTH:
-    case NUMBER:
-    case RADIO:
-    case RANGE:
-    case RESET:
-    case SUBMIT:
-    case TIME:
-    case WEEK:
-        return false;
-    }
-    ASSERT_NOT_REACHED();
-    return false;
+    return m_inputType->isTextType();
 }
 
 void HTMLInputElement::setChecked(bool nowChecked, bool sendChangeEvent)
diff --git a/WebCore/html/HTMLInputElement.h b/WebCore/html/HTMLInputElement.h
index e068c8c..88e2bf7 100644
--- a/WebCore/html/HTMLInputElement.h
+++ b/WebCore/html/HTMLInputElement.h
@@ -35,6 +35,7 @@ class FileList;
 class HTMLDataListElement;
 class HTMLImageLoader;
 class HTMLOptionElement;
+class InputType;
 class KURL;
 class VisibleSelection;
 
@@ -65,9 +66,7 @@ public:
         MONTH,
         TIME,
         WEEK,
-        // If you add new types or change the order of enum values, update deprecatedNumberOfTypes below.
     };
-    static const int deprecatedNumberOfTypes = WEEK + 1;
 
     static PassRefPtr<HTMLInputElement> create(const QualifiedName&, Document*, HTMLFormElement*);
     virtual ~HTMLInputElement();
@@ -375,6 +374,7 @@ private:
 #if ENABLE(DATALIST)
     bool m_hasNonEmptyList : 1;
 #endif
+    OwnPtr<InputType> m_inputType;
 };
 
 } //namespace
diff --git a/WebCore/html/HiddenInputType.cpp b/WebCore/html/HiddenInputType.cpp
new file mode 100644
index 0000000..d97fe3a
--- /dev/null
+++ b/WebCore/html/HiddenInputType.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "HiddenInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> HiddenInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new HiddenInputType(element));
+}
+
+const AtomicString& HiddenInputType::formControlType() const {
+    return InputTypeNames::hidden();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/HiddenInputType.h b/WebCore/html/HiddenInputType.h
new file mode 100644
index 0000000..564f99e
--- /dev/null
+++ b/WebCore/html/HiddenInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef HiddenInputType_h
+#define HiddenInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class HiddenInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    HiddenInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // HiddenInputType_h
diff --git a/WebCore/html/ImageInputType.cpp b/WebCore/html/ImageInputType.cpp
new file mode 100644
index 0000000..78b3981
--- /dev/null
+++ b/WebCore/html/ImageInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "ImageInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> ImageInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new ImageInputType(element));
+}
+
+const AtomicString& ImageInputType::formControlType() const
+{
+    return InputTypeNames::image();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/ImageInputType.h b/WebCore/html/ImageInputType.h
new file mode 100644
index 0000000..00ac77b
--- /dev/null
+++ b/WebCore/html/ImageInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef ImageInputType_h
+#define ImageInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class ImageInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    ImageInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // ImageInputType_h
diff --git a/WebCore/html/InputType.cpp b/WebCore/html/InputType.cpp
new file mode 100644
index 0000000..c3435f7
--- /dev/null
+++ b/WebCore/html/InputType.cpp
@@ -0,0 +1,277 @@
+/*
+ * Copyright (C) 1999 Lars Knoll (knoll at kde.org)
+ *           (C) 1999 Antti Koivisto (koivisto at kde.org)
+ *           (C) 2001 Dirk Mueller (mueller at kde.org)
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ *           (C) 2006 Alexey Proskuryakov (ap at nypop.com)
+ * Copyright (C) 2007 Samuel Weinig (sam at webkit.org)
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "InputType.h"
+
+#include "ButtonInputType.h"
+#include "CheckboxInputType.h"
+#include "ColorInputType.h"
+#include "DateInputType.h"
+#include "DateTimeInputType.h"
+#include "DateTimeLocalInputType.h"
+#include "EmailInputType.h"
+#include "FileInputType.h"
+#include "HTMLInputElement.h"
+#include "HiddenInputType.h"
+#include "ImageInputType.h"
+#include "IsIndexInputType.h"
+#include "MonthInputType.h"
+#include "NumberInputType.h"
+#include "PasswordInputType.h"
+#include "RadioInputType.h"
+#include "RangeInputType.h"
+#include "RegularExpression.h"
+#include "ResetInputType.h"
+#include "SearchInputType.h"
+#include "SubmitInputType.h"
+#include "TelephoneInputType.h"
+#include "TextInputType.h"
+#include "TimeInputType.h"
+#include "URLInputType.h"
+#include "WeekInputType.h"
+#include <wtf/HashMap.h>
+#include <wtf/text/StringHash.h>
+
+namespace WebCore {
+
+typedef HashMap<String, PassOwnPtr<InputType> (*)(HTMLInputElement*), CaseFoldingHash> InputTypeFactoryMap;
+static PassOwnPtr<InputTypeFactoryMap> createInputTypeFactoryMap()
+{
+    OwnPtr<InputTypeFactoryMap> map = adoptPtr(new InputTypeFactoryMap);
+    map->add(InputTypeNames::button(), ButtonInputType::create);
+    map->add(InputTypeNames::checkbox(), CheckboxInputType::create);
+    map->add(InputTypeNames::color(), ColorInputType::create);
+    map->add(InputTypeNames::date(), DateInputType::create);
+    map->add(InputTypeNames::datetime(), DateTimeInputType::create);
+    map->add(InputTypeNames::datetimelocal(), DateTimeLocalInputType::create);
+    map->add(InputTypeNames::email(), EmailInputType::create);
+    map->add(InputTypeNames::file(), FileInputType::create);
+    map->add(InputTypeNames::hidden(), HiddenInputType::create);
+    map->add(InputTypeNames::image(), ImageInputType::create);
+    map->add(InputTypeNames::isindex(), IsIndexInputType::create);
+    map->add(InputTypeNames::month(), MonthInputType::create);
+    map->add(InputTypeNames::number(), NumberInputType::create);
+    map->add(InputTypeNames::password(), PasswordInputType::create);
+    map->add(InputTypeNames::radio(), RadioInputType::create);
+    map->add(InputTypeNames::range(), RangeInputType::create);
+    map->add(InputTypeNames::reset(), ResetInputType::create);
+    map->add(InputTypeNames::search(), SearchInputType::create);
+    map->add(InputTypeNames::submit(), SubmitInputType::create);
+    map->add(InputTypeNames::telephone(), TelephoneInputType::create);
+    map->add(InputTypeNames::time(), TimeInputType::create);
+    map->add(InputTypeNames::url(), URLInputType::create);
+    map->add(InputTypeNames::week(), WeekInputType::create);
+    // No need to register "text" because it is the default type.
+    return map.release();
+}
+
+PassOwnPtr<InputType> InputType::create(HTMLInputElement* element, const AtomicString& typeName)
+{
+    static const InputTypeFactoryMap* factoryMap = createInputTypeFactoryMap().leakPtr();
+    PassOwnPtr<InputType> (*factory)(HTMLInputElement*) = typeName.isEmpty() ? 0 : factoryMap->get(typeName);
+    if (!factory)
+        factory = TextInputType::create;
+    return factory(element);
+}
+
+PassOwnPtr<InputType> InputType::createText(HTMLInputElement* element)
+{
+    return TextInputType::create(element);
+}
+
+InputType::~InputType()
+{
+}
+
+bool InputType::isTextField() const
+{
+    return false;
+}
+
+bool InputType::isTextType() const
+{
+    return false;
+}
+
+bool InputType::patternMismatch(const String&) const
+{
+    return false;
+}
+
+namespace InputTypeNames {
+
+// The type names must be lowercased because they will be the return values of
+// input.type and input.type must be lowercase according to DOM Level 2.
+
+const AtomicString& button()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("button"));
+    return name;
+}
+
+const AtomicString& checkbox()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("checkbox"));
+    return name;
+}
+
+const AtomicString& color()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("color"));
+    return name;
+}
+
+const AtomicString& date()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("date"));
+    return name;
+}
+
+const AtomicString& datetime()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("datetime"));
+    return name;
+}
+
+const AtomicString& datetimelocal()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("datetime-local"));
+    return name;
+}
+
+const AtomicString& email()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("email"));
+    return name;
+}
+
+const AtomicString& file()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("file"));
+    return name;
+}
+
+const AtomicString& hidden()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("hidden"));
+    return name;
+}
+
+const AtomicString& image()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("image"));
+    return name;
+}
+
+const AtomicString& isindex()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("khtml_isindex"));
+    return name;
+}
+
+const AtomicString& month()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("month"));
+    return name;
+}
+
+const AtomicString& number()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("number"));
+    return name;
+}
+
+const AtomicString& password()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("password"));
+    return name;
+}
+
+const AtomicString& radio()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("radio"));
+    return name;
+}
+
+const AtomicString& range()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("range"));
+    return name;
+}
+
+const AtomicString& reset()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("reset"));
+    return name;
+}
+
+const AtomicString& search()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("search"));
+    return name;
+}
+
+const AtomicString& submit()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("submit"));
+    return name;
+}
+
+const AtomicString& telephone()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("tel"));
+    return name;
+}
+
+const AtomicString& text()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("text"));
+    return name;
+}
+
+const AtomicString& time()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("time"));
+    return name;
+}
+
+const AtomicString& url()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("url"));
+    return name;
+}
+
+const AtomicString& week()
+{
+    DEFINE_STATIC_LOCAL(AtomicString, name, ("week"));
+    return name;
+}
+
+} // namespace WebCore::InpuTypeNames
+
+} // namespace WebCore
+
diff --git a/WebCore/html/InputType.h b/WebCore/html/InputType.h
new file mode 100644
index 0000000..3141f34
--- /dev/null
+++ b/WebCore/html/InputType.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef InputType_h
+#define InputType_h
+
+#include <wtf/Forward.h>
+#include <wtf/Noncopyable.h>
+
+namespace WebCore {
+
+class HTMLInputElement;
+
+class InputType : public Noncopyable {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*, const AtomicString&);
+    static PassOwnPtr<InputType> createText(HTMLInputElement*);
+    virtual ~InputType();
+
+    virtual bool isTextField() const;
+    virtual bool isTextType() const;
+    virtual const AtomicString& formControlType() const = 0;
+
+    virtual bool patternMismatch(const String&) const;
+
+protected:
+    InputType(HTMLInputElement* element) : m_element(element) { }
+    HTMLInputElement* element() const { return m_element; }
+
+private:
+    // Raw pointer because the HTMLInputElement object owns this InputType object.
+    HTMLInputElement* m_element;
+};
+
+namespace InputTypeNames {
+
+const AtomicString& button();
+const AtomicString& checkbox();
+const AtomicString& color();
+const AtomicString& date();
+const AtomicString& datetime();
+const AtomicString& datetimelocal();
+const AtomicString& email();
+const AtomicString& file();
+const AtomicString& hidden();
+const AtomicString& image();
+const AtomicString& isindex();
+const AtomicString& month();
+const AtomicString& number();
+const AtomicString& password();
+const AtomicString& radio();
+const AtomicString& range();
+const AtomicString& reset();
+const AtomicString& search();
+const AtomicString& submit();
+const AtomicString& telephone();
+const AtomicString& text();
+const AtomicString& time();
+const AtomicString& url();
+const AtomicString& week();
+
+} // namespace WebCore::InputTypeNames
+
+} // namespace WebCore
+
+#endif
diff --git a/WebCore/html/IsIndexInputType.cpp b/WebCore/html/IsIndexInputType.cpp
new file mode 100644
index 0000000..80e0617
--- /dev/null
+++ b/WebCore/html/IsIndexInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "IsIndexInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> IsIndexInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new IsIndexInputType(element));
+}
+
+const AtomicString& IsIndexInputType::formControlType() const
+{
+    return emptyAtom;
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/IsIndexInputType.h b/WebCore/html/IsIndexInputType.h
new file mode 100644
index 0000000..93a1c08
--- /dev/null
+++ b/WebCore/html/IsIndexInputType.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef IsIndexInputType_h
+#define IsIndexInputType_h
+
+#include "TextFieldInputType.h"
+#include <wtf/text/AtomicString.h>
+
+namespace WebCore {
+
+class IsIndexInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    IsIndexInputType(HTMLInputElement* element) : TextFieldInputType(element) { };
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // IsIndexInputType_h
diff --git a/WebCore/html/MonthInputType.cpp b/WebCore/html/MonthInputType.cpp
new file mode 100644
index 0000000..54f78c6
--- /dev/null
+++ b/WebCore/html/MonthInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "MonthInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> MonthInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new MonthInputType(element));
+}
+
+const AtomicString& MonthInputType::formControlType() const
+{
+    return InputTypeNames::month();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/MonthInputType.h b/WebCore/html/MonthInputType.h
new file mode 100644
index 0000000..d605ffa
--- /dev/null
+++ b/WebCore/html/MonthInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef MonthInputType_h
+#define MonthInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class MonthInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    MonthInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // MonthInputType_h
diff --git a/WebCore/html/NumberInputType.cpp b/WebCore/html/NumberInputType.cpp
new file mode 100644
index 0000000..9aba5c3
--- /dev/null
+++ b/WebCore/html/NumberInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "NumberInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> NumberInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new NumberInputType(element));
+}
+
+const AtomicString& NumberInputType::formControlType() const
+{
+    return InputTypeNames::number();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/NumberInputType.h b/WebCore/html/NumberInputType.h
new file mode 100644
index 0000000..5347249
--- /dev/null
+++ b/WebCore/html/NumberInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef NumberInputType_h
+#define NumberInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class NumberInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    NumberInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // NumberInputType_h
diff --git a/WebCore/html/PasswordInputType.cpp b/WebCore/html/PasswordInputType.cpp
new file mode 100644
index 0000000..a645f96
--- /dev/null
+++ b/WebCore/html/PasswordInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "PasswordInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> PasswordInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new PasswordInputType(element));
+}
+
+const AtomicString& PasswordInputType::formControlType() const
+{
+    return InputTypeNames::password();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/PasswordInputType.h b/WebCore/html/PasswordInputType.h
new file mode 100644
index 0000000..db13449
--- /dev/null
+++ b/WebCore/html/PasswordInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef PasswordInputType_h
+#define PasswordInputType_h
+
+#include "BaseTextInputType.h"
+
+namespace WebCore {
+
+class PasswordInputType : public BaseTextInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    PasswordInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // PasswordInputType_h
diff --git a/WebCore/html/RadioInputType.cpp b/WebCore/html/RadioInputType.cpp
new file mode 100644
index 0000000..a1c8d04
--- /dev/null
+++ b/WebCore/html/RadioInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "RadioInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> RadioInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new RadioInputType(element));
+}
+
+const AtomicString& RadioInputType::formControlType() const
+{
+    return InputTypeNames::radio();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/RadioInputType.h b/WebCore/html/RadioInputType.h
new file mode 100644
index 0000000..180c6dd
--- /dev/null
+++ b/WebCore/html/RadioInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef RadioInputType_h
+#define RadioInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class RadioInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    RadioInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // RadioInputType_h
diff --git a/WebCore/html/RangeInputType.cpp b/WebCore/html/RangeInputType.cpp
new file mode 100644
index 0000000..f5f7322
--- /dev/null
+++ b/WebCore/html/RangeInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "RangeInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> RangeInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new RangeInputType(element));
+}
+
+const AtomicString& RangeInputType::formControlType() const
+{
+    return InputTypeNames::range();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/RangeInputType.h b/WebCore/html/RangeInputType.h
new file mode 100644
index 0000000..d42c617
--- /dev/null
+++ b/WebCore/html/RangeInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef RangeInputType_h
+#define RangeInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class RangeInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    RangeInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // RangeInputType_h
diff --git a/WebCore/html/ResetInputType.cpp b/WebCore/html/ResetInputType.cpp
new file mode 100644
index 0000000..8b18a8d
--- /dev/null
+++ b/WebCore/html/ResetInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "ResetInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> ResetInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new ResetInputType(element));
+}
+
+const AtomicString& ResetInputType::formControlType() const
+{
+    return InputTypeNames::reset();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/ResetInputType.h b/WebCore/html/ResetInputType.h
new file mode 100644
index 0000000..e0d8997
--- /dev/null
+++ b/WebCore/html/ResetInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef ResetInputType_h
+#define ResetInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class ResetInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    ResetInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // ResetInputType_h
diff --git a/WebCore/html/SearchInputType.cpp b/WebCore/html/SearchInputType.cpp
new file mode 100644
index 0000000..6f3a01c
--- /dev/null
+++ b/WebCore/html/SearchInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "SearchInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> SearchInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new SearchInputType(element));
+}
+
+const AtomicString& SearchInputType::formControlType() const
+{
+    return InputTypeNames::search();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/SearchInputType.h b/WebCore/html/SearchInputType.h
new file mode 100644
index 0000000..edffdb0
--- /dev/null
+++ b/WebCore/html/SearchInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef SearchInputType_h
+#define SearchInputType_h
+
+#include "BaseTextInputType.h"
+
+namespace WebCore {
+
+class SearchInputType : public BaseTextInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    SearchInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // SearchInputType_h
diff --git a/WebCore/html/SubmitInputType.cpp b/WebCore/html/SubmitInputType.cpp
new file mode 100644
index 0000000..dd13e6b
--- /dev/null
+++ b/WebCore/html/SubmitInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "SubmitInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> SubmitInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new SubmitInputType(element));
+}
+
+const AtomicString& SubmitInputType::formControlType() const
+{
+    return InputTypeNames::submit();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/SubmitInputType.h b/WebCore/html/SubmitInputType.h
new file mode 100644
index 0000000..7ea448e
--- /dev/null
+++ b/WebCore/html/SubmitInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef SubmitInputType_h
+#define SubmitInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+class SubmitInputType : public InputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    SubmitInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // SubmitInputType_h
diff --git a/WebCore/html/TelephoneInputType.cpp b/WebCore/html/TelephoneInputType.cpp
new file mode 100644
index 0000000..27d66ce
--- /dev/null
+++ b/WebCore/html/TelephoneInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "TelephoneInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> TelephoneInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new TelephoneInputType(element));
+}
+
+const AtomicString& TelephoneInputType::formControlType() const
+{
+    return InputTypeNames::telephone();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/TelephoneInputType.h b/WebCore/html/TelephoneInputType.h
new file mode 100644
index 0000000..9458f50
--- /dev/null
+++ b/WebCore/html/TelephoneInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef TelephoneInputType_h
+#define TelephoneInputType_h
+
+#include "BaseTextInputType.h"
+
+namespace WebCore {
+
+class TelephoneInputType : public BaseTextInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    TelephoneInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // TelephoneInputType_h
diff --git a/WebCore/html/TextFieldInputType.cpp b/WebCore/html/TextFieldInputType.cpp
new file mode 100644
index 0000000..e681b40
--- /dev/null
+++ b/WebCore/html/TextFieldInputType.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+bool TextFieldInputType::isTextField() const
+{
+    return true;
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/TextFieldInputType.h b/WebCore/html/TextFieldInputType.h
new file mode 100644
index 0000000..fb33a01
--- /dev/null
+++ b/WebCore/html/TextFieldInputType.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef TextFieldInputType_h
+#define TextFieldInputType_h
+
+#include "InputType.h"
+
+namespace WebCore {
+
+// The class represents types of which UI contain text fields.
+// It supports not only the types for BaseTextInputType but also type=number.
+class TextFieldInputType : public InputType {
+protected:
+    TextFieldInputType(HTMLInputElement* element) : InputType(element) { }
+    virtual bool isTextField() const;
+};
+
+} // namespace WebCore
+
+#endif // TextFieldInputType_h
diff --git a/WebCore/html/TextInputType.cpp b/WebCore/html/TextInputType.cpp
new file mode 100644
index 0000000..23a8679
--- /dev/null
+++ b/WebCore/html/TextInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "TextInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> TextInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new TextInputType(element));
+}
+
+const AtomicString& TextInputType::formControlType() const
+{
+    return InputTypeNames::text();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/TextInputType.h b/WebCore/html/TextInputType.h
new file mode 100644
index 0000000..89fd9b0
--- /dev/null
+++ b/WebCore/html/TextInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef TextInputType_h
+#define TextInputType_h
+
+#include "BaseTextInputType.h"
+
+namespace WebCore {
+
+class TextInputType : public BaseTextInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    TextInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // TextInputType_h
diff --git a/WebCore/html/TimeInputType.cpp b/WebCore/html/TimeInputType.cpp
new file mode 100644
index 0000000..1564bc5
--- /dev/null
+++ b/WebCore/html/TimeInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "TimeInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> TimeInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new TimeInputType(element));
+}
+
+const AtomicString& TimeInputType::formControlType() const
+{
+    return InputTypeNames::time();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/TimeInputType.h b/WebCore/html/TimeInputType.h
new file mode 100644
index 0000000..9530f7d
--- /dev/null
+++ b/WebCore/html/TimeInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef TimeInputType_h
+#define TimeInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class TimeInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    TimeInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // TimeInputType_h
diff --git a/WebCore/html/URLInputType.cpp b/WebCore/html/URLInputType.cpp
new file mode 100644
index 0000000..2afdcde
--- /dev/null
+++ b/WebCore/html/URLInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "URLInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> URLInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new URLInputType(element));
+}
+
+const AtomicString& URLInputType::formControlType() const
+{
+    return InputTypeNames::url();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/URLInputType.h b/WebCore/html/URLInputType.h
new file mode 100644
index 0000000..85d4f9f
--- /dev/null
+++ b/WebCore/html/URLInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef URLInputType_h
+#define URLInputType_h
+
+#include "BaseTextInputType.h"
+
+namespace WebCore {
+
+class URLInputType : public BaseTextInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    URLInputType(HTMLInputElement* element) : BaseTextInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // URLInputType_h
diff --git a/WebCore/html/WeekInputType.cpp b/WebCore/html/WeekInputType.cpp
new file mode 100644
index 0000000..0b4ab30
--- /dev/null
+++ b/WebCore/html/WeekInputType.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#include "config.h"
+#include "WeekInputType.h"
+
+#include <wtf/PassOwnPtr.h>
+
+namespace WebCore {
+
+PassOwnPtr<InputType> WeekInputType::create(HTMLInputElement* element)
+{
+    return adoptPtr(new WeekInputType(element));
+}
+
+const AtomicString& WeekInputType::formControlType() const
+{
+    return InputTypeNames::week();
+}
+
+} // namespace WebCore
diff --git a/WebCore/html/WeekInputType.h b/WebCore/html/WeekInputType.h
new file mode 100644
index 0000000..7b6ee23
--- /dev/null
+++ b/WebCore/html/WeekInputType.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * 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.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef WeekInputType_h
+#define WeekInputType_h
+
+#include "TextFieldInputType.h"
+
+namespace WebCore {
+
+class WeekInputType : public TextFieldInputType {
+public:
+    static PassOwnPtr<InputType> create(HTMLInputElement*);
+
+private:
+    WeekInputType(HTMLInputElement* element) : TextFieldInputType(element) { }
+    virtual const AtomicString& formControlType() const;
+};
+
+} // namespace WebCore
+
+#endif // WeekInputType_h

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list