⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 94009 in webkit


Ignore:
Timestamp:
Aug 29, 2011, 1:18:46 PM (15 years ago)
Author:
rniwa@webkit.org
Message:

Cleanup: notifyFormStateChanged, formControlValueMatchesRenderer, and setFormControlValueMatchesRenderer
https://bugs.webkit.org/show_bug.cgi?id=67141

Reviewed by Eric Seidel.

No new tests since this is a refactoring.

  • dom/Element.h: Removed formControlValueMatchesRenderer and setFormControlValueMatchesRenderer.
  • html/HTMLInputElement.cpp: Removed notifyFormStateChanged.
  • html/HTMLInputElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::updateValue): Calls notifyFormStateChanged; modifies m_wasModifiedByUser.
(WebCore::HTMLTextAreaElement::setValueCommon): Calls notifyFormStateChanged; also renamed value to newValue
to avoid the conflict with value().

  • html/HTMLTextAreaElement.h: Made m_wasModifiedByUser mutable.
  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::notifyFormStateChanged): Extracted from notifyFormStateChanged in
HTMLInputElement.cpp and HTMLTextAreaElement.cpp.

  • html/HTMLTextFormControlElement.h:
  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::setInnerTextValue): Calls setFormControlValueMatchesRenderer.

Location:
trunk/Source/WebCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r94007 r94009  
     12011-08-29  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Cleanup: notifyFormStateChanged, formControlValueMatchesRenderer, and setFormControlValueMatchesRenderer
     4        https://bugs.webkit.org/show_bug.cgi?id=67141
     5
     6        Reviewed by Eric Seidel.
     7
     8        No new tests since this is a refactoring.
     9
     10        * dom/Element.h: Removed formControlValueMatchesRenderer and setFormControlValueMatchesRenderer.
     11        * html/HTMLInputElement.cpp: Removed notifyFormStateChanged.
     12        * html/HTMLInputElement.h:
     13        * html/HTMLTextAreaElement.cpp:
     14        (WebCore::HTMLTextAreaElement::updateValue): Calls notifyFormStateChanged; modifies m_wasModifiedByUser.
     15        (WebCore::HTMLTextAreaElement::setValueCommon): Calls notifyFormStateChanged; also renamed value to newValue
     16        to avoid the conflict with value().
     17        * html/HTMLTextAreaElement.h: Made m_wasModifiedByUser mutable.
     18        * html/HTMLTextFormControlElement.cpp:
     19        (WebCore::HTMLTextFormControlElement::notifyFormStateChanged): Extracted from notifyFormStateChanged in
     20        HTMLInputElement.cpp and HTMLTextAreaElement.cpp.
     21        * html/HTMLTextFormControlElement.h:
     22        * rendering/RenderTextControl.cpp:
     23        (WebCore::RenderTextControl::setInnerTextValue): Calls setFormControlValueMatchesRenderer.
     24
    1252011-08-29  Sheriff Bot  <webkit.review.bot@gmail.com>
    226
  • trunk/Source/WebCore/dom/Element.h

    r93481 r94009  
    338338    virtual bool canContainRangeEndPoint() const { return true; }
    339339
    340     virtual bool formControlValueMatchesRenderer() const { return false; }
    341     virtual void setFormControlValueMatchesRenderer(bool) { }
    342 
    343340    virtual const AtomicString& formControlName() const { return nullAtom; }
    344341    virtual const AtomicString& formControlType() const { return nullAtom; }
  • trunk/Source/WebCore/html/HTMLInputElement.cpp

    r93858 r94009  
    3030
    3131#include "AXObjectCache.h"
    32 #include "Attribute.h"
    3332#include "BeforeTextInsertedEvent.h"
    34 #include "Chrome.h"
    35 #include "ChromeClient.h"
    3633#include "CSSPropertyNames.h"
    3734#include "Document.h"
     
    4643#include "HTMLOptionElement.h"
    4744#include "HTMLParserIdioms.h"
    48 #include "Icon.h"
    4945#include "InputType.h"
    5046#include "KeyboardEvent.h"
     
    5248#include "MouseEvent.h"
    5349#include "NumberInputType.h"
    54 #include "Page.h"
    55 #include "PlatformMouseEvent.h"
    5650#include "RenderTextControlSingleLine.h"
    5751#include "RenderTheme.h"
     
    19101904}
    19111905
    1912 void HTMLInputElement::notifyFormStateChanged()
    1913 {
    1914     Frame* frame = document()->frame();
    1915     if (!frame)
    1916         return;
    1917 
    1918     if (Page* page = frame->page())
    1919         page->chrome()->client()->formStateDidChange(this);
    1920 }
    1921 
    19221906void HTMLInputElement::parseMaxLengthAttribute(Attribute* attribute)
    19231907{
  • trunk/Source/WebCore/html/HTMLInputElement.h

    r92589 r94009  
    230230
    231231    bool lastChangeWasUserEdit() const;
    232     void notifyFormStateChanged();
    233232
    234233    static const int maximumLength;
  • trunk/Source/WebCore/html/HTMLTextAreaElement.cpp

    r92480 r94009  
    3030#include "BeforeTextInsertedEvent.h"
    3131#include "CSSValueKeywords.h"
    32 #include "Chrome.h"
    33 #include "ChromeClient.h"
    3432#include "Document.h"
    3533#include "Event.h"
    3634#include "EventNames.h"
    3735#include "ExceptionCode.h"
    38 #include "FocusController.h"
    3936#include "FormDataList.h"
    4037#include "Frame.h"
    4138#include "HTMLNames.h"
    42 #include "Page.h"
    4339#include "RenderStyle.h"
    4440#include "RenderTextControlMultiLine.h"
    45 #include "ScriptEventListener.h"
    4641#include "ShadowRoot.h"
    4742#include "Text.h"
    4843#include "TextControlInnerElements.h"
    4944#include "TextIterator.h"
    50 #include "VisibleSelection.h"
    5145#include <wtf/StdLibExtras.h>
    5246
     
    5751static const int defaultRows = 2;
    5852static const int defaultCols = 20;
    59 
    60 static inline void notifyFormStateChanged(const HTMLTextAreaElement* element)
    61 {
    62     Frame* frame = element->document()->frame();
    63     if (!frame)
    64         return;
    65     frame->page()->chrome()->client()->formStateDidChange(element);
    66 }
    6753
    6854HTMLTextAreaElement::HTMLTextAreaElement(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
     
    307293    m_value = toRenderTextControl(renderer())->text();
    308294    const_cast<HTMLTextAreaElement*>(this)->setFormControlValueMatchesRenderer(true);
    309     notifyFormStateChanged(this);
     295    const_cast<HTMLTextAreaElement*>(this)->notifyFormStateChanged();
    310296    m_isDirty = true;
    311     const_cast<HTMLTextAreaElement*>(this)->m_wasModifiedByUser = true;
     297    m_wasModifiedByUser = true;
    312298    const_cast<HTMLTextAreaElement*>(this)->updatePlaceholderVisibility(false);
    313299}
     
    333319}
    334320
    335 void HTMLTextAreaElement::setValueCommon(const String& value)
     321void HTMLTextAreaElement::setValueCommon(const String& newValue)
    336322{
    337323    m_wasModifiedByUser = false;
    338324    // Code elsewhere normalizes line endings added by the user via the keyboard or pasting.
    339325    // We normalize line endings coming from JavaScript here.
    340     String normalizedValue = value.isNull() ? "" : value;
     326    String normalizedValue = newValue.isNull() ? "" : newValue;
    341327    normalizedValue.replace("\r\n", "\n");
    342328    normalizedValue.replace('\r', '\n');
     
    344330    // Return early because we don't want to move the caret or trigger other side effects
    345331    // when the value isn't changing. This matches Firefox behavior, at least.
    346     if (normalizedValue == this->value())
     332    if (normalizedValue == value())
    347333        return;
    348334
     
    358344    }
    359345
    360     notifyFormStateChanged(this);
     346    notifyFormStateChanged();
    361347    setTextAsOfLastFormControlChangeEvent(normalizedValue);
    362348}
  • trunk/Source/WebCore/html/HTMLTextAreaElement.h

    r91404 r94009  
    114114    mutable String m_value;
    115115    mutable bool m_isDirty;
    116     bool m_wasModifiedByUser;
     116    mutable bool m_wasModifiedByUser;
    117117};
    118118
  • trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp

    r93276 r94009  
    2727
    2828#include "Attribute.h"
     29#include "Chrome.h"
     30#include "ChromeClient.h"
    2931#include "Document.h"
    3032#include "Event.h"
     
    3436#include "HTMLInputElement.h"
    3537#include "HTMLNames.h"
     38#include "Page.h"
    3639#include "RenderBox.h"
    3740#include "RenderTextControl.h"
     
    434437}
    435438
     439void HTMLTextFormControlElement::notifyFormStateChanged()
     440{
     441    Frame* frame = document()->frame();
     442    if (!frame)
     443        return;
     444   
     445    if (Page* page = frame->page())
     446        page->chrome()->client()->formStateDidChange(this);
     447}
     448
    436449HTMLTextFormControlElement* enclosingTextFormControl(const Position& position)
    437450{
  • trunk/Source/WebCore/html/HTMLTextFormControlElement.h

    r93276 r94009  
    7575
    7676    void selectionChanged(bool userTriggered);
     77    void notifyFormStateChanged();
    7778
    7879protected:
  • trunk/Source/WebCore/rendering/RenderTextControl.cpp

    r93802 r94009  
    172172    }
    173173
    174     static_cast<Element*>(node())->setFormControlValueMatchesRenderer(true);
     174    textFormControlElement()->setFormControlValueMatchesRenderer(true);
    175175}
    176176
Note: See TracChangeset for help on using the changeset viewer.