Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(568)

Side by Side Diff: third_party/WebKit/Source/core/html/forms/InputType.cpp

Issue 2918033003: Input type check comparision should be an ASCII case-insensitive match. (Closed)
Patch Set: updated patch#3 Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/forms/input-type-change3-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 7 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
8 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) 8 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org)
9 * Copyright (C) 2009, 2010, 2011, 2012 Google Inc. All rights reserved. 9 * Copyright (C) 2009, 2010, 2011, 2012 Google Inc. All rights reserved.
10 * Copyright (C) 2012 Samsung Electronics. All rights reserved. 10 * Copyright (C) 2012 Samsung Electronics. All rights reserved.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 #include "platform/text/PlatformLocale.h" 75 #include "platform/text/PlatformLocale.h"
76 #include "platform/text/TextBreakIterator.h" 76 #include "platform/text/TextBreakIterator.h"
77 #include "platform/wtf/PtrUtil.h" 77 #include "platform/wtf/PtrUtil.h"
78 78
79 namespace blink { 79 namespace blink {
80 80
81 using blink::WebLocalizedString; 81 using blink::WebLocalizedString;
82 using namespace HTMLNames; 82 using namespace HTMLNames;
83 83
84 using InputTypeFactoryFunction = InputType* (*)(HTMLInputElement&); 84 using InputTypeFactoryFunction = InputType* (*)(HTMLInputElement&);
85 using InputTypeFactoryMap = 85 using InputTypeFactoryMap = HashMap<AtomicString, InputTypeFactoryFunction>;
86 HashMap<AtomicString, InputTypeFactoryFunction, CaseFoldingHash>;
87 86
88 static std::unique_ptr<InputTypeFactoryMap> CreateInputTypeFactoryMap() { 87 static std::unique_ptr<InputTypeFactoryMap> CreateInputTypeFactoryMap() {
89 std::unique_ptr<InputTypeFactoryMap> map = 88 std::unique_ptr<InputTypeFactoryMap> map =
90 WTF::WrapUnique(new InputTypeFactoryMap); 89 WTF::WrapUnique(new InputTypeFactoryMap);
91 map->insert(InputTypeNames::button, ButtonInputType::Create); 90 map->insert(InputTypeNames::button, ButtonInputType::Create);
92 map->insert(InputTypeNames::checkbox, CheckboxInputType::Create); 91 map->insert(InputTypeNames::checkbox, CheckboxInputType::Create);
93 map->insert(InputTypeNames::color, ColorInputType::Create); 92 map->insert(InputTypeNames::color, ColorInputType::Create);
94 map->insert(InputTypeNames::date, DateInputType::Create); 93 map->insert(InputTypeNames::date, DateInputType::Create);
95 map->insert(InputTypeNames::datetime_local, DateTimeLocalInputType::Create); 94 map->insert(InputTypeNames::datetime_local, DateTimeLocalInputType::Create);
96 map->insert(InputTypeNames::email, EmailInputType::Create); 95 map->insert(InputTypeNames::email, EmailInputType::Create);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 } 128 }
130 129
131 InputType* InputType::CreateText(HTMLInputElement& element) { 130 InputType* InputType::CreateText(HTMLInputElement& element) {
132 return TextInputType::Create(element); 131 return TextInputType::Create(element);
133 } 132 }
134 133
135 const AtomicString& InputType::NormalizeTypeName( 134 const AtomicString& InputType::NormalizeTypeName(
136 const AtomicString& type_name) { 135 const AtomicString& type_name) {
137 if (type_name.IsEmpty()) 136 if (type_name.IsEmpty())
138 return InputTypeNames::text; 137 return InputTypeNames::text;
139 InputTypeFactoryMap::const_iterator it = FactoryMap()->find(type_name); 138 InputTypeFactoryMap::const_iterator it =
139 FactoryMap()->find(type_name.LowerASCII());
140 return it == FactoryMap()->end() ? InputTypeNames::text : it->key; 140 return it == FactoryMap()->end() ? InputTypeNames::text : it->key;
141 } 141 }
142 142
143 InputType::~InputType() {} 143 InputType::~InputType() {}
144 144
145 DEFINE_TRACE(InputType) { 145 DEFINE_TRACE(InputType) {
146 visitor->Trace(element_); 146 visitor->Trace(element_);
147 } 147 }
148 148
149 bool InputType::IsTextField() const { 149 bool InputType::IsTextField() const {
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 915
916 void InputType::AddWarningToConsole(const char* message_format, 916 void InputType::AddWarningToConsole(const char* message_format,
917 const String& value) const { 917 const String& value) const {
918 GetElement().GetDocument().AddConsoleMessage(ConsoleMessage::Create( 918 GetElement().GetDocument().AddConsoleMessage(ConsoleMessage::Create(
919 kRenderingMessageSource, kWarningMessageLevel, 919 kRenderingMessageSource, kWarningMessageLevel,
920 String::Format(message_format, 920 String::Format(message_format,
921 JSONValue::QuoteString(value).Utf8().data()))); 921 JSONValue::QuoteString(value).Utf8().data())));
922 } 922 }
923 923
924 } // namespace blink 924 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/fast/forms/input-type-change3-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698