Title: [97007] trunk/Source/WebCore
Revision
97007
Author
[email protected]
Date
2011-10-08 02:05:18 -0700 (Sat, 08 Oct 2011)

Log Message

Remove some static functions of HTMLSelectElement
https://bugs.webkit.org/show_bug.cgi?id=69621

Reviewed by Darin Adler.

Merge a static function and the corresponding non-static member function
into one function if there are no other callers of the static function.

No new tests, just a refactoring.

* html/HTMLFormControlElement.h:
Make formControlName() protected because it is called from
HTMLSelectElement.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseMappedAttribute):
Remove two argument of parseMultipleAttribute().
(WebCore::HTMLSelectElement::selectAll):
Merged the static function and the member function.
(WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
(WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
(WebCore::HTMLSelectElement::saveFormControlState): ditto.
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::parseMultipleAttribute):
 - Make this non-static member function.
 - Use reattachIfAttached().
(WebCore::HTMLSelectElement::appendFormData): Merged.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::insertedIntoTree): ditto.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): ditto.
(WebCore::HTMLSelectElement::length): Merged with optionCount().
* html/HTMLSelectElement.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (97006 => 97007)


--- trunk/Source/WebCore/ChangeLog	2011-10-08 08:54:57 UTC (rev 97006)
+++ trunk/Source/WebCore/ChangeLog	2011-10-08 09:05:18 UTC (rev 97007)
@@ -1,3 +1,37 @@
+2011-10-08  Kent Tamura  <[email protected]>
+
+        Remove some static functions of HTMLSelectElement
+        https://bugs.webkit.org/show_bug.cgi?id=69621
+
+        Reviewed by Darin Adler.
+
+        Merge a static function and the corresponding non-static member function
+        into one function if there are no other callers of the static function.
+
+        No new tests, just a refactoring.
+
+        * html/HTMLFormControlElement.h:
+        Make formControlName() protected because it is called from
+        HTMLSelectElement.
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::parseMappedAttribute):
+        Remove two argument of parseMultipleAttribute().
+        (WebCore::HTMLSelectElement::selectAll):
+        Merged the static function and the member function.
+        (WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
+        (WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
+        (WebCore::HTMLSelectElement::saveFormControlState): ditto.
+        (WebCore::HTMLSelectElement::restoreFormControlState):
+        (WebCore::HTMLSelectElement::parseMultipleAttribute):
+         - Make this non-static member function.
+         - Use reattachIfAttached().
+        (WebCore::HTMLSelectElement::appendFormData): Merged.
+        (WebCore::HTMLSelectElement::reset): ditto.
+        (WebCore::HTMLSelectElement::insertedIntoTree): ditto.
+        (WebCore::HTMLSelectElement::accessKeySetSelectedIndex): ditto.
+        (WebCore::HTMLSelectElement::length): Merged with optionCount().
+        * html/HTMLSelectElement.h:
+
 2011-10-08  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r96996.

Modified: trunk/Source/WebCore/html/HTMLFormControlElement.h (97006 => 97007)


--- trunk/Source/WebCore/html/HTMLFormControlElement.h	2011-10-08 08:54:57 UTC (rev 97006)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.h	2011-10-08 09:05:18 UTC (rev 97007)
@@ -120,6 +120,7 @@
     virtual void removedFromDocument();
     virtual void willMoveToNewOwnerDocument();
 
+    virtual const AtomicString& formControlName() const;
     virtual bool supportsFocus() const;
     virtual bool isKeyboardFocusable(KeyboardEvent*) const;
     virtual bool isMouseFocusable() const;
@@ -134,7 +135,6 @@
     virtual bool recalcWillValidate() const;
 
 private:
-    virtual const AtomicString& formControlName() const;
     virtual const AtomicString& formControlType() const = 0;
 
     virtual void refFormAssociatedElement() { ref(); }

Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (97006 => 97007)


--- trunk/Source/WebCore/html/HTMLSelectElement.cpp	2011-10-08 08:54:57 UTC (rev 97006)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp	2011-10-08 09:05:18 UTC (rev 97007)
@@ -197,11 +197,6 @@
     return lastSelectedListIndex(m_data, this);
 }
 
-unsigned HTMLSelectElement::length() const
-{
-    return optionCount(m_data, this);
-}
-
 void HTMLSelectElement::add(HTMLElement* element, HTMLElement* before, ExceptionCode& ec)
 {
     RefPtr<HTMLElement> protectNewChild(element); // make sure the element is ref'd and deref'd so we don't leak it
@@ -261,17 +256,6 @@
     }
 }
 
