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

Side by Side Diff: Source/core/html/FormAssociatedElement.h

Issue 271533009: Oilpan: Prepare to move FormAssociatedElement to Oilpan heap, part 1. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: remove using Created 6 years, 7 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/html/FormAssociatedElement.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
11 * 11 *
12 * This library is distributed in the hope that it will be useful, 12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details. 15 * Library General Public License for more details.
16 * 16 *
17 * You should have received a copy of the GNU Library General Public License 17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to 18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA. 20 * Boston, MA 02110-1301, USA.
21 * 21 *
22 */ 22 */
23 23
24 #ifndef FormAssociatedElement_h 24 #ifndef FormAssociatedElement_h
25 #define FormAssociatedElement_h 25 #define FormAssociatedElement_h
26 26
27 #include "platform/heap/Handle.h"
27 #include "wtf/WeakPtr.h" 28 #include "wtf/WeakPtr.h"
28 #include "wtf/text/WTFString.h" 29 #include "wtf/text/WTFString.h"
29 30
30 namespace WebCore { 31 namespace WebCore {
31 32
32 class ContainerNode; 33 class ContainerNode;
33 class Document; 34 class Document;
34 class FormAttributeTargetObserver; 35 class FormAttributeTargetObserver;
35 class FormDataList; 36 class FormDataList;
36 class HTMLElement; 37 class HTMLElement;
37 class HTMLFormElement; 38 class HTMLFormElement;
38 class Node; 39 class Node;
39 class ValidationMessage; 40 class ValidationMessage;
40 class ValidityState; 41 class ValidityState;
41 class VisibleSelection; 42 class VisibleSelection;
42 43
43 class FormAssociatedElement { 44 class FormAssociatedElement : public WillBeGarbageCollectedMixin {
44 public: 45 public:
45 virtual ~FormAssociatedElement(); 46 virtual ~FormAssociatedElement();
46 47
48 #if !ENABLE(OILPAN)
47 void ref() { refFormAssociatedElement(); } 49 void ref() { refFormAssociatedElement(); }
48 void deref() { derefFormAssociatedElement(); } 50 void deref() { derefFormAssociatedElement(); }
51 #endif
49 52
50 static HTMLFormElement* findAssociatedForm(const HTMLElement*); 53 static HTMLFormElement* findAssociatedForm(const HTMLElement*);
51 HTMLFormElement* form() const { return m_form.get(); } 54 HTMLFormElement* form() const { return m_form.get(); }
52 ValidityState* validity(); 55 ValidityState* validity();
53 56
54 virtual bool isFormControlElement() const = 0; 57 virtual bool isFormControlElement() const = 0;
55 virtual bool isFormControlElementWithState() const; 58 virtual bool isFormControlElementWithState() const;
56 virtual bool isEnumeratable() const = 0; 59 virtual bool isEnumeratable() const = 0;
57 60
58 // Returns the 'name' attribute value. If this element has no name 61 // Returns the 'name' attribute value. If this element has no name
(...skipping 24 matching lines...) Expand all
83 virtual bool valueMissing() const; 86 virtual bool valueMissing() const;
84 virtual String validationMessage() const; 87 virtual String validationMessage() const;
85 bool valid() const; 88 bool valid() const;
86 virtual void setCustomValidity(const String&); 89 virtual void setCustomValidity(const String&);
87 90
88 void formAttributeTargetChanged(); 91 void formAttributeTargetChanged();
89 92
90 protected: 93 protected:
91 FormAssociatedElement(); 94 FormAssociatedElement();
92 95
96 void trace(Visitor*);
93 void insertedInto(ContainerNode*); 97 void insertedInto(ContainerNode*);
94 void removedFrom(ContainerNode*); 98 void removedFrom(ContainerNode*);
95 void didMoveToNewDocument(Document& oldDocument); 99 void didMoveToNewDocument(Document& oldDocument);
96 100
97 // FIXME: Remove usage of setForm. resetFormOwner should be enough, and 101 // FIXME: Remove usage of setForm. resetFormOwner should be enough, and
98 // setForm is confusing. 102 // setForm is confusing.
99 void setForm(HTMLFormElement*); 103 void setForm(HTMLFormElement*);
100 void associateByParser(HTMLFormElement*); 104 void associateByParser(HTMLFormElement*);
101 void formAttributeChanged(); 105 void formAttributeChanged();
102 106
103 // If you add an override of willChangeForm() or didChangeForm() to a class 107 // If you add an override of willChangeForm() or didChangeForm() to a class
104 // derived from this one, you will need to add a call to setForm(0) to the 108 // derived from this one, you will need to add a call to setForm(0) to the
105 // destructor of that class. 109 // destructor of that class.
106 virtual void willChangeForm(); 110 virtual void willChangeForm();
107 virtual void didChangeForm(); 111 virtual void didChangeForm();
108 112
109 String customValidationMessage() const; 113 String customValidationMessage() const;
110 114
111 private: 115 private:
116 #if !ENABLE(OILPAN)
112 virtual void refFormAssociatedElement() = 0; 117 virtual void refFormAssociatedElement() = 0;
113 virtual void derefFormAssociatedElement() = 0; 118 virtual void derefFormAssociatedElement() = 0;
119 #endif
114 120
115 void setFormAttributeTargetObserver(PassOwnPtr<FormAttributeTargetObserver>) ; 121 void setFormAttributeTargetObserver(PassOwnPtr<FormAttributeTargetObserver>) ;
116 void resetFormAttributeTargetObserver(); 122 void resetFormAttributeTargetObserver();
117 123
118 OwnPtr<FormAttributeTargetObserver> m_formAttributeTargetObserver; 124 OwnPtr<FormAttributeTargetObserver> m_formAttributeTargetObserver;
119 // m_form should be a strong reference in Oilpan. 125 #if ENABLE(OILPAN)
126 Member<HTMLFormElement> m_form;
127 #else
120 WeakPtr<HTMLFormElement> m_form; 128 WeakPtr<HTMLFormElement> m_form;
121 OwnPtr<ValidityState> m_validityState; 129 #endif
130 OwnPtrWillBeMember<ValidityState> m_validityState;
122 String m_customValidationMessage; 131 String m_customValidationMessage;
123 bool m_formWasSetByParser; 132 bool m_formWasSetByParser;
124 }; 133 };
125 134
126 HTMLElement* toHTMLElement(FormAssociatedElement*); 135 HTMLElement* toHTMLElement(FormAssociatedElement*);
127 HTMLElement& toHTMLElement(FormAssociatedElement&); 136 HTMLElement& toHTMLElement(FormAssociatedElement&);
128 const HTMLElement* toHTMLElement(const FormAssociatedElement*); 137 const HTMLElement* toHTMLElement(const FormAssociatedElement*);
129 const HTMLElement& toHTMLElement(const FormAssociatedElement&); 138 const HTMLElement& toHTMLElement(const FormAssociatedElement&);
130 139
131 } // namespace 140 } // namespace
132 141
133 #endif // FormAssociatedElement_h 142 #endif // FormAssociatedElement_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/html/FormAssociatedElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698