Changeset 150711 in webkit
- Timestamp:
- May 26, 2013 2:43:22 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r150710 r150711 1 2013-05-26 Andreas Kling <akling@apple.com> 2 3 Move some form control things from Element to HTMLFormControlElement. 4 <http://webkit.org/b/116779> 5 6 Reviewed by Antti Koivisto. 7 8 The following methods sit better on HTMLFormControlElement than on Element: 9 10 - formControlType() 11 - wasChangedSinceLastFormControlChangeEvent() 12 - setChangedSinceLastFormControlChangeEvent() 13 - dispatchFormControlChangeEvent() 14 15 Moved them, and devirtualized as much as possible. 16 17 * dom/Document.cpp: 18 (WebCore::Document::setFocusedNode): 19 20 Check if the old focus target is an Element before (possibly) dispatching a change event. 21 22 * dom/Element.cpp: 23 * dom/Element.h: 24 25 Removed some stub methods that were only used by HTMLFormControlElement subclasses. 26 27 * html/HTMLFormControlElement.cpp: 28 * html/HTMLFormControlElement.h: 29 (WebCore::isHTMLFormControlElement): 30 (WebCore::toHTMLFormControlElement): 31 32 Add toHTMLFormControlElement() helper with ASSERT_WITH_SECURITY_IMPLICATION. 33 34 * html/HTMLTextFormControlElement.h: 35 36 Sprinkle OVERRIDE. 37 1 38 2013-05-25 Andreas Kling <akling@apple.com> 2 39 -
trunk/Source/WebCore/dom/Document.cpp
r150709 r150711 93 93 #include "HTMLDocument.h" 94 94 #include "HTMLElementFactory.h" 95 #include "HTMLFormControlElement.h" 95 96 #include "HTMLFrameOwnerElement.h" 96 97 #include "HTMLHeadElement.h" … … 3346 3347 toElement(oldFocusedNode.get())->setFocus(false); 3347 3348 3348 // Dispatch a change event for text fields or textareas that have been edited3349 if (oldFocusedNode->isElementNode() ) {3350 Element* element = toElement(oldFocusedNode.get());3351 if ( element->wasChangedSinceLastFormControlChangeEvent())3352 element->dispatchFormControlChangeEvent();3349 // Dispatch a change event for form control elements that have been edited. 3350 if (oldFocusedNode->isElementNode() && toElement(oldFocusedNode.get())->isFormControlElement()) { 3351 HTMLFormControlElement* formControlElement = toHTMLFormControlElement(oldFocusedNode.get()); 3352 if (formControlElement->wasChangedSinceLastFormControlChangeEvent()) 3353 formControlElement->dispatchFormControlChangeEvent(); 3353 3354 } 3354 3355 -
trunk/Source/WebCore/dom/Element.cpp
r150709 r150711 1209 1209 #endif 1210 1210 1211 bool Element::wasChangedSinceLastFormControlChangeEvent() const1212 {1213 return false;1214 }1215 1216 void Element::setChangedSinceLastFormControlChangeEvent(bool)1217 {1218 }1219 1220 1211 bool Element::isDisabledFormControl() const 1221 1212 { -
trunk/Source/WebCore/dom/Element.h
r150710 r150711 575 575 virtual bool canContainRangeEndPoint() const { return true; } 576 576 577 virtual const AtomicString& formControlType() const { return nullAtom; }578 579 virtual bool wasChangedSinceLastFormControlChangeEvent() const;580 virtual void setChangedSinceLastFormControlChangeEvent(bool);581 virtual void dispatchFormControlChangeEvent() { }582 583 577 // Used for disabled form elements; if true, prevents mouse events from being dispatched 584 578 // to event listeners, and prevents DOMActivate events from being sent at all. -
trunk/Source/WebCore/html/HTMLFormControlElement.cpp
r148921 r150711 253 253 } 254 254 255 bool HTMLFormControlElement::wasChangedSinceLastFormControlChangeEvent() const256 {257 return m_wasChangedSinceLastFormControlChangeEvent;258 }259 260 255 void HTMLFormControlElement::setChangedSinceLastFormControlChangeEvent(bool changed) 261 256 { -
trunk/Source/WebCore/html/HTMLFormControlElement.h
r150710 r150711 59 59 virtual void setFormControlValueMatchesRenderer(bool b) { m_valueMatchesRenderer = b; } 60 60 61 virtual bool wasChangedSinceLastFormControlChangeEvent() const;62 v irtual void setChangedSinceLastFormControlChangeEvent(bool);61 bool wasChangedSinceLastFormControlChangeEvent() const { return m_wasChangedSinceLastFormControlChangeEvent; } 62 void setChangedSinceLastFormControlChangeEvent(bool); 63 63 64 64 virtual void dispatchFormControlChangeEvent(); 65 v irtual void dispatchFormControlInputEvent();65 void dispatchFormControlInputEvent(); 66 66 67 67 virtual bool isDisabledFormControl() const OVERRIDE; … … 74 74 const AtomicString& type() const { return formControlType(); } 75 75 76 virtual const AtomicString& formControlType() const OVERRIDE= 0;76 virtual const AtomicString& formControlType() const = 0; 77 77 78 78 virtual bool canTriggerImplicitSubmission() const { return false; } … … 170 170 }; 171 171 172 inline bool isHTMLFormControlElement(const Node* node) 173 { 174 return node->isElementNode() && toElement(node)->isFormControlElement(); 175 } 176 177 inline HTMLFormControlElement* toHTMLFormControlElement(Node* node) 178 { 179 ASSERT_WITH_SECURITY_IMPLICATION(!node || isHTMLFormControlElement(node)); 180 return static_cast<HTMLFormControlElement*>(node); 181 } 182 183 // This will catch anyone doing an unnecessary cast. 184 void toHTMLFormControlElement(const HTMLFormControlElement*); 185 172 186 } // namespace 173 187 -
trunk/Source/WebCore/html/HTMLTextFormControlElement.h
r148921 r150711 72 72 String selectedText() const; 73 73 74 virtual void dispatchFormControlChangeEvent() ;74 virtual void dispatchFormControlChangeEvent() OVERRIDE FINAL; 75 75 76 76 virtual int maxLength() const = 0;
Note: See TracChangeset
for help on using the changeset viewer.