-bool HTMLSelectElement::saveFormControlState(String& value) const
-{
-    return saveFormControlState(m_data, this, value);
-}
-
-void HTMLSelectElement::restoreFormControlState(const String& state)
-{
-    restoreFormControlState(m_data, this, state);
-    setNeedsValidityCheck();
-}
-
 void HTMLSelectElement::parseMappedAttribute(Attribute* attr)
 {
     if (attr->name() == sizeAttr) {
@@ -295,7 +279,7 @@
             setRecalcListItems();
         }
     } else if (attr->name() == multipleAttr)
-        parseMultipleAttribute(m_data, this, attr);
+        parseMultipleAttribute(attr);
     else if (attr->name() == accesskeyAttr) {
         // FIXME: ignore for the moment
     } else if (attr->name() == alignAttr) {
@@ -326,12 +310,6 @@
     return !m_data.usesMenuList(); 
 }
 
-void HTMLSelectElement::selectAll()
-{
-    selectAll(m_data, this);
-    setNeedsValidityCheck();
-}
-
 RenderObject* HTMLSelectElement::createRenderer(RenderArena* arena, RenderStyle*)
 {
     if (m_data.usesMenuList())
@@ -339,11 +317,6 @@
     return new (arena) RenderListBox(this);
 }
 
-bool HTMLSelectElement::appendFormData(FormDataList& list, bool)
-{
-    return appendFormData(m_data, this, list);
-}
-
 int HTMLSelectElement::optionToListIndex(int optionIndex) const
 {
     return optionToListIndex(m_data, this, optionIndex);
@@ -388,24 +361,6 @@
         m_collectionInfo.reset();
 }
 
-void HTMLSelectElement::reset()
-{
-    reset(m_data, this);
-    setNeedsValidityCheck();
-}
-
-void HTMLSelectElement::dispatchFocusEvent(PassRefPtr<Node> oldFocusedNode)
-{
-    dispatchFocusEvent(m_data, this);
-    HTMLFormControlElementWithState::dispatchFocusEvent(oldFocusedNode);
-}
-
-void HTMLSelectElement::dispatchBlurEvent(PassRefPtr<Node> newFocusedNode)
-{
-    dispatchBlurEvent(m_data, this);
-    HTMLFormControlElementWithState::dispatchBlurEvent(newFocusedNode);
-}
-
 void HTMLSelectElement::defaultEventHandler(Event* event)
 {
     defaultEventHandler(m_data, this, event, form());
@@ -451,11 +406,6 @@
     dispatchSimulatedClick(0, sendToAnyElement);
 }
 
-void HTMLSelectElement::accessKeySetSelectedIndex(int index)
-{
-    accessKeySetSelectedIndex(m_data, this, index);
-}
-    
 void HTMLSelectElement::setMultiple(bool multiple)
 {
     bool oldMultiple = this->multiple();
@@ -551,12 +501,6 @@
     scrollToSelection(m_data, this);
 }
 
-void HTMLSelectElement::insertedIntoTree(bool deep)
-{
-    insertedIntoTree(m_data, this);
-    HTMLFormControlElementWithState::insertedIntoTree(deep);
-}
-
 bool HTMLSelectElement::isRequiredFormControl() const
 {
     return required();
@@ -625,22 +569,23 @@
     return nextValidIndex(items, edgeIndex, direction, skipAmount);
 }
 
