Changeset 94009 in webkit
- Timestamp:
- Aug 29, 2011, 1:18:46 PM (15 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 9 edited
-
ChangeLog (modified) (1 diff)
-
dom/Element.h (modified) (1 diff)
-
html/HTMLInputElement.cpp (modified) (4 diffs)
-
html/HTMLInputElement.h (modified) (1 diff)
-
html/HTMLTextAreaElement.cpp (modified) (6 diffs)
-
html/HTMLTextAreaElement.h (modified) (1 diff)
-
html/HTMLTextFormControlElement.cpp (modified) (3 diffs)
-
html/HTMLTextFormControlElement.h (modified) (1 diff)
-
rendering/RenderTextControl.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r94007 r94009 1 2011-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 1 25 2011-08-29 Sheriff Bot <webkit.review.bot@gmail.com> 2 26 -
trunk/Source/WebCore/dom/Element.h
r93481 r94009 338 338 virtual bool canContainRangeEndPoint() const { return true; } 339 339 340 virtual bool formControlValueMatchesRenderer() const { return false; }341 virtual void setFormControlValueMatchesRenderer(bool) { }342 343 340 virtual const AtomicString& formControlName() const { return nullAtom; } 344 341 virtual const AtomicString& formControlType() const { return nullAtom; } -
trunk/Source/WebCore/html/HTMLInputElement.cpp
r93858 r94009 30 30 31 31 #include "AXObjectCache.h" 32 #include "Attribute.h"33 32 #include "BeforeTextInsertedEvent.h" 34 #include "Chrome.h"35 #include "ChromeClient.h"36 33 #include "CSSPropertyNames.h" 37 34 #include "Document.h" … … 46 43 #include "HTMLOptionElement.h" 47 44 #include "HTMLParserIdioms.h" 48 #include "Icon.h"49 45 #include "InputType.h" 50 46 #include "KeyboardEvent.h" … … 52 48 #include "MouseEvent.h" 53 49 #include "NumberInputType.h" 54 #include "Page.h"55 #include "PlatformMouseEvent.h"56 50 #include "RenderTextControlSingleLine.h" 57 51 #include "RenderTheme.h" … … 1910 1904 } 1911 1905 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 1922 1906 void HTMLInputElement::parseMaxLengthAttribute(Attribute* attribute) 1923 1907 { -
trunk/Source/WebCore/html/HTMLInputElement.h
r92589 r94009 230 230 231 231 bool lastChangeWasUserEdit() const; 232 void notifyFormStateChanged();233 232 234 233 static const int maximumLength; -
trunk/Source/WebCore/html/HTMLTextAreaElement.cpp
r92480 r94009 30 30 #include "BeforeTextInsertedEvent.h" 31 31 #include "CSSValueKeywords.h" 32 #include "Chrome.h"33 #include "ChromeClient.h"34 32 #include "Document.h" 35 33 #include "Event.h" 36 34 #include "EventNames.h" 37 35 #include "ExceptionCode.h" 38 #include "FocusController.h"39 36 #include "FormDataList.h" 40 37 #include "Frame.h" 41 38 #include "HTMLNames.h" 42 #include "Page.h"43 39 #include "RenderStyle.h" 44 40 #include "RenderTextControlMultiLine.h" 45 #include "ScriptEventListener.h"46 41 #include "ShadowRoot.h" 47 42 #include "Text.h" 48 43 #include "TextControlInnerElements.h" 49 44 #include "TextIterator.h" 50 #include "VisibleSelection.h"51 45 #include <wtf/StdLibExtras.h> 52 46 … … 57 51 static const int defaultRows = 2; 58 52 static 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 }67 53 68 54 HTMLTextAreaElement::HTMLTextAreaElement(const QualifiedName& tagName, Document* document, HTMLFormElement* form) … … 307 293 m_value = toRenderTextControl(renderer())->text(); 308 294 const_cast<HTMLTextAreaElement*>(this)->setFormControlValueMatchesRenderer(true); 309 notifyFormStateChanged(this);295 const_cast<HTMLTextAreaElement*>(this)->notifyFormStateChanged(); 310 296 m_isDirty = true; 311 const_cast<HTMLTextAreaElement*>(this)->m_wasModifiedByUser = true;297 m_wasModifiedByUser = true; 312 298 const_cast<HTMLTextAreaElement*>(this)->updatePlaceholderVisibility(false); 313 299 } … … 333 319 } 334 320 335 void HTMLTextAreaElement::setValueCommon(const String& value)321 void HTMLTextAreaElement::setValueCommon(const String& newValue) 336 322 { 337 323 m_wasModifiedByUser = false; 338 324 // Code elsewhere normalizes line endings added by the user via the keyboard or pasting. 339 325 // We normalize line endings coming from JavaScript here. 340 String normalizedValue = value.isNull() ? "" : value;326 String normalizedValue = newValue.isNull() ? "" : newValue; 341 327 normalizedValue.replace("\r\n", "\n"); 342 328 normalizedValue.replace('\r', '\n'); … … 344 330 // Return early because we don't want to move the caret or trigger other side effects 345 331 // when the value isn't changing. This matches Firefox behavior, at least. 346 if (normalizedValue == this->value())332 if (normalizedValue == value()) 347 333 return; 348 334 … … 358 344 } 359 345 360 notifyFormStateChanged( this);346 notifyFormStateChanged(); 361 347 setTextAsOfLastFormControlChangeEvent(normalizedValue); 362 348 } -
trunk/Source/WebCore/html/HTMLTextAreaElement.h
r91404 r94009 114 114 mutable String m_value; 115 115 mutable bool m_isDirty; 116 bool m_wasModifiedByUser;116 mutable bool m_wasModifiedByUser; 117 117 }; 118 118 -
trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp
r93276 r94009 27 27 28 28 #include "Attribute.h" 29 #include "Chrome.h" 30 #include "ChromeClient.h" 29 31 #include "Document.h" 30 32 #include "Event.h" … … 34 36 #include "HTMLInputElement.h" 35 37 #include "HTMLNames.h" 38 #include "Page.h" 36 39 #include "RenderBox.h" 37 40 #include "RenderTextControl.h" … … 434 437 } 435 438 439 void 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 436 449 HTMLTextFormControlElement* enclosingTextFormControl(const Position& position) 437 450 { -
trunk/Source/WebCore/html/HTMLTextFormControlElement.h
r93276 r94009 75 75 76 76 void selectionChanged(bool userTriggered); 77 void notifyFormStateChanged(); 77 78 78 79 protected: -
trunk/Source/WebCore/rendering/RenderTextControl.cpp
r93802 r94009 172 172 } 173 173 174 static_cast<Element*>(node())->setFormControlValueMatchesRenderer(true);174 textFormControlElement()->setFormControlValueMatchesRenderer(true); 175 175 } 176 176
Note:
See TracChangeset
for help on using the changeset viewer.