| Index: Source/core/html/HTMLFormElement.cpp
|
| diff --git a/Source/core/html/HTMLFormElement.cpp b/Source/core/html/HTMLFormElement.cpp
|
| index bcd39c067668885e6dbdb5253fd757f530fd9ea9..c768e3a45852c1c8356a68f31010e80023e80ef0 100644
|
| --- a/Source/core/html/HTMLFormElement.cpp
|
| +++ b/Source/core/html/HTMLFormElement.cpp
|
| @@ -78,7 +78,6 @@ HTMLFormElement::HTMLFormElement(Document& document)
|
| , m_shouldSubmit(false)
|
| , m_isInResetFunction(false)
|
| , m_wasDemoted(false)
|
| - , m_invalidControlsCount(0)
|
| , m_pendingAutocompleteEventsQueue(GenericEventQueue::create(this))
|
| {
|
| }
|
| @@ -714,31 +713,6 @@ HTMLFormControlElement* HTMLFormElement::defaultButton() const
|
| return 0;
|
| }
|
|
|
| -void HTMLFormElement::setNeedsValidityCheck(ValidityRecalcReason reason, bool isValid)
|
| -{
|
| - bool formWasInvalid = m_invalidControlsCount > 0;
|
| - switch (reason) {
|
| - case ElementRemoval:
|
| - if (!isValid)
|
| - --m_invalidControlsCount;
|
| - break;
|
| - case ElementAddition:
|
| - if (!isValid)
|
| - ++m_invalidControlsCount;
|
| - break;
|
| - case ElementModification:
|
| - if (isValid)
|
| - --m_invalidControlsCount;
|
| - else
|
| - ++m_invalidControlsCount;
|
| - break;
|
| - }
|
| - if (formWasInvalid && !m_invalidControlsCount)
|
| - pseudoStateChanged(CSSSelector::PseudoValid);
|
| - if (!formWasInvalid && m_invalidControlsCount)
|
| - pseudoStateChanged(CSSSelector::PseudoInvalid);
|
| -}
|
| -
|
| bool HTMLFormElement::checkValidity()
|
| {
|
| return !checkInvalidControlsAndCollectUnhandled(0, CheckValidityDispatchInvalidEvent);
|
| @@ -746,9 +720,6 @@ bool HTMLFormElement::checkValidity()
|
|
|
| bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(WillBeHeapVector<RefPtrWillBeMember<HTMLFormControlElement>>* unhandledInvalidControls, CheckValidityEventBehavior eventBehavior)
|
| {
|
| - if (!unhandledInvalidControls && eventBehavior == CheckValidityDispatchNoEvent)
|
| - return m_invalidControlsCount;
|
| -
|
| RefPtrWillBeRawPtr<HTMLFormElement> protector(this);
|
| // Copy associatedElements because event handlers called from
|
| // HTMLFormControlElement::checkValidity() might change associatedElements.
|
| @@ -761,12 +732,13 @@ bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(WillBeHeapVector<R
|
| for (unsigned i = 0; i < elements.size(); ++i) {
|
| if (elements[i]->form() == this && elements[i]->isFormControlElement()) {
|
| HTMLFormControlElement* control = toHTMLFormControlElement(elements[i].get());
|
| - if (!control->checkValidity(unhandledInvalidControls, eventBehavior) && control->formOwner() == this)
|
| + if (!control->checkValidity(unhandledInvalidControls, eventBehavior) && control->formOwner() == this) {
|
| ++invalidControlsCount;
|
| + if (!unhandledInvalidControls && eventBehavior == CheckValidityDispatchNoEvent)
|
| + return true;
|
| + }
|
| }
|
| }
|
| - if (eventBehavior == CheckValidityDispatchNoEvent)
|
| - ASSERT(invalidControlsCount == m_invalidControlsCount);
|
| return invalidControlsCount;
|
| }
|
|
|
|
|