-void HTMLSelectElement::selectAll(SelectElementData& data, Element* element)
+void HTMLSelectElement::selectAll()
 {
-    ASSERT(!data.usesMenuList());
-    if (!element->renderer() || !data.multiple())
+    ASSERT(!m_data.usesMenuList());
+    if (!renderer() || !m_data.multiple())
         return;
 
     // Save the selection so it can be compared to the new selectAll selection
     // when dispatching change events
-    saveLastSelection(data, element);
+    saveLastSelection(m_data, this);
 
-    data.setActiveSelectionState(true);
-    setActiveSelectionAnchorIndex(data, element, nextSelectableListIndex(data, element, -1));
-    setActiveSelectionEndIndex(data, previousSelectableListIndex(data, element, -1));
+    m_data.setActiveSelectionState(true);
+    setActiveSelectionAnchorIndex(m_data, this, nextSelectableListIndex(m_data, this, -1));
+    setActiveSelectionEndIndex(m_data, previousSelectableListIndex(m_data, this, -1));
 
-    updateListBoxSelection(data, element, false);
-    listBoxOnChange(data, element);
+    updateListBoxSelection(m_data, this, false);
+    listBoxOnChange(m_data, this);
+    setNeedsValidityCheck();
 }
 
 void HTMLSelectElement::saveLastSelection(SelectElementData& data, Element* element)
@@ -930,21 +875,23 @@
     return optionIndex;
 }
 
-void HTMLSelectElement::dispatchFocusEvent(SelectElementData& data, Element* element)
+void HTMLSelectElement::dispatchFocusEvent(PassRefPtr<Node> oldFocusedNode)
 {
     // Save the selection so it can be compared to the new selection when
     // dispatching change events during blur event dispatchal
-    if (data.usesMenuList())
-        saveLastSelection(data, element);
+    if (m_data.usesMenuList())
+        saveLastSelection(m_data, this);
+    HTMLFormControlElementWithState::dispatchFocusEvent(oldFocusedNode);
 }
 
-void HTMLSelectElement::dispatchBlurEvent(SelectElementData& data, Element* element)
+void HTMLSelectElement::dispatchBlurEvent(PassRefPtr<Node> newFocusedNode)
 {
     // We only need to fire change events here for menu lists, because we fire
     // change events for list boxes whenever the selection change is actually made.
     // This matches other browsers' behavior.
-    if (data.usesMenuList())
-        menuListOnChange(data, element);
+    if (m_data.usesMenuList())
+        menuListOnChange(m_data, this);
+    HTMLFormControlElementWithState::dispatchBlurEvent(newFocusedNode);
 }
 
 void HTMLSelectElement::deselectItems(SelectElementData& data, Element* element, Element* excludeElement)
@@ -959,9 +906,9 @@
     }
 }
 
-bool HTMLSelectElement::saveFormControlState(const SelectElementData& data, const Element* element, String& value)
+bool HTMLSelectElement::saveFormControlState(String& value) const
 {
-    const Vector<Element*>& items = data.listItems(element);
+    const Vector<Element*>& items = m_data.listItems(this);
     int length = items.size();
 
     // FIXME: Change this code to use the new StringImpl::createUninitialized code path.
@@ -976,11 +923,11 @@
     return true;
 }
 
-void HTMLSelectElement::restoreFormControlState(SelectElementData& data, Element* element, const String& state)
+void HTMLSelectElement::restoreFormControlState(const String& state)
 {
-    recalcListItems(data, element);
+    recalcListItems(m_data, this);
 
-    const Vector<Element*>& items = data.listItems(element);
+    const Vector<Element*>& items = m_data.listItems(this);
     int length = items.size();
 
     for (int i = 0; i < length; ++i) {
@@ -988,28 +935,27 @@
             optionElement->setSelectedState(state[i] == 'X');
     }
 
-    setOptionsChangedOnRenderer(data, element);
+    setOptionsChangedOnRenderer(m_data, this);
+    setNeedsValidityCheck();
 }
 
