Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(602)

Unified Diff: third_party/WebKit/Source/core/html/FormAssociatedElement.cpp

Issue 2546063002: Rename FormAssociatedElement to ListedElement (Closed)
Patch Set: Suggested changes made Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/html/FormAssociatedElement.cpp
diff --git a/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp b/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp
deleted file mode 100644
index 124df2b96f16292ff57ea317c284eacb4644a9ed..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/core/html/FormAssociatedElement.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * (C) 1999 Antti Koivisto (koivisto@kde.org)
- * (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
- * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "core/html/FormAssociatedElement.h"
-
-#include "core/HTMLNames.h"
-#include "core/dom/IdTargetObserver.h"
-#include "core/dom/NodeTraversal.h"
-#include "core/html/HTMLFormControlElement.h"
-#include "core/html/HTMLFormElement.h"
-#include "core/html/HTMLObjectElement.h"
-#include "core/html/ValidityState.h"
-
-namespace blink {
-
-using namespace HTMLNames;
-
-class FormAttributeTargetObserver : public IdTargetObserver {
- public:
- static FormAttributeTargetObserver* create(const AtomicString& id,
- FormAssociatedElement*);
- DECLARE_VIRTUAL_TRACE();
- void idTargetChanged() override;
-
- private:
- FormAttributeTargetObserver(const AtomicString& id, FormAssociatedElement*);
-
- Member<FormAssociatedElement> m_element;
-};
-
-FormAssociatedElement::FormAssociatedElement() : m_formWasSetByParser(false) {}
-
-FormAssociatedElement::~FormAssociatedElement() {
- // We can't call setForm here because it contains virtual calls.
-}
-
-DEFINE_TRACE(FormAssociatedElement) {
- visitor->trace(m_formAttributeTargetObserver);
- visitor->trace(m_form);
- visitor->trace(m_validityState);
-}
-
-ValidityState* FormAssociatedElement::validity() {
- if (!m_validityState)
- m_validityState = ValidityState::create(this);
-
- return m_validityState.get();
-}
-
-void FormAssociatedElement::didMoveToNewDocument(Document& oldDocument) {
- HTMLElement* element = toHTMLElement(this);
- if (element->fastHasAttribute(formAttr))
- setFormAttributeTargetObserver(nullptr);
-}
-
-void FormAssociatedElement::insertedInto(ContainerNode* insertionPoint) {
- if (!m_formWasSetByParser || !m_form ||
- NodeTraversal::highestAncestorOrSelf(*insertionPoint) !=
- NodeTraversal::highestAncestorOrSelf(*m_form.get()))
- resetFormOwner();
-
- if (!insertionPoint->isConnected())
- return;
-
- HTMLElement* element = toHTMLElement(this);
- if (element->fastHasAttribute(formAttr))
- resetFormAttributeTargetObserver();
-}
-
-void FormAssociatedElement::removedFrom(ContainerNode* insertionPoint) {
- HTMLElement* element = toHTMLElement(this);
- if (insertionPoint->isConnected() && element->fastHasAttribute(formAttr)) {
- setFormAttributeTargetObserver(nullptr);
- resetFormOwner();
- return;
- }
- // If the form and element are both in the same tree, preserve the connection
- // to the form. Otherwise, null out our form and remove ourselves from the
- // form's list of elements.
- if (m_form &&
- NodeTraversal::highestAncestorOrSelf(*element) !=
- NodeTraversal::highestAncestorOrSelf(*m_form.get()))
- resetFormOwner();
-}
-
-HTMLFormElement* FormAssociatedElement::findAssociatedForm(
- const HTMLElement* element) {
- const AtomicString& formId(element->fastGetAttribute(formAttr));
- // 3. If the element is reassociateable, has a form content attribute, and
- // is itself in a Document, then run these substeps:
- if (!formId.isNull() && element->isConnected()) {
- // 3.1. If the first element in the Document to have an ID that is
- // case-sensitively equal to the element's form content attribute's
- // value is a form element, then associate the form-associated element
- // with that form element.
- // 3.2. Abort the "reset the form owner" steps.
- Element* newFormCandidate = element->treeScope().getElementById(formId);
- return isHTMLFormElement(newFormCandidate)
- ? toHTMLFormElement(newFormCandidate)
- : 0;
- }
- // 4. Otherwise, if the form-associated element in question has an ancestor
- // form element, then associate the form-associated element with the nearest
- // such ancestor form element.
- return element->findFormAncestor();
-}
-
-void FormAssociatedElement::formRemovedFromTree(const Node& formRoot) {
- DCHECK(m_form);
- if (NodeTraversal::highestAncestorOrSelf(toHTMLElement(*this)) == formRoot)
- return;
- resetFormOwner();
-}
-
-void FormAssociatedElement::associateByParser(HTMLFormElement* form) {
- if (form && form->isConnected()) {
- m_formWasSetByParser = true;
- setForm(form);
- form->didAssociateByParser();
- }
-}
-
-void FormAssociatedElement::setForm(HTMLFormElement* newForm) {
- if (m_form.get() == newForm)
- return;
- willChangeForm();
- if (m_form)
- m_form->disassociate(*this);
- if (newForm) {
- m_form = newForm;
- m_form->associate(*this);
- } else {
- m_form = nullptr;
- }
- didChangeForm();
-}
-
-void FormAssociatedElement::willChangeForm() {}
-
-void FormAssociatedElement::didChangeForm() {
- if (!m_formWasSetByParser && m_form && m_form->isConnected()) {
- HTMLElement* element = toHTMLElement(this);
- element->document().didAssociateFormControl(element);
- }
-}
-
-void FormAssociatedElement::resetFormOwner() {
- m_formWasSetByParser = false;
- HTMLElement* element = toHTMLElement(this);
- const AtomicString& formId(element->fastGetAttribute(formAttr));
- HTMLFormElement* nearestForm = element->findFormAncestor();
- // 1. If the element's form owner is not null, and either the element is not
- // reassociateable or its form content attribute is not present, and the
- // element's form owner is its nearest form element ancestor after the
- // change to the ancestor chain, then do nothing, and abort these steps.
- if (m_form && formId.isNull() && m_form.get() == nearestForm)
- return;
-
- setForm(findAssociatedForm(element));
-}
-
-void FormAssociatedElement::formAttributeChanged() {
- resetFormOwner();
- resetFormAttributeTargetObserver();
-}
-
-bool FormAssociatedElement::customError() const {
- const HTMLElement* element = toHTMLElement(this);
- return element->willValidate() && !m_customValidationMessage.isEmpty();
-}
-
-bool FormAssociatedElement::hasBadInput() const {
- return false;
-}
-
-bool FormAssociatedElement::patternMismatch() const {
- return false;
-}
-
-bool FormAssociatedElement::rangeOverflow() const {
- return false;
-}
-
-bool FormAssociatedElement::rangeUnderflow() const {
- return false;
-}
-
-bool FormAssociatedElement::stepMismatch() const {
- return false;
-}
-
-bool FormAssociatedElement::tooLong() const {
- return false;
-}
-
-bool FormAssociatedElement::tooShort() const {
- return false;
-}
-
-bool FormAssociatedElement::typeMismatch() const {
- return false;
-}
-
-bool FormAssociatedElement::valid() const {
- bool someError = typeMismatch() || stepMismatch() || rangeUnderflow() ||
- rangeOverflow() || tooLong() || tooShort() ||
- patternMismatch() || valueMissing() || hasBadInput() ||
- customError();
- return !someError;
-}
-
-bool FormAssociatedElement::valueMissing() const {
- return false;
-}
-
-String FormAssociatedElement::customValidationMessage() const {
- return m_customValidationMessage;
-}
-
-String FormAssociatedElement::validationMessage() const {
- return customError() ? m_customValidationMessage : String();
-}
-
-String FormAssociatedElement::validationSubMessage() const {
- return String();
-}
-
-void FormAssociatedElement::setCustomValidity(const String& error) {
- m_customValidationMessage = error;
-}
-
-void FormAssociatedElement::setFormAttributeTargetObserver(
- FormAttributeTargetObserver* newObserver) {
- if (m_formAttributeTargetObserver)
- m_formAttributeTargetObserver->unregister();
- m_formAttributeTargetObserver = newObserver;
-}
-
-void FormAssociatedElement::resetFormAttributeTargetObserver() {
- HTMLElement* element = toHTMLElement(this);
- const AtomicString& formId(element->fastGetAttribute(formAttr));
- if (!formId.isNull() && element->isConnected())
- setFormAttributeTargetObserver(
- FormAttributeTargetObserver::create(formId, this));
- else
- setFormAttributeTargetObserver(nullptr);
-}
-
-void FormAssociatedElement::formAttributeTargetChanged() {
- resetFormOwner();
-}
-
-const AtomicString& FormAssociatedElement::name() const {
- const AtomicString& name = toHTMLElement(this)->getNameAttribute();
- return name.isNull() ? emptyAtom : name;
-}
-
-bool FormAssociatedElement::isFormControlElementWithState() const {
- return false;
-}
-
-const HTMLElement& toHTMLElement(
- const FormAssociatedElement& associatedElement) {
- if (associatedElement.isFormControlElement())
- return toHTMLFormControlElement(associatedElement);
- return toHTMLObjectElement(associatedElement);
-}
-
-const HTMLElement* toHTMLElement(
- const FormAssociatedElement* associatedElement) {
- DCHECK(associatedElement);
- return &toHTMLElement(*associatedElement);
-}
-
-HTMLElement* toHTMLElement(FormAssociatedElement* associatedElement) {
- return const_cast<HTMLElement*>(toHTMLElement(
- static_cast<const FormAssociatedElement*>(associatedElement)));
-}
-
-HTMLElement& toHTMLElement(FormAssociatedElement& associatedElement) {
- return const_cast<HTMLElement&>(toHTMLElement(
- static_cast<const FormAssociatedElement&>(associatedElement)));
-}
-
-FormAttributeTargetObserver* FormAttributeTargetObserver::create(
- const AtomicString& id,
- FormAssociatedElement* element) {
- return new FormAttributeTargetObserver(id, element);
-}
-
-FormAttributeTargetObserver::FormAttributeTargetObserver(
- const AtomicString& id,
- FormAssociatedElement* element)
- : IdTargetObserver(
- toHTMLElement(element)->treeScope().idTargetObserverRegistry(),
- id),
- m_element(element) {}
-
-DEFINE_TRACE(FormAttributeTargetObserver) {
- visitor->trace(m_element);
- IdTargetObserver::trace(visitor);
-}
-
-void FormAttributeTargetObserver::idTargetChanged() {
- m_element->formAttributeTargetChanged();
-}
-
-} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/html/FormAssociatedElement.h ('k') | third_party/WebKit/Source/core/html/FormData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698