| Index: Source/core/html/HTMLFormControlElement.cpp
|
| diff --git a/Source/core/html/HTMLFormControlElement.cpp b/Source/core/html/HTMLFormControlElement.cpp
|
| index 3ad09c1b9ffe14b63973f60877eb318aad4bf0be..7d15a19bcb726573a988af020ccc734aca3fa127 100644
|
| --- a/Source/core/html/HTMLFormControlElement.cpp
|
| +++ b/Source/core/html/HTMLFormControlElement.cpp
|
| @@ -58,7 +58,6 @@
|
| , m_willValidateInitialized(false)
|
| , m_willValidate(true)
|
| , m_isValid(true)
|
| - , m_validityIsDirty(true)
|
| , m_wasChangedSinceLastFormControlChangeEvent(false)
|
| , m_wasFocusedByMouse(false)
|
| {
|
| @@ -474,24 +473,20 @@
|
|
|
| bool HTMLFormControlElement::isValidFormControlElement()
|
| {
|
| - if (m_validityIsDirty) {
|
| - m_isValid = valid();
|
| - m_validityIsDirty = false;
|
| - } else {
|
| - // If the following assertion fails, setNeedsValidityCheck() is not called
|
| - // correctly when something which changes validity is updated.
|
| - ASSERT(m_isValid == valid());
|
| - }
|
| + // If the following assertion fails, setNeedsValidityCheck() is not called
|
| + // correctly when something which changes validity is updated.
|
| + ASSERT(m_isValid == valid());
|
| return m_isValid;
|
| }
|
|
|
| void HTMLFormControlElement::setNeedsValidityCheck()
|
| {
|
| - if (!m_validityIsDirty && willValidate()) {
|
| + bool newIsValid = valid();
|
| + if (willValidate() && newIsValid != m_isValid) {
|
| // Update style for pseudo classes such as :valid :invalid.
|
| setNeedsStyleRecalc(SubtreeStyleChange);
|
| - m_validityIsDirty = true;
|
| - }
|
| + }
|
| + m_isValid = newIsValid;
|
|
|
| // Updates only if this control already has a validation message.
|
| if (isValidationMessageVisible()) {
|
|
|