| Index: Source/core/html/HTMLFormElement.cpp
|
| diff --git a/Source/core/html/HTMLFormElement.cpp b/Source/core/html/HTMLFormElement.cpp
|
| index 013dfd394be8dbef75ae85657bcc183e80b7aa84..8412cc5e3ae9d23c1bc9306677fdd918672c8d78 100644
|
| --- a/Source/core/html/HTMLFormElement.cpp
|
| +++ b/Source/core/html/HTMLFormElement.cpp
|
| @@ -109,6 +109,16 @@ void HTMLFormElement::trace(Visitor* visitor)
|
| HTMLElement::trace(visitor);
|
| }
|
|
|
| +bool HTMLFormElement::willValidate() const
|
| +{
|
| + return true;
|
| +}
|
| +
|
| +bool HTMLFormElement::isValidElement()
|
| +{
|
| + return checkValidity();
|
| +}
|
| +
|
| bool HTMLFormElement::rendererIsNeeded(const RenderStyle& style)
|
| {
|
| if (!m_wasDemoted)
|
| @@ -716,6 +726,14 @@ HTMLFormControlElement* HTMLFormElement::defaultButton() const
|
| return 0;
|
| }
|
|
|
| +void HTMLFormElement::setNeedsValidityCheck()
|
| +{
|
| + // For now unconditionally order style recalculation, which triggers
|
| + // validity recalculation. In the near future, implement validity cache and
|
| + // recalculate style only if it changed.
|
| + setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::createWithExtraData(StyleChangeReason::PseudoClass, StyleChangeExtraData::Invalid));
|
| +}
|
| +
|
| bool HTMLFormElement::checkValidity()
|
| {
|
| return !checkInvalidControlsAndCollectUnhandled(0);
|
|
|