| Index: third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| index 515f3179af598d069e47faf41a10bde78c9eb49e..978394019ed30490d4b3ac1942c8f025ae5db17c 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
|
| @@ -31,7 +31,6 @@
|
| #include "core/dom/Attribute.h"
|
| #include "core/dom/Document.h"
|
| #include "core/dom/ElementTraversal.h"
|
| -#include "core/dom/IdTargetObserverRegistry.h"
|
| #include "core/dom/NodeListsNodeData.h"
|
| #include "core/events/AutocompleteErrorEvent.h"
|
| #include "core/events/Event.h"
|
| @@ -71,6 +70,7 @@ HTMLFormElement::HTMLFormElement(Document& document)
|
| , m_associatedElementsAreDirty(false)
|
| , m_imageElementsAreDirty(false)
|
| , m_hasElementsAssociatedByParser(false)
|
| + , m_hasElementsAssociatedByFormAttribute(false)
|
| , m_didFinishParsingChildren(false)
|
| , m_wasUserSubmitted(false)
|
| , m_isSubmittingOrInUserJSSubmitEvent(false)
|
| @@ -529,6 +529,8 @@ void HTMLFormElement::associate(FormAssociatedElement& e)
|
| {
|
| m_associatedElementsAreDirty = true;
|
| m_associatedElements.clear();
|
| + if (toHTMLElement(e).fastHasAttribute(formAttr))
|
| + m_hasElementsAssociatedByFormAttribute = true;
|
| }
|
|
|
| void HTMLFormElement::disassociate(FormAssociatedElement& e)
|
| @@ -607,7 +609,7 @@ const FormAssociatedElement::List& HTMLFormElement::associatedElements() const
|
| Node* scope = mutableThis;
|
| if (m_hasElementsAssociatedByParser)
|
| scope = &NodeTraversal::highestAncestorOrSelf(*mutableThis);
|
| - if (inDocument() && treeScope().idTargetObserverRegistry().hasObservers(fastGetAttribute(idAttr)))
|
| + if (inDocument() && m_hasElementsAssociatedByFormAttribute)
|
| scope = &treeScope().rootNode();
|
| ASSERT(scope);
|
| collectAssociatedElements(*scope, mutableThis->m_associatedElements);
|
| @@ -837,4 +839,14 @@ void HTMLFormElement::setDemoted(bool demoted)
|
| m_wasDemoted = demoted;
|
| }
|
|
|
| +void HTMLFormElement::invalidateDefaultButtonStyle() const
|
| +{
|
| + for (const auto& control : associatedElements()) {
|
| + if (!control->isFormControlElement())
|
| + continue;
|
| + if (toHTMLFormControlElement(control)->canBeSuccessfulSubmitButton())
|
| + toHTMLFormControlElement(control)->pseudoStateChanged(CSSSelector::PseudoDefault);
|
| + }
|
| +}
|
| +
|
| } // namespace blink
|
|
|