15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/*
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *           (C) 1999 Antti Koivisto (koivisto@kde.org)
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *           (C) 2000 Dirk Mueller (mueller@kde.org)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is free software; you can redistribute it and/or
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modify it under the terms of the GNU Library General Public
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * License as published by the Free Software Foundation; either
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * version 2 of the License, or (at your option) any later version.
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is distributed in the hope that it will be useful,
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Library General Public License for more details.
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * along with this library; see the file COPYING.LIB.  If not, write to
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Boston, MA 02110-1301, USA.
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef HTMLFormElement_h
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define HTMLFormElement_h
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/html/HTMLElement.h"
28591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "core/html/HTMLFormControlElement.h"
2909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/html/forms/RadioButtonGroupScope.h"
3053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/loader/FormSubmission.h"
31e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "wtf/OwnPtr.h"
3209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "wtf/WeakPtr.h"
335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3481a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)namespace WTF{
3581a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)class TextEncoding;
3681a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)}
3781a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles)
38c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Event;
415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class FormAssociatedElement;
425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class FormData;
43f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liuclass GenericEventQueue;
445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLFormControlElement;
4576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)class HTMLFormControlsCollection;
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLImageElement;
475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLInputElement;
485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
4953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)class HTMLFormElement FINAL : public HTMLElement {
507242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    DEFINE_WRAPPERTYPEINFO();
515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public:
52323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    static PassRefPtrWillBeRawPtr<HTMLFormElement> create(Document&);
535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    virtual ~HTMLFormElement();
54323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    virtual void trace(Visitor*) OVERRIDE;
555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
5676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    PassRefPtrWillBeRawPtr<HTMLFormControlsCollection> elements();
57d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    void getNamedElements(const AtomicString&, WillBeHeapVector<RefPtrWillBeMember<Element> >&);
585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    unsigned length() const;
609e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)    HTMLElement* item(unsigned index);
615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    String enctype() const { return m_attributes.encodingType(); }
63a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    void setEnctype(const AtomicString&);
645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    String encoding() const { return m_attributes.encodingType(); }
66a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    void setEncoding(const AtomicString& value) { setEnctype(value); }
675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    bool shouldAutocomplete() const;
695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
7009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void associate(FormAssociatedElement&);
7109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void disassociate(FormAssociatedElement&);
7209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void associate(HTMLImageElement&);
7309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void disassociate(HTMLImageElement&);
74d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#if !ENABLE(OILPAN)
7509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WeakPtr<HTMLFormElement> createWeakPtr();
76d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#endif
7709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void didAssociateByParser();
785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
79a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    void prepareForSubmission(Event*);
805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    void submit();
815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    void submitFromJavaScript();
825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    void reset();
835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
84e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    void setDemoted(bool);
855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    void submitImplicitly(Event*, bool fromImplicitSubmissionTrigger);
875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    String name() const;
895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    bool noValidate() const;
915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
92a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    const AtomicString& action() const;
935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    String method() const;
95a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    void setMethod(const AtomicString&);
965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    bool wasUserSubmitted() const;
985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    HTMLFormControlElement* defaultButton() const;
1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    bool checkValidity();
1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
103926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    enum AutocompleteResult {
104926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        AutocompleteResultSuccess,
105926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        AutocompleteResultErrorDisabled,
106926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        AutocompleteResultErrorCancel,
107926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        AutocompleteResultErrorInvalid,
108926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    };
1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
110f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    void requestAutocomplete();
1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    void finishRequestAutocomplete(AutocompleteResult);
1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    DEFINE_ATTRIBUTE_EVENT_LISTENER(autocomplete);
1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    DEFINE_ATTRIBUTE_EVENT_LISTENER(autocompleteerror);
1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
11609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    RadioButtonGroupScope& radioButtonGroupScope() { return m_radioButtonGroupScope; }
1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
118323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    const FormAssociatedElement::List& associatedElements() const;
119d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    const WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >& imageElements();
1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
121e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)    void anonymousNamedGetter(const AtomicString& name, RefPtrWillBeRawPtr<RadioNodeList>&, RefPtrWillBeRawPtr<Element>&);
1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private:
12451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    explicit HTMLFormElement(Document&);
1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
12609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE;
1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    virtual void removedFrom(ContainerNode*) OVERRIDE;
1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    virtual void finishParsingChildren() OVERRIDE;
1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
13109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void handleLocalEvents(Event*) OVERRIDE;
1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
133197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    virtual void attributeWillChange(const QualifiedName&, const AtomicString& oldValue, const AtomicString& newValue) OVERRIDE;
134926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    virtual bool isURLAttribute(const Attribute&) const OVERRIDE;
13643e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles)    virtual bool hasLegalLinkAttribute(const QualifiedName&) const OVERRIDE;
1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
138df95704c49daea886ddad70775bda23618d6274dBen Murdoch    virtual bool shouldRegisterAsNamedItem() const OVERRIDE { return true; }
139df95704c49daea886ddad70775bda23618d6274dBen Murdoch
1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    virtual void copyNonAttributePropertiesFromElement(const Element&) OVERRIDE;
1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1425d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    void submitDialog(PassRefPtrWillBeRawPtr<FormSubmission>);
1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    void submit(Event*, bool activateSubmitButton, bool processingUserGesture, FormSubmissionTrigger);
1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1455d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    void scheduleFormSubmission(PassRefPtrWillBeRawPtr<FormSubmission>);
146c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)
147323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    void collectAssociatedElements(Node& root, FormAssociatedElement::List&) const;
148d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    void collectImageElements(Node& root, WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> >&);
1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // Returns true if the submission should proceed.
1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    bool validateInteractively(Event*);
1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // Validates each of the controls, and stores controls of which 'invalid'
1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // event was not canceled to the specified vector. Returns true if there
1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    // are any invalid controls in this form.
156323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    bool checkInvalidControlsAndCollectUnhandled(WillBeHeapVector<RefPtrWillBeMember<FormAssociatedElement> >*);
1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
15809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    Element* elementFromPastNamesMap(const AtomicString&);
15909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    void addToPastNamesMap(Element*, const AtomicString& pastName);
1608abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    void removeFromPastNamesMap(HTMLElement&);
1618abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)
162f523d2789ac2f83c4eca0ee4d5161bfdb5f2d052Torne (Richard Coles)    typedef WillBeHeapHashMap<AtomicString, RawPtrWillBeMember<Element> > PastNamesMap;
163c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)
1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    FormSubmission::Attributes m_attributes;
165f523d2789ac2f83c4eca0ee4d5161bfdb5f2d052Torne (Richard Coles)    OwnPtrWillBeMember<PastNamesMap> m_pastNamesMap;
166c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles)
16709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    RadioButtonGroupScope m_radioButtonGroupScope;
1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
16909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    // Do not access m_associatedElements directly. Use associatedElements() instead.
170323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    FormAssociatedElement::List m_associatedElements;
17109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    // Do not access m_imageElements directly. Use imageElements() instead.
172d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    WillBeHeapVector<RawPtrWillBeMember<HTMLImageElement> > m_imageElements;
173d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#if !ENABLE(OILPAN)
17409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    WeakPtrFactory<HTMLFormElement> m_weakPtrFactory;
175d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#endif
1767242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_associatedElementsAreDirty : 1;
1777242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_imageElementsAreDirty : 1;
1787242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_hasElementsAssociatedByParser : 1;
1797242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_didFinishParsingChildren : 1;
1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1817242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_wasUserSubmitted : 1;
1827242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_isSubmittingOrInUserJSSubmitEvent : 1;
1837242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_shouldSubmit : 1;
1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1857242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_isInResetFunction : 1;
1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1877242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    bool m_wasDemoted : 1;
1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1895d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    OwnPtrWillBeMember<GenericEventQueue> m_pendingAutocompleteEventsQueue;
1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)};
1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
192c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // HTMLFormElement_h
195