| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
| 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 // that says "add this form element to the end of the array". | 569 // that says "add this form element to the end of the array". |
| 570 if (ElementTraversal::next(associatedHTMLElement, this)) { | 570 if (ElementTraversal::next(associatedHTMLElement, this)) { |
| 571 unsigned i = m_associatedElementsBeforeIndex; | 571 unsigned i = m_associatedElementsBeforeIndex; |
| 572 for (Element* element = this; element; element = ElementTraversal::next(
*element, this)) { | 572 for (Element* element = this; element; element = ElementTraversal::next(
*element, this)) { |
| 573 if (element == associatedHTMLElement) { | 573 if (element == associatedHTMLElement) { |
| 574 ++m_associatedElementsAfterIndex; | 574 ++m_associatedElementsAfterIndex; |
| 575 return i; | 575 return i; |
| 576 } | 576 } |
| 577 if (!element->isFormControlElement() && !element->hasTagName(objectT
ag)) | 577 if (!element->isFormControlElement() && !element->hasTagName(objectT
ag)) |
| 578 continue; | 578 continue; |
| 579 if (!element->isHTMLElement() || toHTMLElement(element)->form() != t
his) | 579 if (!element->isHTMLElement() || toHTMLElement(element)->formOwner()
!= this) |
| 580 continue; | 580 continue; |
| 581 ++i; | 581 ++i; |
| 582 } | 582 } |
| 583 } | 583 } |
| 584 return m_associatedElementsAfterIndex++; | 584 return m_associatedElementsAfterIndex++; |
| 585 } | 585 } |
| 586 | 586 |
| 587 void HTMLFormElement::registerFormElement(FormAssociatedElement& e) | 587 void HTMLFormElement::registerFormElement(FormAssociatedElement& e) |
| 588 { | 588 { |
| 589 m_associatedElements.insert(formElementIndex(e), &e); | 589 m_associatedElements.insert(formElementIndex(e), &e); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 706 // Copy m_associatedElements because event handlers called from | 706 // Copy m_associatedElements because event handlers called from |
| 707 // HTMLFormControlElement::checkValidity() might change m_associatedElements
. | 707 // HTMLFormControlElement::checkValidity() might change m_associatedElements
. |
| 708 Vector<RefPtr<FormAssociatedElement> > elements; | 708 Vector<RefPtr<FormAssociatedElement> > elements; |
| 709 elements.reserveCapacity(m_associatedElements.size()); | 709 elements.reserveCapacity(m_associatedElements.size()); |
| 710 for (unsigned i = 0; i < m_associatedElements.size(); ++i) | 710 for (unsigned i = 0; i < m_associatedElements.size(); ++i) |
| 711 elements.append(m_associatedElements[i]); | 711 elements.append(m_associatedElements[i]); |
| 712 bool hasInvalidControls = false; | 712 bool hasInvalidControls = false; |
| 713 for (unsigned i = 0; i < elements.size(); ++i) { | 713 for (unsigned i = 0; i < elements.size(); ++i) { |
| 714 if (elements[i]->form() == this && elements[i]->isFormControlElement())
{ | 714 if (elements[i]->form() == this && elements[i]->isFormControlElement())
{ |
| 715 HTMLFormControlElement* control = toHTMLFormControlElement(elements[
i].get()); | 715 HTMLFormControlElement* control = toHTMLFormControlElement(elements[
i].get()); |
| 716 if (!control->checkValidity(unhandledInvalidControls, dispatchEvents
) && control->form() == this) | 716 if (!control->checkValidity(unhandledInvalidControls, dispatchEvents
) && control->formOwner() == this) |
| 717 hasInvalidControls = true; | 717 hasInvalidControls = true; |
| 718 } | 718 } |
| 719 } | 719 } |
| 720 return hasInvalidControls; | 720 return hasInvalidControls; |
| 721 } | 721 } |
| 722 | 722 |
| 723 Node* HTMLFormElement::elementFromPastNamesMap(const AtomicString& pastName) con
st | 723 Node* HTMLFormElement::elementFromPastNamesMap(const AtomicString& pastName) con
st |
| 724 { | 724 { |
| 725 if (pastName.isEmpty() || !m_pastNamesMap) | 725 if (pastName.isEmpty() || !m_pastNamesMap) |
| 726 return 0; | 726 return 0; |
| 727 Node* node = m_pastNamesMap->get(pastName); | 727 Node* node = m_pastNamesMap->get(pastName); |
| 728 #if !ASSERT_DISABLED | 728 #if !ASSERT_DISABLED |
| 729 if (!node) | 729 if (!node) |
| 730 return 0; | 730 return 0; |
| 731 ASSERT_WITH_SECURITY_IMPLICATION(toHTMLElement(node)->form() == this); | 731 ASSERT_WITH_SECURITY_IMPLICATION(toHTMLElement(node)->formOwner() == this); |
| 732 if (node->hasTagName(imgTag)) { | 732 if (node->hasTagName(imgTag)) { |
| 733 ASSERT_WITH_SECURITY_IMPLICATION(m_imageElements.find(node) != kNotFound
); | 733 ASSERT_WITH_SECURITY_IMPLICATION(m_imageElements.find(node) != kNotFound
); |
| 734 } else if (node->hasTagName(objectTag)) { | 734 } else if (node->hasTagName(objectTag)) { |
| 735 ASSERT_WITH_SECURITY_IMPLICATION(m_associatedElements.find(toHTMLObjectE
lement(node)) != kNotFound); | 735 ASSERT_WITH_SECURITY_IMPLICATION(m_associatedElements.find(toHTMLObjectE
lement(node)) != kNotFound); |
| 736 } else { | 736 } else { |
| 737 ASSERT_WITH_SECURITY_IMPLICATION(m_associatedElements.find(toHTMLFormCon
trolElement(node)) != kNotFound); | 737 ASSERT_WITH_SECURITY_IMPLICATION(m_associatedElements.find(toHTMLFormCon
trolElement(node)) != kNotFound); |
| 738 } | 738 } |
| 739 #endif | 739 #endif |
| 740 return node; | 740 return node; |
| 741 } | 741 } |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 } | 820 } |
| 821 | 821 |
| 822 void HTMLFormElement::setDemoted(bool demoted) | 822 void HTMLFormElement::setDemoted(bool demoted) |
| 823 { | 823 { |
| 824 if (demoted) | 824 if (demoted) |
| 825 UseCounter::count(document(), UseCounter::DemotedFormElement); | 825 UseCounter::count(document(), UseCounter::DemotedFormElement); |
| 826 m_wasDemoted = demoted; | 826 m_wasDemoted = demoted; |
| 827 } | 827 } |
| 828 | 828 |
| 829 } // namespace | 829 } // namespace |
| OLD | NEW |