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); |