Index: third_party/WebKit/Source/core/html/HTMLInputElement.cpp |
diff --git a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp |
index 6ef98db166c4461008c18ea222ca89ac575f4134..aa2e7b463c2cf68f0db1e721280371b7e1d6596b 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLInputElement.cpp |
+++ b/third_party/WebKit/Source/core/html/HTMLInputElement.cpp |
@@ -726,6 +726,7 @@ void HTMLInputElement::parseAttribute( |
setNeedsValidityCheck(); |
m_valueAttributeWasUpdatedAfterParsing = !m_parsingInProgress; |
m_inputType->warnIfValueIsInvalidAndElementIsVisible(value); |
+ m_inputType->inRangeChanged(); |
m_inputTypeView->valueAttributeChanged(); |
} else if (name == checkedAttr) { |
// Another radio button in the same group might be checked by state |
@@ -770,11 +771,13 @@ void HTMLInputElement::parseAttribute( |
} else if (name == minAttr) { |
m_inputTypeView->minOrMaxAttributeChanged(); |
m_inputType->sanitizeValueInResponseToMinOrMaxAttributeChange(); |
+ m_inputType->inRangeChanged(); |
setNeedsValidityCheck(); |
UseCounter::count(document(), UseCounter::MinAttribute); |
} else if (name == maxAttr) { |
m_inputTypeView->minOrMaxAttributeChanged(); |
m_inputType->sanitizeValueInResponseToMinOrMaxAttributeChange(); |
+ m_inputType->inRangeChanged(); |
setNeedsValidityCheck(); |
UseCounter::count(document(), UseCounter::MaxAttribute); |
} else if (name == multipleAttr) { |
@@ -1099,10 +1102,7 @@ void HTMLInputElement::setNonAttributeValue(const String& sanitizedValue) { |
m_nonAttributeValue = sanitizedValue; |
m_hasDirtyValue = true; |
setNeedsValidityCheck(); |
- if (m_inputType->isSteppable()) { |
- pseudoStateChanged(CSSSelector::PseudoInRange); |
- pseudoStateChanged(CSSSelector::PseudoOutOfRange); |
- } |
+ m_inputType->inRangeChanged(); |
} |
void HTMLInputElement::setNonDirtyValue(const String& newValue) { |