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

Side by Side Diff: Source/core/html/HTMLInputElement.cpp

Issue 85513002: Refactoring: Removing an extra boolean 'm_wasModifiedByUser' from (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years 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 | « Source/core/html/HTMLInputElement.h ('k') | Source/core/html/HTMLTextAreaElement.h » ('j') | 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 r ights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) 7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org)
8 * Copyright (C) 2010 Google Inc. All rights reserved. 8 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 9 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
10 * Copyright (C) 2012 Samsung Electronics. All rights reserved. 10 * Copyright (C) 2012 Samsung Electronics. All rights reserved.
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 , m_isChecked(false) 110 , m_isChecked(false)
111 , m_reflectsCheckedAttribute(true) 111 , m_reflectsCheckedAttribute(true)
112 , m_isIndeterminate(false) 112 , m_isIndeterminate(false)
113 , m_hasType(false) 113 , m_hasType(false)
114 , m_isActivatedSubmit(false) 114 , m_isActivatedSubmit(false)
115 , m_autocomplete(Uninitialized) 115 , m_autocomplete(Uninitialized)
116 , m_hasNonEmptyList(false) 116 , m_hasNonEmptyList(false)
117 , m_stateRestored(false) 117 , m_stateRestored(false)
118 , m_parsingInProgress(createdByParser) 118 , m_parsingInProgress(createdByParser)
119 , m_valueAttributeWasUpdatedAfterParsing(false) 119 , m_valueAttributeWasUpdatedAfterParsing(false)
120 , m_wasModifiedByUser(false)
121 , m_canReceiveDroppedFiles(false) 120 , m_canReceiveDroppedFiles(false)
122 , m_hasTouchEventHandler(false) 121 , m_hasTouchEventHandler(false)
123 , m_inputType(InputType::createText(*this)) 122 , m_inputType(InputType::createText(*this))
124 , m_inputTypeView(m_inputType) 123 , m_inputTypeView(m_inputType)
125 { 124 {
126 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 125 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
127 setHasCustomStyleCallbacks(); 126 setHasCustomStyleCallbacks();
128 #endif 127 #endif
129 ScriptWrappable::init(this); 128 ScriptWrappable::init(this);
130 } 129 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 // We use isTextType() instead of supportsMaxLength() because of the 236 // We use isTextType() instead of supportsMaxLength() because of the
238 // 'virtual' overhead. 237 // 'virtual' overhead.
239 if (!isTextType()) 238 if (!isTextType())
240 return false; 239 return false;
241 int max = maxLength(); 240 int max = maxLength();
242 if (max < 0) 241 if (max < 0)
243 return false; 242 return false;
244 if (check == CheckDirtyFlag) { 243 if (check == CheckDirtyFlag) {
245 // Return false for the default value or a value set by a script even if 244 // Return false for the default value or a value set by a script even if
246 // it is longer than maxLength. 245 // it is longer than maxLength.
247 if (!hasDirtyValue() || !m_wasModifiedByUser) 246 if (!hasDirtyValue() || !lastChangeWasUserEdit())
248 return false; 247 return false;
249 } 248 }
250 return value.length() > static_cast<unsigned>(max); 249 return value.length() > static_cast<unsigned>(max);
251 } 250 }
252 251
253 bool HTMLInputElement::rangeUnderflow() const 252 bool HTMLInputElement::rangeUnderflow() const
254 { 253 {
255 return willValidate() && m_inputType->rangeUnderflow(value()); 254 return willValidate() && m_inputType->rangeUnderflow(value());
256 } 255 }
257 256
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 } 448 }
450 if (!didStoreValue && willStoreValue) { 449 if (!didStoreValue && willStoreValue) {
451 AtomicString valueString = fastGetAttribute(valueAttr); 450 AtomicString valueString = fastGetAttribute(valueAttr);
452 m_valueIfDirty = sanitizeValue(valueString); 451 m_valueIfDirty = sanitizeValue(valueString);
453 } else 452 } else
454 updateValueIfNeeded(); 453 updateValueIfNeeded();
455 454
456 setFormControlValueMatchesRenderer(false); 455 setFormControlValueMatchesRenderer(false);
457 m_inputTypeView->updateView(); 456 m_inputTypeView->updateView();
458 457
459 m_wasModifiedByUser = false;
460
461 if (didRespectHeightAndWidth != m_inputType->shouldRespectHeightAndWidthAttr ibutes()) { 458 if (didRespectHeightAndWidth != m_inputType->shouldRespectHeightAndWidthAttr ibutes()) {
462 ASSERT(elementData()); 459 ASSERT(elementData());
463 if (const Attribute* height = getAttributeItem(heightAttr)) 460 if (const Attribute* height = getAttributeItem(heightAttr))
464 attributeChanged(heightAttr, height->value()); 461 attributeChanged(heightAttr, height->value());
465 if (const Attribute* width = getAttributeItem(widthAttr)) 462 if (const Attribute* width = getAttributeItem(widthAttr))
466 attributeChanged(widthAttr, width->value()); 463 attributeChanged(widthAttr, width->value());
467 if (const Attribute* align = getAttributeItem(alignAttr)) 464 if (const Attribute* align = getAttributeItem(alignAttr))
468 attributeChanged(alignAttr, align->value()); 465 attributeChanged(alignAttr, align->value());
469 } 466 }
470 467
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 bool HTMLInputElement::sizeShouldIncludeDecoration(int& preferredSize) const 913 bool HTMLInputElement::sizeShouldIncludeDecoration(int& preferredSize) const
917 { 914 {
918 return m_inputTypeView->sizeShouldIncludeDecoration(defaultSize, preferredSi ze); 915 return m_inputTypeView->sizeShouldIncludeDecoration(defaultSize, preferredSi ze);
919 } 916 }
920 917
921 void HTMLInputElement::copyNonAttributePropertiesFromElement(const Element& sour ce) 918 void HTMLInputElement::copyNonAttributePropertiesFromElement(const Element& sour ce)
922 { 919 {
923 const HTMLInputElement& sourceElement = static_cast<const HTMLInputElement&> (source); 920 const HTMLInputElement& sourceElement = static_cast<const HTMLInputElement&> (source);
924 921
925 m_valueIfDirty = sourceElement.m_valueIfDirty; 922 m_valueIfDirty = sourceElement.m_valueIfDirty;
926 m_wasModifiedByUser = false;
927 setChecked(sourceElement.m_isChecked); 923 setChecked(sourceElement.m_isChecked);
928 m_reflectsCheckedAttribute = sourceElement.m_reflectsCheckedAttribute; 924 m_reflectsCheckedAttribute = sourceElement.m_reflectsCheckedAttribute;
929 m_isIndeterminate = sourceElement.m_isIndeterminate; 925 m_isIndeterminate = sourceElement.m_isIndeterminate;
930 926
931 HTMLTextFormControlElement::copyNonAttributePropertiesFromElement(source); 927 HTMLTextFormControlElement::copyNonAttributePropertiesFromElement(source);
932 928
933 setFormControlValueMatchesRenderer(false); 929 setFormControlValueMatchesRenderer(false);
934 m_inputTypeView->updateView(); 930 m_inputTypeView->updateView();
935 } 931 }
936 932
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 1024
1029 if (!valueChanged) 1025 if (!valueChanged)
1030 return; 1026 return;
1031 1027
1032 notifyFormStateChanged(); 1028 notifyFormStateChanged();
1033 } 1029 }
1034 1030
1035 void HTMLInputElement::setValueInternal(const String& sanitizedValue, TextFieldE ventBehavior eventBehavior) 1031 void HTMLInputElement::setValueInternal(const String& sanitizedValue, TextFieldE ventBehavior eventBehavior)
1036 { 1032 {
1037 m_valueIfDirty = sanitizedValue; 1033 m_valueIfDirty = sanitizedValue;
1038 m_wasModifiedByUser = eventBehavior != DispatchNoEvent;
1039 setNeedsValidityCheck(); 1034 setNeedsValidityCheck();
1040 } 1035 }
1041 1036
1042 double HTMLInputElement::valueAsDate() const 1037 double HTMLInputElement::valueAsDate() const
1043 { 1038 {
1044 return m_inputType->valueAsDate(); 1039 return m_inputType->valueAsDate();
1045 } 1040 }
1046 1041
1047 void HTMLInputElement::setValueAsDate(double value, ExceptionState& exceptionSta te) 1042 void HTMLInputElement::setValueAsDate(double value, ExceptionState& exceptionSta te)
1048 { 1043 {
(...skipping 20 matching lines...) Expand all
1069 ASSERT(!isFileUpload()); 1064 ASSERT(!isFileUpload());
1070 1065
1071 m_suggestedValue = String(); 1066 m_suggestedValue = String();
1072 1067
1073 // Renderer and our event handler are responsible for sanitizing values. 1068 // Renderer and our event handler are responsible for sanitizing values.
1074 ASSERT(value == sanitizeValue(value) || sanitizeValue(value).isEmpty()); 1069 ASSERT(value == sanitizeValue(value) || sanitizeValue(value).isEmpty());
1075 1070
1076 m_valueIfDirty = value; 1071 m_valueIfDirty = value;
1077 1072
1078 setFormControlValueMatchesRenderer(true); 1073 setFormControlValueMatchesRenderer(true);
1079 m_wasModifiedByUser = true;
1080 1074
1081 // Input event is fired by the Node::defaultEventHandler for editable contro ls. 1075 // Input event is fired by the Node::defaultEventHandler for editable contro ls.
1082 if (!isTextField()) 1076 if (!isTextField())
1083 dispatchInputEvent(); 1077 dispatchInputEvent();
1084 notifyFormStateChanged(); 1078 notifyFormStateChanged();
1085 1079
1086 setNeedsValidityCheck(); 1080 setNeedsValidityCheck();
1087 1081
1088 // Clear autofill flag (and yellow background) on user edit. 1082 // Clear autofill flag (and yellow background) on user edit.
1089 setAutofilled(false); 1083 setAutofilled(false);
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
1864 } 1858 }
1865 1859
1866 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 1860 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
1867 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer() 1861 PassRefPtr<RenderStyle> HTMLInputElement::customStyleForRenderer()
1868 { 1862 {
1869 return m_inputTypeView->customStyleForRenderer(originalStyleForRenderer()); 1863 return m_inputTypeView->customStyleForRenderer(originalStyleForRenderer());
1870 } 1864 }
1871 #endif 1865 #endif
1872 1866
1873 } // namespace 1867 } // namespace
OLDNEW
« no previous file with comments | « Source/core/html/HTMLInputElement.h ('k') | Source/core/html/HTMLTextAreaElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698