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