-void HTMLSelectElement::parseMultipleAttribute(SelectElementData& data, Element* element, Attribute* attribute)
+void HTMLSelectElement::parseMultipleAttribute(const Attribute* attribute)
 {
-    bool oldUsesMenuList = data.usesMenuList();
-    data.setMultiple(!attribute->isNull());
-    toSelectElement(element)->updateValidity();
-    if (oldUsesMenuList != data.usesMenuList() && element->attached()) {
-        element->detach();
-        element->attach();
-    }
+    bool oldUsesMenuList = m_data.usesMenuList();
+    m_data.setMultiple(!attribute->isNull());
+    updateValidity();
+    if (oldUsesMenuList != m_data.usesMenuList())
+        reattachIfAttached();
 }
 
-bool HTMLSelectElement::appendFormData(SelectElementData& data, Element* element, FormDataList& list)
+bool HTMLSelectElement::appendFormData(FormDataList& list, bool)
 {
-    const AtomicString& name = element->formControlName();
+    const AtomicString& name = formControlName();
     if (name.isEmpty())
         return false;
 
     bool successful = false;
-    const Vector<Element*>& items = data.listItems(element);
+    const Vector<Element*>& items = m_data.listItems(this);
 
     for (unsigned i = 0; i < items.size(); ++i) {
         OptionElement* optionElement = toOptionElement(items[i]);
@@ -1025,19 +971,19 @@
     return successful;
 } 
 
-void HTMLSelectElement::reset(SelectElementData& data, Element* element)
+void HTMLSelectElement::reset()
 {
     OptionElement* firstOption = 0;
     OptionElement* selectedOption = 0;
 
-    const Vector<Element*>& items = data.listItems(element);
+    const Vector<Element*>& items = m_data.listItems(this);
     for (unsigned i = 0; i < items.size(); ++i) {
         OptionElement* optionElement = toOptionElement(items[i]);
         if (!optionElement)
             continue;
 
-        if (items[i]->fastHasAttribute(HTMLNames::selectedAttr)) {
-            if (selectedOption && !data.multiple())
+        if (items[i]->fastHasAttribute(selectedAttr)) {
+            if (selectedOption && !m_data.multiple())
                 selectedOption->setSelectedState(false);
             optionElement->setSelectedState(true);
             selectedOption = optionElement;
@@ -1048,11 +994,12 @@
             firstOption = optionElement;
     }
 
-    if (!selectedOption && firstOption && !data.multiple() && data.size() <= 1)
+    if (!selectedOption && firstOption && !m_data.multiple() && m_data.size() <= 1)
         firstOption->setSelectedState(true);
 
-    setOptionsChangedOnRenderer(data, element);
-    element->setNeedsStyleRecalc();
+    setOptionsChangedOnRenderer(m_data, this);
+    setNeedsStyleRecalc();
+    setNeedsValidityCheck();
 }
 
 #if !PLATFORM(WIN) || OS(WINCE)
@@ -1523,43 +1470,44 @@
     }
 }
 
-void HTMLSelectElement::insertedIntoTree(SelectElementData& data, Element* element)
+void HTMLSelectElement::insertedIntoTree(bool deep)
 {
     // When the element is created during document parsing, it won't have any
     // items yet - but for innerHTML and related methods, this method is called
     // after the whole subtree is constructed.
-    recalcListItems(data, element, true);
+    recalcListItems(m_data, this, true);
+    HTMLFormControlElementWithState::insertedIntoTree(deep);
 }
 
-void HTMLSelectElement::accessKeySetSelectedIndex(SelectElementData& data, Element* element, int index)
+void HTMLSelectElement::accessKeySetSelectedIndex(int index)
 {    
-    // first bring into focus the list box
-    if (!element->focused())
-        element->accessKeyAction(false);
+    // First bring into focus the list box.
+    if (!focused())
+        accessKeyAction(false);
     
     // if this index is already selected, unselect. otherwise update the selected index
-    const Vector<Element*>& items = data.listItems(element);
-    int listIndex = optionToListIndex(data, element, index);
+    const Vector<Element*>& items = m_data.listItems(this);
+    int listIndex = optionToListIndex(m_data, this, index);
     if (OptionElement* optionElement = (listIndex >= 0 ? toOptionElement(items[listIndex]) : 0)) {
         if (optionElement->selected())
             optionElement->setSelectedState(false);
         else
-            setSelectedIndex(data, element, index, false, true);
+            setSelectedIndex(m_data, this, index, false, true);
     }
 
-    if (data.usesMenuList())
-        menuListOnChange(data, element);
+    if (m_data.usesMenuList())
+        menuListOnChange(m_data, this);
     else
-        listBoxOnChange(data, element);
+        listBoxOnChange(m_data, this);
 
-    scrollToSelection(data, element);
+    scrollToSelection(m_data, this);
 }
 
-unsigned HTMLSelectElement::optionCount(const SelectElementData& data, const Element* element)
+unsigned HTMLSelectElement::length() const
 {
     unsigned options = 0;
 
-    const Vector<Element*>& items = data.listItems(element);
+    const Vector<Element*>& items = m_data.listItems(this);
     for (unsigned i = 0; i < items.size(); ++i) {
         if (isOptionElement(items[i]))
             ++options;

Modified: trunk/Source/WebCore/html/HTMLSelectElement.h (97006 => 97007)


--- trunk/Source/WebCore/html/HTMLSelectElement.h	2011-10-08 08:54:57 UTC (rev 97006)
+++ trunk/Source/WebCore/html/HTMLSelectElement.h	2011-10-08 09:05:18 UTC (rev 97007)
@@ -144,7 +144,6 @@
     bool hasPlaceholderLabelOption() const;
 
     // FIXME: Fold some of the following functions.
-    static void selectAll(SelectElementData&, Element*);
     static void saveLastSelection(SelectElementData&, Element*);
     static void setActiveSelectionAnchorIndex(SelectElementData&, Element*, int index);
     static void setActiveSelectionEndIndex(SelectElementData&, int index);
@@ -158,20 +157,12 @@
     static void setSelectedIndex(SelectElementData&, Element*, int optionIndex, bool deselect = true, bool fireOnChangeNow = false, bool userDrivenChange = true);
     static int optionToListIndex(const SelectElementData&, const Element*, int optionIndex);
     static int listToOptionIndex(const SelectElementData&, const Element*, int listIndex);
-    static void dispatchFocusEvent(SelectElementData&, Element*);
-    static void dispatchBlurEvent(SelectElementData&, Element*);
     static void deselectItems(SelectElementData&, Element*, Element* excludeElement = 0);
-    static bool saveFormControlState(const SelectElementData&, const Element*, String& state);
-    static void restoreFormControlState(SelectElementData&, Element*, const String& state);
-    static void parseMultipleAttribute(SelectElementData&, Element*, Attribute*);
-    static bool appendFormData(SelectElementData&, Element*, FormDataList&);
-    static void reset(SelectElementData&, Element*);
+    void parseMultipleAttribute(const Attribute*);
     static void defaultEventHandler(SelectElementData&, Element*, Event*, HTMLFormElement*);
     static int lastSelectedListIndex(const SelectElementData&, const Element*);
     static void typeAheadFind(SelectElementData&, Element*, KeyboardEvent*);
     static void insertedIntoTree(SelectElementData&, Element*);
-    static void accessKeySetSelectedIndex(SelectElementData&, Element*, int index);
-    static unsigned optionCount(const SelectElementData&, const Element*);
 
     static void updateSelectedState(SelectElementData&, Element*, int listIndex, bool multi, bool shift);
  
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to