1bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen/*
2bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *           (C) 1999 Antti Koivisto (koivisto@kde.org)
4bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *           (C) 2001 Dirk Mueller (mueller@kde.org)
5cad810f21b803229eb11403f9209855525a25d57Steve Block * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *           (C) 2006 Alexey Proskuryakov (ap@nypop.com)
7bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * Copyright (C) 2007 Samuel Weinig (sam@webkit.org)
8bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * Copyright (C) 2010 Google Inc. All rights reserved.
9bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *
10bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * This library is free software; you can redistribute it and/or
11bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * modify it under the terms of the GNU Library General Public
12bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * License as published by the Free Software Foundation; either
13bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * version 2 of the License, or (at your option) any later version.
14bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *
15bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * This library is distributed in the hope that it will be useful,
16bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * but WITHOUT ANY WARRANTY; without even the implied warranty of
17bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * Library General Public License for more details.
19bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *
20bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * You should have received a copy of the GNU Library General Public License
21bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * along with this library; see the file COPYING.LIB.  If not, write to
22bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen * Boston, MA 02110-1301, USA.
24bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen *
25bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen */
26bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
27bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "config.h"
28bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "InputType.h"
29bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
30cad810f21b803229eb11403f9209855525a25d57Steve Block#include "BeforeTextInsertedEvent.h"
31bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "ButtonInputType.h"
32bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "CheckboxInputType.h"
33bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "ColorInputType.h"
34a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "DateComponents.h"
35bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "DateInputType.h"
36bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "DateTimeInputType.h"
37bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "DateTimeLocalInputType.h"
38bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "EmailInputType.h"
39cad810f21b803229eb11403f9209855525a25d57Steve Block#include "ExceptionCode.h"
40bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "FileInputType.h"
41e14391e94c850b8bd03680c23b38978db68687a8John Reck#include "FormDataList.h"
42cad810f21b803229eb11403f9209855525a25d57Steve Block#include "HTMLFormElement.h"
43bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "HTMLInputElement.h"
44bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "HiddenInputType.h"
45bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "ImageInputType.h"
46bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "IsIndexInputType.h"
47f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#include "KeyboardEvent.h"
486b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#include "LocalizedStrings.h"
49bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "MonthInputType.h"
50bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "NumberInputType.h"
51bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "PasswordInputType.h"
52bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "RadioInputType.h"
53bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "RangeInputType.h"
54bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "RegularExpression.h"
55e14391e94c850b8bd03680c23b38978db68687a8John Reck#include "RenderObject.h"
56bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "ResetInputType.h"
57bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "SearchInputType.h"
582daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include "ShadowRoot.h"
59bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "SubmitInputType.h"
60bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "TelephoneInputType.h"
61bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "TextInputType.h"
62bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "TimeInputType.h"
63bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "URLInputType.h"
64bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include "WeekInputType.h"
65a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include <limits>
66a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include <wtf/Assertions.h>
67bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include <wtf/HashMap.h>
68bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#include <wtf/text/StringHash.h>
69bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
70bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsennamespace WebCore {
71bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
72a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochusing namespace std;
73a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
74cad810f21b803229eb11403f9209855525a25d57Steve Blocktypedef PassOwnPtr<InputType> (*InputTypeFactoryFunction)(HTMLInputElement*);
75cad810f21b803229eb11403f9209855525a25d57Steve Blocktypedef HashMap<String, InputTypeFactoryFunction, CaseFoldingHash> InputTypeFactoryMap;
76cad810f21b803229eb11403f9209855525a25d57Steve Block
77bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenstatic PassOwnPtr<InputTypeFactoryMap> createInputTypeFactoryMap()
78bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
79bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    OwnPtr<InputTypeFactoryMap> map = adoptPtr(new InputTypeFactoryMap);
80bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::button(), ButtonInputType::create);
81bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::checkbox(), CheckboxInputType::create);
82bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::color(), ColorInputType::create);
83bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::date(), DateInputType::create);
84bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::datetime(), DateTimeInputType::create);
85bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::datetimelocal(), DateTimeLocalInputType::create);
86bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::email(), EmailInputType::create);
87bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::file(), FileInputType::create);
88bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::hidden(), HiddenInputType::create);
89bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::image(), ImageInputType::create);
90bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::isindex(), IsIndexInputType::create);
91bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::month(), MonthInputType::create);
92bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::number(), NumberInputType::create);
93bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::password(), PasswordInputType::create);
94bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::radio(), RadioInputType::create);
95bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::range(), RangeInputType::create);
96bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::reset(), ResetInputType::create);
97bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::search(), SearchInputType::create);
98bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::submit(), SubmitInputType::create);
99bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::telephone(), TelephoneInputType::create);
100bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::time(), TimeInputType::create);
101bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::url(), URLInputType::create);
102bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    map->add(InputTypeNames::week(), WeekInputType::create);
103bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    // No need to register "text" because it is the default type.
104bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return map.release();
105bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
106bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
107cad810f21b803229eb11403f9209855525a25d57Steve BlockPassOwnPtr<InputType> InputType::create(HTMLInputElement* element, const String& typeName)
108bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
109bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    static const InputTypeFactoryMap* factoryMap = createInputTypeFactoryMap().leakPtr();
110bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    PassOwnPtr<InputType> (*factory)(HTMLInputElement*) = typeName.isEmpty() ? 0 : factoryMap->get(typeName);
111bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    if (!factory)
112bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen        factory = TextInputType::create;
113bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return factory(element);
114bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
115bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
116bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian MonsenPassOwnPtr<InputType> InputType::createText(HTMLInputElement* element)
117bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
118bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return TextInputType::create(element);
119bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
120bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
121bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian MonsenInputType::~InputType()
122bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
123bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
124bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
125bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenbool InputType::isTextField() const
126bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
127bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return false;
128bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
129bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
130bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenbool InputType::isTextType() const
131bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
132bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return false;
133bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
134bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
135f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochbool InputType::isRangeControl() const
136f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{
137f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch    return false;
138f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}
139f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
140e14391e94c850b8bd03680c23b38978db68687a8John Reckbool InputType::saveFormControlState(String& result) const
141e14391e94c850b8bd03680c23b38978db68687a8John Reck{
142e14391e94c850b8bd03680c23b38978db68687a8John Reck    String currentValue = element()->value();
143e14391e94c850b8bd03680c23b38978db68687a8John Reck    if (currentValue == element()->defaultValue())
144e14391e94c850b8bd03680c23b38978db68687a8John Reck        return false;
145e14391e94c850b8bd03680c23b38978db68687a8John Reck    result = currentValue;
146e14391e94c850b8bd03680c23b38978db68687a8John Reck    return true;
147e14391e94c850b8bd03680c23b38978db68687a8John Reck}
148e14391e94c850b8bd03680c23b38978db68687a8John Reck
149e14391e94c850b8bd03680c23b38978db68687a8John Reckvoid InputType::restoreFormControlState(const String& state) const
150e14391e94c850b8bd03680c23b38978db68687a8John Reck{
151e14391e94c850b8bd03680c23b38978db68687a8John Reck    element()->setValue(state);
152e14391e94c850b8bd03680c23b38978db68687a8John Reck}
153e14391e94c850b8bd03680c23b38978db68687a8John Reck
154e14391e94c850b8bd03680c23b38978db68687a8John Reckbool InputType::isFormDataAppendable() const
155e14391e94c850b8bd03680c23b38978db68687a8John Reck{
156e14391e94c850b8bd03680c23b38978db68687a8John Reck    // There is no form data unless there's a name for non-image types.
157e14391e94c850b8bd03680c23b38978db68687a8John Reck    return !element()->name().isEmpty();
158e14391e94c850b8bd03680c23b38978db68687a8John Reck}
159e14391e94c850b8bd03680c23b38978db68687a8John Reck
160e14391e94c850b8bd03680c23b38978db68687a8John Reckbool InputType::appendFormData(FormDataList& encoding, bool) const
161e14391e94c850b8bd03680c23b38978db68687a8John Reck{
162e14391e94c850b8bd03680c23b38978db68687a8John Reck    // Always successful.
163e14391e94c850b8bd03680c23b38978db68687a8John Reck    encoding.appendData(element()->name(), element()->value());
164e14391e94c850b8bd03680c23b38978db68687a8John Reck    return true;
165e14391e94c850b8bd03680c23b38978db68687a8John Reck}
166e14391e94c850b8bd03680c23b38978db68687a8John Reck
167a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::valueAsDate() const
168a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
169a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return DateComponents::invalidMilliseconds();
170a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
171a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
172a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InputType::setValueAsDate(double, ExceptionCode& ec) const
173a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
174a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ec = INVALID_STATE_ERR;
175a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
176a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
177a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::valueAsNumber() const
178a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
179a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return numeric_limits<double>::quiet_NaN();
180a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
181a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
182a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochvoid InputType::setValueAsNumber(double, ExceptionCode& ec) const
183a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
184a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ec = INVALID_STATE_ERR;
185a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
186a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
187a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::supportsValidation() const
188a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
189a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return true;
190a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
191a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
192a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::typeMismatchFor(const String&) const
193a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
194a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
195a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
196a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
197a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::typeMismatch() const
198a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
199a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
200a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
201a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
202a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::supportsRequired() const
203a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
204a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    // Almost all validatable types support @required.
205a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return supportsValidation();
206a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
207a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
208a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::valueMissing(const String&) const
209a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
210a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
211a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
212a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
213bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenbool InputType::patternMismatch(const String&) const
214bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
215bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return false;
216bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
217bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
218a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::rangeUnderflow(const String&) const
219a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
220a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
221a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
222a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
223a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::rangeOverflow(const String&) const
224a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
225a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
226a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
227a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
228cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::supportsRangeLimitation() const
229cad810f21b803229eb11403f9209855525a25d57Steve Block{
230cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
231cad810f21b803229eb11403f9209855525a25d57Steve Block}
232cad810f21b803229eb11403f9209855525a25d57Steve Block
233f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochdouble InputType::defaultValueForStepUp() const
234f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{
235f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch    return 0;
236f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}
237f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
238a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::minimum() const
239a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
240a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ASSERT_NOT_REACHED();
241a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return 0;
242a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
243a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
244a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::maximum() const
245a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
246a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ASSERT_NOT_REACHED();
247a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return 0;
248a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
249a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
250a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::stepMismatch(const String&, double) const
251a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
252a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    // Non-supported types should be rejected by HTMLInputElement::getAllowedValueStep().
253a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ASSERT_NOT_REACHED();
254a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
255a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
256a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
257a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::stepBase() const
258a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
259a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ASSERT_NOT_REACHED();
260a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return 0;
261a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
262a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
2636b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerdouble InputType::stepBaseWithDecimalPlaces(unsigned* decimalPlaces) const
2646b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
2656b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    if (decimalPlaces)
2666b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        *decimalPlaces = 0;
2676b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    return stepBase();
2686b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
2696b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
270a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::defaultStep() const
271a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
272a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return numeric_limits<double>::quiet_NaN();
273a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
274a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
275a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::stepScaleFactor() const
276a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
277a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return numeric_limits<double>::quiet_NaN();
278a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
279a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
280a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::parsedStepValueShouldBeInteger() const
281a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
282a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
283a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
284a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
285cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::scaledStepValueShouldBeInteger() const
286a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
287a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
288a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
289a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
2906b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerdouble InputType::acceptableError(double) const
2916b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
2926b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    return 0;
2936b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
2946b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
2956b70adc33054f8aee8c54d0f460458a9df11b8a5Russell BrennerString InputType::typeMismatchText() const
2966b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
2976b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    return validationMessageTypeMismatchText();
2986b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
2996b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
3004576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangString InputType::valueMissingText() const
3014576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang{
3024576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    return validationMessageValueMissingText();
3034576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang}
3044576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang
305cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleClickEvent(MouseEvent*)
3066b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
3076b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
3086b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
309ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochvoid InputType::handleMouseDownEvent(MouseEvent*)
310ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch{
311ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch}
312ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch
313f2e2233332c5b4a4b584c0a10b8bac10b6122acfGeorge Mount#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS)
314f2e2233332c5b4a4b584c0a10b8bac10b6122acfGeorge Mountvoid InputType::handleTouchStartEvent(TouchEvent*)
315f2e2233332c5b4a4b584c0a10b8bac10b6122acfGeorge Mount{
316f2e2233332c5b4a4b584c0a10b8bac10b6122acfGeorge Mount}
317f2e2233332c5b4a4b584c0a10b8bac10b6122acfGeorge Mount#endif
318f2e2233332c5b4a4b584c0a10b8bac10b6122acfGeorge Mount
319cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleDOMActivateEvent(Event*)
3206b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
3216b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
3226b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
323cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleKeydownEvent(KeyboardEvent*)
3246b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
3256b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
3266b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
327cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleKeypressEvent(KeyboardEvent*)
328f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{
329f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}
330f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
331cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleKeyupEvent(KeyboardEvent*)
332cad810f21b803229eb11403f9209855525a25d57Steve Block{
333cad810f21b803229eb11403f9209855525a25d57Steve Block}
334cad810f21b803229eb11403f9209855525a25d57Steve Block
335cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleBeforeTextInsertedEvent(BeforeTextInsertedEvent* event)
336cad810f21b803229eb11403f9209855525a25d57Steve Block{
337cad810f21b803229eb11403f9209855525a25d57Steve Block    element()->handleBeforeTextInsertedEvent(event);
338cad810f21b803229eb11403f9209855525a25d57Steve Block}
339cad810f21b803229eb11403f9209855525a25d57Steve Block
340cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleWheelEvent(WheelEvent*)
341cad810f21b803229eb11403f9209855525a25d57Steve Block{
342cad810f21b803229eb11403f9209855525a25d57Steve Block}
343cad810f21b803229eb11403f9209855525a25d57Steve Block
344cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::forwardEvent(Event*)
345f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{
346f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}
347f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
348f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochbool InputType::shouldSubmitImplicitly(Event* event)
349f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{
350f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch    return event->isKeyboardEvent() && event->type() == eventNames().keypressEvent && static_cast<KeyboardEvent*>(event)->charCode() == '\r';
351f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}
352f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch
353cad810f21b803229eb11403f9209855525a25d57Steve BlockPassRefPtr<HTMLFormElement> InputType::formForSubmission() const
354cad810f21b803229eb11403f9209855525a25d57Steve Block{
355cad810f21b803229eb11403f9209855525a25d57Steve Block    return element()->form();
356cad810f21b803229eb11403f9209855525a25d57Steve Block}
357cad810f21b803229eb11403f9209855525a25d57Steve Block
358e14391e94c850b8bd03680c23b38978db68687a8John ReckRenderObject* InputType::createRenderer(RenderArena*, RenderStyle* style) const
359e14391e94c850b8bd03680c23b38978db68687a8John Reck{
360e14391e94c850b8bd03680c23b38978db68687a8John Reck    return RenderObject::createObject(element(), style);
361e14391e94c850b8bd03680c23b38978db68687a8John Reck}
362e14391e94c850b8bd03680c23b38978db68687a8John Reck
36365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InputType::createShadowSubtree()
36465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
36565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
36665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
36765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid InputType::destroyShadowSubtree()
36865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{
3692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    element()->removeShadowRoot();
37065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}
37165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
372a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochdouble InputType::parseToDouble(const String&, double defaultValue) const
373a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
374a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return defaultValue;
375a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
376a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
3776b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerdouble InputType::parseToDoubleWithDecimalPlaces(const String& src, double defaultValue, unsigned *decimalPlaces) const
3786b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner{
3796b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    if (decimalPlaces)
3806b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        *decimalPlaces = 0;
3816b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    return parseToDouble(src, defaultValue);
3826b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner}
3836b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner
384a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochbool InputType::parseToDateComponents(const String&, DateComponents*) const
385a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
386a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ASSERT_NOT_REACHED();
387a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return false;
388a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
389a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
390a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochString InputType::serialize(double) const
391a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{
392a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    ASSERT_NOT_REACHED();
393a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    return String();
394a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch}
395a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
396f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochvoid InputType::dispatchSimulatedClickIfActive(KeyboardEvent* event) const
397f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{
398f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch    if (element()->active())
399f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch        element()->dispatchSimulatedClick(event);
400f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch    event->setDefaultHandled();
401f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}
402a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
403cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::canSetStringValue() const
404cad810f21b803229eb11403f9209855525a25d57Steve Block{
405cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
406cad810f21b803229eb11403f9209855525a25d57Steve Block}
407cad810f21b803229eb11403f9209855525a25d57Steve Block
408cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isKeyboardFocusable() const
409cad810f21b803229eb11403f9209855525a25d57Steve Block{
410cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
411cad810f21b803229eb11403f9209855525a25d57Steve Block}
412cad810f21b803229eb11403f9209855525a25d57Steve Block
413cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldUseInputMethod() const
414cad810f21b803229eb11403f9209855525a25d57Steve Block{
415cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
416cad810f21b803229eb11403f9209855525a25d57Steve Block}
417cad810f21b803229eb11403f9209855525a25d57Steve Block
418cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::handleBlurEvent()
419cad810f21b803229eb11403f9209855525a25d57Steve Block{
420cad810f21b803229eb11403f9209855525a25d57Steve Block}
421cad810f21b803229eb11403f9209855525a25d57Steve Block
422cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::accessKeyAction(bool)
423cad810f21b803229eb11403f9209855525a25d57Steve Block{
424cad810f21b803229eb11403f9209855525a25d57Steve Block    element()->focus(false);
425cad810f21b803229eb11403f9209855525a25d57Steve Block}
426cad810f21b803229eb11403f9209855525a25d57Steve Block
427cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::attach()
428cad810f21b803229eb11403f9209855525a25d57Steve Block{
429cad810f21b803229eb11403f9209855525a25d57Steve Block}
430cad810f21b803229eb11403f9209855525a25d57Steve Block
431cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::altAttributeChanged()
432cad810f21b803229eb11403f9209855525a25d57Steve Block{
433cad810f21b803229eb11403f9209855525a25d57Steve Block}
434cad810f21b803229eb11403f9209855525a25d57Steve Block
435cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::srcAttributeChanged()
436cad810f21b803229eb11403f9209855525a25d57Steve Block{
437cad810f21b803229eb11403f9209855525a25d57Steve Block}
438cad810f21b803229eb11403f9209855525a25d57Steve Block
4392fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockvoid InputType::valueChanged()
4402fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{
4412fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}
4422fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
443cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::willMoveToNewOwnerDocument()
444cad810f21b803229eb11403f9209855525a25d57Steve Block{
445cad810f21b803229eb11403f9209855525a25d57Steve Block}
446cad810f21b803229eb11403f9209855525a25d57Steve Block
447cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldRespectAlignAttribute()
448cad810f21b803229eb11403f9209855525a25d57Steve Block{
449cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
450cad810f21b803229eb11403f9209855525a25d57Steve Block}
451cad810f21b803229eb11403f9209855525a25d57Steve Block
452cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::canChangeFromAnotherType() const
453cad810f21b803229eb11403f9209855525a25d57Steve Block{
454cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
455cad810f21b803229eb11403f9209855525a25d57Steve Block}
456cad810f21b803229eb11403f9209855525a25d57Steve Block
457cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::minOrMaxAttributeChanged()
458cad810f21b803229eb11403f9209855525a25d57Steve Block{
459cad810f21b803229eb11403f9209855525a25d57Steve Block}
460cad810f21b803229eb11403f9209855525a25d57Steve Block
461cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::canBeSuccessfulSubmitButton()
462cad810f21b803229eb11403f9209855525a25d57Steve Block{
463cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
464cad810f21b803229eb11403f9209855525a25d57Steve Block}
465cad810f21b803229eb11403f9209855525a25d57Steve Block
466cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::rendererIsNeeded()
467cad810f21b803229eb11403f9209855525a25d57Steve Block{
468cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
469cad810f21b803229eb11403f9209855525a25d57Steve Block}
470cad810f21b803229eb11403f9209855525a25d57Steve Block
471cad810f21b803229eb11403f9209855525a25d57Steve BlockFileList* InputType::files()
472cad810f21b803229eb11403f9209855525a25d57Steve Block{
473cad810f21b803229eb11403f9209855525a25d57Steve Block    return 0;
474cad810f21b803229eb11403f9209855525a25d57Steve Block}
475cad810f21b803229eb11403f9209855525a25d57Steve Block
476cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::getTypeSpecificValue(String&)
477cad810f21b803229eb11403f9209855525a25d57Steve Block{
478cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
479cad810f21b803229eb11403f9209855525a25d57Steve Block}
480cad810f21b803229eb11403f9209855525a25d57Steve Block
481cad810f21b803229eb11403f9209855525a25d57Steve BlockString InputType::fallbackValue()
482cad810f21b803229eb11403f9209855525a25d57Steve Block{
483cad810f21b803229eb11403f9209855525a25d57Steve Block    return String();
484cad810f21b803229eb11403f9209855525a25d57Steve Block}
485cad810f21b803229eb11403f9209855525a25d57Steve Block
486cad810f21b803229eb11403f9209855525a25d57Steve BlockString InputType::defaultValue()
487cad810f21b803229eb11403f9209855525a25d57Steve Block{
488cad810f21b803229eb11403f9209855525a25d57Steve Block    return String();
489cad810f21b803229eb11403f9209855525a25d57Steve Block}
490cad810f21b803229eb11403f9209855525a25d57Steve Block
491cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::canSetSuggestedValue()
492cad810f21b803229eb11403f9209855525a25d57Steve Block{
493cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
494cad810f21b803229eb11403f9209855525a25d57Steve Block}
495cad810f21b803229eb11403f9209855525a25d57Steve Block
496cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldSendChangeEventAfterCheckedChanged()
497cad810f21b803229eb11403f9209855525a25d57Steve Block{
498cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
499cad810f21b803229eb11403f9209855525a25d57Steve Block}
500cad810f21b803229eb11403f9209855525a25d57Steve Block
501cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::storesValueSeparateFromAttribute()
502cad810f21b803229eb11403f9209855525a25d57Steve Block{
503cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
504cad810f21b803229eb11403f9209855525a25d57Steve Block}
505cad810f21b803229eb11403f9209855525a25d57Steve Block
506cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::canSetValue(const String&)
507cad810f21b803229eb11403f9209855525a25d57Steve Block{
508cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
509cad810f21b803229eb11403f9209855525a25d57Steve Block}
510cad810f21b803229eb11403f9209855525a25d57Steve Block
511cad810f21b803229eb11403f9209855525a25d57Steve BlockPassOwnPtr<ClickHandlingState> InputType::willDispatchClick()
512cad810f21b803229eb11403f9209855525a25d57Steve Block{
513cad810f21b803229eb11403f9209855525a25d57Steve Block    return PassOwnPtr<ClickHandlingState>();
514cad810f21b803229eb11403f9209855525a25d57Steve Block}
515cad810f21b803229eb11403f9209855525a25d57Steve Block
516cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::didDispatchClick(Event*, const ClickHandlingState&)
517cad810f21b803229eb11403f9209855525a25d57Steve Block{
518cad810f21b803229eb11403f9209855525a25d57Steve Block}
519cad810f21b803229eb11403f9209855525a25d57Steve Block
5202fc2651226baac27029e38c9d6ef883fa32084dbSteve BlockString InputType::visibleValue() const
5212fc2651226baac27029e38c9d6ef883fa32084dbSteve Block{
5222fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    return element()->value();
5232fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}
5242fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
52581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen MurdochString InputType::convertFromVisibleValue(const String& visibleValue) const
52681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch{
52781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    return visibleValue;
52881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch}
52981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch
530cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isAcceptableValue(const String&)
531cad810f21b803229eb11403f9209855525a25d57Steve Block{
532cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
533cad810f21b803229eb11403f9209855525a25d57Steve Block}
534cad810f21b803229eb11403f9209855525a25d57Steve Block
535cad810f21b803229eb11403f9209855525a25d57Steve BlockString InputType::sanitizeValue(const String& proposedValue)
536cad810f21b803229eb11403f9209855525a25d57Steve Block{
537cad810f21b803229eb11403f9209855525a25d57Steve Block    return proposedValue;
538cad810f21b803229eb11403f9209855525a25d57Steve Block}
539cad810f21b803229eb11403f9209855525a25d57Steve Block
540cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::hasUnacceptableValue()
541cad810f21b803229eb11403f9209855525a25d57Steve Block{
542cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
543cad810f21b803229eb11403f9209855525a25d57Steve Block}
544cad810f21b803229eb11403f9209855525a25d57Steve Block
545cad810f21b803229eb11403f9209855525a25d57Steve Blockvoid InputType::setFileList(const Vector<String>&)
546cad810f21b803229eb11403f9209855525a25d57Steve Block{
547cad810f21b803229eb11403f9209855525a25d57Steve Block    ASSERT_NOT_REACHED();
548cad810f21b803229eb11403f9209855525a25d57Steve Block}
549cad810f21b803229eb11403f9209855525a25d57Steve Block
550cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldResetOnDocumentActivation()
551cad810f21b803229eb11403f9209855525a25d57Steve Block{
552cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
553cad810f21b803229eb11403f9209855525a25d57Steve Block}
554cad810f21b803229eb11403f9209855525a25d57Steve Block
555cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldRespectListAttribute()
556cad810f21b803229eb11403f9209855525a25d57Steve Block{
557cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
558cad810f21b803229eb11403f9209855525a25d57Steve Block}
559cad810f21b803229eb11403f9209855525a25d57Steve Block
560cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldRespectSpeechAttribute()
561cad810f21b803229eb11403f9209855525a25d57Steve Block{
562cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
563cad810f21b803229eb11403f9209855525a25d57Steve Block}
564cad810f21b803229eb11403f9209855525a25d57Steve Block
565cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isTextButton() const
566cad810f21b803229eb11403f9209855525a25d57Steve Block{
567cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
568cad810f21b803229eb11403f9209855525a25d57Steve Block}
569cad810f21b803229eb11403f9209855525a25d57Steve Block
570cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isRadioButton() const
571cad810f21b803229eb11403f9209855525a25d57Steve Block{
572cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
573cad810f21b803229eb11403f9209855525a25d57Steve Block}
574cad810f21b803229eb11403f9209855525a25d57Steve Block
575cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isSearchField() const
576cad810f21b803229eb11403f9209855525a25d57Steve Block{
577cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
578cad810f21b803229eb11403f9209855525a25d57Steve Block}
579cad810f21b803229eb11403f9209855525a25d57Steve Block
580cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isHiddenType() const
581cad810f21b803229eb11403f9209855525a25d57Steve Block{
582cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
583cad810f21b803229eb11403f9209855525a25d57Steve Block}
584cad810f21b803229eb11403f9209855525a25d57Steve Block
585cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isPasswordField() const
586cad810f21b803229eb11403f9209855525a25d57Steve Block{
587cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
588cad810f21b803229eb11403f9209855525a25d57Steve Block}
589cad810f21b803229eb11403f9209855525a25d57Steve Block
590cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isCheckbox() const
591cad810f21b803229eb11403f9209855525a25d57Steve Block{
592cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
593cad810f21b803229eb11403f9209855525a25d57Steve Block}
594cad810f21b803229eb11403f9209855525a25d57Steve Block
595cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isEmailField() const
596cad810f21b803229eb11403f9209855525a25d57Steve Block{
597cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
598cad810f21b803229eb11403f9209855525a25d57Steve Block}
599cad810f21b803229eb11403f9209855525a25d57Steve Block
600cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isFileUpload() const
601cad810f21b803229eb11403f9209855525a25d57Steve Block{
602cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
603cad810f21b803229eb11403f9209855525a25d57Steve Block}
604cad810f21b803229eb11403f9209855525a25d57Steve Block
605cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isImageButton() const
606cad810f21b803229eb11403f9209855525a25d57Steve Block{
607cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
608cad810f21b803229eb11403f9209855525a25d57Steve Block}
609cad810f21b803229eb11403f9209855525a25d57Steve Block
610cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isNumberField() const
611cad810f21b803229eb11403f9209855525a25d57Steve Block{
612cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
613cad810f21b803229eb11403f9209855525a25d57Steve Block}
614cad810f21b803229eb11403f9209855525a25d57Steve Block
615cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isSubmitButton() const
616cad810f21b803229eb11403f9209855525a25d57Steve Block{
617cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
618cad810f21b803229eb11403f9209855525a25d57Steve Block}
619cad810f21b803229eb11403f9209855525a25d57Steve Block
620cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isTelephoneField() const
621cad810f21b803229eb11403f9209855525a25d57Steve Block{
622cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
623cad810f21b803229eb11403f9209855525a25d57Steve Block}
624cad810f21b803229eb11403f9209855525a25d57Steve Block
625cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isURLField() const
626cad810f21b803229eb11403f9209855525a25d57Steve Block{
627cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
628cad810f21b803229eb11403f9209855525a25d57Steve Block}
629cad810f21b803229eb11403f9209855525a25d57Steve Block
630cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isEnumeratable()
631cad810f21b803229eb11403f9209855525a25d57Steve Block{
632cad810f21b803229eb11403f9209855525a25d57Steve Block    return true;
633cad810f21b803229eb11403f9209855525a25d57Steve Block}
634cad810f21b803229eb11403f9209855525a25d57Steve Block
635cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::isCheckable()
636cad810f21b803229eb11403f9209855525a25d57Steve Block{
637cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
638cad810f21b803229eb11403f9209855525a25d57Steve Block}
639cad810f21b803229eb11403f9209855525a25d57Steve Block
640cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::hasSpinButton()
641cad810f21b803229eb11403f9209855525a25d57Steve Block{
642cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
643cad810f21b803229eb11403f9209855525a25d57Steve Block}
644cad810f21b803229eb11403f9209855525a25d57Steve Block
645cad810f21b803229eb11403f9209855525a25d57Steve Blockbool InputType::shouldRespectHeightAndWidthAttributes()
646cad810f21b803229eb11403f9209855525a25d57Steve Block{
647cad810f21b803229eb11403f9209855525a25d57Steve Block    return false;
648cad810f21b803229eb11403f9209855525a25d57Steve Block}
649cad810f21b803229eb11403f9209855525a25d57Steve Block
650bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsennamespace InputTypeNames {
651bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
652bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen// The type names must be lowercased because they will be the return values of
653bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen// input.type and input.type must be lowercase according to DOM Level 2.
654bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
655bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& button()
656bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
657bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("button"));
658bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
659bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
660bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
661bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& checkbox()
662bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
663bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("checkbox"));
664bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
665bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
666bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
667bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& color()
668bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
669bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("color"));
670bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
671bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
672bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
673bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& date()
674bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
675bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("date"));
676bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
677bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
678bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
679bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& datetime()
680bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
681bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("datetime"));
682bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
683bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
684bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
685bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& datetimelocal()
686bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
687bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("datetime-local"));
688bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
689bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
690bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
691bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& email()
692bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
693bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("email"));
694bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
695bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
696bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
697bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& file()
698bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
699bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("file"));
700bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
701bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
702bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
703bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& hidden()
704bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
705bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("hidden"));
706bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
707bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
708bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
709bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& image()
710bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
711bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("image"));
712bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
713bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
714bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
715bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& isindex()
716bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
717bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("khtml_isindex"));
718bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
719bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
720bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
721bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& month()
722bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
723bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("month"));
724bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
725bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
726bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
727bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& number()
728bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
729bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("number"));
730bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
731bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
732bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
733bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& password()
734bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
735bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("password"));
736bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
737bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
738bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
739bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& radio()
740bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
741bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("radio"));
742bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
743bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
744bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
745bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& range()
746bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
747bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("range"));
748bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
749bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
750bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
751bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& reset()
752bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
753bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("reset"));
754bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
755bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
756bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
757bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& search()
758bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
759bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("search"));
760bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
761bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
762bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
763bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& submit()
764bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
765bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("submit"));
766bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
767bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
768bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
769bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& telephone()
770bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
771bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("tel"));
772bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
773bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
774bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
775bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& text()
776bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
777bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("text"));
778bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
779bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
780bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
781bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& time()
782bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
783bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("time"));
784bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
785bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
786bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
787bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& url()
788bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
789bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("url"));
790bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
791bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
792bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
793bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsenconst AtomicString& week()
794bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen{
795bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    DEFINE_STATIC_LOCAL(AtomicString, name, ("week"));
796bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    return name;
797bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen}
798bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
799cad810f21b803229eb11403f9209855525a25d57Steve Block} // namespace WebCore::InputTypeNames
800bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen
801bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen} // namespace WebCore
802