#include "third_party/blink/renderer/core/html/forms/listed_element.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/dom/focus_params.h"
#include "third_party/blink/renderer/core/dom/id_target_observer.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/core/html/custom/element_internals.h"
#include "third_party/blink/renderer/core/html/forms/form_controller.h"
#include "third_party/blink/renderer/core/html/forms/html_data_list_element.h"
#include "third_party/blink/renderer/core/html/forms/html_field_set_element.h"
#include "third_party/blink/renderer/core/html/forms/html_form_control_element.h"
#include "third_party/blink/renderer/core/html/forms/html_form_control_element_with_state.h"
#include "third_party/blink/renderer/core/html/forms/html_form_element.h"
#include "third_party/blink/renderer/core/html/forms/html_legend_element.h"
#include "third_party/blink/renderer/core/html/forms/validity_state.h"
#include "third_party/blink/renderer/core/html/html_object_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/validation_message_client.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/text/bidi_paragraph.h"
#include "third_party/blink/renderer/core/html/forms/html_button_element.h"
#include "third_party/blink/renderer/core/html/forms/html_select_element.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
namespace {
void InvalidateShadowIncludingAncestorForms(ContainerNode& insertion_point) { … }
}
class FormAttributeTargetObserver : public IdTargetObserver { … };
ListedElement::ListedElement()
: … { … }
ListedElement::~ListedElement() { … }
void ListedElement::Trace(Visitor* visitor) const { … }
ValidityState* ListedElement::validity() { … }
void ListedElement::DidMoveToNewDocument(Document& old_document) { … }
void ListedElement::InsertedInto(ContainerNode& insertion_point) { … }
void ListedElement::RemovedFrom(ContainerNode& insertion_point) { … }
HTMLFormElement* ListedElement::FindAssociatedForm(
const HTMLElement* element,
const AtomicString& form_id,
HTMLFormElement* form_ancestor) { … }
void ListedElement::FormRemovedFromTree(const Node& form_root) { … }
void ListedElement::AssociateByParser(HTMLFormElement* form) { … }
void ListedElement::SetForm(HTMLFormElement* new_form) { … }
void ListedElement::WillChangeForm() { … }
void ListedElement::DidChangeForm() { … }
void ListedElement::FormOwnerSetNeedsValidityCheck() { … }
void ListedElement::FieldSetAncestorsSetNeedsValidityCheck(Node* node) { … }
void ListedElement::ResetFormOwner() { … }
void ListedElement::FormAttributeChanged() { … }
bool ListedElement::RecalcWillValidate() const { … }
bool ListedElement::WillValidate() const { … }
void ListedElement::UpdateWillValidateCache() { … }
bool ListedElement::CustomError() const { … }
bool ListedElement::HasBadInput() const { … }
bool ListedElement::PatternMismatch() const { … }
bool ListedElement::RangeOverflow() const { … }
bool ListedElement::RangeUnderflow() const { … }
bool ListedElement::StepMismatch() const { … }
bool ListedElement::TooLong() const { … }
bool ListedElement::TooShort() const { … }
bool ListedElement::TypeMismatch() const { … }
bool ListedElement::Valid() const { … }
bool ListedElement::ValueMissing() const { … }
String ListedElement::CustomValidationMessage() const { … }
void ListedElement::SetCustomValidationMessage(const String& message) { … }
String ListedElement::validationMessage() const { … }
String ListedElement::ValidationSubMessage() const { … }
void ListedElement::setCustomValidity(const String& error) { … }
void ListedElement::FindCustomValidationMessageTextDirection(
const String& message,
TextDirection& message_dir,
String& sub_message,
TextDirection& sub_message_dir) { … }
void ListedElement::UpdateVisibleValidationMessage() { … }
void ListedElement::HideVisibleValidationMessage() { … }
bool ListedElement::IsValidationMessageVisible() const { … }
ValidationMessageClient* ListedElement::GetValidationMessageClient() const { … }
Element& ListedElement::ValidationAnchor() const { … }
bool ListedElement::ValidationAnchorOrHostIsFocusable() const { … }
bool ListedElement::checkValidity(List* unhandled_invalid_controls) { … }
void ListedElement::ShowValidationMessage() { … }
bool ListedElement::reportValidity() { … }
bool ListedElement::IsValidElement() { … }
bool ListedElement::IsNotCandidateOrValid() { … }
void ListedElement::SetNeedsValidityCheck() { … }
void ListedElement::DisabledAttributeChanged() { … }
void ListedElement::ReadonlyAttributeChanged() { … }
void ListedElement::UpdateAncestorDisabledState() const { … }
void ListedElement::AncestorDisabledStateWasChanged() { … }
bool ListedElement::IsActuallyDisabled() const { … }
bool ListedElement::ClassSupportsStateRestore() const { … }
bool ListedElement::ShouldSaveAndRestoreFormControlState() const { … }
FormControlState ListedElement::SaveFormControlState() const { … }
void ListedElement::RestoreFormControlState(const FormControlState& state) { … }
void ListedElement::NotifyFormStateChanged() { … }
void ListedElement::TakeStateAndRestore() { … }
void ListedElement::SetFormAttributeTargetObserver(
FormAttributeTargetObserver* new_observer) { … }
void ListedElement::ResetFormAttributeTargetObserver() { … }
void ListedElement::FormAttributeTargetChanged() { … }
const AtomicString& ListedElement::GetName() const { … }
bool ListedElement::IsFormControlElementWithState() const { … }
bool ListedElement::IsElementInternals() const { … }
ListedElement* ListedElement::From(Element& element) { … }
const HTMLElement& ListedElement::ToHTMLElement() const { … }
HTMLElement& ListedElement::ToHTMLElement() { … }
FormAttributeTargetObserver::FormAttributeTargetObserver(const AtomicString& id,
ListedElement* element)
: … { … }
void FormAttributeTargetObserver::Trace(Visitor* visitor) const { … }
void FormAttributeTargetObserver::IdTargetChanged() { … }
}